Socorro mi impresora 3d no imprime


Su impresora 3D debe fundir y extruir muchos kilogramos de plástico durante su vida útil  lo cual  es muchísimo trabajo para una máquina que se mueve en los tres ejes con una  “pesada” carga ( la cabeza de extrusora ) pues para hacer las cosas más complicadas, todo este plástico debe salir de la extrusora a través de un pequeño agujero que es tan grande ( o tan pequeño más bien )  como un  grano de arena.

Inevitablemente, puede llegar un momento en que algo vaya mal con este complejo proceso hasta que finalmente  el extrusor ya no sea  capaz de empujar el plástico a través de la boquilla. Estos atascos suelen ser debidos a que algo dentro de la boquilla está bloqueando el plástico para su libre extrusión. Si bien esto puede ser desalentador la primera vez que sucede, vamos a analizar varios pasos de fácil solución para liberar una boquilla atascada pues tarde o temprano nuestra querida impresora 3D dejará de extruir filamento por la boquilla por los nos resultara una misión casi imposible imprimir una pieza en 3D  por insignificante y pequeña que sea

 

 

En este problema es muy común, y el más grave  en que nos enfrentamos  con impresoras 3D, pero afortunadamente, también es relativamente sencillo de resolver. Hay varias causas posibles para  que el extrusor de  una impresora no extruye el plástico  ,   pero lo importante es solucionarlo cuanto antes  metodos  para resolver el problema:

Volver a cargar  filamento nuevo 

Es  lo más obvio ¿verdad ?.  Si el filamento  no se mueve, lo siguiente que se  debería  hacer es descargar el filamento,verificando que el extrusor se calienta a la temperatura apropiada para  luego empujar el filamento hacia el extrusor hacia afuera  haciendo uso de la  palanca y extraerlo rápidamente (es posible que necesite aplicar alguna fuerza adicional si el filamento no se mueve). Una vez que el filamento se elimine, utilice un par de tijeras para cortar la parte fundida o dañada del filamento.  A continuación, vuelva a cargar el filamento (  recuerde cortar en inglete a 45º  para que entre más  fácil )  y vea si es capaz de extruir con la nueva sección de filamento sin daños.

Si no consigue resolver el problema no  se preocupe  todavía  puede solucionarlo  así que no pierda la esperanza  y por favor siga leyendo.

Empujar manualmente el filamento a la extrusora

Una de las primeras cosas que usted puede intentar cuando no extruye material , es empujar  el filamento para  que entre  en la extrusor. Hay dos métodos;

  • Manualmente empujando el filamento en la parte superior  y haciendo uso de la  palanca 
  • También se puede hacer abriendo el Panel de Control de su impresora  y calentando su extrusora a la temperatura adecuada para su plástico y a continuación, intente extruir  una pequeña cantidad de plástico: a medida que el motor del extrusor está girando, utilice ligeramente las manos para ayudar a empujar el filamento en el inicio del cabezal de  la extrusora

Tanto de  forma manual como por software ,en muchos casos, esta fuerza adicional será suficiente para hacer avanzar el filamento más allá del área problemática.

 

 

Observe que muchas impresoras  justo en la cabeza del extrusor tienen una pestaña  con un gran muelle : ese es precisamente el  que debemos  pulsar  para  intentar meter manualmente el filamento en la cabeza del extrusor

 

Cebado de la boquilla

La mayoría de las extrusoras tienen  problemas de fugas de plástico cuando se mantienen a una alta temperatura  debido a que el plástico caliente que  queda dentro de los conductos de la  boquilla tiende a exudarse fuera de la punta, lo que crea un vacío dentro de la boquilla donde el plástico se ha drenado lo que a la larga  con el paso del tiempo tenderá a quedar bloqueado  y no salir 

Para solucionar este problema, deberíamos  asegurarnos de cebar su extrusor justo antes de comenzar una impresión de modo que la boquilla esté llena de plástico y lista para extrudir. Una forma común de hacer esto en el programa  Cura es mediante la inclusión de una  falda o soporte ( círculo alrededor de su pieza)  lo que  no solo servirá para mejorar la adherencia de la pieza, sino   que en el proceso, cesará el extrusor con plástico.

Si necesita cebado extra, puede aumentar el número de contornos de falda en la pestaña Experto de Cura o también en caso de  usar  el  programa Easyprint de Geetech, cuando una vez se esté conectado  a la impresora,    usar la orden  de calentar la boquilla  para derretir el plástico manualmente   y así intentar expulsar el plástico empujando manualmente si es necesario con el filamento .

 

 

Limpieza de la boquilla

Si su impresora extruía correctamente al principio de su impresión, pero de repente dejó de extruir, por lo general sólo hay algunas cosas que podrían haber causado este problema  pero básicamente si ha seguido los pasos anteriores , es un claro indicio de que  el extrusor esta obstruido, por lo que deberemos proceder a su limpieza  para liberar el canal de extrusión

En primer lugar quitaremos el filamento ( si es necesario cortándolo )

,

Acto seguido procederemos a desmontar el motor del ventilador de la extrusora  , el cual suele ir acompañado de un pequeño radiador de aluminio  unido solidario a este

Ya podemos quitar el motor del extrusor   y nos quedar la base donde apoya el motor del extrusor , el radiador , el inyector  y el ventilador. En el caso de la Prusa de geetech esta pieza  va sujeta por abajo con dos tornillos ayen

Una  buena forma  de intentar liberar el exceso de mataerial es  calentar el extrusor manualmente  y después intentar limpiar la entrada de este por ejemplo con una llave allen introduciendo esta s por la abertura donde va el filamento

 

 

 

Si no se desatora podemos  desmontarla al completo  y meter una llave más fina a lo largo del tornillo de la boquilla

 

 

Si no conseguimos liberar  filamento por la cabeza todavía podemos quitar la boquilla e intentar limpiar por ese lado con una llave allen ese otro lado

Si   a pesar de todo  sigue sin extruir el filamento , es señal que la boquilla ha terminado su vida útil  por lo que o bien la limpiamos con herramienta    o bien  podemos  reemplazar esta por una nueva del mismo diámetro de abertura  que suele  rondar los 0.3mm

No es un pecio excesivo lo  que sopone una boquilla nueva , asi que sil legado a este punto se calienta el filamento , esta libre el canal   pero no sale por la punta , lo ideal es cambiar esta 

   

Una vez colocada   la nueva punta , procederemos a seguir el paso descrito pero en orden inverso:   colocaremos el soporte , colocaremos el motor con el extrusor , el radiador   y el  ventilador 

Obviamente volveremos a introducir el filamento,  en la apertura superior y forzaremos el calentamiento de la boquilla. Pasado unos minutos   iremos empujando el filamento hacia abajo hasta que poco a poco  vaya saliendo material por la boquilla, lo cual es señal de que se ha liberado la obstrucción

 

 

Una vez  hayamos cambiado la boquilla , si es diferente fabricante , deberemos reajustar la altura de la cama  para que vuelva a funcionar por completo( normalmente esto se ajusta variando el ajuste del fin de carrera del eje z)

 

Hay  otros errores que pueden ocurrir menos “graves” pero  que pueden ocurrir generando un mala  o nula impresión; 

  • La distancia entre la boquilla y la cama es demasiado estrecha.Si la boquilla está demasiado cerca de la cama, no habrá suficiente espacio para que el plástico salga de la extrusora. El agujero en la parte superior de la boquilla está esencialmente bloqueado para que no pueda salir plástico. Una manera fácil de reconocer este problema es si la impresión no extruye el plástico para la primera capa o dos, pero comienza a extruir normalmente alrededor de la 3ª o 4ª capas.La resolución de este problema pasa por el  ajuste  por excelencia de   casi todas las impresora:  el de la cama caliente ,  donde deberemos ajustar los cuatro tornillos en las 4 esquinas de la cama caliente   girando los tornillos para que quepa aproximadamente el grosor de un pedazo de papel A4 de tal manera que roce un poco pero que no se rompa o pase con facilidad  .
  • La boquilla se encuentra muy lejos de la cama , es el mismo problema anterior pero a la inversa , lo cual impedirá una impresión deficiente  porque literalmente se imprime sobre el “aire” sin soporte en determinadas zonas , lo cual solo puede generar problemas  normalmente desembocando en el temido estropajo cuando se deja desatendido el proceso y al no adherirse a la cama el filamento  , termina generando un revoltijo de plástico inútil
  • El filamento es mordido por el engranaje de accionamiento;Las impresoras de bajo coste domésticas utilizan un pequeño engranaje para empujar el filamento hacia adelante y hacia atrás. Los dientes de este engranaje muerden en el filamento y le permiten controlar con precisión la posición del filamento.Sin embargo si nota un montón de virutas de plástico o parece que haya alguna sección que falte parte, entonces es posible que el engranaje del extrusor esta quitando demasiado plastico. Ademas una vez que sucede esto el engranaje no tendrá nada que agarrar cuando trate de insertar el filamento en la boquilla  lo cual hará muy dificil la impresion
  • La impresora no se pega a la cama;Es muy importante que la primera capa de la impresión esté fuertemente conectada a la plataforma de construcción de la impresora para que el resto se pueda construir sobre esta base. Si la primera capa no se pega a la plataforma de construcción, creará problemas más adelante. Hay muchas formas diferentes de hacer frente a estos problemas de adhesión de la primera capa, por lo que examinaremos varias causas típicas a continuación y explicaremos cómo abordar cada una de ellas.
  • La plataforma no esta nivelada: normalmente todas la  impresoras utilizan 4 tornillos para regular la posición de la cama. Si tiene problemas para que su primera capa se pegue a la cama, lo primero que debe verificar es que la cama de su impresora es plana y nivelada. Si la cama no está nivelada, un lado de su cama puede estar demasiado cerca de la boquilla, mientras que el otro lado está demasiado lejos. Conseguir una primera capa perfecta requiere una cama de impresión de nivel.
  • El filamento ha desmontado el engranaje de accionamiento ; Durante una impresión, el motor del extrusor está constantemente girando tratando de empujar el filamento en la boquilla para que su impresora pueda mantener la extrusión de plástico. Si intenta imprimir demasiado rápido o intenta extruir demasiado plástico, este motor puede acabar mordiendo y afilando el filamento hasta que no queda nada para que el engranaje impulsor se agarre. Si su motor de extrusión está girando, pero el filamento no se mueve, entonces esta es la causa más probable. 
  • Motor del extrusor sobrecalentados:el motor del extrusor tiene que trabajar increíblemente duro durante su impresión. Se encuentra girando constantemente hacia adelante y hacia atrás, empujando y tirando de plástico hacia adelante y hacia atrás. Este movimiento rápido requiere un poco de corriente, y si la electrónica de la impresora no tiene enfriamiento suficiente, puede causar que la electrónica del controlador del motor se sobrecaliente. Estos conductores de motor suelen tener un corte térmico que hará que el conductor deje de funcionar si la temperatura es demasiado alta. Si esto sucede, los motores del eje X e Y girarán y moverán la boquilla del extrusor, pero el motor del extrusor no se moverá en absoluto. Muchas impresora incluye un ventilador de refrigeración para enfriar la temperatura del motor del extrusor. También puede apagar la impresora y dejar que la electrónica se enfríe.
Anuncios

Extracion de documentos en Oracle text


Oracle incorpora un tipo de datos llamado BLOB que permite almacenar documentos de cualquier tipo (imágenes, excel, word, access, comprimidos, vídeos, música, etc). En principio admite cualquier tipo de documento y de cualquier tamaño aunque aún sigue manteniendo el tipo de datos LONG RAW que está obsoleto, sustituido por BLOB. Las instrucciones que os mostramos a continuación admiten ambos tipos de datos: BLOB y LOB RAW.

 

Insertar o extraer documentos  desde Visual Basic

Para poder insertar documentos en un campo BLOB de Oracle con Visual Basic necesitaremos una librería (dll) llamada SAFileMgr Module (SAFileMgr.dll), esta librería está disponible de forma gratuita en la web http://www.softartisans.com. Tras descargar este fichero, deberemos copiarlo a la carpeta del sistema (normalmente C:/Windows/System32) y registrarlo con el comando:  regsvr32 C:/Windows/System32/SAFileMgr.dll .  Tras copiar y registrar el fichero SAFileMgr.dll, también necesitaremos disponer de una base de datos Oracle activa

Tras tener la tabla creada con el campo BLOB, procederemos a abrir Visual Basic y a crear un nuevo proyecto para insertar y extraer documentos en Oracle. En la ventana de “Nuevo proyecto” seleccionaremos “EXE estándar” y pulsaremos “Abrir”:Para que la aplicación funcione correctamente deberemos agregar las referencias necesarias. Para ello pulsaremos en el menú “Proyecto ” – “Referencias” de Visual Basic:Seleccionaremos la referencia FileMgr 1.1:Si no aparece en la lista, pulsaremos en Examinar y seleccionaremos el fichero .dll copiado y registrado anteriormente:C:/Windows/System32/SAFileMgr.dll y seleccionaremos también Microsoft ActiveX Data Objects 2.6 Library: Si no aparece en la lista, pulsaremos en Examinar y seleccionaremos el fichero ubicado en: C:/Archivos de programa/Archivos comunes/system/ado/msado26.tlb

 

Ahora veamos el código de cada uno de los tres  botones de un  formulario tipo para lanzar una consulta de inserción o extracción de un documento :

  • Para el botón “Insertar documento“:

Private Sub btInsertarDocumento_Click()

Dim Conn As New ADODB.Connection

Dim Rs As New ADODB.Recordset

Dim FileMgr As New FileManager

Dim SQL As String

On Error GoTo cError

‘ Conexión mediante OLEDB

Conn.Provider = “OraOLEDB.Oracle”

Conn.Open txtServicio.Text, _

txtUsuario.Text, txtContrasena.Text

‘ Ejecutamos una consulta SQL sobre la tabla  para activar el recordset

SQL = “Select * from ” + txtTabla.Text + ” where 1=2″

Rs.Open SQL, Conn, 2, 3

‘ Añadimos un nuevo registro con los datos indicados

Rs.AddNew

Rs(txtCampoTitulo.Text).Value = txtDocumentoTitulo.Text

Rs(txtCampoRutaDocumento.Text).Value = txtDocumento.Text

‘ Insertamos el documento en el campo BLOB/RAW

FileMgr.ExportToBlob txtDocumento.Text, Rs(txtCampoBLOB.Text)

Rs.Update

Rs.Close

Conn.Close

Set Conn = Nothing

MsgBox “Documento insertado correctamente en ” + “la base de datos: ” + vbCrLf + vbCrLf + txtDocumento.Text, vbOKOnly + vbInformation

cSalir:

Exit Sub

cError:

MsgBox Err.Description

GoTo cSalir

End Sub

  • Para el botón “Ejecutar“:

Private Sub btEjecutar_Click()

Dim Conn As New ADODB.Connection

Dim Rs As New ADODB.Recordset

On Error GoTo cError

‘ Conexión a Oracle mediante OLEDB

Conn.Provider = “OraOLEDB.Oracle”

Conn.Open txtServicio.Text,  txtUsuario.Text, txtContrasena.Text

‘ Ejecutamos consulta SQL introducida por el usuario

Rs.Open txtSQL.Text, Conn, 0, 1

txtExtraerTitulo.Text = Rs(txtCampoTitulo.Text)

txtDestino.Text = Rs(txtCampoRutaDocumento.Text)

Rs.Close

Conn.Close

Set Conn = Nothing

MsgBox “Consulta SQL ejecutada correctamente.”,  vbOKOnly + vbInformation

cSalir:

Exit Sub

cError:

MsgBox Err.Description

GoTo cSalir

End Sub

  • Para el botón “Ejecutar“:

Private Sub btExtraer_Click()

Dim Conn As New ADODB.Connection

Dim Rs As New ADODB.Recordset

Dim FileMgr As New FileManager

Dim continuar As Boolean

On Error GoTo cError

‘ Conexión a Oracle mediante OLEDB

Conn.Provider = “OraOLEDB.Oracle”

Conn.Open txtServicio.Text, _

txtUsuario.Text, txtContrasena.Text

‘ Ejecutamos consulta SQL introducida por el usuario 

Rs.Open txtSQL.Text, Conn, 0, 1

‘ Comprobamos si existe ya un fichero destino

‘ con el mismo nombre

continuar = False

If Dir(txtDestino.Text) <> “” Then

continuar = MsgBox(“Ya existe un documento ” + “con este nombre ¿desea reemplazarlo?”, vbYesNo + vbQuestion) = vbYes

Else

continuar = True

End If

‘ Extraemos el documento del primer   registro de la consulta SQL  en el destino especificado por el usuario

If continuar Then

FileMgr.ImportFromBlob Rs(txtCampoBLOB.Text), txtDestino.Text

MsgBox “Fichero extraído correctamente en: ” + vbCrLf + vbCrLf +  txtDestino.Text, vbOKOnly + vbInformation

End If

Rs.Close

Conn.Close

Set Conn = Nothing

cSalir:

Exit Sub

cError:

MsgBox Err.Description

GoTo cSalir

End Sub

 

Extracción desde java

 

Ahora  veamos  usando el lenguaje   Java un ejemplo de como podemos extraer  documentos almacenados en  CLOB’s   en una base de Datos Oracle Text 9 en Java

Necesitaremos tener instalado el cliente Oracle instalado en la maquina, las credenciales de acceso  ,    asi como referenciar en el proyecto desde el Eclipse las siguientes librerías

 

 

 

Y ahora veamos  un ejemplo de una clase de extracción de campos clob’s

La clase principal es Main , la cual debería seleccionarse al exportar el proyecto desde Eclipse

Se puede ejecutar en local  o crear un pequeño script para invocar el java

En este ejemplo es  obligatorio usar tres argumentos y en este orden  para llamar al programa:

  • nodo= número del nodo a exportar
  • tope = numero de orden donde se quedo la última exportación empezando por cero
  • topefinal= umbral donde termina

 

En el proyecto se han referenciado dos versiones de la MV Java porque puede ocurrir que la MV usada en local ( 1.6 ) sea diferente a la del host  donde se ejecute ( por ejemplo  la 1.4.2_08, razon por la habria que copiar tambien esa version 1.4.2.08  dedseel host  a una ruta local

También se hace referencia al driver de oracle classes12.jar , ruta que también existe en la maquina

 

 

Este proyecto debería exportarse situándose en la raiz del proyecto como un jar sin incluir tanto los ficheros .classspath como el de .project

Antes de compilar debe eliminar manualmente el war existente desde el propio eclipse asi como el log de ejecución (manualmente habría que ubicarse en c:\ users\xxx\workspace\application)

Asimismo por ultimo , al   compilarlo  no debemos incluir el classpath

 

Veamos el código completo;

 

/*
Main.java
*
* Created on 20 de Marzo de 20174, 11:43
*

*/

import java.io.DataOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;
import oracle.jdbc.driver.OracleDriver;

/**
* @author CRN
*
* EXTRACTOR DOCUMENTOS
*/

public class Main {

private static int nodo;

private static int tope;

private static int topefinal;

public static void main(final String[] args) {

System.out.println(“Inicializando programa …”);

Connection conn = null;

GestorDeConexiones gc = null;

try{

gc = new GestorDeConexiones(“xxxx”, “yyyyyy”); // credenciales de  acceso a la BBDD con el user y pwd de acceso 

conn = gc.getConnection();

// Comprueba si hay argumentos en la linea de comandos

final int nnodo=1;

if(args.length != 0)
//CON ARGUMENTOS

{
for(int counter = 0; counter < args.length; counter++)
{
System.out.println(“Argument index ” + counter + “: ” + args[counter]);
}

System.out.println(” fin argumentos”);

nodo = Integer.parseInt(args[0]); // primer argumento ( el nodo)

tope = Integer.parseInt(args[1]); //segundo argumento (inicio

topefinal = Integer.parseInt(args[2]); //tercer argumento ( tope)

System.out.println(“Argumento nodo= ” + nodo);
System.out.println(“Argumento conteo incial= ” + tope);
System.out.println(“Argumento numero de documentos= ” + topefinal);

}

else

//SIN ARGUMENTOS

{
System.out.println (“No se ha incluido ningún argumento”);
System.exit(0);
}

System.out.println(“NODO” + nodo);
System.out.println(“Valor inicial= ” + tope);
System.out.println(“Valor final= ” + topefinal);

final String path1 =”d:\”;

final String nfichero= path1+”previa_carga_jd_”+nodo+”tope“+tope+”topefinal_”+ topefinal;

//generacion del fichero de salida

File theDir = new File(nfichero);

if (!theDir.exists())
{
System.out.println(“..creando directorio: ” + theDir.getName()); // SI EL DIRECTORIO NO EXISTE ,. SE CREA
boolean result = false;
try{
theDir.mkdir();

result = true;
}
catch(SecurityException se){   //handle it
}
if(result) {
System.out.println(“Directorio creado”);
}
}

//Intentamos cambiar los permisos al directorio creado
System.out.println(“Cambiamos permisos 777 a “+nfichero);
Process theProcess = null;
try
{
theProcess = Runtime.getRuntime().exec(“chmod 777 “+ nfichero);
}
catch(IOException e)
{
System.out.println(“Error en el método exec()”);
}

//creacion fichero de log

final String log1=path1;

final String nfichero1= log1+”directorio_”+nodo+”tope“+tope+”topefinal_”+ topefinal+”.log”;

System.out.println(“Fichero Log de proceso :[” +nfichero1+”]”);
System.out.println(“+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++”);

//generación del fichero de salida

File fichero = new File(nfichero1);

 

if (!fichero.exists())
{

// SI NO EXISTE , SE CREA
System.out.println(“..creando fichero de log: ” + fichero.getName());
boolean result = false;
try{
fichero.createNewFile();

result = true;
}
catch(SecurityException se){ //handle it
}
if(result) {
System.out.println(“Fichero creado”);
}
}

//abre fichero de log
File TextFile = new File(nfichero1);
FileWriter TextOut = new FileWriter(TextFile, true);
TextOut.write(“********************************************************************\r\n”);
TextOut.write(“INICIANDO PROCESO DE EXTRACCIÓN DE DOCUMENTOS r\n”);
TextOut.write(“Fichero Log de proceso :[” +nfichero1+”]\r\n”);
TextOut.close();

String path=nfichero +”/”;

System.out.println (“RUTA DESTINO FINAL”+ path);

//extraemos los objetos de texto
RecuperadorBD2.RecuperarBD2(conn,path, tope,topefinal,nodo,nfichero1);

}
catch (final SQLException sqle) {
System.out.println
(“Error de acceso a BD:” + sqle.getMessage());
sqle.printStackTrace();
}
catch (final IOException ioe){
System.out.println
(“Error de acceso a disco:” + ioe.getMessage());
ioe.printStackTrace();
}

try{
if (gc != null && conn != null)
gc.closeConnection();
}

catch (final SQLException sqle)
{
System.out.println
(“Error de acceso a BD:” + sqle.getMessage());
sqle.printStackTrace();
conn = null;
gc = null;
}
System.out.println(” **** Fin extraccion ****”);
}
}

class RecuperadorBD2
{
public static void RecuperarBD2 (final Connection cn, final String path , final int topec, final int topex, final int nodo ,final String path1)
throws SQLException, IOException
{

 

String topex1= String.valueOf(topex);

String topec1= String.valueOf(topec);

String nnodo= String.valueOf(nodo);

int contador=0;
FileOutputStream fos = null;

Statement st = null;
ResultSet rs = null;

 

final String sql=” SELECT “+
“FROM(SELECT to_number (rownum) cuenta,”+
” p.
“+
” FROM “+
” ( “+
“SELECT c.nodo_co_nodo, “+
” c.infi_nu_infi, “+
” c.docu_co_documento, “+
” d.docu_no_documento, “+
” d.docu_no_extension ,”+
” d.docu_nu_version, “+
” d.DOCU_FX_MODIFICACION fecha,”+
” e.doct_do_documento doc “+
” FROM tablametadatos c, “+
tablaauxiliar d, “+
tabladocumentos e “+
” WHERE c.nodo_co_nodo = ” + nnodo +
” AND c.docu_co_documento =d.docu_co_documento “+
” AND d.docu_co_documento =e.docu_co_documento “+
” AND e.docu_nu_version =d.docu_nu_version “+
” AND c.docu_nu_version =e.docu_nu_version “+
” ) “+
” where (cuenta >”+topec1 + ” and cuenta <” +topex1 +” )”;

 

//abre fichero de log
File TextFile = new File(path1);
FileWriter TextOut = new FileWriter(TextFile, true);

System.out.println(“”);
System.out.println(“********************************************************************”);
System.out.println(“COMENZANDO PROCESO INICIAL”) ;
System.out.println(“sql general=”+sql);
System.out.println(“”);

TextOut.write(“********************************************************************\r\n”);
TextOut.write(“COMENZANDO PROCESO INICIAL\r\n”);
TextOut.write(“sql general=”+sql+”\r\n”);

try
{

st = cn.createStatement();
rs = st.executeQuery(sql);

while (rs.next())
{
++contador;
//para blobs
final String verdocu= rs.getString(“docu_no_documento”) ;
System.out.println(“Ndocu =” + verdocu );

final String verinfi =rs.getString(“infi_nu_infi”);
System.out.println(“Infi =” + verinfi );

final String verloc = rs.getString(“docu_co_documento”);
System.out.println(“Cdocc =” + verloc );

final String vernombre= verinfi+”“+verloc + ““+ verdocu;

System.out.println(“Nombre =” + vernombre );

System.out.println(“+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++”);
System.out.println(“Numero fichero a extraer =” + contador );

TextOut.write(“Numero fichero a extraer =” + contador+”\r\n”);

final String nfichero =vernombre; //LE PASAMOS COMO ARGUMENTO EL NOMBRE YA MONTADO:INFI_DOCU+LOC

System.out.println(” Fichero a extraer: ” +nfichero);
TextOut.write(“Fichero a extraer =” + nfichero+”\r\n”);

final String pathname= path + nfichero ;
System.out.println(” Extrayendo fichero multimedia : “+pathname);
TextOut.write(“Extrayendo fichero multimedia =” + pathname +”\r\n”);

//deberíamos comprobar si existe ese fichero
final File file = new File(pathname);

fos = new FileOutputStream(file);
final Blob bin = rs.getBlob(“doc”);
System.out.println(“…Extrayendo BLOB”);
TextOut.write(“Extrayendo BLOB \r\n”);

final InputStream inStream = bin.getBinaryStream();
final int size = (int)bin.length();
System.out.println(“Tamaño: “+size);
TextOut.write(“Tamaño =” + size+”\r\n”);

final byte[] buffer = new byte[size];
int length = -1;

while ((length = inStream.read(buffer)) != -1)
{
fos.write(buffer, 0, length);
}

if (fos != null)

{

//Intentamos cambiar los permisos al directorio creado
TextOut.write(“Fichero extraido ok \r\n”);

permisos777(pathname);
fos.close();
System.out.println(” Fichero extraido ok.”);
System.out.println(“+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++”);
TextOut.write(“+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\r\n”);

}
}
}
catch (final IOException ioe)
{
throw new IOException(ioe.getMessage());

}
finally
{
if (fos !=null)
{
fos.close();
TextOut.write(“FIN DEL PROCESO \r\n”);
TextOut.close();

}
if (rs !=null)
{
rs.close();

TextOut.close();
}
rs=null;
st=null;

 

 

System.out.println(“Fin RecuperaBD2”);

System.out.println(“FIN PROCESO”) ;

TextOut.close();

}
}

 

//funcion para añadir permisos 777 a los ficheros extraidos 
public static void permisos777 (final String pathname)
{

Process theProcess = null;

//intentamos cambiar los permisos del fichero recién creeado
System.out.println(“Cambiamos permisos 777 a “+pathname);
try
{
theProcess = Runtime.getRuntime().exec(“chmod 777 “+ pathname);
}
catch(IOException e)
{
System.out.println(“Error en el método exec()”);
}
//fin de cambio de permisos

}

}

//clase para gestionar las conexiones con la BBDD

class GestorDeConexiones
{
private final String user;
private final String password;
private Connection conn = null;
private boolean conectado = false;

public GestorDeConexiones(final String usr, final String pwd){
user = usr;
password = pwd;
}

public void closeConnection() throws SQLException{
if (conectado)
conn.close();
}

private void conectar() throws SQLException {

String url;
DriverManager.registerDriver(new OracleDriver());

url = “jdbc:oracle:thin:@x.x.x.x:yyy:cadena”; ///ojo PROD

 

conn = DriverManager.getConnection(url,user, password);
System.out.println(“Conexion correcta”);
conectado = true;

}

public Connection getConnection() throws SQLException
{
if (!conectado)
conectar();
return conn;
}
}

 

 

 

 

superminipc retro


Hoy en día, gracias a las impresoras 3D, podemos encontrar todo tipo de carcasas personalizadas para las Raspberry Pi  qeu podemos descargar desde el famoso respositorio Thingverse   para luego intentar imprimirla  en nuestra impresora 3d ( en caso de ser el afortunado de poseer una  y que sea funcional), pero  lo que tenemos aquí es algo muy especial pues no es un Mini PC con Raspberry PI y una carcasa impresa en 3D :es una Raspberry Pi dentro de una radio en miniatura con forma de PC de los años 90.

El hack merece explicación, porque es una delicia. Ha sido creado por Senpailord1234, un usuario de Reddit. Como hemos comentado no se trata de un carcasa de PC impresa con una impresora 3D, sino que es una auténtica radio en miniatura de los años 90 0,muy a la moda de los 90’s ,pues  en aquella época a alguien le pareció interesante comercializar una radio de bolsillo con forma de PC… 

Inspirado  en esta  idea   Senpailord1234  decidió convertir esta vieja  radio dentro de un minipc falso  en un PC de verdad… La pega es que al ser  tan pequeña  ahí dentro no cabe una Raspberry Pi 4 o similar, así que utilizó una versión aún más miniaturizada, llamada Raspberry Pi Zero W, que apenas cuesta 17 euros

Esta placa  Raspberry Pi Zero W amplía la familia Pi Zero, el Pi Zero W tiene toda la funcionalidad del Pi Zero original, pero con conectividad añadida, pues e consta de LAN inalámbrica 802.11 b/g/n,  Bluetooth 4.1 y  Bluetooth de baja energía (BLE)

Raspberry Pi Zero W es una placa computacional en miniatura( su tamaño es de  7,5 x 6 x 4 cm) pues ,para que se haga una idea, es casi tres veces más pequeña que una Raspberry Pi 4…

Como el Pi Zero, también tiene: 

  • 1 GHz, CPU de un solo núcleo.
  • 512 MB de RAM.
  • Puertos Mini HDMI y USB On-The-Go
  • Alimentación micro USB.
  • Cabezal compatible con HAT de 40 pines.
  • Vídeo compuesto y encabezados de reinicio
  • Conector de cámara CSI


Senpailord1234 se  decidió a  convertir en funcional los periféricos de plástico de la radio en miniatura. Por ejemplo, el lector de floppy disk de imitacion de la carcasae  (los viejos discos que tenían los PC) lo ha convertido en la ranura de entrada para la tarjeta microSD, tal como se puede ver en la foto de apertura de la noticia .

Después ha introducido la Raspberry Pi Zero W dentro de la carcasa de la radio, ademas   la ha conectado a una pequeña pantalla LED que ha puesto en el monitor de plástico de la radio:

Raspberry Pi

 

Como nota curiosa   además no  quiso desaprovechar la radio AM/FM original, así que  conectó  a la Raspberry un DAC IS2  y  que a su vez conecto a  los pequeños altavoces incorporados , por lo  que  puede introducir música por el lector de discos del PC, en una micro SD, y escucharla por los altavoces.

Y aquí lo tenemos, una radio con forma de PC en miniatura convertida en un PC de verdad, capaz de ejecutar Doom. Pura genialidad, gracias a la magia de Raspberry Pi.

Raspberry PI PC

Medidor de Consumo Eléctrico CHINT + ESP8266 y Matrix Led MAX7912


En esta post  volveremos a un tema recurrente en este blog: la medición del consumo eléctrico de forma invasiva en un ambiente doméstico ,pero esta vez  usaremos  el  medidor CHINT DDS666,lo que técnicamente es un medidor residencial o residencial tradicional  pero con  una salida óptica  (también llamada   salida de pulsos)-

Precisamente por esa característica  de salida óptica, dado que en el mercado existe una amplia variedad de dispositivos con este tipo de salida   , esta propuesta que vamos a ver es perfectamente viable  también para  todo tipo de contadores con salida de pulso, como la mayoría de los contadores modernos  para uso personal  que se comercializan para fijar en carril DIN en el cuadro de distribución de c.a. cuya velocidad de flash de salida de prueba es de  500 impulsos por kWh ( es decir cada impulso corresponde a un 2W/H)

Lógicamente dado que la relación de pulsos/kwh  es diferente  según el contador , tendremos que ajustar el código de nuestro  programa para que el resultado sea exacto , pero insistimos: como esta relación es conocida  no es demasiado complejo ajustar   el código para el contador que elijamos

Advertencia: Se recomienda precaución ya que este tipos de proyectos implican riesgo eléctrico o electrocución ya que se utiliza un  equipo conectado de 220VCA -120 VCA por los que  se requieren conocimientos básicos  de electricidad , por favor esté documentado previamente en este sentido.

Conviene recordar que por seguridad cuando trabaje en cuadros de baja tensión siempre trabaje cortando la alimentación general y asegúrese después con un polímetro o un busca-polos que efectivamente no hay tensión c.a.

Obviamente si no se tiene experiencia en cableados de baja tensión o no esta seguro de la instalación , le  recomendamos encarecidamente  que este tipo de trabajos lo realice un instalador  o un electricista pues  manejar por error tensiones de ca puede ser peligroso  .

 

El circuito

 

El viejo modelo CHINT DSS66 permite la medición de energía activa o potencia activa en instalaciones domésticas. Es  un registrador ciclométrico, registrando medidas siempre positivas que evitan pérdidas fraudulentas de conexiones. Como se trata de un medidor invasivo que se requiere para abrir nuestro circuito eléctrico, se capturan los pulsos generados, Genera 3200 imp / kWh, que nos permitirá medir la potencia y el consumo de energía. El medidor tiene un optoacoplador para aislar la salida de pulso para realizar la medición. 

 Algunos medidores tienen una salida de pulso asociada con el consumo eléctrico, en el caso de este medidor específico, cada vez que se enciende el diodo led frontal, envía un pulso que activa un optoacoplador para la salida de pulsos terminales (11 +) (12 -) y el medidor integrado realiza la medición e integración de kilovatios / hora y enviando pulsos según el consumo siendo la relación de  este medidor  de 3200 imp “impulsos” / kwh,.

Este medidor tiene 2 características:

  • Es invasivo, es decir el circuito debe abrirse para colocar en serie el medidor entre la fuente y la carga
  • No tiene un protocolo de comunicación en serie, siendo la relación de salida de pulsos de 3200imp / kwh.

Gracias a la ayuda de un microcontrolador “Arduino, ESP8266 o ESP32”  podemos medir los watios consumidos. La elección precisamente de un  ESP8266 12E   o Arduino Nano Clone   , de hecho dependerá de si necesitamos enviar los datos  o no a un servidor en la nube  o simplemente queremos mostrar la información en un display 

Como contábamos al   principio de este post el modelo  DSS66 es algo anticuado por lo que es perfectamente viable usar   de contadores con salida de pulso de carril DIN , como la mayoría  que se comercializan para fijar en el cuadro de distribución de c.a. cuya velocidad de flash de salida de prueba es de  500 impulsos por kWh ( es decir cada impulso corresponde a un 2W/H)

 

 

Durante las primeras pruebas  se conectaron el GPIO directamente al medidor,dado que el medidor de mentón tiene su propio optoacoplador, pero por alguna razón cada vez que se genera un pulso, el módulo ESP8266 grababa 2 pulsos, algo que no sucedió con Arduino .

La solución para el problema es  aislar la salida del watímetro mediante la adición de un optoacoplador 4n25 y una fuente de alimentación de 5v :de esta manera sólo llegaría un pulso y ademas por seguridad se aislan los circuitos .

Para las primeras  pruebas   se propone usar un  ESP8266 y/o arduino y solo  haremos la medición de Active Power, por ejemplo  utilizando una  bombilla de 45W, para tener una carga fija que represente un “hogar”.

 

Lista de componentes

 

 

Código IDE de Arduino

 

El código para el módulo ESP8266 por ahora no tiene ninguna rutina de comunicación de envio  hacia  el Cloud, así que por el momento visualizaremos la potencia con un Matrix led x4 MAX7912 pero se puede usar un display de 7 segmentos  o  simplemente la salida serie

El medidor solo tiene una salida de pulso,por lo que  para realizar el cálculo del consumo eléctrico, capturamos a través de una interrupción en el GPIO 5 (D1), técnicamente utilizando el factor apropiado del medidor 3200imp / kWh = 3.2, se calcula la potencia activa instantánea.

Una diferencia horaria entre pulsos y basada en 1 hora = 3600 s. potencia = (3600000000.0 / (pulseTime – lastTime)) / 3.2

Este cálculo se realiza en la interrupción, solo cada vez que se registra un nuevo pulso.

Inicialmente, gracias a OpenEnegyMonitor, por la documentación, el cálculo se tomó de una de las versiones anteriores de su página

 

Este es el codigo usado para probar la funcionlidad 


#include <SPI.h>
#include <bitBangedSPI.h>
#include <MAX7219_Dot_Matrix.h>
const byte chips = 4;

unsigned long lastMoved = 0;
unsigned long MOVE_INTERVAL = 20; // mS
int messageOffset;
int counters=0;


// 12 chips (módulos de pantalla), SPI de hardware con carga en D10


MAX7219_Dot_Matrix display (chips, 2); // Chips / LOAD

char message [64] = “mensaje  a mostrar inicial ….“;
char myCharMessage[64];
String Message;

// Número de pulsos, utilizados para medir la energía.
long pulseCount = 0;


// Se usa para medir la potencia.
unsigned long pulseTime,lastTime,diffTime;
long timeout_reset=0;


//power and energy
double power elapsedkWh,watts;

// Número de pulsos por wh – encontrado o configurado en el medidor.

//1000 pulsos/kwh = 1 pulso por wh 3200 imp = 3.2

float ppwh = 3.2     ; 

int First_pulse = 0;
///***********************************************************************************


const byte interruptPin = 5; /// pin 5 D1


#include <Ticker.h>
Ticker flipper;


void flip() /// displayed
{

//bucle para almacenar en un array el mensaje de bienvenida

for (int i=0;i<64;i++)
{
message[i] = myCharMessage[i];
}
updateDisplay ();

}

 

 

Y este es el cuerpo del programa_

void setup ()
{
pinMode(interruptPin, INPUT_PULLUP);    //define el pin como entrada binaria
attachInterrupt(digitalPinToInterrupt(interruptPin), onPulse, FALLING);
Serial.begin(115200);
display.begin ();
} // end of setup


//
void onPulse()
{
if(First_pulse<2){ First_pulse++; }

else {
/// se usa para medir el tiempo entre pulsos.
lastTime = pulseTime;
pulseTime = micros();

//Contador de pulsos
pulseCount++;

//Calculo de la potencia
power_ = (3600000000.0 / (pulseTime – lastTime))/ppwh;

if (power_ < 1000) {
watts= power_;
Serial.print(“watts = “);
Serial.print(watts,4);
Serial.println(“W”);
}
}
}

 

 

void updateDisplay ()
{
display.sendSmooth (message, messageOffset);
// la próxima vez muestra un píxel en adelante

if (messageOffset++ >= (int) (strlen (message) * 8))
messageOffset = – chips * 8;
} // end of updateDisplay

void loop ()
{

// DEBUG SERIAL
 Serial.print(“watts = “);
 Serial.println(watts,4);

////las cadenas se deben cargar a la variable (Message) para que se visualicen en la matriz

//Message =”Power “+String(watts)+” W :)”;
Message =String(watts)+”W”;

//sacamos por consola la potencia
Serial.println(Message);

int L_Message = Message.length(); ///length String
String(Message).toCharArray(myCharMessage, L_Message+1);

/// String to char array  y scroll
flipper.attach(0.1, flip);

// restardo


delay(100);


} //fin del bucle

 

 

 

En el siguiente video  podemos ver el circuito en acción:

 

 

 

 

Mas informacion en  https://www.instructables.com/id/Electric-Consumption-Meter-CHINT-ESP8266-Matrix-Le/

Mejoras Movistar Home


La verdad es que es sorprendente la cantidad de mejoras que han incorporado a  lo largo estos primeros años de  la pantalla inteligente de Movistar  , pues de hecho en esta última actualización de Movistar Home  con la actualización 1.3 para AURA  de este mes de Septiembre sobre el dispositivo Movistar Home se han  avanzado en  bastantes aspectos muy llamativos .

Entre las  nuevas funcionalidades a destacar  son  la previsión meteorológica, ( algo que era muy demandado por los usuarios para alejarse de la simple  información de  la hora y la fecha  que hasta ahora nos estaba ofreciendo ),   la radio y las noticias, además de novedades en cuanto al diseño y la usabilidad de los servicios que ya estaban integrados en el dispositivo.

 

 

 

 

Asimismo  algo realmente útil pensando en nuestros mayores  o los mas pequeños  , Aura puede hacer llamadas a emergencias o a la policía cuando el usuario lo necesita a través del comando vocal OK Aura, llama a la policía”.

 

El tiempo

Una de la  mejoras más esperados  incluso   saltando el tema del control de las luminarias  mediante el puente Phlips Hue , ha sido históricamente   la visualización del clima   actual   que se hará  según el prefijo del número  telefónico accediendo a la información meteorológica de las próximas horas y en días posteriores con la petición “Ok Aura, ¿qué tiempo va a hacer mañana”

La información que nos da es  valor de temperatura actual ( en grados centigradpos  )  junto con   el pronóstico del tiempo para 3 días  usando como fuente Aemet. También  es configurable a poblaciones específicas.

 

Noticias

Ahora   podemos disfrutar  de  la actualización periódica (cada hora) de Momentos de Twitter publicados.

Cada mañana, Movistar Home muestra al usuario las noticias más destacadas de Twitter. Esta funcionalidad se mostrará de forma automática en las cards de inicio de Movistar Home que salen a modo carrusel en el dispositivo y van cambiando de noticias a lo largo del día. También se puede acceder a ella a través del comando de voz Ok Aura, dime las noticias”.

 

El Corte Inglés

El usuario ahora puede  hacer clic en un botón específico para visualizar un producto de la lista de deseos

 

Radio

Movistar Home muestra una lista de estaciones de radio y se podrá reproducir una estación específica mediante Aura, con la orden: “Ok Aura, pon la radio”.

En esta nueva actualización, el usuario podrá disponer de un amplio catálogo de emisoras de radio en directo gracias a la tecnología de la plataforma iVoox, implementada de forma exclusiva en Movistar Home. Cuando se accede a esta funcionalidad se puede hacer a través de la card de radio y seleccionando de manera táctil la emisora que se desee, o bien pidiendo a Aura que reproduzca la cadena que se quiera escuchar en el momento, como por ejemplo OK Aura, pon Canal Sur”.

Ivoox es un espacio en el que podemos publicar, escuchar, compartir y descargar audios. También es una comunidad de oyentes en la que se pueden recomendar o descubrir nuevos programas, audios o podcasts. …

Además próximamente incluirá también el acceso a un amplio catálogo de podcasts de iVoo( recuerde que  podcast es un programa de radio que se puede bajar desde Internet y escucharlo donde y cuando desee)

 

Otras mejoras 

Entre las mejoras  más   visibles son   al eliminación del proceso  de autenticación Mobile Connect en el onboarding   asociado al número del teléfono móvil del usarios  que se hacia en la primer instalación  y que por tanto ya no será necesario.

Mobile Connect es un servicio gratuito que te permite autenticarse o hacer login en servicios y aplicaciones online. Simplemente introduciendo el número de teléfono móvil , se puede  confirmar con el terminal   la identidad y acceder al servicio  sin preocuparse por las contraseñas!

Otras mejoras destacable es que  ahora se incluye una guía HTML (textos, imágenes) para resolución de errores por el usuario y se implementan filtros de funcionalidades que el equipo puede realizar por demarcación y/o por paquete comercial contratado.

Por cierto, también se ha incorporado en la zona de ajustes, barras de nivel de conectividad wifi del M. Home en función de la potencia recibida. Se refresca cada 5 segundos y se muestra un símbolo de admiración “!” cuando los valores son críticos para el uso del equipo. Los valores mostrados son:

  • 4 bars –  Max : > -30 dBm
  • 3 bars – Med high:  (-30 dBm, -67 dBM)
  • 2 bars – Med low: (-67 dBm, -70 dBM)
  • 1 bar – Min: <= -70 dBM

Por último , ahora se incluye una pestaña adicional  ( es decir a una nueva pantalla  que se accede deslizando a la derecha  hacia la izquierda desde la pantalla  principal  )  , esta vez con la  información adicional para las series Originales de Movistar

 

 

 

Algo notorio, por cierto que debemos tener cuidados es al  actualizarse a esta nueva versión,  el manos libres bluetooth ( el llamado handset) queda apagado. Para volverlo a encender y poder utilizar sólo se debe pulsar 3 segundos el botón de colgar hasta que se enciende el led en rojo.

 

 

Más información a través de la web.

Construcción de un pc casero


Muchos usuarios ven sus ordenadores como una caja negra : se aprieta un botón, suena un pitido , aparece el logon en la pantalla y tras introducir nuestra clave  ya podemos empezar a usarlo …

Hasta ahí nada anormal.. porque muchos nos se atreven a hurgar en su interior (ni siquiera para limpiarlo), dado que existe el riesgo de averiarlos , en parte  porque quizás desconocen la composición y funcionamiento de su sistema , pero en realidad  es mucho más simple de lo que pueda parecer , tantos es así  que un ordenador tiene pocos  misterios  y el montaje del mismo es bastante sencillo  pues en realidad, los propios fabricantes son los que se han encargado con el tiempo de facilitar el montaje de componentes, de manera que cometer errores es complicado (aunque siempre habrá quien los cometa, por supuesto).

Lo principal a la hora de comprar los componentes de un ordenador es saber qué necesitamos para que éste funcione

 Lo componentes  básicos son  los siguientes:

  • Un procesador(CPU, Central Processing Unit)
  • Una placa base que sea compatible con el procesador que queremos (MB, MotherBoard).
  • Memoria RAM compatible con la placa (RAM, Random Access Memory).
  • Un disco de arrnaque (HDD, Hard Disk Drive).
  • Una fuente de alimentación(PSU, Power Supply Unit).
  • Una caja o carcasa.

 

Placa base y procesador

Bajo el supuesto de reducir el precio al máximo se hace necesario seleccionar una placa tipo ALL in ONE que  a ser  posible incluya el procesador y la refrigeración del mismo  y al mismo tiempo que ofrezca el máximo rendimiento

La Asrock 90-MXB450-A0UAYZ   es    una placa Base  que  incluye ya soldado el   procesador  Intel J3455m, Soc (J3455) con su radiador incorporado  por lo que no  nos podremos  equivocar a la hora de elgir el micro o de colocarlo en la placa  pues ya  esta todo montado.

El montaje del procesador es la parte más delicada de todo el proceso de montar el ordenador. Es un componente que no admite errores al manejarlo y al instalarlo aunque sin embargo, su instalación es de lo más sencilla, pero si no se hace correctamente  estropearemos la placa y el propio procesador ,por lo que si compramos esta placa , el funcionamiento está asegurado ya que no hay ningún tipo de riesgo

Por lo demás esta placa cuenta con  2 ranuras  ddr3 (So-Dimm) ampliable  hasta  16gb, varios conectores de video  (Vga+Dvi+Hdmi) ,conexion de red  Gblan, 2 conectores sata3,   y 1 conectores  usb3. Esta  placa con micro  en realidad es un modelo muy económica (76€)   por  lo que  es compresibles que su uso está orientada a ofimática ,reproductor doméstico de bajo coste, media center , servidor de medios, servidor  de discos ,nas ,  etc .

Este procesador de 64 bits lleva instrucciones de los procesadores modernos pero con menos potencia, con lo que supera en ciertas tareas a procesadores de generaciones anteriores en teoría superiores.

 

Memoria

Tenemos que mirar que tipo de memoria acepta, en este caso si elegimosla placa comentada esta memoria es ddr3, asi que si ese módulo se compone de chips  de samsung es ddr3  y lo siguiente ser mirar el rango de frequencias que acepta la placa ( la memoria es ddr3 1600Mhz). 

Por ejemplo el modulo DDR3  Non-ECC CL11  modelo Kingston KVR16N11S8/4  que  ofrece una Memoria RAM de 4 GB  en un modulo  DIMM 240-pin, 1.5V con   frecuencia 1600 MHz    nos serviría (  se puede comprar por unos 23€)

 

Las memorias Kingston están testeadas y han sido diseñadas y comprobadas con arreglo a las normas JEDEC, que  permiten comprar memoria de acuerdo con las especificaciones.

Con un modulo de 4GB debería bastar  al menos para usos “normales”

 

Disco de arranque

Es fundamental proporcionar  un medio de arranque donde instalar el S.O, Tradicionalmente  estos medios se solía soportar el arranque  por discos duros ( e incluso por discos  extaibles )  , pero hoy en día un disco  sólido  SSD es diez veces más rápido que un disco duro convencional, lo cual le permite ofrecer un mayor rendimiento, potenciar la multitarea y agilizar el funcionamiento del sistema. 

Estos discos equipadss con controladores avanzados  permiten alcanzar velocidades de lectura y escritura de hasta 500 MB/s y 450 MB/s ,

Ademas  de ser más fiables y duraderas que un disco duro, al estar  compuestas de memoria Flash. No incluyen piezas móviles, por lo cual las probabilidades de avería son menores que los de una unidad mecánica. Por otra parte, la ausencia de estas piezas permite un funcionamiento más silencioso sin acumulación de temperatura. Su resistencia a sacudones y vibraciones las hace ideales para portátiles y otros dispositivos informáticos móviles.

Por lo tanto hoy en dia la opcion preferida , deberia de  ser un disco SSD por la rapidez en el arranque, la carga y la transferencia de archivos, la mayor fiabilidad  y resistencia que un disco duro asi como las diversas capacidades  disponibles hoy en dua , con suficiente espacio para aplicaciones o para sustituir un disco duro

Al contrario de lo que se piensa , estos discos han bajado espectacularmente de precio  pues por unos 22€ podemos comprar un disco SSD Kingston de 120GB

Fuente ATX

De un tiempo a esta parte se han popularizado las fuentes de alimentación modulares, caracterizadas por no llevar los cables de alimentación conectados permanentemente a la fuente; se conectan en sockets únicamente los que vayamos a utilizar, lo cual da un aspecto más ordenado al sistema ya que no quedan cables colgando sin usar  pero en última medida la opción de seleccionar una fuente deberia ir guiada por el número de componentes que vamos a conectar así como el nivel de ruido que estamos dispuestos a soportar

Las fuentes llevan varios tipos de conectores:

  • 20 (o 24 en PCIe) pines, a conectar en la placa madre (toma principal de corriente de la placa).
  • 4 u 8 pines, a conectar en la placa madre (toma de corriente del procesador).
  • Conectores SATA para el disco de arranque o una unidad extraible.

 

Por ejemplo una referencia de fuentes de calidad es la marca TACENS  , nos ofrece fuentes de 500W silenciosas  por unos 14€

En concreto el modelo Anima APII500  ispone de un ventilador Tacens ultrasilencioso de 12 cm y 14 dB con control de velocidad térmico inteligente y un sistema antivibraciones, que reduce notablemente el nivel sonoro de la fuente.  Su potente tecnología de rail único de 12 V la capacitan para un rendimiento extremadamete estable y potente. Ademas ofrece una gran adaptabilidad pues la fuente de alimentación  incluye unos cables largos para una mayor compatibilidad( 1 x 20+4 PIN / 1 x CPU 4 PIN/ 2 x SATA/ 2 x Molex 4 PIN/ 1 x FDD).

 

 

 

Montaje

 

Bien, una vez  que tenemos la placa con el procesador , la memoria , el disco SSD  y la fuente ya es hora de ponerse en marcha para probar el funcionamiento del conjunto

Los conectores de alimentación llevan todos posición, definida ésta sea por lengüetas de sujección, forma o tamaño. Si no entran en una posición, se deb asegurse de estar introduciéndose bién. No los fuerze porque si por mal uso se suelta uno de los cables puede generar un cortocircuito que  dañe el sistema de manera irreparable. También es aconsejable, cuando haya tormenta, apagar el ordenador y desconectarlo de la toma de la pared porque si cae un rayo en la casa, se freirá absolútamente el ordenador.

 

Empezaremos fijando la fuente ATX   a la caja con tornillos.  En este caso , como se puede ver en la imagen , la caja es una simple caja de plástico de zapatos reciclada para esta ocasión  precisamente buscando ocupar el mínimo espacio ( y también el mínimo  costo)

 

Lo siguiente es colocar el disco SSD  con unas pletinas  fijadas a la caja de plástico con tornillos y con su dos correspondientes cables de alimentación  y de SSATA.

Enseguida deberemos conectar el pulsador de encendido ( normalmente abierto ) . En esta ocasión se ha optado  por un pulsador  con tapa de seguridad  en parte por dar un toque distinto

Asimismo no nos debemos olvidar del led de power , que en este caso lo hemos colocado encima del propio pulsador 

 

 

 

Este es el resultado del montaje de la fuente , el SSD , el pulsador , el led de power  y dos cables rojo/negro de 12V y 5V que vamos a sacar al exterior para otros usos.

 

Los dos  cables rojo/negro  los  conectaremos  a la salida  de la fuente de 12V y 5V ( que mediremos con un polímetro ) de cualquier conector libre  de disco por ejemplo  .Una vez conectados esos cables , las  vamos a sacar al exterior para otros usos con dos  conectores  ( por ejemplo  del tipo RCA)  .En nuestro ejemplo, es relevante este conector para alimentar eléctricamente un l  monitor  reciclado  de un all in one ( como vimos en este post)

Ya solo nos queda conectar los cables de energía a la la placa madre ,el cables de buzzer , la salida SSATA al disco SSD ( y su correspondiente alimentacion) y al ser posible un conector USB extra que también fijaremos a la caja

Asimismo conectaremos  al menos un módulo de memoria 

 

Para que nos quepa en la caja y sobre todo sean accesibles las conexiones al exterior deberíamos mecanizar la caja de plástico  con un objeto cortante ( en la foto  el corte desde luego deja mucho que desear)

 

 

Pondremos la tapa  y ya finalmente ya tenemos el resultado  final

 

Si el disco no es de otro equipo necesitaremos  una unidad extraible que  sea de autoarranque   donde hayamos guardado la imagen de nuestro sistema operativo favorito

 

 

ARRANCAR  SISTEMA.

Ahora que ya hemos acabado el montaje de nuestro nuevo ordenador y, tras quedarnos unos segundos (o minutos, si quereis) mirándolo embobados, vamos a arrancarlo por primera vez. Antes que nada, volveremos a comprobar que las tomas de datos y de corriente de todos los componentes que las requieren son firmes y están en correcta posición.

Una vez hemos hecho estas comprobaciones, procederemos a conectar el monitor a la salida de la tarjeta gráfica, el teclado, el ratón y el cable de corriente a la toma de la fuente de alimentación, asegurándonos que el interruptor trasero está apagado. Terminado ésto, encenderemos el interruptor del monitor, el trasero de la fuente y comprobaremos que le llega corriente a la placa madre (si podemos; algunas placas llevan leds que se iluminan cuando a la placa le llega corriente y se apagan cuando no).

Y llega el momento tan ansiado después de tanto trabajo; con mano temblorosa, accionamos el interruptor delantero y:

  • No se mueve nada: Que no cunda el pánico!!! Chequead otra vez todas las conexiones, especialmente las relativas al conexionado de los interruptores frontales de la carcasa: es probale que estén mal conectados.
  • Se enciende pero la placa comienza a pitar: Ello indica que a la placa le falta algún elemento para funcionar correctamente, así que asegúrate que has insertado bien los módulos de memoria y la tarjeta gráfica.
  • Se enciende perfectamente: Sois unos genios!!!

Aún  quedaría el setup de la Bios de la placa pero en realidad no es necesario : Un mal comando en la Bios es capaz de desestabilizar todo el sistema.

Ha llegado el momento, ahora que todo funciona parece que correctamente, de volver a poner las cubiertas laterales al ordenador. No se las hemos puesto antes porque suelen producirse algunos problemas al arrancar la primera vez (incluso a mí, después de tantos ordenadores montados, me pasan) y tener que estar quitando y volviendo a poner las tapas laterales es bastante coñazo.

Ya tenemos nuestro nuevo ordenador montado y funcionando. !Y puede hacerlo  solo!!! Exige trabajo, pero nada que no se pueda hacer en una tarde tranquila. Espero que este minitutorial os haya gustado y servido de ayuda.

 

¿Cómo se puede probar la conectividad de Oracle?


Conectarse a una base de datos de Oracle mediante ODBC requiere dos cosas:

  • Un Nombre de servicio Oracle (conocido como un Alias en las versiones anteriores de Oracle 8.0) el cual define la ubicación (nombre del servidor y puerto) y la base de datos (instancia) para la conexión.
  • Un Origen de datos ODBC define simplemente el nombre del servicio debe utilizarse para la conexión ODBC.

Cada uno de estos elementos debe configurarse correctamente para que una conexión funcione  asi que cuando se producen problemas de conexión, es mejor probar cada parte de la conexión para determinar dónde reside el problema.

La utilidad TNSPING determina si se puede llegar con éxito al oyente de un servicio en una red de Oracle Net. Si puede conectarse con éxito de un cliente a un servidor (o de un servidor a otro servidor) utilizando la utilidad TNSPING, entonces muestra una estimación del tiempo de viaje de ida y vuelta (en milisegundos) que se necesita para alcanzar el servicio Oracle Net.

Si falla, entonces muestra un mensaje que describe el error que ocurrió. Esto le permite ver el error de red que está ocurriendo sin la sobrecarga de una conexión de base de datos.

Use el siguiente comando para probar la conectividad:

 tnsping net_service_name count

En el comando anterior, se utilizan los siguientes argumentos:

  • net_service_name debe existir en el archivo tnsnames.ora o en el servicio de nombres en uso, como NIS.
  • count determina cuántas veces el programa intenta alcanzar el servidor. Este argumento es opcional.

Si el nombre de servicio de red especificado es un nombre de base de datos, TNSPING intentará comunicarse con el oyente correspondiente.En realidad no determina si la base de datos se está ejecutando. Utilice SQL * Plus para intentar una conexión a la base de datos.

 

Probar el nombre del servicio Oracle

La utilidad TNSPING puede utilizarse para probar un nombre de servicio de Oracle. Uso:

1. Abra un símbolo del sistema (haga clic en Inicio, haga clic en Ejecutar, escriba cmd y, a continuación, haga clic en Aceptar).

2. Escriba tnsping < nombre servicio > (para Oracle 7.3 o Oracle 8i y versiones posteriores) o tnsping80 < nombre servicio > (para Oracle 8.0), y, a continuación, presione ENTRAR.

La utilidad de Ping TNS producirá un “Aceptar” o un mensaje de “Error de conexión”. En el caso de un “Error al conectar” del mensaje, una causa o motivo se incluirá (por ejemplo, “12545 de TNS: conexión fallado porque el objeto o el host de destino no existe”). Si falla el comando Ping TNS, hay un problema con el nombre del servicio Oracle. La configuración para el nombre del servicio debe comprobarse mediante el Ayudante Net de Oracle o el Asistente para configuración de red. DBA Oracle que necesite proporcionar la información de conexión correcta.

 

Probar el origen de datos ODBC

La utilidad de prueba ODBC de Oracle puede utilizarse para probar un origen de datos ODBC. Uso:

  1. Haga clic en Inicio, seleccione programas y, a continuación, seleccione la carpeta de programa de Oracle (el nombre de esta carpeta puede variar).
  2. En versiones anteriores de Oracle, el programa de prueba ODBC de Oracle puede mostrarse en la carpeta de programa de Oracle. Si es así, haga clic en él. Si no es así, seleccione la carpeta de Administración de la red y, a continuación, haga clic en Prueba ODBC de Oracle. Aparecerá una ventana de prueba ODBC de Oracle de 32 bits .
  3. Haga clic en el botón Conectar . Aparecerá el cuadro de diálogo Seleccionar origen de datos.
  4. Haga clic en la ficha Machine Data Source y, a continuación, seleccione el origen de datos que desea probar y haga clic en Aceptar.
  5. En el cuadro de inicio de sesión, escriba el Nombre de usuario y la contraseña en los cuadros apropiados y, a continuación, haga clic en Aceptar.

  6. Tras pulsar en Aceptar, el botón Conectar está disponible y se deben habilitar los botones Desconectar, Todas las tablas, Las tablas de usuarioy Execute . De lo contrario, se producirá un error.
  7. Si el Ping TNS tuvo éxito, pero se produce un error en la prueba de ODBC, hay un problema con el origen de datos ODBC o con el inicio de sesión y la contraseña proporcionados para realizar la conexión. Compruebe que ambos son correctos y vuelva a intentarlo.