Archive

Posts Tagged ‘hardware’

¿Cómo se fabrican los circuitos impresos?

November 2nd, 2011 Comments off

Viene bien un desempolve por estas fechas y que mejor que con una serie de videos explicativos sobre la fabricación de circuitos impresos o PCB.

El fabricante es Euro circuits y presenta los pasos que se siguen en su fábrica para procesar un lote. La verdad es que resulta muy interesante conocer con este nivel de detalle el proceso.

Enlace: http://www.eurocircuits.com/index.php/making-a-pcb-eductional-movies/

¿Son los hacks del Kinect buenas ideas?

March 17th, 2011 Comments off


Recuerdan la pelea entre Microsoft y Adafruit? Bueno, han salido una cantidad increíble de modificaciones y proyectos interesantes usando este dispositivo, haciendo cambiar de parecer a MS en el camino. Pero sin lugar a dudas, uno de los mejores es el NAVI (Ayuda de navegacion para débiles visuales) desarrollado en la Universidad de Konstanz.

Usando un Kinect montado en un casco, un arduino y tres motores en una especie de faja, fueron capaces de crear un sistema que ayuda a un invidente a caminar sorteando obstáculos.

Si bien la manera en que resuelven la montura es poco elegante, es muy práctica al igual que el funcionamiento con los motores.

Un sistema muy barato que puede hacer mucho por las personas, genial!

Pantallas táctiles caseras

March 17th, 2011 Comments off

Hace un tiempo encontré una manera de hacer un dispositivo táctil, muy de moda con las iCosas, usando acrílico y varios emisores/receptores infrarojos. Me pareció muy buena la idea pero hasta ahí.

Ahora me encuentro con el mismo concepto pero un tanto más interesante: sin acrílico :)

Si bien ambas ideas funcionan, ésta última permite tocar multiples partes con algunas restricciones: evitar la “sombra”. Cuando menos es divertido verlo.

Recuperación de emergencia en un Arduino

December 22nd, 2010 Comments off

Desde hace un par de dias que me mantengo entretenido con esta placa, ya verán cuando acabe.  Pero algo curioso que me pasó:

Mientras trataba de encontrar un erro r, usé el siempre buen método de imprimir variables por serie

Serial.println(variableX);

Pero me salió más caro el remedio que la enfermedad… una vez compilado y subido ese código, la línea de envío de datos (Tx) no se apagaba… ¡no podía subir más programas al arduíno!

Genial. El botón de reinicio no responde, la placa sigue atorada :’(
Buscando en foros me encontré la solución:

  • Desconectar la placa
  • Presionar el botón de reinicio y mantenerlo así
  • Conectar el Arduino al USB
  • Justo cuando se presiona el botón de “subir” en el IDE, hay que soltar el botón de reinicio de la placa.

Hay que tomar en consideración que el nuevo código que se sube no debe ser el mismo con el que se atoró ;)

¡Listo! Maravillosa solución para el Arduino. Por cierto, la placa era un Mega 2560, por si les sirve el dato.

Una CNC muy peculiar

November 12th, 2010 Comments off

Hace tiempo que no escribo, la vida en el mundo real a veces no deja demasiado espacio para dedicarle a un blog :P

Hace unos dias me encontré con que un tipo se le ocurrió usar unidades de disco (leáse CD o DVD) como ejes en una máquina de control numérico (CNC). Les muestro el video:

Muy intersante, ¿no?

Pues me dio la idea de hacer uno de estos, pero usando el Arduino que ya les he mostrado. Esta entrada es el preámbulo para la documentación de ese esfuerzo. Ya tengo un CD-Rom desbaratado y estoy a punto de conectar (espero un rato libre) el motor a pasos que tiene a un controlador y hacer pruebas.

Estén atentos :)

Referencias

Sitio original: https://sites.google.com/site/0miker0/

Un robot que aprende a voltear crepas

July 28th, 2010 Comments off

Esto si que es impresionante, debo decir que aún no me sale lo que este brazo robot ha aprendido.. vean el video, es muy divertido :)

Referencias

http://kormushev.com/

Ejemplos de máquinas de control numérico (CNC)

April 12th, 2010 Comments off

Siempre me han llamado la atención las cosas que usan computadoras para control/movimiento, y creo que el mejor ejemplo son las máquinas CNCs. Debo confesar que me encantaría hacer una de ellas en casa, hasta entonces les dejo este video que me encontré en la red:

Recursios:

Que es una CNC?

Crónica de una conexión por ethernet a dispositivos desconocidos y zeroconf

November 6th, 2009 Comments off

cajita-microeHace un par de dias me entregaron una “cajita” que sirve para alinear y programar ciertos sensores (imagen del lado derecho). Sin manual, habia que conectarse usando interfaz web para introducir los parámetros y ver que tal estaba trabajando el sensor. Esto me ha traído una sorpresa, les cuento la historia :)

Observaciones

  • No hay manual físico disponible ni lo encontré en la página del fabricante
  • La caja tiene pegada la dirección MAC

Análisis

  • Debe haber una forma de hablar con la caja usando la MAC
  • Debe haber una forma de hablar con la caja usando un servidor DHCP

Hipótesis 1

  • Se le puede llegar a la caja haciendo ping masivo y usar ARP para encontrar la dirección MAC

Experimento 1

  • En línea de comandos, buscar:
    • $fping -c 1 -g 192.168.1.0/24
    • $arp -n | grep "XX:XX:XX:XX:XX"

Resultado 1

  • Negativo, el experimento no dio resultados satisfactorios.

Hipótesis 2

  • Instalar un servidor DHCP para comunicarse con la cajita

Experimento 2

  • Usando una computadora existente, instalar el servidor DHCP.

Resultado 2

  • Descartado, mucho trabajo y hay poco tiempo.

Experimento 3

  • Usando un router con servidor DHCP integrado, conectar la cajita y una laptop

Resultado 3

  • La portátil no se conecta con la cajita ni con el router.

Nuevo Análisis

  • La portátil debe estar dañada, intentar de nuevo

Experimento 4

  • Conectar el router, la cajita y una computadora de escritorio
  • Usar un programa del fabricante que busca automáticamente las cajitas en la red (lo mismo que hace el experimento 1)

Resultado 4

  • Semi-satisfactorio, se conecta con la cajita, pero ocupa Java para funcionar la aplicación web

Experimento 5

  • Instalar java y probar de nuevo
  • sudo apt-get install sun-java6-jre sun-java6-plugin

Resultado

Satisfactorio, se conecta y funciona al 100%

Fue algo divertido, interesante y desesperante a la vez, pero va. Tratando de dar una solución más cómoda, un compañero de trabajo conectó una laptop a la cajita usando un cable de red cruzado… mi conocimiento de redes, aunque no es mucho, me decía que no se podian conectar así, que ocupaban ser configuradas las direcciones IP.. vaya sorpresa cuando vimos que si se conectaban y no habia ningún problema.

Este resultado me obligo a seguir estudiando un poquito y encontrarme una forma de conectar “redes para pendejos“, según otro compañero. Se usa algo llamado Zero Configuration Networking o Zeroconf, la cual, a grandes razgos, permite autoconfigurarse una direccion IP clase B del tipo 168.254.x.x y poder entablar conversaciones con equipos igualmente perdidos y sin configuración. Esto no permite conectarse a internet ni otras cosas complejas, pero si hacen fácil la vida para el usuario pequeño sin experiencia.

El operativo Windows lo llama Automatic Private IP Addressing (APIPA) y una nada agradable sorpresa es que Linux no lo soporta, vaya, tendre que seguir con otra solución.

Linux si soporta Zeroconf! ver Avahi (en los enlaces)

Es todo en esta entrega, nos leemos otro dia!

Enlaces

What is Automatic Private IP Addressing? http://searchexchange.techtarget.com/sDefinition/0,,sid43_gci788760,00.html
Zeroconf en Wikipedia http://en.wikipedia.org/wiki/Zeroconf
Zeroconf.org http://www.zeroconf.org/
How to use automatic TCP/IP addressing without a DHCP server http://support.microsoft.com/kb/220874
Zeroconf en Ubuntu https://help.ubuntu.com/community/HowToZeroconf
Avahi, Zeroconf en linux http://avahi.org/

Niveles de RAID

October 30th, 2009 Comments off

Esta información la vi originalmente en otra página, no recuerdo cual, pero la pongo aqui como referencia.

La elección de los diferentes niveles de RAID va a depender de las necesidades del usuario en lo que respecta a factores como seguridad, velocidad, capacidad, coste, etc.Cada nivel de RAID ofrece una combinación específica de tolerancia a fallos (redundancia), rendimiento y coste, diseñadas para satisfacer las diferentes necesidades de almacenamiento. La mayoría de los niveles RAID pueden satisfacer de manera efectiva sólo uno o dos de estos criterios. No hay un nivel de RAID mejor que otro; cada uno es apropiado para determinadas aplicaciones y entornos informáticos. De hecho, resulta frecuente el uso de varios niveles RAID para distintas aplicaciones del mismo servidor. Oficialmente existen siete niveles diferentes de RAID (0-6), definidos y aprobados por el el RAID Advisory Board (RAB). Luego existen las posibles combinaciones de estos niveles (10, 50, …). Los niveles RAID 0, 1, 0+1 y 5 son los más populares.

RAID 0: Disk Striping “La más alta transferencia, pero sin tolerancia a fallos”.

También conocido como “separación ó fraccionamiento/ Striping“. Los datos se desglosan en pequeños segmentos y se distribuyen entre varias unidades. Este nivel de “array” o matriz no ofrece tolerancia al fallo. Al no existir redundancia, RAID 0 no ofrece ninguna protección de los datos. El fallo de cualquier disco de la matriz tendría como resultado la pérdida de los datos y sería necesario restaurarlos desde una copia de seguridad. Por lo tanto, RAID 0 no se ajusta realmente al acrónimo RAID. Consiste en una serie de unidades de disco conectadas en paralelo que permiten una transferencia simultánea de datos a todos ellos, con lo que se obtiene una gran velocidad en las operaciones de lectura y escritura. La velocidad de transferencia de datos aumenta en relación al número de discos que forman el conjunto. Esto representa una gran ventaja en operaciones secuenciales con ficheros de gran tamaño. Por lo tanto, este array es aconsejable en aplicaciones de tratamiento de imágenes, audio, video o CAD/CAM, es decir, es una buena solución para cualquier aplicación que necesite un almacenamiento a gran velocidad pero que no requiera tolerancia a fallos.

Se necesita un mínimo de dos unidades de disco para implementar una solución RAID 0.

RAID 1: Mirroring “Redundancia. Más rápido que un disco y más seguro”

También llamado “Mirroring” o “Duplicación” (Creación de discos en espejo). Se basa en la utilización de discos adicionales sobre los que se realiza una copia en todo momento de los datos que se están modificando. RAID 1 ofrece una excelente disponibilidad de los datos mediante la redundancia total de los mismos. Para ello, se duplican todos los datos de una unidad o matriz en otra. De esta manera se asegura la integridad de los datos y la tolerancia al fallo, pues en caso de avería, la controladora sigue trabajando con los discos no dañados sin detener el sistema. Los datos se pueden leer desde la unidad o matriz duplicada sin que se produzcan interrupciones. RAID 1 es una alternativa costosa para los grandes sistemas, ya que las unidades se deben añadir en pares para aumentar la capacidad de almacenamiento. Sin embargo, RAID 1 es una buena solución para las aplicaciones que requieren redundancia cuando hay sólo dos unidades disponibles. Los servidores de archivos pequeños son un buen ejemplo.

Se necesita un mínimo de dos unidades para implementar una solución RAID 1.

RAID 0+1/ RAID 0/1 ó RAID 10: “Ambos mundos”

Combinación de los arrays anteriores que proporciona velocidad y tolerancia al fallo simultáneamente. El nivel de RAID 0+1 fracciona los datos para mejorar el rendimiento, pero también utiliza un conjunto de discos duplicados para conseguir redundancia de datos. Al ser una variedad de RAID híbrida, RAID 0+1 combina las ventajas de rendimiento de RAID 0 con la redundancia que aporta RAID 1. Sin embargo, la principal desventaja es que requiere un mínimo de cuatro unidades y sólo dos de ellas se utilizan para el almacenamiento de datos. Las unidades se deben añadir en pares cuando se aumenta la capacidad, lo que multiplica por dos los costes de almacenamiento. El RAID 0+1 tiene un rendimiento similar al RAID 0 y puede tolerar el fallo de varias unidades de disco. Una configuración RAID 0+1 utiliza un número par de discos (4, 6, 8) creando dos bloques. Cada bloque es una copia exacta del otro, de ahí RAID 1, y dentro de cada bloque la escritura de datos se realiza en modo de bloques alternos, el sistema RAID 0. RAID 0+1 es una excelente solución para cualquier uso que requiera gran rendimiento y tolerancia a fallos, pero no una gran capacidad. Se utiliza normalmente en entornos como servidores de aplicaciones, que permiten a los usuarios acceder a una aplicación en el servidor y almacenar datos en sus discos duros locales, o como los servidores web, que permiten a los usuarios entrar en el sistema para localizar y consultar información.

Este nivel de RAID es el más rápido, el más seguro, pero por contra el más costoso de implementar.

RAID 2: “Acceso paralelo con discos especializados. Redundancia a través del código Hamming”

El RAID nivel 2 adapta la técnica comúnmente usada para detectar y corregir errores en memorias de estado sólido. En un RAID de nivel 2, el código ECC (Error Correction Code) se intercala a través de varios discos a nivel de bit. El método empleado es el Hamming. Puesto que el código Hamming se usa tanto para detección como para corrección de errores (Error Detection and Correction), RAID 2 no hace uso completo de las amplias capacidades de detección de errores contenidas en los discos. Las propiedades del código Hamming también restringen las configuraciones posibles de matrices para RAID 2, particularmente el cálculo de paridad de los discos. Por lo tanto, RAID 2 no ha sido apenas implementado en productos comerciales, lo que también es debido a que requiere características especiales en los discos y no usa discos estándares.

Debido a que es esencialmente una tecnología de acceso paralelo, RAID 2 está más indicado para aplicaciones que requieran una alta tasa de transferencia y menos conveniente para aquellas otras que requieran una alta tasa de demanda I/O.

RAID 3: Acceso síncrono con un disco dedicado a paridad”

Dedica un único disco al almacenamiento de información de paridad. La información de ECC (Error Checking and Correction) se usa para detectar errores. La recuperación de datos se consigue calculando el O exclusivo (XOR) de la información registrada en los otros discos. La operación I/O accede a todos los discos al mismo tiempo, por lo cual el RAID 3 es mejor para sistemas de un sólo usuario con aplicaciones que contengan grandes registros.
RAID 3 ofrece altas tasas de transferencia, alta fiabilidad y alta disponibilidad, a un coste intrínsicamente inferior que un Mirroring (RAID 1). Sin embargo, su rendimiento de transacción es pobre porque todos los discos del conjunto operan al unísono.

Se necesita un mínimo de tres unidades para implementar una solución RAID 3.

RAID 4: Acceso Independiente con un disco dedicado a paridad.”

Basa su tolerancia al fallo en la utilización de un disco dedicado a guardar la información de paridad calculada a partir de los datos guardados en los otros discos. En caso de avería de cualquiera de las unidades de disco, la información se puede reconstruir en tiempo real mediante la realización de una operación lógica de O exclusivo. Debido a su organización interna, este RAID es especialmente indicado para el almacenamiento de ficheros de gran tamaño, lo cual lo hace ideal para aplicaciones gráficas donde se requiera, además, fiabilidad de los datos.

Se necesita un mínimo de tres unidades para implementar una solución RAID 4.
La ventaja con el RAID 3 está en que se puede acceder a los discos de forma individual.

RAID 5: “Acceso independiente con paridad distribuida.”

Este array ofrece tolerancia al fallo, pero además, optimiza la capacidad del sistema permitiendo una utilización de hasta el 80% de la capacidad del conjunto de discos. Esto lo consigue mediante el cálculo de información de paridad y su almacenamiento alternativo por bloques en todos los discos del conjunto. La información del usuario se graba por bloques y de forma alternativa en todos ellos. De esta manera, si cualquiera de las unidades de disco falla, se puede recuperar la información en tiempo real, sobre la marcha, mediante una simple operación de lógica de O exclusivo, sin que el servidor deje de funcionar.

Así pues, para evitar el problema de cuello de botella que plantea el RAID 4 con el disco de comprobación, el RAID 5 no asigna un disco específico a esta misión sino que asigna un bloque alternativo de cada disco a esta misión de escritura. Al distribuir la función de comprobación entre todos los discos, se disminuye el cuello de botella y con una cantidad suficiente de discos puede llegar a eliminarse completamente, proporcionando una velocidad equivalente a un RAID 0.

RAID 5 es el nivel de RAID más eficaz y el de uso preferente para las aplicaciones de servidor básicas para la empresa. Comparado con otros niveles RAID con tolerancia a fallos, RAID 5 ofrece la mejor relación rendimiento-coste en un entorno con varias unidades. Gracias a la combinación del fraccionamiento de datos y la paridad como método para recuperar los datos en caso de fallo, constituye una solución ideal para los entornos de servidores en los que gran parte del E/S es aleatoria, la protección y disponibilidad de los datos es fundamental y el coste es un factor importante. Este nivel de array es especialmente indicado para trabajar con sistemas operativos multiusuarios.

Se necesita un mínimo de tres unidades para implementar una solución RAID 5.

Los niveles 4 y 5 de RAID pueden utilizarse si se disponen de tres o más unidades de disco en la configuración, aunque su resultado óptimo de capacidad se obtiene con siete o más unidades. RAID 5 es la solución más económica por megabyte, que ofrece la mejor relación de precio, rendimiento y disponibilidad para la mayoría de los servidores.

RAID 6: “Acceso independiente con doble paridad”

Similar al RAID 5, pero incluye un segundo esquema de paridad distribuido por los distintos discos y por tanto ofrece tolerancia extremadamente alta a los fallos y a las caídas de disco, ofreciendo dos niveles de redundancia. Hay pocos ejemplos comerciales en la actualidad, ya que su coste de implementación es mayor al de otros niveles RAID, ya que las controladoras requeridas que soporten esta doble paridad son más complejas y caras que las de otros niveles RAID. Así pues, comercialmente no se implementa.

En resumen: si quieres velocidad, usa RAID 0; si quieres integridad de datos, usa RAID 1; si quieres las dos cosas, usa RAID 5.

Categories: Manuscriptus digitalis Tags: