Mostrando entradas con la etiqueta Arduino. Mostrar todas las entradas
Mostrando entradas con la etiqueta Arduino. Mostrar todas las entradas
TOP

¿QUÉ ES UN LED WS2812B?


Definición

Los WS2811, WS2812 y WS2812B son LED que disponen de lógica integrada, por lo que es posible variar el color de cada LED de forma individual (a diferencia de las tiras RGB convencionales en las que todos los LED cambian de color de forma simultánea).

Están basados en el LED 5050, llamado así porque tiene un tamaño de 5.0 x 5.0 mm. Es un LED de bajo consumo y alto brillo, que incorpora en un único encapsulado los 3 colores RGB.

La genial novedad del WS2812B (y resto de familia) es añadir un integrado dentro de cada LED, que permite acceder a cada pixel de forma individual. Por este motivo este tipo de LED se denominan “individual addressable”.

Esto abre la puerta a un sinfín de aplicaciones y combinaciones, que van desde dotar de iluminaciones distintas zonas con una única tira, animaciones complejas, o incluso generar pantallas enteras de alta luminosidad.

El WS2812B es el más moderno de esta familia de LED, que tambien se le denomina NeoPixel


PRECIO

Podemos encontrar conjuntos de WS2812B en una gran variedad de formaciones, incluidas tiras, paneles, y anillos.

Encontramos tiras de distintas longitudes, que van desde 1 a 5m. En cuanto a densidad, podemos encontrar tiras de 30, 60, y 144 LED por metro. Además, existen tiras no impermeables (IP30), y tiras impermeables (IP67), que envuelven un plástico protector el PCB. Los precios varían enormemente entre estos factores, desde unos 5€ por una tira LED de 1m IP30 de 30 LED/m, a 30€ por una tira de 5M IP67 de 60 LED/metro.

En cuanto a disposición en anillo, podemos encontrar anillos de 16 LED por 3€ y de 24 LED por 4€.

En paneles, encontraremos tanto paneles flexibles como no flexibles. Podemos encontrar paneles flexibles de 8x8 por 15€, 16x16 por 35€, de 8x32 por 50€.

¿CÓMO FUNCIONA UN WS2812B?

El funcionamiento de un WS2812b es realmente ingenioso. Cada LED dispone de un integrado que almacena 3 bytes (24 bits), que corresponden con los 3 colores del RGB. Cada pixel puede tener 256 niveles en 3 colores, lo que supone un total de 16.777.216 posibles colores.

Cuando un LED recibe un flujo de bytes, almacena los últimos bytes recibidos y trasmite los que contenía al siguiente LED. Finalmente, con una señal de “resetcode” cada LED muestra el último valor almacenado.

Esta genial idea permite hacer configuraciones de múltiples LED, en los que únicamente tenemos que comunicarnos con el primero de ellos y cada LED se actúa de transmisor de la secuencia a los LED posteriores. Además permite que podamos encadenar o dividir tiras de LED y cualquier fragmento seguirá funcionando porque todos los LED tienen exactamente el mismo comportamiento.

Cada vez que un punto trasmite al siguiente una señal, realiza una reconstrucción de forma que la distorsión y el ruido no se acumulan. Esto permite alimentar tiras de más de 5m sin necesidad de dispositivos adicionales.

La transmisión de 0 y 1 y resetcode se realiza mediante señales pulsadas temporizadas.

  • Un 0 se realiza por un pulso HIGH de 0,35 us, seguido de un periodo LOW de 0,9.
  • Un 1 se realiza por un pulso HIGH de 0,9us y LOW 0,35us.
  • El “resetcode” se manda como una señal LOW de 50us.
  • arduino-ws2812b-funcionamiento

    La frecuencia de funcionamiento es superior a 400Hz/s. Esto permite que se puedan animar más de 1024 puntos a una tasa refresco de 30fps.

    Para más información y detalles sobre su funcionamiento, os aconsejamos consultar el Datasheet del WS2182B.

    ESQUEMA MONTAJE

    El esquema eléctrico para conectar LED WS2812b es sencillo. Cada LED alimenta al siguiente, por lo cual solo tendremos que conectar con el primer elemento de la formación.

    Disponemos de 3 pines, 2 de alimentación (5V y GND) y entrada de datos (Din) para recibir los datos desde Arduino.

    arduino-ws2812b-esquema

    La alimentación de la tira LED tiene que realizarse desde una fuente de alimentación externa de 5V, dado que Arduino no dispone de potencia suficiente. La referencia GND será común.

    Cada LED WS2182b consume unos 60mA (0,3W), dando color blanco intenso (20mA por cada componente de color) Esto supone un consumo de 9W para 30 LED, y 18W para 60 LED, lo que es mucha potencia en una fuente de 5V.

    Afortundamante, no siempre vamos a iluminar todos los LED de forma simultánea con blanco a máxima intensidad. Dependiendo del programa y efectos que hagamos la potencia requerida será mucho menor.

    En casos de mucho consumo y gran número de LED también puede ser necesario alimentar por más de un punto a la vez (por ejemplo, cabeza y cola de la tira). De lo contrario, la caida de tensión hará que los últimos LED viren a rojo.

    Podéis emplear la fuente de 5V para alimentar el propio Arduino. Lo que no podéis es alimentar la tira desde la salida de 5V de Arduino.
    Recordar, la referencia GND siempre debe ser común. Podéis dañar un componente de no hacerlo.

    En cuanto al pin de señal, podemos emplear cualquiera de las salidas digitales de Arduino. Es necesario emplear una resistencia de 470 ohmios entre el pin digital y el pin de señal del WS2818b, o podéis dañar los primeros LED.

    También se aconseja instalar un condensador de al menos 1000 uF entre GND y 5V (aunque en los montajes que yo he probado nunca la he puesto y ha funcionado correctamente).

     

      EJEMPLOS DE CÓDIGO

      Podemos mandar la señal directamente controlando adecuadamente los timings necesarios. Sin embargo, lo normal es que empleemos una librería existente que se encargue de esta tarea por nosotros. Tenemos varias librerías disponibles para manejar WS2812b desde Arduino.

      Por un lado tenemos la librería NeoPixel de Adafruit que es sencilla de usar pero relativamente lenta, lo que la hace inadecuada para efectos complejos.

      Por otro lado, tenemos la librería FastLED, algo más difícil pero a cambio permite patrones mucho más complejos.

      Bajaros ambas bibliotecas y probar los ejemplos que vienen incluidas, para que decidáis que tipos de efectos necesitáis y con librería estáis más agusto.

      A partir de aquí, depende de vuestra imaginación y del efecto que queráis conseguir. No hay límites, y la cantidad de combinaciones es infinita. Animaros a programar vuestros propios efectos y animaciones.

      RESULTADO

      Aquí tenéis un vídeo mostrando el resultado de ejecutar alguno de los ejemplos.


 

-- Fin --

TOP

¿QUÉ ES MQTT?

 

 SU IMPORTANCIA COMO PROTOCOLO IOT



 

En esta entrada vamos a ver MQTT, el protocolo de comunicación Machine to Machine (M2M) que tanta popularidad está alcanzando para la comunicación entre dispositivos de IoT.

En la entrada anterior sobre IoT vimos los principales protocolos de comunicación para IoT. Ahí vimos los conceptos de pub-sub, message queue, y message service. Usaremos estos conceptos así que, si tenéis dudas, deberías pasaros y echarle un vistazo.

El protocolo MQTT se ha convertido en uno de los principales pilares del IoT por su sencillez y ligereza. Ambos son condicionantes importantes dado que los dispositivos de IoT, a menudo, tienen limitaciones de potencia, consumo, y ancho de banda.

En esta entrada veremos este interesante protocolo, y en las próximas entradas profundizaremos en la creación de sistemas IoT con dispositivos como el ESP8266 o Raspberry Pi.

 

¿QUÉ ES MQTT?

MQTT son las siglas MQ Telemetry Transport, aunque en primer lugar fue conocido como Message Queing Telemetry Transport. Es un protocolo de comunicación M2M (machine-to-machine) de tipo message queue.

Está basado en la pila TCP/IP como base para la comunicación. En el caso de MQTT cada conexión se mantiene abierta y se "reutiliza" en cada comunicación. Es una diferencia, por ejemplo, a una petición HTTP 1.0 donde cada transmisión se realiza a través de conexión.

MQTT fue creado por el Dr. Andy Stanford-Clark de IBM y Arlen Nipper de Arcom (ahora Eurotech) en 1999 como un mecanismo para conectar dispositivos empleados en la industria petrolera.

Aunque inicialmente era un formato propietario, en 2010 fue liberado y pasó a ser un estándar en 2014 según la OASIS (Organization for the Advancement of Structured Information Standards).

 

¿CÓMO FUNCIONA EL MQTT?

El funcionamiento del MQTT es un servicio de mensajería push con patrón publicador/suscriptor (pub-sub). Como vimos en la entrada anterior, en este tipo de infraestructuras los clientes se conectan con un servidor central denominado broker.

Para filtrar los mensajes que son enviados a cada cliente los mensajes se disponen en topics organizados jerárquicamente. Un cliente puede publicar un mensaje en un determinado topic. Otros clientes pueden suscribirse a este topic, y el broker le hará llegar los mensajes suscritos.

Los clientes inician una conexión TCP/IP con el broker, el cual mantiene un registro de los clientes conectados. Esta conexión se mantiene abierta hasta que el cliente la finaliza. Por defecto, MQTT emplea el puerto 1883 y el 8883 cuando funciona sobre TLS.

Para ello el cliente envía un mensaje CONNECT que contiene información necesaria (nombre de usuario, contraseña, client-id…). El broker responde con un mensaje CONNACK, que contiene el resultado de la conexión (aceptada, rechazada, etc).

Para enviar los mensajes el cliente emplea mensajes PUBLISH, que contienen el topic y el payload.

Para suscribirse y desuscribirse se emplean mensajes SUBSCRIBE y UNSUSCRIBE, que el servidor responde con SUBACK y UNSUBACK.

Por otro lado, para asegurar que la conexión está activa los clientes mandan periódicamente un mensaje PINGREQ que es respondido por el servidor con un PINGRESP. Finalmente, el cliente se desconecta enviando un mensaje de DISCONNECT.

 

CALIDAD DEL SERVICIO (QOS)

MQTT dispone de un mecanismo de calidad del servicio o QoS, entendido como la forma de gestionar la robustez del envío de mensajes al cliente ante fallos (por ejemplo, de conectividad).

MQTT tiene tres niveles QoS posibles.

  • QoS 0 unacknowledged (at most one): El mensaje se envía una única vez. En caso de fallo por lo que puede que alguno no se entregue.
  • QoS 1 acknowledged (at least one): El mensaje se envía hasta que se garantiza la entrega. En caso de fallo, el suscriptor puede recibir algún mensaje duplicados.
  • QoS 2 assured (exactly one). Se garantiza que cada mensaje se entrega al suscriptor, y únicamente una vez.

Usar un nivel u otro depende de las características y necesidades de fiabilidad de nuestro sistema. Lógicamente, un nivel de QoS superior requiere un mayor intercambio mayor de mensajes de verificación con el cliente y, por tanto, mayor carga al sistema.

SEGURIDAD EN MQTT

La seguridad siempre debe ser un factor importante a considerar en cualquier sistema de comunicación M2M. El protocolo MQTT dispone de distintas medidas de seguridad que podemos adoptar para proteger las comunicaciones.

Esto incluye transporte SSL/TLS y autentificación por usuario y contraseña o mediante certificado. Sin embargo, hay que tener en cuenta que muchos de los dispositivos IoT disponen de escasa capacidad, por lo que el SLL/TLS puede suponer una carga de proceso importante.

En muchos casos, la autentificación consiste en una contraseña y usuario que son enviados como texto plano. Por último, también es posible configurar el broker para aceptar conexiones anónimas.

Todo esto debe ser tenido en cuenta a la hora de configurar un sistema MQTT, y entender los riesgos de cada uno de ellos, así como su impacto en la eficiencia del sistema.

VENTAJAS DEL MQTT

Son varias las ventajas del protocolo MQTT como sistema de comunicación M2M. Por un lado, tenemos todas las ventajas del patrón pub/sub que vimos en la entrada anterior, como son escalabilidad, asincronismo, desacomplamiento entre clientes.

Además, MQTT aporta una serie de características que le han hecho sobre salir sobre otros competidores. La principal, como hemos mencionado, es su sencillez y ligereza. Esto lo hace adecuado para aplicaciones IoT, donde frecuentemente se emplean dispositivos de escasa potencia.

Además, esto menor necesidad de recursos se traduce en un menor consumo de energía, lo cual es interesante en dispositivos que funcionan 24/7 y muy especialmente en dispositivos alimentados por batería.

Otra consecuencia de la ligereza del protocolo MQTT es que requiere un ancho de banda mínimo, lo cual es importante en redes inalámbricas, o conexiones con posibles problemas de calidad.

Por último, MQTT dispone de medidas adicionales importantes, como la seguridad y calidad del servicio (QoS). Por último, es una solución largamente testada y consolidad, que aporta robustez y fiabilidad.

CONCLUSIÓN

En resumen, hemos visto algunas pinceladas de MQTT, un protocolo muy interesante para IoT (aunque ya vimos que no es el único). MQTT tiene las ventajas de un patrón pub/sub, y destacando por la sencillez de la comunicación.

El protocolo MQTT se ha alzado como uno de los estándares para aplicaciones IoT tanto comerciales como de ámbito maker. Por supuesto, hay muchos más aspectos de los que podríamos hablar mucho más sobre MQTT, como funciones avanzadas de seguridad, permanencia de los mensajes en el broker, configuración de varios brokers.

En próximas entradas seguiremos profundizando en MQTT, viendo cómo organizar correctamente los topics, los principales brokers, y lo emplearemos en casos prácticos en dispositivos como Raspberry Pi, ESP8266. ¡Hasta pronto!

 

Fuente de esta entrada:  https://www.luisllamas.es/que-es-mqtt-su-importancia-como-protocolo-iot/

TOP

IoT - Internet Of Things

IoT viene del inglés "Internet Of Things", es decir, "Internet de las cosas", pero ¿qué es exactamente? ¿por qué está tan de moda ahora? ¿qué aplicaciones tiene? ¿qué tecnologías hay disponibles?

Este artículo pretende ser una introducción a IoT para todas aquellas personas que a pesar de haber oído hablar de ello no tienen una idea clara de lo que es, para ello se intenta dar una respuesta a todas las preguntas planteadas y adicionalmente se introducen conceptos y siglas relacionadas con esta temática.

¿Qué es IoT?

La definición de IoT podría ser la agrupación e interconexión de dispositivos y objetos a través de una red (bien sea privada o Internet, la red de redes), dónde todos ellos podrían ser visibles e interaccionar. Respecto al tipo de objetos o dispositivos podrían ser cualquiera, desde sensores y dispositivos mecánicos hasta objetos cotidianos como pueden ser el frigorífico, el calzado o la ropa. Cualquier cosa que se pueda imaginar podría ser conectada a internet e interaccionar sin necesidad de la intervención humana, el objetivo por tanto es una interacción de máquina a máquina, o lo que se conoce como una interacción M2M (machine to machine) o dispositivos M2M.

¿Por qué está de moda el IoT? ¿Qué aplicaciones tiene?

Internet ha evolucionado rápidamente y esto ha permitido que IoT sea ya una realidad y no sólo una visión de futuro. La fama de esta tecnología radica principalmente en todas las aplicaciones y posibilidades que nos proporciona tanto para mejorar tanto la vida cotidiana de las personas como los entornos empresariales, dónde ya se está implantando desde hace algún tiempo.

Las aplicaciones son casi infinitas, pero se van a describir algunos ejemplos para dar visibilidad de alguna de ellas, tanto en la vida cotidiana como en el entorno empresarial:

  • Supongamos el frigorífico de una casa, dónde se conservan los alimentos que, a su vez, tienen una fecha de caducidad. En este escenario, se podría conectar el frigorífico a internet para que avisara al usuario a través de su teléfono móvil, por ejemplo, de cuando caducan los alimentos, si hay una bajada de temperatura por alguna avería, si algún alimento se ha está acabando o simplemente el consumo de electricidad en base al número de veces que se abre la puerta de la nevera.
  • Otro escenario podría ser el de la domótica, dónde ya hay numerosos dispositivos que se conectan a Internet para facilitar la vida de los seres humanos, véase por ejemplo los dispositivos controlados por voz a los que se les solicita que reproduzcan una canción desde un repositorio en internet, o los dispositivos y aplicaciones que permiten controlar todos los parámetros del agua de un acuario, o incluso los sistemas de alarmas de las casas que se conectan con las centrales. Los sistemas de seguridad que se conectan a la red para avisarte cuando alguien entra en tu casa o aquellos dispositivos que permiten encender la calefacción desde un teléfono móvil.
  • Si se piensa en aplicaciones industriales, IoT es usado ya en muchas plantas de producción dónde los dispositivos y sensores conectados a la red permiten analizar los datos y generar alarmas y mensajes que son enviados a los distintos usuarios para que tomen las acciones necesarias o incluso iniciar protocolos de actuación de forma automática, sin interacción humana, para corregir o tratar dichas alarmas.
  • Otro ejemplo de aplicación sería en el sector ganadero dónde la monitorización biométrica y la geolocalización es un factor que ayuda a los ganaderos a que sus animales estén siempre controlados.

Términos muy relacionados con IoT pueden ser "Smart Cities" y "Smart Buildings" dónde se utilizan dispositivos de IoT para mejorar el control del tráfico, el control de los suministros de agua y calefacción en un edificio, el control del transporte público, etc.

 

¿Qué tecnologías se utilizan?

Como se puede ver, IoT está ya aquí y es una realidad, su ámbito de aplicación es muy amplio y cada día surgen más y más dispositivos que hacen posible esta tecnología. Dicha tecnología asociada al IoT permite recoger datos y mandarlos a la red para su análisis o incluso realizar un análisis previo y después mandarlos a la red.

En este proceso de comunicación es dónde IoT está evolucionando ya que uno de los escollos a salvar es el tipo de protocolo con el que se comunican dichos dispositivos (es decir, "el idioma" que hablan entre ellos). Actualmente, existen dispositivos o sensores muy nuevos cuya comunicación y conexión a internet es fácil y directa, pero también existen muchos otros dispositivos más antiguos no estándar cuyo protocolo de comunicación y conexión no es trivial, es ahí dónde viene uno de estos escollos a salvar. Adicionalmente, cada fabricante o "vendor" tiene sus propios protocolos de comunicación que hace que no todos los dispositivos sean compatibles. Uno de los mecanismos que se ha intentado establecer es la creación un protocolo abierto y estándar (propuesto por IBM) denominado MQTT (Message Queuing Telemetry Transport), que permite que todos los fabricantes puedan participar y soportarlo, facilitando así la comunicación entre distintos dispositivos de diferentes fabricantes.

Por otro lado, si se buscan dispositivos para IoT se tienen considerar diversos aspectos como el bajo consumo y que sean de pequeño tamaño, de ahí que los SoCs (SoC, System on Chip) sean una parte importante de dichos dispositivos. Un SoC es un circuito integrado que contiene todos o gran parte de los módulos que tendría un ordenador (se pueden encontrar SoCs en los teléfonos móviles, por ejemplo). Como ejemplos de grandes fabricantes tenemos ARM e Intel, aunque no son los únicos, existen otros más recientes como MediaTek, Qualcomm o Samsung. Adicionalmente, existen alternativas muy asequibles para todos los usuarios como Arduino que permite que un usuario puede montarse sus propios dispositivos y circuitos de control para el hogar.

Otra parte importante de un dispositivo IoT son los sensores, el procesador y la plataforma se encargan de gestionar la información, pero ésta, debe provenir de los sensores. En este sentido, Arduino ha permitido que este tipo de tecnología esté al alcance de todos los usuarios. Adicionalmente, los vendors que de servicios en la nube también ofrecen kits preparados con diversos sensores y que permiten conectarse de forma sencilla con dichos servicios.

Finalmente, otro componente importante tecnológicamente para habilitar el IoT es la tecnología utilizada para la comunicación entre varios dispositivos cuya ubicación no sea próxima, es decir, las redes de comunicación. En este apartado se puede hablar por ejemplo de comunicación a través de una red "WiFi" que, aunque admite una tasa de transferencia alta, tiene un consumo alto y un bajo alcance. Otro ejemplo conocido sería una red móvil (3G, 4G o la futura 5G) dónde el alcance sería mayor y de menor consumo. Adicionalmente, existen otro tipo de redes específicas para IoT cómo puede ser Sigfox (con gran cobertura tanto en Estados Unidos como en Europa) o LoRa.

Para terminar, simplemente comentar que hablar de tecnología en IoT, significa hablar de una serie de soluciones propuestas por diferentes fabricantes y que están en continua evolución. No existe una única tecnología, sino muchas de ellas que hay que analizar para adaptarlas a la solución concreta que se quiera desarrollar.

Como se ha comentado, IoT es algo muy extenso con infinitas aplicaciones, sin embargo, que los dispositivos estén conectados o tengan algún grado de inteligencia, no es nuevo, la clave es como IoT propone hacerlo ahora. La idea es que estén conectados a Internet y, a ser posible, de forma directa, que sean capaces de recopilar datos e información y transmitirla a otros dispositivos, y que dicha información pueda ser guardada y analizarla para la mejora del propio funcionamiento del dispositivo o la mejora de otros dispositivos.

Personalmente, opino que IoT es una tendencia tecnológica que va a estar evolucionando continuamente y que va a ser imparable. Actualmente está siendo utilizado en múltiples campos como pueden ser plantas de producción para realizar mantenimiento preventivo y analizar datos, en el sector médico, dónde se puede monitorizar las constantes de un paciente y actuar antes de que la situación sea crítica, en casa, con las “SmartHomes”, dónde el microondas puede empezar a calentar la comida antes de que el usuario llegue a casa, en los llamados “wearables”, que son todos aquellos dispositivos que pueden ser incorporados a la ropa (por ejemplo, unas zapatillas que cuenten todos los kilómetros que corre una persona) o al cuerpo, como lo “Smartwaches”, y un largo etcétera.

 

Información capturada de:  https://www2.deloitte.com/es/es/pages/technology/articles/IoT-internet-of-things.html


TOP

10 PRIMEROS PASOS para PROGRAMAR ARDUINO desde 0


Excelente Profe
TOP

Arduino Shields

Las Vitaminas de Arduino


Simplificando mucho una placa Arduino es un conjunto de entradas y salidas con un microcontrolador entre ambas, el cual, en función de la información que recibe de las entradas y de la programación introducida en él, gestiona las salidas de forma predeterminada.
Una Shield Arduino lo que hace es dotar de funcionalidades adicionales a la placa Arduino, de forma que aumenta sus capacidades, ya sean de comunicación (con otras placas o con el entorno), de actuación (al poder gestionar mas sistemas),...etc.
Read more »
TOP

10 formas de destruir un arduino

Hoy os traigo la traducción de una entrada publicada en Rugged Circuits y que enumera 10 formas de destruir un Arduino, o dicho de otra forma, diez cosas con las que debemos andarnos con mucho ojo si no queremos que esta útil herramienta sufra daños irreparables.

Golpearla con un martillo, disparar, tirarla a la piscina… No es a lo que nos referimos, vamos a mostrar cómo destruir eléctricamente una placa de Arduino. Mucha gente lo descubre “por las malas”, un olor raro, un componente  con marcas de quemadura, o el temido mensaje de “programador no sincronizado” suelen ser señales de que hemos aprendido la lección de la peor forma posible.
Veamos las 10 formas más fatíricas de acabar con nuestro Arduino en la basura......


Read more »
TOP

Los módulos GSM / GPRS


Con este periférico podremos usar nuestro Arduino como si fuera un teléfono móvil, y nos servirá para comunicarnos con él esté donde esté (siempre que haya cobertura, claro).

Para comunicar el Arduino y la tarjeta GPRS utilizaremos los comandos AT, que ya os sonarán si sois lectores regulares de esta página. En esta primera sesión nos centraremos en presentar el módulo y ponerlo en marcha; y haremos dos programillas para enviar llamadas y SMS al exterior utilizando los susodichos comandos AT.
Así que sin más, os dejamos el enlace a la nueva sesión, que esperamos encontréis interesante.


Read more »
TOP

Módulo Elechouse Voice Recognition V3


 Reconocimiento de Voz

Read more »
TOP

Audio (Mod. SOMO 14D)

Hoy empezamos una serie de tutoriales sobre audio y reconocimiento de voz con Arduino.
Realmente impresionante pero muy sencillo gracias a Arduino y los dos módulos que veremos.
Hoy os enseñaré como gracias al primero, el SOMO 14D podéis fácilmente añadir audio a vuestros proyectos.
Y así poder crear robots parlanchines, proyectos musicales, avisos acústicos e infinidad de posibilidades.

 

Hablemos primero del módulo con el que jugaremos hoy. Se trata de un circuito de la marca 4D Systems (famosa por sus pantallas) que nos permitirá reproducir archivos de audio con solo conectar un pequeño altavoz de 8 Ohmios. De hecho, es capaz de funcionar sin nada más. Lo alimentamos con un par de pilas de 1.5V y colocándole tres pulsadores y ya tenemos control total sobre la reproducción del audio. Incluso posee una salida de línea de audio que podemos utilizar en un amplificador externo u otro equipo.






También podemos controlarlo con 4 pines digitales desde nuestro Arduino, aunque si andamos escasos de pines podemos seguir controlándolo con solo dos pines.
Posee un zócalo para tarjetas MicroSD que es donde introduciremos nuestros archivos de audio para poder reproducirlos.

Veamos los pasos para poder controlar el modulo desde Arduino:

Montaje

Primero conectaremos el módulo a nuestro Arduino.



El módulo trabaja con alimentación de 3V por lo que es muy importante tener cuidado al montarlo ya que si lo alimentamos con los 5 voltios, lo dañaremos. Además como las entradas y salidas del SOMO14D son de 3V debemos colocar resistencias de 470 Ohmnios para adaptar los niveles a las salidas del Arduino que son como sabéis de 5v.
Podemos colocar lo cuatro pines que conectamos al Arduino en cualquiera de los pines digitales, siempre que cambiemos en el código la definición de los mismos.
El led nos permitira saber visualmente cuando si encuentra reproduciendo o no, estado que podemos consultar desde Arduino por el pin BUSY, que para eso está.

Conversion de archivos

Ahora convertiremos los archivos que queremos reproducir. Podéis saltaros este paso si vais a utilizar los sonidos de ejemplo que encontraréis en la sección de enlaces.
Primero prepararemos nuestros archivos de audio, renombrándolos ya que deben estar con el formato "0.mp3", "1.mp3"... "511.mp3" etc para que el sean reconocidos. Podremos utilizar un maximo de 512 archivos.
Una vez los tengamos listos utilizaremos el programa conversor (enlaces), con el que podemos convertir archivos  wav o mp3.

 


Para realizar la conversion, abrimos nuestra carpeta y seleccionamos el tipo de archivo de audio del que partimos. Seleccionamos la frecuencia de muestreo (la más alta soportada es 32000), y finalmente presionamos "Encode".
Nos creará los archivos para nuestro dispositivo, que tendrán extension ".ad4".

Preparacion de la MicroSD

Preparamos nuestra tarjeta formateándola en FAT16. La MicroSD no debe tener una capacidad superior a 2GB (no sería una MicroSD sino una MicroSDHC) ya que corremos el riesgo de que el módulo no la detecte. Una vez formateada copiamos nuestros archivos ".ad4" a la trajeta sin meterlos en ninguna carpeta, directamente en la raiz de la MicroSD. Por último introducimos la tarjeta en el módulo.

Código Arduino


Programamos nuestro Arduino con el código de ejemplo.
Una vez programado ya tendremos nuestro Arduino reproduciendo la primera (la "0.ad4") pista de audio.
El código contiene el protocolo para comunicarse con el SOMO14D en múltiples funciones. Este código que unicamente reproduce una pista de audio utiliza solo una linea para darle la orden de reproducción: PlaySong(0);





Read more »
TOP

Que es el módulo SOMO 14D


El SOMO-14D es un pequeño módulo de audio que permite reproducir sonidos guardados de forma fácil desde practicamente cualquier dispositivo embedido. Soporta formatos de 4-bit ADPCM de 6Khz hasta 32 Khz. Utilizando un software gratuito disponible en descargas, se puede convertir cualquier archivo WAV o MP3 en el formato ADPCM (.ad4) para guardarlo en una tarjeta de memoria micro-SD para luego reproducirlos en el módulo. Ofrece la posibilidad de operar con comandos série (SERIAL-MODE) o en KEY-MODE.



Read more »
TOP

Control con voz a traves del móvil

Después de tener el Arduino accesible a través de internet, se me ocurrió que podía llevar el ejemplo un poco más allá y crear una pequeña aplicación Android de prueba con la que poder actuar sobre el Arduino. Por otro lado, además de “replicar” en Android el control a través de internet se me ocurrió añadirle control por voz a la aplicación al más puro estilo IT crowd (Hello Computer!!).
En el código de la aplicación es bastante sencillo. Sin complicaciones, al ser una aplicación de prueba todo esta directamente incluido en la actividad principal de la aplicación. No voy a pegar el código aquí porque es un poco extenso, pero lo voy a alojar en aquí por si quieres tenerlo de referencia para iniciar tus proyectos o por simple curiosidad (Descarga Proyecto). A continuación puedes ver una captura de pantalla de la aplicación:

 


Read more »
TOP

Conectar Arduino con paneles y tiras LED RGB WS2812B


Read more »
TOP

Comienzo con Arduino

arduino hello

Vamos a hacer nuestro primer programa en Arduino. Asumimos que tenemos una placa Arduino UNO o similar y el IDE estándar de Arduino correctamente instalado.

Read more »
TOP

¿Qué es Arduino? ¿Qué modelo comprar?


que-es-arduino

 

Read more »
TOP

Construir una pantalla gigante LED Pixel

 Para los amantes de LED por ahí, esta pantalla es una construcción relativamente simple en el sentido de Arduino, pero la construcción física podría ser un poco más de tiempo, y / o frustrante. La exhibición del pixel del LED utiliza hebras de LEDs para crear patrones vibrantes, texto o archivos GIF animados que incluso se puede enmarcar y colgar en tu pared. 
 

Read more »
TOP

Guía Con El Mejor Material Para Empezar Con Arduino



En esta ocasión te traigo un post bastante subjetivo. Se trata de un artículo en el que voy a intentar ayudarte a elegir el mejor material para empezar con Arduino en función de tu presupuesto y tus gustos. Si de algo no me cabe duda, es de que los precios te van a gustar.
Evidentemente, podrías comprarte un kit básico de Arduino sin más, lo cual está muy bien si tienes pensado realizar los proyectos del libro de Arduino. Te gastarías unos 20€ (25$) en el libro y entre 30€ (38$) y más de 100€ (126$) en el kit, en función de dónde lo compres (no, no estoy hablando de distintos kits, esa es la horquilla de precios que he encontrado en una búsqueda rápida por Internet) y, después de hacer todos los ejemplos del libro, habrías aprendido mucho sobre Arduino. Sin embargo, cuando quisieses aplicar todo lo aprendido en el libro a algún proyecto o trabajo concreto que quisieses automatizar con Arduino, te tocaría comprar los elementos que necesitases para ese proyecto… y aprender a utilizarlos.

Read more »
TOP

Qué Arduino Comprar Para Empezar



Has oído hablar de Arduino, has visto un par de vídeos chulos en Youtube sobre proyectos que ha hecho la gente y, aunque quizás no tengas muy claro lo que es, ahora quieres comprar uno para empezar a realizar tus propios proyectos pero no te decides con qué Arduino comprar para empezar ni sabes cuál es el mejor sitio para comprarlo. En este artículo tratamos de explicarte qué Arduino comprar para empezar con buen pie y conseguir una placa que se ajuste a tus necesidades.

Nueva revisión del Arduino UNO. 
En este modelo no se puede extraer el chip.


Esta es con toda seguridad la duda más común entre aquellos que quieren empezar con Arduino. 

Read more »
TOP

Cómo comenzar con Arduino



Sí en algún momento, hemos leído sobre Arduino y no tenemos claro como iniciar nuestra aventura con esta placa, pues no tenemos ciertos conocimientos de electrónica y mucho menos de programación pero la curiosidad de poder crear aparatos que hagan lo que nosotros programamos nos incita a adentrarnos en este mundo, –este articulo entonces es para ti–. Pretendemos plantear ciertos puntos y dar ciertos consejos para que podamos tener una visión amplia cuando trabajemos con Arduino.

Read more »