- Motor DC sin núcleo para coches RC
- Materiales necesarios
- Joystick RF para coche RC usando Arduino
- Diagrama del circuito del coche Arduino RC
- Fabricación de PCB para coche Arduino RC
- Montaje de la PCB
- Ruedas de impresión 3D y soporte de motor
- Programando el Arduino
- Funcionamiento del coche Arduino RC
Siempre es divertido jugar con los coches RC, personalmente soy un gran admirador de estos coches controlados a distancia y he jugado (todavía lo hago) mucho con ellos. La mayoría de estos autos en la actualidad brindan un par enorme para manejar terrenos difíciles, pero hay algo que siempre estuvo rezagado, ¡su velocidad!.. Entonces, en este proyecto, construiremos un tipo de auto RC totalmente diferente usando Arduino, el principal El objetivo de este automóvil es alcanzar la velocidad máxima, por lo que decidí probar el motor de CC sin núcleo para un automóvil RC. Estos motores se utilizan normalmente en drones y están clasificados para 39000 RPM que debería ser más que suficiente para saciar nuestra sed de velocidad. El automóvil se alimentará con una pequeña batería de litio y se puede controlar de forma remota mediante el módulo RF nRF24L01. Alternativamente, si está buscando algo simple, también puede consultar estos proyectos de Simple RF Robot y Raspberry Pi Bluetooth Car.
Motor DC sin núcleo para coches RC
El motor de CC sin núcleo que se utiliza en este proyecto se muestra en la siguiente imagen. Puede encontrarlos fácilmente ya que se usan ampliamente en mini drones. Solo busque el motor magnético sin núcleo micro 8520 y encontrará estos.
Ahora bien, existen ciertos inconvenientes en el uso de motores de CC para un automóvil RC. Lo primero es que proporcionan un par de arranque muy bajo, por lo que nuestro coche RC debería ser lo más ligero posible. Es por eso que decidí construir todo el automóvil sobre una PCB utilizando componentes SMD y reduje el tamaño de la placa tanto como sea posible. El segundo problema es su alta velocidad, 39000 RPM (RPM del eje) es difícil de manejar, por lo que necesitamos un circuito de control de velocidad en el lado de Arduino, que construimos usando un MOSFET. La tercera cosa es que estos motores estarán alimentados por una sola batería de polímero de litio con un voltaje de operación entre 3.6V a 4.2V, por lo que tenemos que diseñar nuestro circuito para operar con 3.3V. Por eso hemos utilizado un Arduino Pro mini de 3.3Vcomo el cerebro de nuestro coche RC. Una vez resueltos estos problemas, veamos los materiales necesarios para construir este proyecto.
Materiales necesarios
- Arduino Pro Mini de 3.3V
- Arduino Nano
- NRF24L01 - 2 piezas
- Módulo de joystick
- MOSFET SI2302
- Diodo 1N5819
- Motores BLDC sin núcleo
- AMS1117-3,3V
- Batería de polímero de litio
- Resistencias, condensadores,
- Cables de conexión
Joystick RF para coche RC usando Arduino
Como se mencionó anteriormente, el automóvil RC se controlará de forma remota mediante un Joystick RF. Este Joystick también se construirá usando un Arduino junto con un módulo RF nRF24L01, también hemos usado el módulo Joystick para controlar nuestro RC en la dirección requerida. Si es completamente nuevo en estos dos módulos, puede considerar leer los artículos Interfaz de Arduino con nRF24L01 e Interfaz de Joystick con Arduino para aprender cómo funcionan y cómo usarlos. Para construir su Joystick remoto Arduino RF, puede seguir el siguiente diagrama de circuito.
El circuito de la palanca de mando RF se puede alimentar mediante el puerto USB de la placa nano. El módulo nRF24L01 funciona solo con 3.3V, por lo tanto, hemos usado el pin de 3.3V en Arduino. He construido el circuito en una placa de prueba y se ve a continuación, también puede crear una PCB para esto si es necesario.
El circuito Arduino Code for RF Joystick es bastante simple, tenemos que leer el valor X y el valor Y de nuestro Joystick y enviarlo al auto RC a través del nRF24L01. El programa completo de este circuito se puede encontrar al final de esta página. No entraremos en la explicación de eso, ya que ya lo hemos discutido en el enlace del proyecto de interfaz compartido anteriormente.
Diagrama del circuito del coche Arduino RC
El diagrama de circuito completo para nuestro coche Arduino con control remoto se muestra a continuación. El diagrama del circuito también incluye una opción para agregar dos módulos IR TCRT5000 a nuestro automóvil. Esto fue planeado para permitir que nuestro automóvil RC funcione como un robot de seguimiento de línea para que pueda funcionar por sí solo sin ser controlado externamente. Sin embargo, por el bien de este proyecto no nos concentraremos en él, estad atentos a otro tutorial del proyecto en el que intentaremos construir el “Robot seguidor de línea más rápido”. He combinado ambos circuitos en un solo PCB para facilitar la construcción, puede ignorar el sensor de infrarrojos y la sección del amplificador operacional para este proyecto.
El coche RC será alimentado por la batería Lipo conectada al terminal P1. El AMS117-3.3V se usa para regular 3.3V para nuestro nRF24L01 y nuestro pro-mini-board. También podemos alimentar la placa Arduino directamente en el pin sin procesar, pero el regulador de voltaje de 3.3V incorporado en el pro mini no podrá suministrar suficiente corriente a nuestros módulos de RF, por lo tanto, hemos utilizado un regulador de voltaje externo.
Para impulsar nuestros dos motores BLDC, hemos utilizado dos MOSFET SI2302. Es importante asegurarse de que estos MOSFETS puedan funcionar con 3.3V. Si no puede encontrar exactamente el mismo número de pieza, puede buscar MOSFET equivalentes con las siguientes características de transferencia
Los motores pueden consumir una corriente máxima de hasta 7 A (se probó que la corriente continua sea de 3 A con carga), por lo tanto, la corriente de drenaje del MOSFET debe ser de 7 A o más y debe encenderse completamente a 3.3 V. Como puede ver aquí, el MOSFET que seleccionamos puede proporcionar 10 A incluso a 2,25 V, por lo que es una opción ideal.
Fabricación de PCB para coche Arduino RC
La parte divertida de la construcción de este proyecto fue el desarrollo de PCB. El PCB aquí no solo forma el circuito, sino que también actúa como un chasis para nuestro automóvil, por lo que planificamos un automóvil que busca la forma con opciones para montar fácilmente nuestros motores. También puede intentar diseñar su propia PCB usando el circuito anterior o puede usar mi diseño de PCB que se ve así a continuación una vez completado.
Como puede ver, he diseñado el PCB para montar fácilmente la batería, el motor y otros componentes. Puede descargar el archivo Gerber para este PCB desde el enlace. Una vez que esté listo con el archivo Gerber, es hora de fabricarlo. Para hacer sus PCB fácilmente con PCBGOGO, siga los pasos a continuación
Paso 1: Ingrese a www.pcbgogo.com, regístrese si esta es su primera vez. Luego, en la pestaña Prototipo de PCB ingrese las dimensiones de su PCB, el número de capas y el número de PCB que necesita. Mi PCB mide 80 cm × 80 cm, por lo que la pestaña se ve así a continuación.
Paso 2: Continúe haciendo clic en el botón Cotizar ahora . Se le llevará a una página donde establecer algunos parámetros adicionales si es necesario, como el material utilizado, el espacio entre pistas, etc. Pero la mayoría de los valores predeterminados funcionarán bien. Lo único que tenemos que considerar aquí es el precio y el tiempo. Como puede ver, el tiempo de construcción es de solo 2-3 días y solo cuesta $ 5 para nuestro PSB. Luego, puede seleccionar un método de envío preferido según sus requisitos.
Paso 3: El paso final es cargar el archivo Gerber y proceder con el pago. Para asegurarse de que el proceso sea fluido, PCBGOGO verifica si su archivo Gerber es válido antes de proceder con el pago. De esta manera, puede estar seguro de que su PCB es fácil de fabricar y le llegará según lo comprometido.
Montaje de la PCB
Después de que se ordenó la placa, me llegó después de algunos días a través del servicio de mensajería en una caja bien empaquetada, bien etiquetada y, como siempre, la calidad de la placa fue increíble. Estoy compartiendo algunas fotos de las tablas a continuación para que las juzgue.
Encendí mi varilla de soldadura y comencé a ensamblar la placa. Dado que las huellas, las almohadillas, las vías y la serigrafía son perfectas y tienen la forma y el tamaño correctos, no tuve problemas para ensamblar la tabla. El tablero estuvo listo en solo 10 minutos desde el momento de desembalar la caja.
A continuación se muestran algunas imágenes de la placa después de soldar.
Ruedas de impresión 3D y soporte de motor
Como habrás notado en la imagen de arriba, necesitamos 3D nuestro soporte de motor y ruedas para el robot. Si ha utilizado nuestro archivo PCB Gerber compartido anteriormente, entonces también podría usar un modelo 3D descargándolo de este enlace de thingiverse.
He usado Cura para cortar mis modelos y los imprimí usando Tevo Terantuala sin soportes y 0% de relleno para reducir el peso. Puede modificar la configuración según sea adecuado para nuestra impresora. Dado que los motores giran muy rápido, me resultó difícil diseñar una rueda que se ajustara ceñidamente al eje del motor. Por lo tanto, decidí usar las palas del dron dentro de la rueda, como puede ver a continuación.
Encontré que esto es más confiable y resistente, sin embargo, experimente con diferentes diseños de ruedas y déjeme saber en la sección de comentarios qué funcionó para usted.
Programando el Arduino
El programa completo (tanto Arduino nano como pro mini) para este proyecto se puede encontrar en la parte inferior de esta página. La explicación de su programa RC es la siguiente
Comenzamos el programa incluyendo el archivo de encabezado requerido. Tenga en cuenta que, el módulo nRF24l01 requiere que se agregue una biblioteca a su IDE de Arduino, puede descargar la biblioteca RF24 de Github usando este enlace. Aparte de eso, ya hemos definido la velocidad mínima y la velocidad máxima para nuestro robot. El rango mínimo y máximo es de 0 a 1024 respectivamente.
#define min_speed 200 #define max_speed 800 #include
Luego, dentro de la función de configuración, inicializamos nuestro módulo nRF24L01. Hemos utilizado las 115 bandas ya que no está congestionado y hemos configurado el módulo para que funcione con poca potencia, también puedes jugar con estos ajustes.
configuración vacía () {Serial.begin (9600); myRadio.begin (); myRadio.setChannel (115); // 115 bandas por encima de las señales WIFI myRadio.setPALevel (RF24_PA_MIN); // MIN potencia baja rabia myRadio.setDataRate (RF24_250KBPS); // Velocidad mínima}
A continuación en la función de bucle principal, solo ejecutaremos la función ReadData con la que estaremos constantemente leyendo el valor enviado desde nuestro módulo de joystick Transmitter. Tenga en cuenta que la dirección de tubería mencionada en el programa debe ser la misma que la mencionada en el programa del transmisor. También hemos impreso el valor que recibimos con fines de depuración. Una vez que el valor se lea correctamente, ejecutaremos la función Control Car para controlar nuestro auto RC en base al valor recibido del
módulo Rf.
vacío ReadData () {myRadio.openReadingPipe (1, 0xF0F0F0F0AA); // Qué canalización leer, 40 bits Dirección myRadio.startListening (); // Detener la transmisión y comenzar a Revelar if (myRadio.available ()) {while (myRadio.available ()) {myRadio.read (& data, sizeof (data)); } Serial.print ("\ nRecibido:"); Serial.println (data.msg); recibido = data.msg; Control_Car (); }}
Dentro de la función Control Car, controlaremos los motores conectados a los pines PWM usando la función de escritura analógica. En nuestro programa de transmisor, hemos convertido los valores analógicos de los pines A0 y A1 de Nano a 1 a 10, 11 a 20, 21 a 30 y 31 a 40 para controlar el automóvil en avance, retroceso, izquierda y derecha respectivamente. El siguiente programa se utiliza para controlar el robot en una dirección de avance.
if (recibido> = 1 && recibido <= 10) // Avanzar {int PWM_Value = map (recibido, 1, 10, min_speed, max_speed); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, PWM_Value); }
De manera similar, también podemos escribir tres funciones más para control inverso, izquierdo y derecho como se muestra a continuación.
if (recibido> = 11 && recibido <= 20) // Break {int PWM_Value = map (recibido, 11, 20, min_speed, max_speed); analogWrite (R_MR, 0); analogWrite (L_MR, 0); } if (recibido> = 21 && recibido <= 30) // Girar a la izquierda {int PWM_Value = map (recibido, 21, 30, min_speed, max_speed); analogWrite (R_MR, PWM_Value); analogWrite (L_MR, 0); } if (recibido> = 31 && recibido <= 40) // Girar a la derecha {int PWM_Value = map (recibido, 31, 40, min_speed, max_speed); analogWrite (R_MR, 0); analogWrite (L_MR, PWM_Value); }
Funcionamiento del coche Arduino RC
Una vez que haya terminado con el código, cárguelo en su pro-mini-board. Retire la batería y su placa a través del módulo FTDI para probar. Ejecute su código, abra la batería serial y debería recibir el valor del módulo Joystick de su transmisor. Conecte su batería y sus motores también deberían comenzar a girar.
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. También puede utilizar nuestros foros para obtener respuestas rápidas a sus otras preguntas técnicas.