Nativity computer Arduino

Belén navideño animado con Arduino

Hola Yonkis de la robótica!

¿Cansado de los típicos belenes navideños? Con tu placa de Arduino puedes animarlo y sorprender a todos tus invitados.

Objetivo:

Animar un Belén navideño con luces, música y mensajes en pantalla LCD.

Características:

  • Tres tonos musicales que suenan aleatoriamente desde un buzzer pasivo.
  • Pantalla LCD 16×2 que muestra mensajes y los títulos de los tonos musicales que estan sonando.
  • Sensor de ultrasonidos que detecta proximidad para iniciar los tonos musicales.
  • Tiras de luces LED que se encienden al ritmo de los tonos musicales.

Materiales:

  • Placa Arduino Uno
  • Sensor de distancia por ultrasonidos
  • Pantalla LCD Azul 16×2
  • Adaptador IIC/I2C (no es necesario, pero ayuda a simplificar la instalación)
  • Tira de leds 12v
  • Fuente de alimentación DC 12V
  • Transistor NPN PN2222
  • Cables de conexión.

Índice

  1. Melodías navideñas con buzzer pasivo.
  2. Pantalla LCD 16X2
  3. Sensor de distancia ultrasónico
  4. Iluminación LED al ritmo de la música.

1. Melodías navideñas con buzzer pasivo.

Con este código suenan aleatoriamente tres melodías navideñas: Jingle Bells, Santa Claus is coming to town y We wish you a Merry Christmas.

Si abrimos el monitor serie veremos el título de la melodía que está sonando y el numeral de cada melodía.

Conexiones:

Conectar el Buzzer a la salida digital 9 y a GND.



Código melodías navideñas

Es necesaria la librería pitches.h

2. Pantalla LCD 16X2

Una vez configurada la parte de los tonos, pasamos a la pantalla LCD.

En ella mostraremos el título de la canción que está sonando y en la segunda línea mostraremos un mensaje de “Felices Fiestas!”

He usado el controlador I2C para controlar la pantalla a través de únicamente 4 hilos (5v, GND, SDA, SCL).

Incluimos las librerías para la pantalla y configuramos la dirección al inicio del programa: LiquidCrystal_I2C.h y Wire.h

En el Setup incluimos un mensaje de bienvenida

Añadimos el código del LCD después de cada serial.println (“título del tono”)

Así nos iría quedando el código:

Conexiones:

He de reconocer que tuve bastantes problemas a la hora de configurar el LCD con el controlador I2C. No me mostraban caracteres, solo se encendía la pantalla con bloques blancos. El I2C tiene un potenciómetro para regular el contraste, pero aún así no mostraba mas que bloques.

Usé este escáner para comprobar la dirección de mi I2C. Me marcaba que no reconocía ningún I2C. Intercambie las conexiónes de sda con scl y me detectó enseguida la dirección. La 0x3F.

3. Sensor de distancia ultrasónico

Por último, a nuestro código tenemos que añadirle el ingrediente final. Será un disparador que hará que arranque la fiesta.

La librería para el sensor: SR04.h

Añadir en el bucle un condicional para que se active la música cuando se detecte una distancia inferior a 20cm, es decir cuando pongas un obstaculo, como una mano por ejemplo, delante del sensor ultrasónico.

El código quedaría así definitivamente:

Conexiones:

Trig a D12; Echo a D11

4. Iluminación LED al ritmo de la música

En el código de las melodías está incluido el parpadeo del led 13, por lo tanto, en el pin 13 tenemos 5v a ritmo de la música. Yo he usado una tira de led de 12v, por lo que necesitamos instalar un transistor que nos alimente los led cuando haya un HIGH en el pin 13. He usado un transistor NPN PN2222 que me venía en el kit de elegoo.

La función del transistor es que cuando activemos la base 2 con el pin 13 del Arduino, tendremos paso de corriente entre el colector 3 y el emisor 1

¿Qué es Arduino?

Arduino es una plataforma de prototipos electrónica de código abierto (open-source) basada en hardware y software flexibles y fáciles de usar.

En la red dispones de muchos kits de aprendizaje de Arduino con los que podrás iniciarte en la programación de esta placa.

Ventajas

  • Barato
  • Multiplataforma
  • Entorno de programación simple y claro
  • Código abierto y hardware extensible
  • Codigo abierto y software extensible (C++)
  • Multitud de shields y de versiones de placas
  • Amplia comunidad de usuarios

¿Qué podemos hacer con Arduino?

Cómo controlar una cámara con Arduino

Se me plantea un problema a la hora de instalar una cámara. Necesito que mediante control remoto gire horizontalmente para que enfoque a otro punto. Dispongo de un grabador al que se conecta la cámara cctv que almacena las imágenes. Por suerte los DVR (grabador) disponen de una salida para controlar el PTZ (Pan Tilt Zoom) de las cámaras. Estos tienen acceso remoto por http y por apps en Android e IOS que incluyen además del visionado de las imágenes, el control del PTZ.

Con estos datos investigo acerca de estos puertos y descubro que son puertos serie RS485.

Afortunadamente encuentro un módulo para Arduino que me decodifica ese puerto.

Analizo las lecturas y el protocolo de comunicación, en este caso selecciono el PELCO D, uno de los más comunes.

Ya lo tenemos liado, pedido a Amazon que esto parece que se puede hacer.

Objetivo:

Controlar un motor en el eje x para que gire una cámara. El sistema tiene que controlarse con un grabador DVR.

Tecnologías a utilizar:

  • Transmisión serie rs485
  • Pelco D
  • Arduino
  • Controladora de motores paso a paso.

Materiales:

Pelco D

Antes de entrar en detalle, necesito saber un poco acerca del PELCO D.

Pelco D consiste en la transmisión de 7 bytes en hexadecimal.

Byte 0Byte 1Byte 2Byte 3Byte 4Byte 5Byte 6
SyncCamera AddressCommand 1Command 2Data 1Data 2Checksum

Prestando atención al Byte 1, que selecciona el canal, es decir, la cámara que queremos controlar, y al Byte 3 que contiene la información para los movimientos según la siguiente tabla:

 Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
Command 1SenseReservedReservedAuto / Manual ScanCamera on / offIris CloseIris OpenFocus Near
Command 2Focus FarZoom wideZoom TeleTilt DownTilt UpPan LeftPan RightFixed to 0

Por ejemplo:

Si el byte 3 es 00000010 (2 en decimal) Gira horizontalmente (pan) a la derecha.

Si el byte 3 es 00000100 (8 en decimal) Gira horizontalmente (pan) a la izquierda.

Pues tema resuelto. Dejo la demás información para si alguien necesita hacer más funciones.

Puente H – L298N

El L298N es un controlador de motores al cual podemos conectar 2 motores DC o un motor paso a paso de 2 bobinados.

Se alimenta a 12V, al igual que nuestro sistema de vigilancia, y además tiene una salida de 5V para alimentar nuestro Arduino.

Para activar nuestro motor DC que conectaremos a la salida 1 – 2, debemos actuar sobre las entradas IN 1 e IN 2.

Al dejar las dos en LOW el motor se para.

Si ponemos IN1 en HIGH e IN2 en LOW el motor gira a la Izquierda.

En el caso de invertir los estados de IN1 e IN2, el motor invierte el sentido.

Además, dispone de otros pines con los cuales podemos regular la velocidad de giro del motor, los cuales yo dejo puenteados porque no me hace falta. Se trata de los pines ENA y ENB.

Max RS485.

Modulo que usamos para leer las tramas serie que envía el controlador PELCO D de nuestro grabador DVR. En el código he añadido mensajes serie, asique podemos abrir la consola serie de Arduino para comprobar los datos recibidos del DVR cuando mandamos las ordenes.

Así quedaría nuestro código con el cual conseguimos que funcione nuestro proyecto.

 

Esquema de conexiones:

L298N:

  • IN1 – D7
  • IN2-D8
  • 12V – FUENTE 12V
  • GND – GND FUENTE 12V Y GND ARDUINO
  • 5V – salida 5v para Arduino a Vin

MAX RS485:

  • DI – TX1
  • DE- D2
  • RE – D2
  • RO – RX0
  • VCC- 5V ARDUINO
  • GND – GND ARDUINO
  • A – + DVR
  • B – – DVR
Esquema de conexión de arduino para controlar camara

Esquema de conexión de RS485, Arduino y L298N

En este caso uso las señales del PTZ emitidas por el grabador DVR para mover el motor DC, pero se me ocurren otras aplicaciones como activar relés para abrir puertas o encender luces, eso ya a gusto del consumidor.

 

Muchas gracias por leer el artículo, si te ha gustado deja un comentario, si no pues también.

Salu010 (010 = 2 = dos para los de letras)

Iniciación drones de carreras y FPV – Eachine Wizard x220

El Eachine Wizard x220 es uno de los drones de mejor relación calidad precio que hay para iniciarse en los drones de carreras.

Personalmente recomiendo el x220s que es un poco mas caro, pero viene con controladora F4 que es mas completa que la F3 del x220.

A parte del drone, necesitas unos “extras” para poder realizar vuelo en FPV.

Listado de materiales:

TipoModeloPrecioImagen
DroneEachine Wizard X220 FPV Racing RC Drone Blheli_S F3 98.64
Cargador balanceadorCharsoon DC-4S 2-4S Batería de Li-poli/Li-ion Cargador de Equilibrio y Detector de Voltaje con Adaptador de Energía10.28
EmisoraFlysky FS-i6X 2.4GHz 10CH AFHDS 2A RC Transmisor con X6B ia6B A8S Receptor49.02
BateriasZOP Potencia 14.8V 1800mAh 65C 4S Batería de Lipo XT60 Enchufe28.86
Gafas FPVEachine VR006 VR-006 3 Pulgadas 500*300 Pantalla 5.8G 40CH Mini FPV Goggles Incorporado 3.7V 500mAh Batería34.98
BuzzerLANTIAN HXZ01 110dBi Finder Buzzer Batería con luz LED para RC Drone F3 F4 F7 controlador de vuelo7.70
Receptor fpv otgEachine ROTG01 UVC OTG 5.8G
150CH Completo Canal FPV Receptor para Android Teléfono Móvil Tableta Smartphone
16.29
Adaptador simulador flysky22 en 1 RC Cable de Simulador
de Vuelo para G7 Phoenix 5.0 Aerofly XTR VRC FPV Racing
6.42