Alexa es el servicio de voz de Amazon y el “cerebro” que hay detrás de millones de dispositivos como el Amazon Echo. La gente usa Alexa para controlar dispositivos domésticos inteligentes millones de veces al día.
De Arduino , hemos hablado muchas veces es este blog , es una plataforma de electrónica de código abierto basada en hardware y software fácil de usar destinada a cualquier persona que realice proyectos interactivos.
La comunidad de fabricantes de Arduino (estudiantes, aficionados, artistas, programadores y profesionales) se ha reunido en torno a esta plataforma de código abierto, sus contribuciones se han añadido a una cantidad increíble de conocimiento accesible que puede ser de gran ayuda para principiantes y expertos por igual.
En este concurso invitan a cualquier aficionado o profesional a trabajar con estos líderes de la industria para visualizar y construir el futuro de los hogares inteligentes.
En el vídeo nos explican en que consiste el reto
En este concurso, Hackster ha reunido a Alexa y Arduino, un líder en hardware de código abierto.
Invitan a crear un proyecto que visualice el futuro de los hogares inteligentes. Aquí hay algunas ideas potenciales para comenzar:
Automatización de la temperatura ambiente
Control de iluminación personalizado
Sistemas de seguridad y timbre
Entretenimiento y comida para mascotas
Control y gestión de jardines
Transmisión multimedia en dispositivos
Monitoreando casi todo
Si no tiene un dispositivo Amazon Alexa, puede usar Echosim.io para probar virtualmente sus habilidades de Alexa. Use la API Alexa Smart Home para crear fácilmente capacidades, toque las API de autoservicio, la documentación, las plantillas y las muestras de códigos que lo guiarán rápidamente hacia la publicación de Habilidades. Use el Servicio de voz de Alexa para integrar Alexa en su producto usando el SDK y las API.
Aquí tiene los premios que puede ganar:
Mejor ganador general de habilidades de Smart Home en Alexa: $ 14,000 en efectivo, paquete de Kickstarter: Fondo promocional de videos y marketing, certificación Dragon Innovation, una sesión de entrenamiento en Kickstarter de 60 minutos (lleve su proyecto al producto)
La mejor habilidad y artefacto para interiores Smart Home de Alexa: $ 8,000 en efectivo + 60 minutos de entrenamiento en Kickstarter
Mejor habilidad al aire libre de Alexa Smart Home Skad & Gadget: $ 8,000 en efectivo + 60 minutos de entrenamiento en Kickstarter
Comodines y aditamentos caseros de Smartcard de Alexa: $ 6,000 en efectivo + 60 minutos de entrenamiento en Kickstarter
Mejor integración y gadget de servicio de voz de Alexa: $ 8,000 + 60 minutos de entrenamiento de Kickstarter
NOTA: Hackster solo realiza premios en efectivo a través de PayPal.
Calendario del concurso :
La presentación del proyecto se abrió el 21 de noviembre de 2017 a las 8:01 a.m. PT
Fecha límite para envío de proyectos 24 de febrero de 2018 a las 11:59 p.m. PT
Los ganadores se anunciaran el 12 de marzo de 2018 a las 11:59 p.m. PT
Ambilight es una tecnología diseñada para mejorar la experiencia visual analizando las señales entrantes y produciendo una luz lateral ambiental adecuada al contenido que se está visualizando en la pantalla un resultado bastante atractivo , el cual además de la sensación de estar viendo una pantalla aun mayor.
Hasta hace muy poco este efecto solo se podía conseguir si comprábamos un TV que contara con ese sistema y no había otra opción, pero recientemente con la aparición de placas con suficiente capacidad computacional, se puede emular gracias al uso por ejemplo de una Raspberry Pi . Aun mas sencillo y facil es hacerlo a través una placa Arduino UNO (o incluso Arduino nano), un ordenador,y una tira de 50 leds para iluminar una televisión de 47 pulgadas..!Y todo sin tener que soldar nada!.
Antes de empezar con el montaje , la tira de leds RGB direccionable es muy importante que este basada en el chip ws2801 (LEDs WS2801) pues el menos no nos dará ningún tipo de problemas usando una Placa Arduino, siendo ademas la mas utilizada para este tipo de montajes.
Existen tiras basadas en el chips WS2801 en formato “luces de navidad”,pero lo mas habitual es adquirirla en forma de cinta autoadhesiva.
Una peculiaridad de esta tiras ,es que se pueden cortar según la longitud que se requieran , así como además que también es posible ampliarlas gracias a los conectores que llevan en cada extremo, pudiendo unirse entre ellas hasta donde se necesite.
Asimismo, para alimentar dicha tira también necesitaremos aparte una fuente de alimentación dimensionada para el números de leds que vayamos a adquirir , como puede ser una fuente de 5v y 2A (para 50 leds)
La tira de leds por simplicidad la conectaremos a una placa Arduino UNO , el cual puede adquirirse en Amazon por menos de 10€
Arduino UNO comparado a la versión anterior, usa el Chip alternativo Atmega 16U2 8U2, lo que quiere decir una tasa más alta de transferencia y memoria.Ademas esta versión cuenta con la interfaz SDA y SCL .
Los datos de LED y las líneas de reloj los conectaremos a la salida SPI de Arduino,es decir los datos SPI salen del pin digital 11 y el reloj es el pin digital 13.
Los LED deben ser alimentados externamente fuera de la linea de +5V de Arduino 5V, pues podrían estropear el regulador de este . La masa o tierra, por el contrario, si debe ser conectada a la masa de Arduino.
Normalmente las tiras de leds WS01 ,suelen tiene 6 cables : tres de ellos lo conectaremos los pines (11,13 Y GND) del Arduino, y los otros dos conectaremos a la fuente de 5V.
La forma de conectarlos todo esto es según el siguiente esquema :
El cable VERDE proveniente del pin SD de la tira de leds al pin 11 del Arduino Uno.
El cable ROJO proveniente del pin CK de al tira de leds al pin 13 del Arduino Uno.
El cable NEGRO proveniente del pin GND de la tira de leds al pin GND del Arduino Uno.
El cable AZUL proveniente del pin +5V de al tira de leds lo dejaremos sin conectar
El cable Rojo grueso en paralelo con el azul proveniente de la tira de leds a la conexión +5v de la fuente auxiliar
El cable NEGRO en paralelo con el negro proveniente del pin GND de la tira de leds al GND de la fuente auxiliar
Conectamos pues la tira de leds por un lado a una fuente de 5V /2amp . y por el otro a Arduino , por uno de los extremos y las otras 2 o 3 tiras con los adaptadores macho hembra adecuados a continuación siguiendo la flecha de las tiras haciendo un rectángulo que rodeara nuestro monitor o TV . Evidentemente en uno de los extremos de inicio es donde haremos las conexiones y todas la demás se harán por medio de los conectares .
Hemos de tener cuidado ya que uno de los extremos de la tira de luces es pues para conectar la primea tira al arduino y a la fuente :de esta forma, en cada extremo quedan sueltos los cables opuestos (normalmente el cable rojo es el positivo y el azul el negativo.) que conectaremos también entre si para dar alimentación a los leds ( aunque los conectores también den energía ya que llevan las 4 conexiones incluida los 5v y GND)
SOFTWARE EN EL ARDUINO
Para gobernar , la tira de leds la conectaremos a un Arduino que ademas hará de “puente” entre el ordenador host y la tira basado en WS2801 . Los datos de LED se transmiten, y no se almacenan en búfer, lo que significa que si hay mas código en Arduino podrían generar demoras debido a la RAM limitada del Arduino,pero no obstante el algoritmo ejerce cierto esfuerzo para evitar las pérdidas de buffer
El protocolo de cierre WS2801, basado en retardo, podría desencadenarse inadvertidamente si el bus USB o la CPU está desbordada con otras tareas. Este código almacena datos entrantes en serie e introduce pausas intencionadas si hay una amenaza del buffer lleno prematuro.
El costo de esta complejidad es algo que reduce el rendimiento, pero la ganancia es muy buena evitando la mayoría de los fallos visuales incluso aunque finalmente una función de carga en el bus USB y host CPU, quede fuera de control.
Ahora toca cargar el sketch para lo cual descaremos el código Adalight para las luces aqui
Descomprimireos el archivo y añadimos los archivos que acabamos de descargar en la carpteaMis documentos/Arduino y ng
Arrancaremos el software de arduino y configuramos en el ide la placa Arduino en Herramientas –>Placa Arduino Uno ( o la placa que tengamos) sin olvidar el puerto de comunicaciones
Iremos a File>Sketchbook>Arduino> Adalight y uan vez cargado el sketch debemos ajustar el numero de leds (88 en nuestro casoo) que tengamos en la instalación así como la velocidad máxima (500000 )
#define NUM_LEDS 88 // Max LED count
#define LED_PIN 11 // arduino output pin – probably not required for WS2801
#define GROUND_PIN 10 // probably not required for WS2801
#define BRIGHTNESS 255 // maximum brightness
#define SPEED 500000 // virtual serial port speed, must be the same in boblight_config
Ahora ya podemos compilar el software( botón primero que pone un v de verificar).
Si no ha habido errores ahora podemos subir el sw pulsando el botón de Upload( flechita a la derecha en el software de Arduino.
Al contrario de lo que sucede con el sketch LedlIght donde se iluminan las luces de 3 colores rojo, verde y azul si todo ha ido bien, si tenemos conectadas los leds al arduino y a la fuente externa, cuando carguemos este código dentro del Arduino solo lucirá el primer led de la cadena lo cual significará que estamos en buen camino.
El código dentro de Arduino es no volátil, así que no se borrará aunque desconecte la tarjeta.
Sw en el PC
Una vez tenemos el sw de Adalight en un Arduino, toca instalar el programa de captura que envíe las señales correspondiente a nuestro Arduino
Entre los programas de captura ambibox es el mejor especialmente con windows 10, ya que no solo tiene la capacidad para capturar su escritorio sino de poner un fondo personalizable, convertir la tira en luces psicodelicas en función del audio,fondo variable automático ,plugins, etc
Se puede encontrar aqui, tanto el software como el add-on para XBMC.
Una vez descargado , durante la instalación se puede seleccionar la opción de instalación completa ,marcando ademas la opción de descarga e instalación de playclaw.
Empezamos la configuración, pulsamos sobre el botón de mas ajustes :
En la parte inferior ,como vemos seleccionaremos como Device Adalight , elegiremos el puerto de comunicaciones ( el mismo al que este conectado el Arduino) y en el numero de zonas, coloremos el numero de leds total que tengamos instalados ( en el ejemplo 88).
Asimismo no olvidar orden de colores,lo cual podemos obtener fijando un color mediante el selector de Mode:Static Background ,pinchando en el color ( aparecerá la paleta),pinchando en el check de Use baclight y seleccionando en el combo order of colors la opción adecuada hasta que el color de los leds sea similar al de paleta ( en mi caso es BGR)
En este programa no olvidar en salvar cada cambio en “Save Setting” pues si no lo hacemos perderemos cualquier cambio que hagamos
Con las nuevas opciones ya podemos avanzar en la configuración de nuestra instalación para lo cual seleccionaremos en Mode :Screen capture
Acto seguido configuramos la ubicación de los leds, pulsando sobre SHOW AREAS OF CAPTURE y sobre el asistente de configuración,elegimos si queremos una instalación de 3 lados o 4. También es importante la cantidad de leds que tenemos en cada lado de la TV especialmente horizontal o verticalmente.
Marcamos asimismo el orden de los leds, de izq->der o de der->izq.
Con esto ultimo ya tenemos nuestro software listo para funcionar
.
Este programa además tiene unas opciones muy interesantes, en esta pantalla:
Podemos configurar muchos parámetros de cada led, aplicar correcciones de color y gamma ,brillo ,etc
También podemos activar un servidor web para controlar el software desde el teléfono
El siguiente paso es instalar el add-on para el XBMC.Para ello Lo descompriremo y lo ponemos en la ruta:”Users/Username/AppData/Roaming/XBMC/addons”
Ahora en el apartado de add-on ( en el menú de la izquierda ) se puede configurar un poco el comportamiento, aquí cada cual que lo puede personalizar a su gusto.
Una solución para que funcione a pantalla completa es usando el software playclaw.
Para ello, se pueden es crear 2 perfiles dentro de ambibox, uno para el escritorio y otro para XBMC.
En este ultimo el sistema de captura que elijo es playclaw de modo que cuando se inicie un video en XBMC dará la opción de elegir que perfil cargar, de modo que se puede elegir el perfil XBMC y asi cuando se salga de XBMC se puede vplber al perfil de escritorio.
Por supuesto se debe tener corriendo el software playclaw para que esto funcione.
Por ultimo hay un modo que haya las delicias de los que les guste la música : el modo Color music , el cual permite modular las luces en función de lo que se este escuchando por el canal de sonido principal.
Obviamente si queremos que las luces acompañen a la imagen de video de la pantalla principal el modo de captura de pantalla elegido sera [Software] Screen capture y el Método Windows 8 ( aunque tengamos Windows 10 instalado en nuestro equipo)
Para terminar dejamos dos test de vídeo , que a pantalla completa, nos pueden servir para testear si nuestro sistema responde correctamente.
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.
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:
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:
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)
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 .
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.
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], entoncesSerial.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!.
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.