Cómo probar una tira de leds WS2801


Es muy frustrante adquirir  una costosa tira de leds  WS2801 ( ni importa que sea SMD o en formato “luces de navidad”) ,  adherirla y fijarla  con mucho esmero a nuestro TV o monitor ,siguiendo  cuidadosamente los muchísimos tutoriales que hay en Internet (por ejemplo para simular  con esta  el famoso  sistema ambilight ),   y al final no conseguimos obtener nada  quizás porque nuestro hardware esta mal conectado (o tenemos algo estropeado)  o bien no hemos  configurado el sw ,o una mezcla de ambas cosas.

Antes de abandonar veamos  con la ayuda de una placa Arduino Uno conectada a nuestro PC  , vamos  a ver algunas pautas que seguro  nos resuelven el misterio:

 

En primer lugar usaremos una  placa Arduino UNO , para lo cual usaremos sólo  tres cables para  conectar a uno de los  extremos de la tira de leds a Arduino . Las conexiones estandarizadas que haremos sea cual sea la modalidad de la tira de leds son las siguientes:

  • CK de la tira WS2801  al pin GPIO 13(reloj del SPI)
  • SD de la tira WS2801  al pin GPIO11 (SPI MOSI).
  • GND de la tira WS2801 al GND de Arduino
  • +5v   de la tira WS2801  a  una fuente de alimentación aparte de mínimo 2Amp ,5VDC

En algunas tiras formato “luces de navidad” el hilo azul es  GND , el . Verde  es CK  y amarillo es SD ,y el cable rojo es +5V ,  pero esto no es norma porque las tiras SMD   suelen tener un cable rojo para CK, otro verde para SD , el negro para GND  y un violeta para +5V  , lo cual como vemos no sigue para nada la pauta anterior

Aunque no es necesario  también se puede utilizar un Arduino Mega, conectando  reloj del SPI al pin 52   ,  conectando SD al   pin 51 SPI MOSI  y por supuesto las masas.

Es importante destacar que los cables extra rojo y azul son para conectar  5V DC   de al menos 2 Amp ( en función del numero de leds que vayamos a conectar)  lo cual no deberíamos extraer de la placa Arduino sino de una fuente auxiliar DC de 5V    no  olvidando de unir ambas masas ( la de Arduino y de la fuente externa).

En el siguiente esquema podemos ver claramente este montaje.
led_pixels_wiring-diagram.png

Para probar   la tira  de leds    necesitamos si aun no lo tenemos dos herramientas :

  • El IDE de Arduino :Si no lo tiene ya instalado , descargar el Arduino IDE (entorno de desarrollo integrado) de la Web de Arduino. Seleccione la versión del software para su tipo de computadora: Windows, Mac o Linux   Es un poco diferente para cada uno de los tres sistemas operativos.
  • El IDE de Processing:A continuación, descargue el IDE de processing del sitio de procesamiento.Descomprima el fichero y cópielo al  directorio  c:\archivos de programa\ . Es importante que descargue la versión processing 2.2 pues la  versión 3.0  con el codigo Adalight  tendra  errores con él.
El IDE de Arduino y Processing  son  muy similares pero son dos programa muy distintos para diferentes funciones como vamos a  ver

Descargar Adalight ZIP

Por último, visite la página Adalight en Github y descargue el archivo ZIP. El botón de descarga está cerca de la parte superior izquierda de la página:

Después de descomprimir el archivo ZIP, necesitará mover algunos archivos en su lugar.

Si ha ejecutado el Arduino o el IDE de processing  debería haber  dos  correspondientes carpetas llamadas “Arduino” y de “Procesing” dentro de su carpeta personal de “Documents” (o “Mis documentos” en Windows). En ese caso, mover el contenido de la Arduino y procesando carpetas desde el archivo ZIP de Adalight en las carpetas correspondientes de documentos.

Si las carpetas de Arduino y Processing todavía no existen en el sistema,  puede copiar estas desde el archivo ZIP de Adalight a la carpeta de documentos.

Los otros archivos y carpetas en el archivo ZIP pueden ser ignoradas ya  que son para usuarios avanzados y no son esenciales para su uso.

Salga del Arduino y Processing  si se están ejecutando  pues las carpetas recién instaladas no serán visibles hasta la siguiente vez que inicien  estos programas.

Programar Arduino

Para  probar la tira de leds  en caso de que no lo tenga instalado deberá instalar  el IDE de Arduino.Si no lo tiene instalado el IDE de Arduino conecte la placa Arduino al ordenador con un cable USB A-B. Cuando conecta por primera vez, Windows los usuarios le pedirá que para instalar a un controlador.

Iniciar el IDE de Arduino. Después de un momento, debería ver una ventana azul y blanca simple con algunos botones.

En el menú archivo , seleccione Sketchbook,   y elegir  LEDstream. .

En el menú herramientas , seleccione la  placa  luego Arduino Uno (o tipo de cualquier placa Arduino que está usando).

En el menú herramientas , seleccione el Puerto Serial y luego el puerto correspondiente a su placa de Arduino.

Haga clic en el botón de subir cerca de la parte superior izquierda de la ventana:

ledsstreamarduino

Después de que el código sea cargado, si los LEDs están conectados correctamente conectados y la fuente de alimentación está conectada, todos  los LEDs deben encenderse en una secuencia  primero todo todos en flash rojo, luego  verde y después en azul aproximadamente un segundo cada uno, y luego se apagan todos. Se trata de un diagnóstico que indica el LED Arduino están trabajando correctamente y ahora están en espera de datos de que se  envíen desde nuestro ordenador con otro sw.

Gracias    a que el Arduino almacena el programa en memoria no volátil, sólo necesita hacer este proceso de carga una vez, no cada vez que desee utilizar Adalight.

Si los LED no parpadean, asegúrese de que el cableado coincide con la página anterior, y que la fuente de alimentación está conectada.
Si persiste el error  deberíamos probar la salida digital de los  pines 11 y 13 por si estuviesen defectuosas, para lo cual conecte dos leds normales  entre GND  y los pines 11 y 13  y cargue en Arduino el siguiente código de ejemplo:
void setup(){
pinMode(13, OUTPUT);
pinMode(11, OUTPUT);//10 ok 11 ok
}void loop(){digitalWrite(13,HIGH);
digitalWrite(11,LOW);delay(1000);

digitalWrite(13,LOW);
digitalWrite(11,HIGH);

delay(1000);

Al subir el código anterior en nuestro Arduino ,  ya deberían parpadear ambos leds , lo cual sera un claro indicio que la placa Arduino esta bien:

led13

 

Una vez hayamos probado que la placa Arduino esta correcta  con el simple test anterior,  lo que nos queda es volver a cargar el sketch de  probar LedStream cargado inicialmente pues  hay evidencias  de que algún (o algunos) modulo(s)  mal que esta bloqueando el resto de módulos

En el caso de que sólo los primeros pocos LEDs respondan  y ,el resto permanece apagado o parpadea aleatoriamente o incluso no se encienda ninguno, tendrá que estudiar cual de  los módulos esta mal  .

Dentro de cada píxel  hay  una pequeña placa de circuito con el CI WS2801   el led RGB   y algunos componentes adicionales . Si no funciona  el primer píxel apretar las conexiones  donde el cable de cinta se une a la placa  e intente comprobar la conexión ,Si no  funcionase , puede recortar  ese modulo , conectando las conexiones al siguiente  píxel   y seguir la  dirección de conexión ( en el montaje SMD  llevan una flecha  que indica claramente el orden de conexiones)

ws2801

Si consigue que algunos  leds  funcionen pero aún así  algún  led posterior  parpadea ,y fallan después todos los siguientes en la cadena ,también  es muy  posible que ademas  haya algún  otro chip defectuoso  más ,  así que el proceso  anterior lo  deberá repetir  cortando el  led asignado a ese  IC defectuoso y restituyendo las conexiones soldando cablecillos entre el modulo anterior y el siguiente .

img_20170219_222107

Obviamente este proceso tendrá  que repetirlo  hasta que  el test de leds ejecutado desde el  sketch de ledstream haga que se enciendan completamente todos los ledss de un color en las tres secuencias.

Ejecutar el Software de Processing

Este paso debe realizarlo solo cuando el  test de ledStram muestre la secuencia de arranque de rojo, verde y azul apagándose todos después.

Inicie  el programa Processing ejecutando el archivo “C:\Program Files\processing-2.2.1-windows64\processing-2.2.1\processing.exe”. Después de un momento, debería ver una ventana simple de blanca y gris  muy similar al IDE de Arduino.

En el menú archivo , seleccione carpeta de bocetos,  y seleccionar el último primero: Colorswirl.

 

color
Es muy importante anotar el numero de leds( en el ejemplo 88)   tras el primer import:

import processing.serial.*;int N_LEDS = 88; // Max of 65536

Haga clic en el botón Ejecutar cerca de la parte superior izquierda de la ventana: si el Arduino esta arrancado con el sketch (LedStram ) y por supuesto conectada la tira de leds a este  y alimentada con la tensión de 5V  se  debería ver un arco iris colorido de animación sobre los LED.

Si  no pasa nada , entonces usted tendrá que editar el código alrededor de la línea 26, buscando esta declaración:

myPort = serie new (this, Serial.list() [0], 115200);

Necesitaremos cambiar el código  que abre la conexión serie con el Arduino. Una ruta es a través de ensayo y error: tratar  Serial.list() [1], entonces Serial.list() [2]y así sucesivamente, volver a arrancar el programa cada vez para ver si funciona.

Para un enfoque más científico, añadir una nueva línea de código antes de ejecutar el sketch:

println(Serial.list());

Cuando se ejecuta, muestra una lista de todos los puertos serie o dispositivos. Si sabe que dispositivo o puerto COM corresponde al Arduino, puede cambiar la línea original para incluir estos datos.

Por ejemplo, ahora se puede leer:

myPort = serie new (this, “COM6”, 115200);

Obviamente esto será diferente en cada sistema, por lo que dependerá de cada situación..

Si aun tiene dudas ,otra manera de localizar el nombre del puerto, es en el IDE de Arduino, pues  el puerto seleccionado se ve  en el menú Tools→Serial Port antes de programar el chip.

Una vez conseguido este efecto sobre los leds , este resultado es sinónimo que absolutamente todos los leds son direccionables por lo que ya puede usar su conjunto de tiras de leds  para cualquier aplicación con la certeza de que ya  le debería funcionar.
Si planea organizar los LEDs de manera similar a los ejemplos  entonces tendrá nada más que cambiar  el software. Si utiliza un diseño diferente, necesitará realizar algunos ajustes en el código  para identificar su distribución concreta

Como nota ultima :Antes de montar los LEDs detrás del monitor o TV , nunca se olvide de ejecutar el software con los LEDs sueltos en su escritorio para confirmar que todo funciona. !Esto ahorrará tiempo y angustia en el raro evento que un led vuelva a estar mal  tenga que sustituirlo!.

img_20170219_225945

 

Anuncios

Acceso web de Sensores Analogicos para Raspberry Pi (parte 2)


En un post anterior veíamos algunas de las posibilidades de  conexión de sensores digitales  a nuestra Raspberry Pi como puede ser añadir sensores I2C con el CI DS1820 , sensores de Co2 basados en el Mq4, sensores genéricos,sensores de de presión con el BMP180,sensores de temperatura basados en el TMP102, sensores de proximidad basados en el VCNL 4000o  o los sensores de luminosidad basados en el  TSL2561.

Como todos sabemos  existen también una cantidad muy alta de sensores cuya salida no es digital , lo cual en principio no se podrian conectar directamente a nuestra Raspberry, pero esto no es exactamente asi, porque si podemos conectarlos por medio de convertidores A/D y D/A  y otros circuitos como vamos a ver  (y empezamos a  ver en un post  posterior ).

Retomamos nuevamente el mundo analógico y la Raspberry Pi  con mas ejemplos :

 

MCP23017

MCP23017

 Este CI  de coste  contenido  permite agregar 16 salidas a una placa  conectándola al puerto I2C. La conexión es sencilla como vamos a  ver  a continuación

Use el siguiente diagrama para conectar el MCP23017 IO expansor.

Paso 1

Desde el  Pi para alimentar VDD (pin 9) en el MCP23017.
MCP23017

Paso 2

Conectar tierra  de Pi al VSS (pin 10) en el MCP23017.
MCP23017

Paso 3

Conectar los pines SCL del MCP23017 (pin 12) a la Pi.
MCP23017

Paso 4

Conecte las clavijas SDA de la MCP23017 (pin 13) a la Pi.
MCP23017

Paso 5

Conectar toma de tierra a los pines de dirección (pin 15, 16, 17) en el MCP23017. Esto le dará el expansor de una dirección predeterminada de 0 x 20.
MCP23017

Paso 6

Para el Reset (pin 18) en el MCP23017 . Debe conectar  el pin de Reset  para el funcionamiento normal.
MCP23017

Paso 7

¡Listo! Ahora puede Agregar el MCP23017 en el panel de Caynne, con dirección por defecto de 0 x 20.

MCP23009

MCP23009

 El MCP23009-E / SS es un expansor de E / S de 8 bits con salidas de drenaje abierto. Consiste en múltiples registros de configuración de 8 bits para la selección de entrada, salida y polaridad. El maestro del sistema puede habilitar E / S como entradas o salidas escribiendo los bits de configuración de E / S. Los datos de cada entrada o salida se guardan en el registro de entrada o salida correspondiente. La polaridad del registro del puerto de entrada puede invertirse con el registro de inversión de polaridad. Todos los registros pueden ser leídos por el maestro del sistema. El registro de captura de interrupción captura los valores de puerto en el momento de la interrupción, ahorrando así la condición que causó la interrupción. El restablecimiento de encendido (POR) ajusta los registros a sus valores predeterminados e inicializa la máquina de estado del dispositivo. El pin de dirección de hardware se utiliza para determinar la dirección del dispositivo.

Use el siguiente diagrama para conectar su MCP23009 IO expansor.

Paso 1

Desde el pastel de Pi para alimentar VDD (pin 1) en el MCP23009.
MCP23009

Paso 2

Conectar la tierra de la Pi a VSS (pin 18) en el MCP23009.
MCP23009

Paso 3

Conectar los pines SCL de la MCP23009 (pin 3) y la Pi.
MCP23009

Paso 4

Conecte las clavijas SDA de la MCP23009 (pin 4) y la  Pi.
MCP23009

Paso 5

Conectar toma de tierra al pin de dirección (pin 5) en el MCP23009. Esto le dará el expansor de una dirección predeterminada de 0 x 20.
MCP23009

Paso 6

Alimentar el reset (pin 6) en el MCP23009. Conectar  Reset es necesario para el funcionamiento normal.
MCP23009

Paso 7

¡Listo! Ahora puede Agregar el MCP23009 en el panel de cayenne, con dirección por defecto de 0 x 20.

MCP23008

MCP23008

Es un circuito muy similar al anterior que  nso proporciona 8 entradas  o salidas  binarias a traves del SDA

Use el siguiente diagrama para conectar su MCP23008 IO expansor.

Paso 1

Conecte las líneas de energía, conectando a VDD (pin 18) en el MCP23008.
MCP23008

Paso 2

Conecte las líneas de tierra, conexión de tierra al VSS (pin 9) en el MCP23008.
MCP23008

Paso 3

Conecte las clavijas SDA de la MCP23008 (pin 2) y la  Pi.
MCP23008

Paso 4

Conectar los pines SCL de la MCP23008 (pin 1) y la  Pi.
MCP23008

Paso 5

Conectar toma de tierra a los pines de dirección (pines 3, 4, 5) en el MCP23008. Esto le dará el expansor de una dirección predeterminada de 0 x 20.
MCP23008

Paso 6

Alimentar el reset (pin 6) en el MCP23008. Conectar el pin Reset es necesario para el funcionamiento normal.
MCP23008

Paso 7

¡Listo! Ahora puede Agregar el MCP23008 en el  panel de control de Cayenne, con dirección por defecto de 0 x 20.

DS2408

ds2408

 El DS2408 es un chip de E / S 1-Wire® programable de 8 canales. Las salidas PIO se configuran como drenaje abierto y proporcionan una resistencia de 100Ω máx. Un protocolo de comunicación de acceso de canal PIO robusto garantiza que los cambios de configuración de salida PIO se produzcan sin errores. Se puede utilizar una salida estroboscópica válida para datos para bloquear estados lógicos PIO en circuitería externa tal como un convertidor D / A (DAC) o un bus de datos de microcontrolador.

Un par de notas antes de comenzar:

  • Para aprovechar las ventajas de la detección automática de cayena de dispositivos 1-wire, conecte a 4 GPIO.
  • Asegúrese de que Raspberry Pi está apagado al conectar los cables.
  • Cuando utilice un cable de cinta GPIO, asegúrese de que está conectado el cable (es un color diferente que los otros) en la esquina de la Raspberry Pi y la parte superior de tu pastel de Pi.
  • El diagrama proporcionado es sólo un ejemplo de cómo conectar el sensor. Hay muchas maneras para conectar sensores y extensiones, así que trate de lo que funciona mejor para usted!
  • Algunos placas de prototipos (usados en los diagramas a continuación) tienen una  linea de alimentación  que se separa en el medio. Si este es el caso, asegúrese de que sus sensores están conectados en la misma mitad de la placa como el Pi.

Use el siguiente diagrama para conectar su DS2408 “1-Wire” IO expansor.

Paso 1

Desde el  Pi alimentar el DS2408 VCC (pin 3). Asegúrese de que añade  una resistencia de pull-up entre la potencia (pin 3) y pines de datos (pin 4) en el DS2408.
DS2408

Paso 2

Conectar la tierra del Pi a la tierra de DS2408 (pin 5).
DS2408

Paso 3

Conectar la clavija de control DS2408 en GPIO Pin 4 en el Pi. Conexión a 4 GPIO permite la detección automática .
DS2408

Paso 4

¡Listo! Encienda su frambuesa Pi y el agente Cayenne automáticamente detectará el expansor DS2408 y agregara este a su panel de control.

MCP23S09

MCP23S09

 El MCP23S09-E / P es un expansor de E / S de 8 bits con salidas de drenaje abierto. Consiste en múltiples registros de configuración de 8 bits para la selección de entrada, salida y polaridad. El maestro del sistema puede habilitar E / S como entradas o salidas escribiendo los bits de configuración de E / S. Los datos de cada entrada o salida se guardan en el registro de entrada o salida correspondiente. La polaridad del registro del puerto de entrada puede invertirse con el registro de inversión de polaridad. Todos los registros pueden ser leídos por el maestro del sistema. El registro de captura de interrupción captura los valores de puerto en el momento de la interrupción, ahorrando así la condición que causó la interrupción. El restablecimiento de encendido (POR) ajusta los registros a sus valores por defecto e inicializa la máquina de estado del dispositivo. El pin de dirección de hardware se utiliza para determinar la dirección del dispositivo.

Use el siguiente diagrama para conectar su Convertidor A/D de MCP23S09 con interfaz de SPI.

Paso 1

Alimentar desde el  Pi al MCP23S09 pin 1 (VDD) y pin 7 (RESET).
MCP23S09

Paso 2

Conectar la tierra del  Pi al MCP23S09 pin 18 (VSS).
MCP23S09

Paso 3

Conecte la clavija de entrada MCP23S09 chip select (CS) de 3 a uno de los pines del chip select del Pi  CE0 en este ejemplo.
MCP23S09

Paso 4

Conectar patillas SCLK del  Pi y el MCP23S09 4 (SCK).
MCP23S09

Paso 5

Conectar patillas MOSI del Pi y el MCP23S09 5 (SI).
MCP23S09

Paso 6

Conectar patillas MISO del Pi y el MCP23S09 6 (SO).
MCP23S09

Paso 7

¡Listo! Ahora puede Agregar el convertidor de MCP23S09 a tu panel de control usando el chip-select 0.

MCP23S08

MCP23S08

 El MCP23S08 es un “8-Bit I / O Expander con el interfaz de SPI” IC de Microchip . Este dispositivo también está disponible en variaciones I2C (MCP23008) y 16 bits (MCP23x17),

Use el siguiente diagrama para conectar su convertidor A/D de MCP23S08 con interfaz de SPI.

Paso 1

Alimentar desde el  Pi al MCP23S08 pin 18 (VDD) y la clavija 6 (RESET).
MCP23S08

Paso 2

Conectar la tierra del pastel de Pi al MCP23S08 pin 9 (VSS).
MCP23S08

Paso 3

Conectar patillas SCLK del Pi y el MCP23S08 pin 1 (SCK).
MCP23S08

Paso 4

Conectar patillas MOSI del  Pi y el MCP23S08 pin 2 (SI).
MCP23S08

Paso 5

Conectar patillas MISO del  Pi y el MCP23S08 pin 3 (SO).
MCP23S08

Paso 6

Conecte los dos de los pines de dirección de MCP23S08 (pines 4, 5) a tierra. Esto resultará en una dirección predeterminada de 0 x 20.
MCP23S08

Paso 7

Conecte la clavija de entrada MCP23S08 chip select (CS) pin 7 a uno de los pines del chip select Pi , CE0 en este ejemplo.
MCP23S08

Paso 8

¡Listo! Ahora puede Agregar el convertidor de MCP23S08 a su panel de control  de Cayenne usando el chip-select (pin  0).

MCP23S18

MCP23S18

Hablamos de un chip del fabricante MICROCHIP  que es un  Expansor de E/S de 16bit funcionando a  10 MHz con interfaz  SPI

Use el siguiente diagrama para conectar su Convertidor A/D de MCP23S18 con interfaz de SPI.

Paso 1

Alimentar de la Pi  a RESET (pin 16) y VDD (pin 11) en el MCP23S18.
MCP23S18

Paso 2

Conectar la tierra del  Pi a VSS (pin 1) en el MCP23S18.
MCP23S18

Paso 3

Conectar patillas SCLK del  Pi y el MCP23S18 13 (SCK).
MCP23S18

Paso 4

Conectar patillas MOSI del  Pi y el MCP23S18 14 (SI).
MCP23S18

Paso 5

Conecte la clavija de entrada MCP23S18 chip select (CS) del pin  12 a uno de los pines del chip select Pi Zapatero, CE(pin 0 )en este ejemplo.
MCP23S18

Paso 6

Conectar patillas MISO del  Pi y el MCP23S18 pin 15 (SO).
MCP23S18

Paso 7

¡Listo! Ahora puede Agregar el convertidor de MCP23S18 a tu panel de control de Cayenee usando el chip-select 0.

MCP23S17

MCP23S17

Hablamos de un chip del fabricante MICROCHIP  que es un  Expansor de E/S de 16bit funcionando a  10 MHz con interfaz  SPI

 El MCP23s08 y MCP23s17 tiene 3 bits de selección de direcciones por lo que en teoría se puede conectar hasta 8 MCP23s08 y MCP23S17 en la misma señal de selección SPI que le da una capacidad GPIO de una señal adicional de 128 pines por SPI seleccionar cuando se utilizan estos dispositivos. (O el doble que si utiliza 8 más en la 2 ª SPI seleccionar)

Use el siguiente diagrama para conectar su Convertidor A/D de MCP23S17 con interfaz de SPI.

Paso 1

Desde el  Pi alimentar VDD (pin 9) en el MCP23S17.
MCP23S17

Paso 2

Conectar la tierra del  Pi a VSS (pin 10) en el MCP23S17.
MCP23S17

Paso 3

Conecte la clavija de entrada MCP23S17 chip select (CS) del pin  11 a uno de los pines del chip select Pi Zapatero, CE0 en este ejemplo.
MCP23S17

Paso 4

Conectar patillas SCLK del  Pi y el pin 12 del MCP23S17  (SCK).
MCP23S17

Paso 5

Conectar patillas MOSI del  Pi y el  pin 13 del MCP23S17 (SI).
MCP23S17

Paso 6

Conectar patillas MISO del  Pi y el pin  14 del MCP23S17  (SO).
MCP23S17

Paso 7

Conectar toma de tierra a los pines de dirección de MCP23S17 (15, 16, 17). Esto le dará el expansor de una dirección predeterminada de 0 x 20.
MCP23S17

Paso 8

Alimentar al pin de RESET (pin 18) en el MCP23S17. Conectar  el pin de Reset es necesario para el funcionamiento normal.
MCP23S17

Paso 9

¡Listo! Ahora puede Agregar el convertidor de MCP23S17 a su panel de control usando el chip-select 0.

 

Por cierto , para  mas información sobre como configurar el panel de control de Cayenne  , puede encontrar mas información en ingles  aqui 

Entorno abierto y gratuito para simulacion


MyOpenlab es un entorno orientado a la simulación y modelado de sistemas físicos, electrónicos y de control con un amplio campo de aplicaciones: Simulación de Circuitos digitales y/o Analógicos,Simulación de Instrumentos, Simulación de Automatismos, Modelado de Fenómenos Físicos, Simulación de Automatismos, Simulación de Robots, Control de Elementos Físicos mediante Interfaces, Tratamiento de Imágenes y Sonidos, Operaciones con matrices y vectores 2D y 3D,etcMyOpenLab es una plataforma libre, licencia LGPL ,gratuita y en la que son  soportados los idiomas  Ingles ,alemán y español.

Esta herramienta esta recomendada para estudiantes de prácticamente todos los niveles  , estando desarrollada en el lenguaje JAVA  y  Netbeans (no afecta a las plataformas hw) siendo por ello  portable a distintas plataformas  tanto  para Linux ,Mac como para Windows.

En el campo del modelado y simulación es muy interesante contar con una herramienta flexible que a partir de una amplia biblioteca de bloques funcionales permita realizar modelos a base de conectar bloques funcionales.

MyOpenLab es capaz de conectarse al mundo físico mediante una interface de amplia difusión en el mercado como es la Tarjeta Experimental (USB) K8055 de Valleman. También soporta Velleman (R) PCS10 / grabador K8047 / registrador, USB CompuLab Interfaz (bus de módulo),Arduino (actualmente con los componentes “IO de interface” y “Firmata IO Interface” disponibles) y en general  cualquier hardware que implementa el protocolo Firmata y Balón por encima del RS232.

La  placa HQ K8055N – Tarjeta interfaz USB de experimentación de Velleman( unos 36€ en Amazon.es )  es muy útil para la realización de aplicaciones de adquisición de datos y control con PC pues la conexión al PC es mediante USB. La K8055 no es programable lo que significa que para que funcione debe estar siempre conectada al puerto. El control, pues, lo realiza siempre el PC con la aplicación de MyOpenLab que esté en ejecución.

HQ K8055N - Tarjeta interfaz USB de experimentación

La presentación de los resultados y/o el control de las simulaciones se hacen mediante un potente conjunto de bloques de función de visualización y/o interacción capaz de manejar todo tipo de datos (analógicos, digitales, matrices, vectores, imágenes, sonidos, etc.)

A la facilidad de uso se  une una amplia biblioteca de funciones tanto para manejo de señales analógicas como digitales como por ejemplo librerías de elementos de Visualización y Control (Panel Frontal):Elementos de Decoración, Elementos de visualización numérica ,Elementos de activación digital ,Elementos de Entrada y salida de cadenas de caracteres,Elementos de entrada y salida tipo vectores y matrices de datos,Elementos de visualización gráfica en ejes coordenados I ,Elementos de visualización gráfica en ejes coordenados II,Librería de Extras,Elementos de Automatización ,Elementos de librería de usuario ,Robot 2D  
y también  librerías de Elementos Funcionales (Panel Lógico) : Elementos de decoración ,Operadores Digitales,Operadores Numéricos,Tratamiento de Caracteres,Elementos Analógicos,Utilidades,Ficheros de Entrada/Salida,Comparadores,Tratamiento de Imágenes,Tratamiento de Sonidos,Color,Pines de E/S,Vectores y matrices,Agrupación de Elementos,Objetos Gráficos “canvas”,Librería de Física,Librería de Diagramas de Flujo,Librería de Extras,Librería de Conexiones entre aplicaciones,Librería definida por el Usuario,Automation+librería de Automatización Interfaces  así como  otra  potente biblioteca de objetos gráficos tipo “canvas” mediante la que se puede dotar de       movimiento cualquier objeto o imagen asociándola a variables de los modelos a simular.

Incluso es posible la ampliación de su librería de componentes, editándolos en código JAVA , así como  creando  “submodelos de panel” y “submodelos de circuito” encapsulados.

Otras de las facilidades del programa es el tratamiento de los tipos de datos ,permitiendo crear pantallas de visualización que recojan el estado de las variables y eventos de las simulaciones y operaciones con estos,  llegando incluso a la realización de las aplicaciones mediante el uso de bloques de función con la posibilidad de encapsularlos en “macros”.
myopen

El programa puede funcionar en plataformas Linux y sus requerimientos de sistema son muy poco restrictivos, lo cual lo hace ideal para usar en casi cualquier equipo, bastando con  que se instale el runtime de JAVA JRE o JDK.

Para instalar este programa  puede seguir los siguientes pasos:

  1. Descargar MyOpenLab ,para conseguir el programa diríjase a : http://es.myopenlab.de

  2. Si no lo tiene ya descargue Java SE 7 o posterior del http://java.com/de/.

  3. Descomprimir el Archivo de distribución con Winzip o WinRar. (Precaución: no se ejecutan directamente desde el archivo)

  4. En el directorio descomprimido el archivo Ejecutar “start.bat”

  5. Confirmar licencias (sólo la primera vez)

  6. Ahora puede cargar un proyecto de ejemplo y ejecutar (estos están en el directorio MyOpenLab: por ejemplo: ejemplos)

  7. Nota para los usuarios de Linux:Antes de empezar a MyOpenLab usted deberá ejecutar  chmod + x start_linux en el directorio de distribución de otro modo run.

  8. Nota para los usuarios de Ma3 RS232 no funciona en el Mac .

Requisitos:

  • Desde Windows XP 32/64, 32/64 Linux
  • Java 7

  • Para aplicaciones 3D: (Sólo para Java 7) Java3D

  • Mínimo espacio en disco duro minuto 50 MB

  • Pantalla de activación min. 1024×768 píxeles

Ahora puede unirse al grupo de trabajo de MyOpenLab. El código fuente y compilado esta disponible enhttps://sourceforge.net/p/myopenlab3/

Tutorial IoT con Fiware


Gracias a  Telefónica R&D Chile( Telefónica I + D Chile) nos  ofrecen   un interesantisimo tutorial  intruductorio sobre  IOT   concretamente usando la plataforma Orion Context Broker  (FIWARE ) con Arduino aunque puede extrapolarse  a otras placas de IoT ( por ejemplo Netduino ,Intel Edison o Raspberry Pi)

 

Un punto interesante para analizar el IoT (Internet of Things  )es el uso de las normas. Para el caso concreto vamos a revisar más adelante en la sección Orion Context Broker, una adaptación basada en la especificación OMA (Open Mobile Alliance) NGSI (Next Generation Service Interface).  En términos simples, esto significa que las peticiones HTTP o acciones que deben utilizarse son los que están actualmente empleados por los navegadores tales como GET, POST, DELETE y PUT para interactuar con el contexto Broker.

Configuración de hardware

Los componentes que vamos a utilizar son:

  •  Una placa Arduino (hay muchas alternativas, pero una versión con WiFi es esencial)
  •  Una placa protoboard
  •  LEDs
  •  Cables de conexión
  • Un router o un dispositivo celular que pueden ofrecer Wi-Fi (tethering)

Como se ha comentado en este blog , Arduino tiene su propia interfaz de desarrollo utilizando el lenguaje C ++ y se integra una serie de librerías para facilitar la  aplicación de prototipos. Esto no quiere decir que Arduino no se puede utilizar en entornos industriales o de alta demanda. Sin embargo, en estos escenarios cuestiones de costos por lo general conducen a la utilización de componentes ad-hoc.

Al observar la estructura, se puede reconocer algunos pines digitales en la parte superior y analógicas pines en la parte inferior (idéntico  a muchas otras placas como Netduino). Además, en la parte inferior, también  hay una  fila de conectores para alimentar al propia  placa u otras que se conecten. Por supuesto la  placa   también  tiene un conector a una toma de corriente y un conector mini USB, entre otros componentes, dependiendo de la versión de la tarjeta y si se utiliza add-on “escudos” o no.

Si conectamos un LED a la placa podemos hacerlo directamente, conectando el ánodo LED de pin digital 13 y el cátodo del   led  al pin de   GND como se ve aquí.  Hay que señalar que es interesante conectar  entre el pin digital 13 con una resistencia de 220 ohmios para proteger el diodo led , pero estrictamente podría omitirse dicha resistencia.

led.jpg

 

Por último, este mismo esquema se puede usar para agregar más LEDs o sensores de nuestra placa Arduino para que pueda añadir más funcionalidades. Para ello hay que recordar que en un tablero de alimentación corre horizontalmente en los puntos exteriores y vertical en los puntos interiores

 

Arduino, software and communications Arduino, software y comunicaciones

En este ejemplo  vamos a aprender cómo programar la placa Arduino con el fin de activar el LED se instaló en la segunda parte y se apaga. A continuación, vamos a utilizar una conexión a Internet con WIFI  en  la placa.

Como requisito previo, hay que ya hemos configurado el software de Arduino según nuestro sistema operativo. Además, hay que tener USB de la placa conectada a nuestro ordenador para cargar el programa a nuestra placa (  consulte  aquí para ver cómo instalar el software en una placa Intel Edison).

Debe onviamente seleccionar la versión del software que corresponde a su sistema operativo.  Una vez que el software está configurado e instalado abrimos nuestra IDE hasta el comienzo de la codificación.

sketc

 

Vamos  a ver  un ejemplo de la IDE Arduino.  Este ejemplo es específicamente para el IDE para los conjuntos de Intel, aunque los conceptos son los mismos. En la segunda fila de menú (donde el icono de comprobación es), encontrará los comandos para compilar y cargar nuestros desarrollos a la placa.   Si examina el código, tenemos dos funciones.  Uno es de configuración, donde las variables se inicializan y el bucle en el que se ejecutan las operaciones según se requiera. En el menú Archivo tenemos los ejemplos de opciones – 01 Básico – Blink. Esto mostrará una nueva ventana con el código necesario para poner a prueba nuestra LED:

/*

Blink Parpadeo

Se enciende un LED durante un segundo, luego se apaga durante un segundo, en repetidas ocasiones.

Este código de ejemplo está en el dominio público.

*/ Pin 13 tiene un LED conectado en la mayoría de las placas Arduino.

// Darle un nombre:

int led = 13;

// La instalación se ejecuta de rutina una vez cuando se presiona RESET:

void setup() { 

// Inicializar el pin digital como salida.

pinMode (led, OUTPUT);

}

// La rutina de bucle se ejecuta una y otra vez para siempre:

void loop() {

digitalWrite(led, HIGH);  //  Enciende el LED (ALTA es el nivel de tensión)

delay(1000);  // Espera un segundo

digitalWrite(led, LOW);  //  Apagar el LED haciendo que la tensión BAJA

delay(1000);  // Espera un segundo

}

El ejemplo que genera Arduino es bastante simple.  En la línea 10 se establece una variable con el número pin correspondiente en la placa . Posteriormente, el pasador la variable se  configura  como salida y se inicializa. Y, en el bucle, el LED se enciende y se apaga separado por un retraso de un segundo .

Antes de cargar el código anterior en la placa , el IDE se debe configurar para que sepa la placa  y qué puerto se  está utilizando:

Select Tools> Board> Intel Edison Seleccione Herramientas> Junta> Intel Edison ( para el caso de una placa Intel Edison)

Select Tools> Port> dev / ttyACM0 Seleccione Herramientas> Puerto> dev / ttyACM0

Ahora bien, si la tarjeta está correctamente conectada al puerto USB, podemos ‘Subir’ el código de la tarjeta (Ctrl + U) y deberíamos ver nuestra LED encendido y apagado de cada segundo.

 

Ahora para usar el wifi, tenemos que trabajar un poco más.  Por suerte, en los ejemplos de Arduino, tenemos una sección de WIFI con diferentes alternativas utilizando las soluciones de redes.  Entre ellos se encuentran los servidores Telnet y clientes, servidores Web y clientes, e incluso un cliente de Twitter.

CONSEJO: En nuestro caso, por motivos de simplicidad, podemos utilizar un cliente Web ya que vamos a enviar solicitudes posteriormente al corredor Orion Contexto utilizando el protocolo HTTP.  Tenga en cuenta que hay mejores soluciones, pero para los propósitos educativos vamos a tratar de minimizar el código tanto como sea posible.

#include <SPI.h>

#include <WiFi.h> >

/ ************************** /

/ * * Configuración de la instalación /

/ ************************ /

char ssid[] = “YourWifiSSID”;//Nombre de la red

char pass[] = “WifiPassword”; //Contraseña de red

char server[] = “130.206.80.47”;  // ORION IP address -> Create in /lab/ // Dirección IP ORION -> Crear en / lab /

int status = WL_IDLE_STATUS; int estado = WL_IDLE_STATUS; // we predefine the status as On but not connected // Nos predefinimos la condición pero no conectada

int led = 13; int LED = 13; // We initialize a variable to assign the pin number to which the led will be connected // Inicializamos una variable para asignar el número de identificación personal al cual se conectará el LED

/**

* Configuración Configuración Arduino

* (Ejecutar una sola vez)

**/

void setup() {

// Inititialization del puerto serie Arduino

Serial.begin(9600);

while (!Serial) {

// Esperar para el puerto serie para conectar. y Necesario para Leonardo solamente

}

// Comprobar que la placa tiene un escudo WiFi

if (WiFi.status() == WL_NO_SHIELD) {

Serial.println(“Wifi shield is not available”);

// No continúe con la instalación, o en otras palabras, se quedan aquí para siempre

while(true);

}

El código completo está disponible en:

https://bitbucket.org/tidchile/ecosystem/src/ https://bitbucket.org/tidchile/ecosystem/src/

FIWARE  y Orion Context Broker

Como se ha discutido anteriormente en este ejemplo, el Broker de Orión define un contexto como un servicio que en base al stándar  OMA NGSI 9/10 puede manejar el envío y recepción de información contextual.  ¿Qué significa esto?  En primer lugar, para manejar un gran número de mensajes de entidades y administrar las actualizaciones, consultas, y también se encargan suscripciones de datos de las entidades. Recordemos que, según la NGSI 9 y 10 estándares, nos ocupamos de las entidades como una abstracción de los nodos físicos o dispositivos utilizados en las soluciones de la IO.

En el ejemplo anterior, hemos hecho una solicitud de actualización a una entidad ya creada.  Pero primero vamos a revisar cómo trabajar con Orión. . Una manera simple de probar el servicio OCB es crear una cuenta en https://account.lab.fiware.org/ y crear una máquina virtual con Orion preconfigurada en la sección de la nube. Alternativamente, el sitio y el acceso GitHub de Orión descargar una máquina virtual para ejecutar en nuestro entorno local

Otra herramienta útil es un cliente REST, pero podemos usar cURL si parece más sencillo. RESTClient es un cliente para Firefox que es bastante fácil de usar.

Los aspectos de configuración de la OCB están fuera del alcance de este tutorial, ya que requeriría demasiados detalles.  En cuanto al Laboratorio fiware, es importante tener en cuenta que fiware proporciona máquinas virtuales en la nube de forma gratuita para probar fiware compontents. Sólo tiene que crear una cuenta para acceder a los servicios. Sólo una advertencia rápida. . A partir de hoy (19-03-2015) y temporalmente, España no tiene recursos disponibles, pero hay otras regiones en las que las máquinas virtuales se pueden crear.

Cuando tengamos las herramientas necesarias, la forma más básica para interactuar con la OCB es:

1. Creando una entidad:Para ello hay que tener en cuenta varios factores.  En primer lugar, la llamada se envía como una solicitud HTTP POST, por ejemplo, http://myhost.com:1026/v1/updateContext.  Con esto queremos decir que estamos ocupando la versión 1 del API con la operación updateContext.

También tenemos que definir varias variables en la cabecera de la solicitud:

Accept: application/json

Content-Type: application/json

X-Auth-Token: [TOKEN AUTHENTICATION]

En cuanto a la generación de tokens, la forma más sencilla es utilizar un script en Python creado por Carlos Ralli en GitHub. Se necesita una cuenta FIWAREy ejecutar el ‘get_token.py  se requiere la escritura’.

Después de configurar el encabezado de la solicitud, configurar el “cuerpo” de la solicitud mediante el siguiente código JSON:

{

“contextElements”:[

{

“type”:”LED”,

“isPattern”:”false”,

“id”:”LED001″, “

“attributes”:[

{

“name”:”switch”,

“type”:”bool”,

“value”:”false”

}

]

}

],

“updateAction”:”APPEND”

}

Esta es la estructura de un “contexto Elementos”, que es un grupo de entidades con ciertos atributos, tales como, “isPattern” e “id”, “tipo”.type ”  se refiere a un tipo definido y permite la búsqueda de entidades por un tipo particular. “Id” es un atributo que debe ser único para cada entidad para ejecutar búsquedas en base a este ID. “IsPattern” se explicará más adelante en el punto No. 2.

También puede agregar una serie de atributos de la entidad en la propiedad “atributos”, donde cada atributo se define por el “nombre”, “tipo” y “valor”. Por último, “updateAction” define si vamos a realizar un “añadir” o y “UPDATE”.

Si todo va bien, vamos a recibir una respuesta 200 OK desde el servidor y que nos dará los detalles de la entidad creada:

{

“contextResponses” :

{

“contextElement” : {

“type” : “LED”,

“isPattern” : “false”,

“id” : “LED001”, “

“attributes” :

{

“name” : “switch”,

“type” : “bool”,

“value” : “”

}

]

},

“statusCode” : { “

“code” : “200”,

“reasonPhrase” : “OK”

}

}

]

}

2. Consultar la entidad: Para consultar una entidad, la operación estándar es ‘queryContext’ que sería http://myhost.com:1026/v1/queryContext.También aplicamos las cabeceras que se describen en el punto No. 1 y el uso post.

El JSON utilizado en el cuerpo de la petición sería la siguiente:

{

“entities”:[

{

“type”:”LED”,

“isPattern”:”false”,

“id”:”LED001″

}

]

}

Aquí es donde puede utilizar “isPattern” en “verdadero” y trabajar bien en el campo “tipo” o el campo “id” con expresiones regulares si queremos ejecutar una búsqueda un poco más compleja. En el ejemplo anterior sólo estamos buscando la misma entidad creada a través de la “id”.

También hay una manera más sencilla de hacer la misma consulta utilizando la siguiente solicitud: GET http://myhost.com:1026/v1/contextEntities/LED001 donde LED001 es el “id” de la entidad a buscar.

3. Actualización de la entidad: Esto es idéntico al punto No. 1, pero cambiando el atributo “updateAction” de “añadir” a “UPDATE”.

Por último, la integración de todo lo que hemos revisado, seremos capaces de generar una acción desde una página Web sencilla que se puede implementar en un servidor remoto y, de hecho demostrar que el LED de la aplicación se activa de forma remota utilizando la OCB.

Para ello vamos a utilizar el LED001 de reciente creación, estableciendo el atributo “interruptor” de verdadero a falso y viceversa para comprobar la acción.

Nuestra web se vería así:

 

ejemplño

Para ello, el código html, css y js se comparten en:   https://bitbucket.org/tidchile/ecosystem/src/ https://bitbucket.org/tidchile/ecosystem/src/

 

 

 

Fuente    aqui

LLega la Raspberry Pi 3


Con  más de ocho millones de unidades vendidas , incluyendo tres millones de unidades de Raspberry  Pi 2 , nadie duda  que Raspberry es una plataforma  muy exitosa ,  tanto que de hecho la Fundación Raspberry Pi ha crecido de un puñado de voluntarios a llegar a más de sesenta empleados a tiempo completo, ! e incluso  han enviado un Frambuesa Pi a la Estación Espacial Internacional !

Desde hace unos meses por fin ya  esta disponible en Amazon  la nueva Raspberry Pi 3 Modelo B   ,la última placa de la familia de Raspberry Pi  ,una placa 10 veces más potente que la original (es decir la primera versión) ,  donde   lo mas destacable  es que se ha añadido   conectividad inalámbrica integrada tanto por wifi (soportando los estándares  802.11 b/g/n) ,  como  por  Bluetooth ( versión 4.1).

Hablando de conectividad ,la nueva placa  incorpora el chip BCM2837 junto el chip inalámbrico “combo” BCM43438 . Gracias  a esta combinación de CI,  ha permitido  adaptar la funcionalidad inalámbrica en casi el mismo factor de forma de los modelos anteriores como el Raspberry Pi Modelo B + 1 y Raspberry Pi 2 Modelo B. De  hecho  el único cambio es que la posición de los LEDs los  han trasladado al otro lado de la ranura de la tarjeta SD para hacer espacio para la antena.

Ademas,para Raspberry Pi 3 Modelo B , Broadcom  ha apoyado un nuevo SoC, el  BCM2837, el cual  conserva la misma arquitectura básica que sus predecesores BCM2835 y BCM2836, por lo que todos los proyectos y tutoriales que se basan en este  hardware de la Raspberry  Pi continuarán funcionando.

broadcom

Comparable con el modelo  anterior (Raspberry pi 2 model b  ) , esta nueva placa   destaca  por usar un procesador   de  64  bits : un  ARM Cortex-A53  de  cuatro núcleos  a una velocidad de reloj  de 1,2 GHz  en lugar de un  Quad-Core Cortex A7 de 32 bits  a 900 MHz de su antecesor ( Raspberry Pi  2 modelo B), por lo  que vemos que el cambio de procesador  ha sido espectacular no solo por la velocidad de reloj superior (de 900 Mhz  a   1,2 GHz) ,  sino básicamente  por el cambio de arquitectura también ARM ,pero  de 64 bits en lugar de la antigua de 32 bits .

La combinación final   de un aumento del 33% en la velocidad de reloj con varias mejoras en la arquitectura, ha permitido  proporcionar un aumento del 50-60% en el rendimiento en el modo de 32 bits frente a la Raspberry Pi 2, o aproximadamente un factor de diez sobre el original Raspberry Pi.

Sobre la memoria  RAM cuenta  con 1GB LPDDR2 ( la versión anterior también contaba con 1GB)  y a nivel de gráficos también han mejorado   pues cuenta con  un Dual Core VideoCore IV ® Multimedia Co-procesador.

Sobre los conexiones disponibles sin embargo ,  no ha cambiado sustancialmente  , contando  como en la versión anterior  con las siguientes posibilidades:

  • 4 Puertos  USB 2.0
  • Puerto de  GPIO de 40  pin,
  • Salida HDMI rev 1.3 y 1.4
  • Toma  Ethernet
  • Jack de audio de 2  1/2″ ,
  •  Interfaz de cámara (CSI)
  • Interfaz de Pantalla (DSI)
  • Lector  micro SD

 

Todos los conectores anteriores  están en el mismo lugar y tienen  la misma funcionalidad, y para alimentar la placa  todavía se puede usar un  adaptador de alimentación de 5V micro-USB, pero en esta ocasión, están recomendando un adaptador 2.5A por si desea conectar dispositivos USB que consumen mucha energía  de la Raspberry Pi.

Usted necesitará una imagen reciente NOOBS o de Raspbian  que puede descargar desde la pagina  de  descargas . En el lanzamiento, están utilizando el mismo espacio de usuario de 32 bits Raspbian usada en otros dispositivos Raspberry Pi; pero en los próximos meses van a trabajar  el movimiento al modo de 64 bits.

 

La nueva placa no es solo un dispositivo estupendo para programar sino que también es   ideal para jugar y experimentar incluso  para sus futuros proyectos de IoT.

Algunas dudas 

¿Está versión descontinúa modelos anteriores Frambuesa Pi? No  sus fundadores  tienen  gran cantidad de clientes industriales que querrán seguir con Raspberry  Pi 1 o 2 por el momento  así qeu van  a mantener la construcción de estos modelos durante el tiempo que haya demanda. 

¿Qué pasa con el Modelo A +? Modelo A + sigue siendo el nivel de entrada económico de Raspberry  Pi por el momento.Su fundadores  esperan producir una 3 Raspberry Pi Modelo A, con el factor de A +  durante el 2016.

¿Qué pasa con el módulo de cómputo? Esperan introducir un módulo de cómputo basado en BCM2837 3 en los próximos meses.

¿Todavía usa VideoCore?Sí. VideoCore IV 3D es el único núcleo de gráficos de  3D para SoC basados ​​en ARM documentado públicamente, y quieren  hacer una Rspberry Pi más abierta con el tiempo. BCM2837 ejecuta la mayor parte del subsistema VideoCore IV a 400MHz y el núcleo 3D a 300 MHz (250 MHz frente a los dispositivos anteriores).

¿De dónde viene la cifra “10 veces más rendimiento” viene?10x es una figura típica de un punto de referencia de la CPU multi-hilo como SysBench. Las aplicaciones del mundo real verán un aumento de rendimiento de entre 2,5x (para aplicaciones de un solo subproceso) y> 20 veces (para los códecs de vídeo NEON habilitado).

 

Sin duda el producto es muy recomendable para muchas aplicaciones, incluso   supliendo  funciones de automatización que antes requerían un ordenador de sobremesa o por ejemplo como potente centro multimedia

Por cierto, si le   interesa este modelo,   por menos  de 50€  con gastos de envío incluido puede conseguirlo  en Amazon

Cómo fabricarse una maquina de grabado laser con piezas recicladas


Una máquina de grabado láser es una herramienta que utiliza el láser para hacer  grabados sobre  un objeto blando como puede ser madera,cuero , plasticos ,etc.
Antes de   explicar como  Davide Gironi  ha montado una pequeña grabadora láser casera reciclando un viejo escáner  y una impresora matrozial  ,  debe saber  que  los diodos láser Clase IIIb   que se emplean en este proyecto, emiten radiación láser visible e invisible y son extremadamente peligrosos. Su luz de hecho puede causar daños permanentes en los ojos, asi que nunca  debe mirar al diodo trabajando( incluso sin la lente)  y por supuesto tampoco apuntar a una superficie reflectante, pues el haz de láser puede causar quemaduras o incendios. 

El autor tenia un viejo escáner roto y una vieja impresora por ahí. Inspirado por este proyectoinstructables  decidió construir una versión más grande de mi pequeña CD-ROM grabador láser basado,usted puede encontrar aquí.De esta manera, el área de grabado podia llegar acasi 212mm x 274mm.

El eje Y es construir mediante el ensamblaje de un viejo  escáner  y  el eje X utilizando una vieja impresora .

La base de esta máquina es el propio escáner   y el escáner  de este fue completamente eliminado , todos excepto el motor y  el mecanismo de movimiento. Lo mismo se aplica para la impresora.
Montaje del hardware, prestar atención a construirlo hacer X normal al eje Y. Los dos dirección tienen que ser perpendiculares, o su grabado tendrá distorsiones.
El mecanismo de la impresora que está conectada a el ensamblaje del escáner del eje Y, de esa manera, el láser deja atrás la pieza en el momento del grabado.

Grabador resultante  es alimentado por una fuente de alimentación de 12V 2A, aunque la corriente total absorbida es 700mA.

El cerebro de este proyecto es un ATmega328P corriendo a 16Mhz. cargado con firmware grbl http://github.com/grbl/grbl, que es un potente aún opensource g-código analizador.
Se ha utilizado una placa Arduino Mini, incluso si el software no utiliza el marco de Arduino.
Un regulador de tensión 7805 se utiliza como fuente de alimentación para el ATmega.
El firmware  Grbl 0.9 sirve para construir   enrutador 3 ejes, pero funciona en  sistemas de 2 ejes de este tipo, con un límite duro y homing habilitado por medo de una versión personalizada del firmware  que consiste en  cambiar a versión 0,9 g en son archivados config.h. las siguintes líneas:
HOMING_CYCLE_0 #define (1 << Z_AXIS)
HOMING_CYCLE_1 #define ((1 << X_AXIS) | (1 << Y_AXIS))
fue comentado y ha cambiado a:
HOMING_CYCLE_0 #define ((1 << X_AXIS) | (1 << Y_AXIS))
// # define HOMING_CYCLE_0 (1 << Z_AXIS)
// # define HOMING_CYCLE_1 ((1 ​​<< X_AXIS) | (1 << Y_AXIS))
A continuación, el nuevo firmware grbl puede ser compilado y utilizado, evitando grbl problema 0.9 homing en 2 máquinas de eje.

La versión personalizada de compilador v0.9g grbl para ATmega328P @ 16Mhz, con una velocidad de transmisión de 115 200, se puede descargar a continuación  aqui.
CP2102 se utiliza como USB a la placa de UART y  sólo tiene que cargar el firmware usando su cargador favorito, la página wiki unidad grbl usted sobre la forma de hacer este paso.
En la wiki grbl también se puede encontrar cualquier otra información sobre comandos y configuración del software.

El controlador del motor ara mover el X e Y motor paso a paso son Carrier Conductor Polulu A4988 del motor de pasos, basado en Allegro A4988.
Como los escáner tpueden tener un motor paso a paso de 5 hilos unipolar. Ese conductor Allegro sólo funciona con motor paso a paso bipolar 4 hilos  el autor  transformóa el motor unipolar a un motor paso a paso bipolar.
Para realizado esta modificación, se corta el hilo común entre los dos devanados principales y luego se compruebaque las bobinas no tienen ninguna conexión con un multímetro. De esa forma se tienen dos bobinas, al igual que un motor bipolar:

Las impresoras por el contrario suelen  tener motores paso a paso de  hilos bipolares. Para controlarlo  se usara una placa  A4988 Allegro que envíara al motor la señales necesarias para energizar este. Incrementar los pasos hace que el motor sea más preciso, pero también  reduce el par del motor ( de hecho se puden hacer algunas pruebas para determinar la configuración de su mejor potencia del motor).
Para los motores usados para permitir un movimiento del motor suave y fino, y un buen par usando  un par de placas a A4988 Allegro , se  configura para 8 micropasos para el motor-Y, y 16-microstep para el motor-X.
Abajo puede encontrar el cableado básico de conexión de placas Polulu.

Para hacer el tablero Polulu funcionar a 8 micropasos M1 y M2 tiene que estar conectado a la alimentación lógica de alimentación VDD, si quiere ejecutarlo en 16 micropasos, conecte también M3 a VDD.  El suministro Motors VMOD está conectado directamente a 12v.

En cada eje un límite y un microinterruptor  de toe de fin de carrera se ​​coloca para evitar el eje avanace al final y  finalmente  dañe el controlador de motor.
Debido a que el final de carrera son bastantes sensibles al ruido,se  he añadido un condensador de 100nF de paso alto y una resistencia adicional 10k pull-up. Asimismo, el límite y el cable de casa son independiente y distante de la correa de cable del motor y el láser.

El láser utilizado es un diodo láser rojo, reciclado  de la óptica grabadora de un DVD-ROM. En el CD-ROM y DVD-ROM también se puede encontrar controlador de infrarrojos, láser de la grabadora de DVD diodo será un poco más potente que el  de un CD . Un diodo láser por lo general tiene tres contactos , uno o el cátodo del fotodiodo (-), otro el ánodo del diodo láser (+), el otro es el ánodo monitor de fotodiodo (+). Si el diodo que está utilizando no tiene ninguna marca, y no sabe el pinout del  diodo, usted tiene que encontrar el cátodo y el ánodo del  láser. Un método simple  para encender el diodo con un 1,8 a la corriente 2.2V, sólo por una pequeña cantidad de tiempo, digamos 1s, si absorbe actual, el cableado es el pinout diodo láser.

Por otro lado un diodo láser tiene que controlado  con un controlador adecuado, usando controlador de láser basado LM317.Este controlador láser puede conducir diodo de 12 mW a 700mW. Un regulador de voltaje de 9V a prevenir sobretensión en el diodo láser. También un NPN se coloca para permitir la entrada de TTL que viene desde el microcontrolador para activar o desactivar el láser. Estamos utilizando LM317 IC como un regulador de corriente. El voltaje de entrada se interponga en el pin Vin del LM317, desde la salida Vout al pin ADJ hay una resistencia R conectada. La corriente de salida Iout está dada por la fórmula Iout = Vref / R. Allá resistencia no siempre tensión Vref. Cuando disminución actual, la tensión de más de R debe ser menor, pero de esa manera el regulador aumentar su voltaje de salida para ajustar su tensión Vref.
Vref es 1,25 para el LM317. R se realiza mediante un resistor fijo R1 y un condensador de ajuste R2. Esa resistencia y el condensador de ajuste establece la corriente de que el uso del láser.
Así actual controlador de láser está dada por la fórmula: I = 1,25 / (R1 + R3).
La potencia nominal de las resistencias R1 y R2 se calcula mediante la forumla P = 1,25 * I.
Antes de conectar el láser y probar el controlador, compruebe que la resistencia es el valor más alto posible, a continuación, conecte el láser y medir la corriente absorbida mediante un amperímetro. Tenga en cuenta que si establece demasiada corriente al láser, que harán volar.
A continuación el circuito de excitación láser.

Un estándar de 60mm x 60mm ventilador sin escobillas PC está instalado para despejar el humo, esto evita que la lente óptica de láser que se nubló.

Los comandos para la máquina de grabado se envían a través de UART a 115.200 baudios.

Una vez  que ha construido la máquina, toca comprobar y conectar todo, cargando el firmware grbl en el  microcontrolador (puede utilizar el software de terminal, o un controlador grbl para configurar su placa de control).

Se puede suar  G-Código Universal de remitente para configurar y enviar comandos para grbl, pero también se puede utilizar un terminal simple.

Lo primero que debe hacer es probar el movimiento del motor:  Para probarlo, basta con enviar el   X10 Y10  comando, o utilizar el botón de movimiento del remitente G-Code Universal.
Usted debe ver un movimiento del motor en cada eje.   También puedes ver el láser se enciende y se apaga mediante  M3  y M5 mando.

Ahora para configurar la distancia correcta del motor para funcionar, tiene que configurar cada motor paso a paso / mm.
El método de calibración paso / mm Motor eje es bastante simple.
Vamos a tratar de la calibración del eje X como ejemplo. Sabemos cuántos paso / mm o grbl steps_per_revolution es en realidad la instalación, grbl $100 = 250.000 (x, paso / mm) parámetro.
Ahora, cambiamos su motor para algunas medidas, digamos 100 micropasos, el eje debe tener movimiento 100mm. Ahora medimos la distancia real de que el motor se ha movido, vamos a suponer que es 181mm. El nuevo valor del paso / mm para este eje del motor debe ser  steps_per_mm = (steps_per_revolution * micropasos) / mm_per_rev ,asi que b 138.121 = (250 * 100) / 181
$ 100 = 138.121

Ahora, si mueve el motor de 100 mm, se debe mover 100 mm.

Porque se  he instalado el límite y el interruptor de casa,  los límites duros  $ 21 = 1
Se fija el homing pull-off a 5 mm, porque el microswotch puede  tiner una larga palanca, y se  quiera que el motor se mueva la distancia después del ciclo de casa. $ 27 = 5.000
También el ciclo homing se habilitó: $ 22 = 1
Y la dirección homing de máscara  se cambia también. Uno puede incluso necesitar invertir eje de dirección, “puerto dir máscara invertido” es el parámetro  que tiene que tocar.

Esas son la configuración grbl más común, para la lista completa, mire la página wiki grbl.

A continuación puede encontrar los parámetros de configuración grbl qeu el autor cambió:
$ 21 = 1 (límites duros, bool)
$ 22 = 1 (ciclo de homing, bool)
$ 27 = 5.000 (homing pull-off, mm)
$ 23 = 3 (homing máscara invertido dir: 00000011)
$ 100 = 37.879 (x, paso / mm)
$ 101 = 94.246 (y, paso / mm)
$ 110 = 100.000 (tasa máx x, mm / min)
$ 111 = 100.000 (tasa max y, mm / min)
$ 130 = 212.500 (x max viajes, mm)
$ 131 = 274.400 (viaje max y, mm)

Ahora usted podría ser capaz de enviar el dibujo g-código a su grabador.

Hay una gran cantidad de software que puede utilizar para construir g-código empate, el que yo uso la InkScape. El trabajo es para este plotter es 212mm x 274mm, para configurar el área del proyecto de esta dimensión. Una vez que usted tiene camino, entonces usted puede seleccionar la ruta que desea grabar, y transformarla mediante el InkScape extensión grabador láser.
Sólo tiene que copiar la extensión en su carpeta inkscape extensión, reiniciar inkscape, y usarlo para construir su archivo de g-código.
Una vez que tenga el archivo de código G, puede enviarlo a grbl utilizando Universal-G-Code-Sender, u otro software grbl como Controlador Grbl.

En este video podemos ver todo el conjunto en acción:

 

 

 

Fuente  aqui

 

Cómo leer el pensamiento


 La última tendencia en los juguetes? La biorretroalimentación y la electroencefalografía. Una década en el siglo XXI, el mercado de los juguetes está inundado de productos que incorporan sensores neuronales funcionales,como   por ejemplo  Milton Star Wars Fuerza Trainer (~ $ 80), un juguete que desafía a los jugadores para hacer levitar una pelota de ping-pong.

HowTo: Leer tu propia mente

Otro ejemplo es el juguete de Mattel Mindflex (~ $ 75).

HowTo: Leer tu propia mente

Ambos productos licencia de su tecnología EEG de NeuroSky, una empresa que también vende su propia interfaz cerebro-ordenador de grado de investigación, el modo de pensar ($ 200). Lo que la comunidad hacker ha descubierto, sin embargo, es que, con un poco de retoques, los $ 75 dólares Mindflex puede hacerse a comportarse muy parecido a su contraparte más cara.

Las instrucciones completas siguen a continuación :https://vimeo.com/10184668

Necesitará:

Paso 1 Desmontar el auricular Mind Flex.

Coja un destornillador y abra una grieta en la vaina izquierda del auricular Mind Flex. (La vaina derecha sostiene las baterías.)

HowTo: Leer tu propia mente

Paso 2 Soldar un trozo de alambre al pin “T”.

La Junta NeuroSky es la pequeña tarjeta hija hacia la parte inferior del audífono.Si se fija bien, debería ver convenientemente etiquetado T y R pines – estas son las clavijas del tablero EEG utiliza para comunicarse en serie al microcontrolador en la placa principal, y son los pines que usaremos para espiar a los datos del cerebro . Soldar un trozo de alambre (con cuidado) a la patilla “T”. Alambre fino está bien, usamos # calibre 24. Sea cuidadoso para no cortar las patillas vecinas.

Paso 3 Planta él.

Su Arduino querrá compartir terreno con el circuito Mind Flex. Soldar otra longitud de cable a tierra – cualquier punto de tierra va a hacer, pero el uso de la gran plataforma de la soldadura en la conexión a tierra de la batería llega a la junta hace el trabajo más fácil. Una nota sobre el poder: Hemos encontrado la Mente Flex sea excesivamente sensible al poder … nuestra esperanza inicial era para alimentar el tablero de NeuroSky de alimentación 3.3v del Arduino, pero esto resultó poco fiable. Por ahora estamos pegando con la configuración de fábrica y encender el Arduino y Mente Flex independiente.

HowTo: Leer tu propia mente

Paso 4 Pase los cables.

Usamos una gota de pegamento caliente para actuar como alivio de tensión para los nuevos cables y perforamos un agujero en el caso de los dos cables que asoman a través después de que el caso fue cerrado. Este paso es opcional.

Paso 5 Conecte el Arduino.

El cable del pin “T” de la Mente Flex entra en pin RX del Arduino. La planta va … a tierra. Si lo desea, para asegurar el Arduino a un lado de la Mente Flex como una cuestión de conveniencia. (Utilizamos bridas.

HowTo: Leer tu propia mente

Paso 6 Cargue el Arduino.

Descargar e instalar el cerebro Biblioteca Arduino – está disponible aquí. Abra el ejemplo BrainSerialOut y subirlo a su tablero. (Es posible que tenga que desconectar el pin RX durante la carga.) El código de ejemplo se ve así:

HowTo: Leer tu propia mente

Paso 7 Probar.

A su vez en la mente Flex, asegúrese de que el Arduino está conectado al ordenador, y luego abrir el Serial Monitor. Si todo ha ido bien, debería ver lo siguiente:

Así es como la CSV se rompe: “intensidad de la señal, la atención, la meditación, delta, theta, alfa baja, alta alfa, beta baja, alta beta, gamma de baja y de alta gamma”

(Más de lo que se supone que estos valores en el sentido de adelante en el artículo Además, tenga en cuenta que si están cortando un entrenador Fuerza en lugar de una Mente Flex, sólo verá los tres primeros valores -.. Señal de fuerza, de atención y de meditación)

Si coloca la unidad sobre su cabeza, usted debe ver el valor “intensidad de la señal” gota a 0 (confusamente, esto significa que la conexión es buena), y el resto de los números comienzan a fluctuar.

HowTo: Leer tu propia mente

Paso 8 Visualizar.

Tan emocionante como el monitor de serie es, se podría pensar, “Seguramente hay una manera más intuitiva de visualizar estos datos!” Está de suerte: al autor ha  escrito un visualizador rápido, de código abierto en el procesamiento que representa gráficamente la actividad de su cerebro sobre tiempo (descargar).Está diseñado para trabajar con el código BrainSerialOut de Arduino ya  cargado.

Descargar el código, a continuación, abra el archivo brain_grapher.pde en Processing. Con la mente Flex conectado a través de USB y encendido, seguir adelante y ejecutar el boceto de procesamiento. (Sólo asegúrese de que el monitor de serie el Arduino IDE ‘s es cerrado, de lo contrario Procesamiento no será capaz de leer la mente de Flex.) Puede que tenga que cambiar el índice de la lista de arreglo de serie en el archivo brain_grapher.pde, en caso de Arduino no es el primer objeto de serie de su máquina:

serie = nueva serie (esto, Serial.list () [0], 9600);

Usted debe terminar con una pantalla como esta:

HowTo: Leer tu propia mente

 

Fuente aqui