- Componentes necesarios para el barco Arduino RC
- Módulos de transmisor y receptor de RF de 433 MHz
- Transmisor de RF 433MHZ
- Diagrama de bloques del transmisor de barco Arduino RC
- Diagrama de circuito del control remoto Arduino RC (transmisor)
- Construcción del circuito transmisor RC BOAT
- Construyendo el gabinete del transmisor de barco Arduino RC
- Módulo receptor 433Mhz
- Diagrama de bloques del receptor de barco Arduino RC
- Diagrama de circuito del receptor de barco Arduino RC
- Construyendo el circuito receptor de Arduino RC Boat
- Construyendo el RC-BOAT
- Motores y hélices para Arduino Air Boat
- Funcionamiento del barco Arduino RC
- Programación Arduino del barco RC
En este proyecto, construiremos un Arduino Air-Boat con control remoto que se puede controlar de forma inalámbrica utilizando los módulos de radio RF de 433 MHz. Controlaremos este barco utilizando un mando a distancia casero construyendo nuestro propio transmisor de 433 MHz y un módulo receptor. En el caso de los dispositivos controlados a distancia o la comunicación entre dos dispositivos, tenemos muchas opciones como IR, Bluetooth, Internet, RF, etc. En comparación con la comunicación IR, las comunicaciones por radio tienen algunas ventajas como más alcance y no requieren una conexión de línea de visión entre el transmisor y el receptor. Además, estos módulos pueden hacer dos formas de comunicación, lo que significa que pueden transmitir y recibir al mismo tiempo. Entonces, usando este módulo RF de 433MHz, construyamos un Arduino RC Boat en este tutorial.
Anteriormente, hemos construido muchos proyectos controlados a distancia utilizando estos módulos de RF de 433Mhz para controlar un robot como este robot controlado por RF o para aplicaciones de automatización del hogar para controlar electrodomésticos mediante RF. Además de utilizar módulos de RF, también hemos construido un coche Raspberry Pi controlado por Bluetooth y un robot Arduino controlado por teléfono móvil DTMF anteriormente. También puede consultar estos proyectos si está interesado.
Componentes necesarios para el barco Arduino RC
- Transmisor y receptor de 433 MHz
- Arduino (cualquier Arduino, para reducir el tamaño estoy usando promini)
- HT12E y HT12D
- Pulsadores- 4Nos
- Resistencias: 1 megaohmio, 47k ohmio
- Controlador de motor L293d
- Batería de 9 V (estoy usando una batería de 7,4 voltios) - 2Nos
- Regulador 7805- 2Nos
- Motores DC- 2Nos
- Hoja de motor o hélices (estoy usando hélices caseras) - 2Nos
- .1uf condensador- 2Nos
- PCB común
Módulos de transmisor y receptor de RF de 433 MHz
Estos tipos de módulos de RF son muy populares entre los fabricantes. Por su bajo costo y sencillez en las conexiones. Estos módulos son los mejores para todas las formas de proyectos de comunicación de corto alcance. Estos módulos son módulos de RF de tipo ASK (Modulación por desplazamiento de amplitud). La modulación por desplazamiento de amplitud (ASK) es una forma de modulación de amplitud que representa los datos digitales como variaciones en la amplitud de una onda portadora. En un sistema ASK, el símbolo binario 1 se representa transmitiendo una onda portadora de amplitud fija y una frecuencia fija durante un bit de duración de T segundos. Si el valor de la señal es 1, se transmitirá la señal portadora; de lo contrario, se transmitirá un valor de señal de 0. Eso significa que normalmente no consumen energía cuando transmiten Logic "cero". Este bajo consumo de energía los hace muy útiles en proyectos que funcionan con baterías.
Transmisor de RF 433MHZ
Este tipo de módulo es muy pequeño y viene con 3 pines VCC, tierra y datos. Algunos otros módulos vienen con un pin de antena adicional. El voltaje de trabajo del módulo transmisor es 3V-12V y este módulo no tiene componentes ajustables. Una de las principales ventajas de este módulo es el bajo consumo de corriente, requiere corriente casi nula para enviar bit cero.
Diagrama de bloques del transmisor de barco Arduino RC
En el diagrama de bloques anterior, hay cuatro botones pulsadores (botones de control), estos botones son para controlar la dirección del barco. Tenemos cuatro de ellos para adelante, atrás, izquierda y derecha. De los botones, obtenemos la lógica para controlar el barco, pero no podemos conectarnos directamente al codificador, por eso usamos Arduino. Puede pensar por qué usé Arduino aquí, es simplemente porque necesitamos bajar dos entradas de datos paralelas del codificador al mismo tiempo para un movimiento hacia atrás y hacia adelante que no se puede lograr con solo botones. Luego, el codificador codifica los datos en paralelo que vienen a las salidas en serie. Entonces podemos transmitir esos datos en serie con la ayuda de un transmisor de RF.
Diagrama de circuito del control remoto Arduino RC (transmisor)
En el circuito anterior, puede ver un lado de los cuatro botones conectados a cuatro pines digitales de Arduino (D6-D9) y los otros cuatro lados conectados a tierra. Es entonces cuando presionamos el botón, los pines digitales correspondientes obtienen un nivel lógico bajo. Las cuatro entradas paralelas del codificador HT12E conectadas a otros cuatro pines digitales de Arduino (D2-D5). Entonces, con la ayuda de Arduino, podemos decidir la entrada del codificador.
Y hablando de codificador HT12E es un codificador de 12 bits y un codificador de salida en serie de entrada en paralelo. De los 12 bits, 8 bits son bits de dirección que se pueden utilizar para controlar varios receptores. Los pines A0-A7 son los pines de entrada de dirección. En este proyecto, estamos controlando solo un receptor, por lo que no queremos cambiar su dirección, así que conecté todos los pines de dirección a tierra. Si desea controlar diferentes receptores con un transmisor, puede usar interruptores DIP aquí. AD8-AD11 son las entradas de bit de control. Estas entradas controlarán las salidas D0-D3 del decodificador HT12D. Necesitamos conectar un oscilador para la comunicación y la frecuencia del oscilador debe ser de 3KHz.para funcionamiento a 5V. Entonces el valor de la resistencia será 1.1MΩ por 5V. Luego conecté la salida del HT12E al módulo transmisor. Ya mencionamos, el módulo transmisor Arduino y rf, ambos dispositivos funcionan con un alto voltaje de 5V lo matará, así que para evitar esto, agregué el regulador de voltaje 7805. Ahora podemos conectar (Vcc) 6-12 voltios de cualquier tipo de baterías a la entrada.
Construcción del circuito transmisor RC BOAT
Soldé todos los componentes en un PCB común. Recuerde que estamos trabajando en un proyecto de RF, por lo que hay muchas posibilidades de que se produzcan diferentes tipos de interferencias, así que conecte todos los componentes lo más cerca posible. Es mejor usar encabezados de clavija hembra para Arduino y el módulo transmisor. Además, intente soldar todo en las almohadillas de cobre en lugar de usar cables adicionales. Finalmente, conecte un pequeño cable al módulo transmisor que ayudará a aumentar el rango total. Antes de conectar el módulo Arduino y transmisor, verifique dos veces el voltaje de la salida lm7805.
La imagen de arriba muestra la vista superior del circuito transmisor RC Boat completado y la vista inferior del circuito transmisor RC Boat completado se muestra a continuación.
Construyendo el gabinete del transmisor de barco Arduino RC
Un cuerpo decente es necesario para el control remoto. Este paso tiene que ver con tus ideas, puedes crear un cuerpo remoto con tus ideas. Estoy explicando cómo hice esto. Para hacer un cuerpo remoto, elijo láminas de MDF de 4 mm, también puede elegir madera contrachapada, lámina de espuma o cartón, luego corté dos piezas con una longitud de 10 cm y una anchura de 5 cm. Luego marqué las posiciones de los botones. Coloqué los botones de dirección en el lado izquierdo y los botones de avance y retroceso a la derecha. En el otro lado de la hoja, conecté los pulsadores al circuito de transmisión principal. Recuerde que un botón pulsador normal tiene 4 pines que son dos pines para cada lado. Conecte un pin a Arduino y el otro pin al suelo. Si está confundido con eso, compruébelo con un multímetro o consulte la hoja de datos.
Después de conectar todas estas cosas, coloqué el circuito de control entre las dos placas de MDF y apriete con un perno largo (consulte las imágenes de abajo si lo desea). Una vez más, crear un buen cuerpo se trata de ideas.
Módulo receptor 433Mhz
Este receptor también es muy pequeño y viene con 4 pines VCC, tierra y los dos pines del medio son datos. El voltaje de funcionamiento de este módulo es de 5 V. Al igual que el módulo transmisor, también es un módulo de baja potencia. Algunos módulos vienen con un pin de antena adicional, pero en mi caso, no está presente.
Diagrama de bloques del receptor de barco Arduino RC
El diagrama de bloques anterior describe el funcionamiento del circuito del receptor de RF. Primero, podemos recibir las señales transmitidas usando el módulo receptor de RF. La salida de este receptor son datos en serie. Pero no podemos controlar nada con estos datos en serie, por eso conectamos la salida al decodificador. El decodificador decodifica los datos en serie a nuestros datos paralelos originales. En esta sección, no requerimos ningún microcontrolador, podemos conectar directamente las salidas al controlador del motor.
Diagrama de circuito del receptor de barco Arduino RC
El HT12D es un decodificador de 12 bits que es un decodificador de salida en paralelo de entrada serie. El pin de entrada del HT12D se conectará a un receptor que tiene una salida en serie. Entre los 12 bits, 8 bits (A0-A7) son bits de dirección y el HT12D decodificará la entrada si solo coincide con su dirección actual. D8-D11 son los bits de salida. Para hacer coincidir este circuito con el circuito del transmisor, conecté todos los pines de dirección a tierra. Los datos que salen del módulo son del tipo serie y el decodificador decodifica estos datos seriales a datos paralelos originales y los salimos a través de D8-D11. Para igualar la frecuencia de oscilación debe conectar la resistencia de 33-56k a los pines del oscilador. El LED en el pin 17 indica la transmisión válida, solo se enciende después de que el receptor se conecta a un transmisor. La entrada de voltaje del receptor también es de 6-12 voltios.
Para controlar motores, utilicé el L293D IC, elijo este IC porque para disminuir el tamaño y el peso y este IC es mejor para controlar dos motores en dos direcciones. L293D tiene 16 pines, el siguiente diagrama muestra los pines.
1, 9 pines son el pin de habilitación, lo conectamos a 5 v para habilitar los motores 1A, 2A, 3A y 4A son los pines de control. El motor girará a la derecha si el pin 1A baja y 2A sube, y el motor girará a la izquierda si 1A baja y 2A alta. Entonces conectamos estos pines a la salida ps del decodificador. 1Y, 2Y, 3Y y 4Y son los pines de conexión del motor. Vcc2 es el pin de voltaje de conducción del motor, si está utilizando un motor de alto voltaje, conecte este pin a la fuente de voltaje correspondiente.
Construyendo el circuito receptor de Arduino RC Boat
Antes de construir el circuito del receptor, debe recordar algunas cosas importantes. Lo importante es el tamaño y el peso porque después de construir el circuito, necesitamos fijarlo en el barco. Entonces, si el peso aumenta, eso afectará la flotabilidad y el movimiento.
Igual que en el circuito del transmisor, suelde todos los componentes en una pequeña PCB común e intente utilizar un mínimo de cables. Conecté el pin 8 del controlador del motor a 5v porque estoy usando motores de 5V.
Construyendo el RC-BOAT
Probé diferentes materiales para construir el cuerpo del barco. Y obtuve un mejor resultado con la lámina termocol. Entonces decidí construir el cuerpo con termocol. Primero, tomé una pieza de termocol de 3 cm de grosor y coloqué el circuito receptor en la parte superior, luego marqué la forma del barco en termocol y corté. Así que esta es mi forma de construir el barco, puedes construirlo según tus ideas.
Motores y hélices para Arduino Air Boat
Una vez más, el peso importa. Por lo tanto, elegir el motor correcto es importante, elijo motores de CC normales de 5 voltios, tipo n20, que son pequeños e ingrávidos. Para evitar las interferencias de RF, conviene conectar un condensador de 0,1 uf en paralelo a las entradas del motor.
En el caso de las hélices, las hice con láminas de plástico. Puede comprar hélices en la tienda o puede construir las suyas propias, ambas funcionarán bien. Para construir las hélices, primero, tomé una pequeña hoja de plástico y corté dos pedazos pequeños y los doblé con la ayuda del calor de una vela. Finalmente, puse un pequeño orificio en su centro para el motor y lo fijé al motor que es.
Funcionamiento del barco Arduino RC
Este barco tiene dos motores, llamémoslo izquierdo y derecho. Si el motor también se mueve en el sentido de las agujas del reloj (la posición de la hélice también depende), la hélice aspira aire desde la parte delantera y sale hacia la parte trasera. Eso genera arrastre hacia adelante.
Movimiento hacia adelante: si los motores izquierdo y derecho giran hacia la derecha, el movimiento hacia adelante
Movimiento hacia atrás: si los motores izquierdo y derecho giran en sentido contrario a las agujas del reloj (es decir, la hélice aspira aire desde la parte trasera y el escape hacia la parte delantera), se producirá un movimiento hacia atrás.
Movimiento a la izquierda: si solo gira el motor derecho, el bote solo se arrastrará desde el lado derecho, lo que hará que el bote se mueva hacia el lado izquierdo
Movimiento a la derecha: si solo gira el motor izquierdo, el barco solo se arrastra desde el lado izquierdo, lo que hará que el barco se mueva hacia el lado derecho.
Conectamos la entrada del controlador de motores a cuatro bits de salida del decodificador (D8-D11). Podemos controlar estas 4 salidas conectando el AD8-AD11 al suelo que son los botones del mando. Por ejemplo, si conectamos AD8 a tierra eso activará el D8. De esta manera podemos controlar los dos motores en dos direcciones usando estas 4 salidas. Pero no podemos controlar dos motores con un solo botón (lo necesitamos para el movimiento hacia adelante y hacia atrás), por eso usamos Arduino. Con la ayuda de Arduino, podemos seleccionar los pines de datos de entrada como deseemos.
Programación Arduino del barco RC
La programación de este barco es muy simple porque solo queremos algunos cambios lógicos. Y podemos lograr todo con las funciones básicas de Arduino. El programa completo de este proyecto se puede encontrar al final de esta página. La explicación de su programa es la siguiente
Comenzamos el programa definiendo los números enteros para cuatro botones de entrada y pines de entrada del decodificador.
int f_button = 9; int b_button = 8; int l_button = 7; int r_button = 6; int m1 = 2; int m2 = 3; int m3 = 4; int m4 = 5;
En la sección de configuración, definí los modos de pin. Es decir, los botones están conectados a pines digitales, por lo que estos pines deben definirse como entrada y necesitamos obtener salida para la entrada del decodificador, por lo que debemos definir esos pines como salida.
pinMode (botón_f, INPUT_PULLUP); pinMode (botón_b, INPUT_PULLUP); pinMode (botón_l, INPUT_PULLUP); pinMode (botón_r, INPUT_PULLUP); pinMode (m1, SALIDA); pinMode (m2, SALIDA); pinMode (m3, SALIDA); pinMode (m4, SALIDA);
A continuación, en la función de bucle principal, leeremos el estado del botón utilizando la función de lectura digital de Arduino. Si el estado del pin baja, eso significa que se presiona el pin correspondiente, ejecutaremos las condiciones de la siguiente manera:
if (digitalRead (f_button) == LOW)
Eso significa que se presiona el botón de avance
{ digitalWrite (m1, BAJO); digitalWrite (m3, BAJO); escritura digital (m2, ALTA); digitalWrite (m4, ALTO); }
Esto desplegará m1 y m2 del codificador, esto activará ambos motores en el lado del receptor. Del mismo modo, para el movimiento hacia atrás
{ digitalWrite (m1, ALTO); escritura digital (m3, ALTA); escritura digital (m2, BAJA); digitalWrite (m4, BAJO); }
Para movimiento a la izquierda
{ digitalWrite (m1, BAJO); escritura digital (m3, ALTA); escritura digital (m2, ALTA); escritura digital (m4, ALTA); }
Para un movimiento correcto
{ digitalWrite (m1, ALTO); digitalWrite (m3, BAJO); escritura digital (m2, ALTA); digitalWrite (m4, ALTO); }
Después de compilar el código, cárguelo en su placa Arduino.
Solución de problemas: coloque la embarcación en la superficie del agua y compruebe si se mueve correctamente, si no, intente cambiar la polaridad de los motores y hélices. Además, trate de equilibrar el peso.
El funcionamiento completo del proyecto se puede encontrar en el video vinculado al final de esta página. Si tienes alguna duda déjala en la sección de comentarios.