Arduino Nano ESP32 - Coche

Una de las cosas más geniales para probar si apenas estás empezando con Arduino Nano ESP32 es hacer un coche robot. En esta guía, aprenderemos a usar Arduino Nano ESP32 para construir un coche robot y controlarlo con un control remoto por infrarrojos. Para controlar el coche robot a través de la Web (WiFi), consulta el tutorial Arduino Nano ESP32 controla el coche vía Web.

Coche teledirigido con Arduino Nano ESP32 y control por infrarrojos

Hardware Requerido

1×Arduino Nano ESP32
1×Cable USB Tipo-A a Tipo-C (para PC USB-A)
1×Cable USB Tipo-C a Tipo-C (para PC USB-C)
1×2WD RC Car
1×Módulo Controlador de Motor L9110S
1×Kit de Control Remoto IR
1×Batería CR2025 (para control remoto IR)
1×1.5V AA Battery (for Arduino Nano ESP32 and Car)
1×Cables Puente
1×Protoboard
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para Arduino Nano
1×(Recomendado) Placa de Expansión Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentación para Arduino Nano ESP32

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca de Robot Car

En el contexto de Arduino Nano ESP32, el coche robot suele recibir diferentes nombres como coche robot, coche RC, coche de control remoto, coche inteligente o coche de bricolaje. Se puede controlar a distancia sin cables. Puedes usar ya sea un control remoto especial que utiliza luz infrarroja o una aplicación para teléfono inteligente a través de Bluetooth o WiFi. El coche robot puede ir hacia la izquierda o hacia la derecha y también avanzar o retroceder.

Un coche de tracción en dos ruedas (2WD) para Arduino Nano ESP32 es un pequeño vehículo robótico que puedes construir y controlar utilizando una placa Arduino Nano ESP32. Generalmente consta de los siguientes componentes:

  • Chasis: La base o el armazón del coche, donde se montan todos los demás componentes.
  • Ruedas: Las dos ruedas que proporcionan locomoción al coche. Están conectadas a dos motores de corriente continua.
  • Motores: Se utilizan dos motores de corriente continua para impulsar las dos ruedas.
  • Controlador de motores: La placa controladora de los motores es un componente esencial que hace de interfaz entre el Arduino Nano ESP32 y los motores. Toma las señales del Arduino Nano ESP32 y proporciona la potencia y el control necesarios a los motores.
  • Placa Arduino Nano ESP32: El cerebro del coche. Lee las entradas de sensores y comandos del usuario y controla los motores en consecuencia.
  • Fuente de alimentación: El coche con tracción en dos ruedas (2WD) requiere una fuente de alimentación, normalmente baterías y un soporte para baterías, para alimentar los motores y la placa Arduino Nano ESP32.
  • Receptor inalámbrico: un módulo infrarrojo, Bluetooth o WiFi para la comunicación inalámbrica con un control remoto o teléfono inteligente.
  • Componentes opcionales: Dependiendo de la complejidad de tu proyecto, puedes añadir varios componentes opcionales como sensores (por ejemplo, sensores ultrasónicos para evitar obstáculos, sensores de seguimiento de línea), y más.

En este tutorial, para simplificarlo, usaremos:

  • Kit de coche 2WD (incluye chasis, ruedas, motores, soporte para batería)
  • Controlador de motor L9110S
  • Kit infrarrojo (incluye controlador IR y receptor IR)

Verifique la lista de hardware en la parte superior de esta página.

Cómo funciona

Arduino Nano ESP32 coche de tracción en dos ruedas: cómo funciona
  • El Arduino Nano ESP32 se conecta a los motores de corriente continua del coche robot mediante el módulo controlador de motor L9110S.
  • El Arduino Nano ESP32 se conecta a un receptor IR.
  • La batería alimenta al ESP32, los motores de corriente continua, el controlador de motor y el receptor IR.
  • Los usuarios pulsan las teclas ARRIBA/ABAJO/IZQUIERDA/DERECHA/OK en el control remoto IR.
  • El Arduino Nano ESP32 recibe los comandos ARRIBA/ABAJO/IZQUIERDA/DERECHA/OK a través del receptor IR.
  • El Arduino Nano ESP32 controla el coche para moverse ADELANTE/ATRÁS/IZQUIERDA/DERECHA/DETENER mediante el módulo controlador de motor.

Diagrama de Cableado

Diagrama de cableado de Arduino Nano ESP32 para coche 2WD

This image is created using Fritzing. Click to enlarge image

El módulo L9110S alimenta los motores directamente desde sus pines VCC y GND y no tiene un regulador de 5 V integrado. Esto significa que puedes alimentar todo con una única fuente de alimentación: cuatro pilas AA de 1,5 V (un total de 6 V). Así es como puedes hacerlo:

  • Conecta la batería de 6 V a los pines VCC y GND del módulo L9110S para alimentar los motores.
  • Conecta la misma batería de 6 V a los pines Vin y GND de la placa Arduino Nano ESP32 para alimentarla (el receptor IR se alimenta desde el pin de 3,3 V del Arduino Nano ESP32).
  • Asegúrate de que el módulo L9110S, la placa Arduino Nano ESP32 y el receptor IR compartan un GND común.

A diferencia del L298N, el L9110S no tiene puentes de habilitación ENA/ENB ni una terminal de tornillo de 12 V, por lo que el cableado es más sencillo.

Código de Arduino Nano ESP32

/* * Este código de Arduino Nano ESP32 fue desarrollado por es.newbiely.com * Este código de Arduino Nano ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-car */ #include <DIYables_IRcontroller.h> // IR Remote Controller library #define IR_RECEIVER_PIN D11 // The Arduino Nano ESP32 pin connected to IR receiver #define MOTOR_A_IA_PIN D5 // The Arduino Nano ESP32 pin connected to the A-IA pin of the L9110S (Motor A) #define MOTOR_A_IB_PIN D6 // The Arduino Nano ESP32 pin connected to the A-IB pin of the L9110S (Motor A) #define MOTOR_B_IA_PIN D9 // The Arduino Nano ESP32 pin connected to the B-IA pin of the L9110S (Motor B) #define MOTOR_B_IB_PIN D10 // The Arduino Nano ESP32 pin connected to the B-IB pin of the L9110S (Motor B) DIYables_IRcontroller_17 irController(IR_RECEIVER_PIN, 200); // debounce time is 200ms void setup() { Serial.begin(9600); irController.begin(); pinMode(MOTOR_A_IA_PIN, OUTPUT); pinMode(MOTOR_A_IB_PIN, OUTPUT); pinMode(MOTOR_B_IA_PIN, OUTPUT); pinMode(MOTOR_B_IB_PIN, OUTPUT); } void loop() { Key17 key = irController.getKey(); if (key != Key17::NONE) { switch (key) { case Key17::KEY_UP: Serial.println("CAR - MOVING FORWARD"); CAR_moveForward(); break; case Key17::KEY_DOWN: Serial.println("CAR - MOVING BACKWARD"); CAR_moveBackward(); break; case Key17::KEY_LEFT: Serial.println("CAR - TURNING LEFT"); CAR_turnLeft(); break; case Key17::KEY_RIGHT: Serial.println("CAR - TURNING RIGHT"); CAR_turnRight(); break; case Key17::KEY_OK: Serial.println("CAR - STOP"); CAR_stop(); break; default: Serial.println("WARNING: unused key:"); break; } } } void CAR_moveForward() { digitalWrite(MOTOR_A_IA_PIN, HIGH); digitalWrite(MOTOR_A_IB_PIN, LOW); digitalWrite(MOTOR_B_IA_PIN, HIGH); digitalWrite(MOTOR_B_IB_PIN, LOW); } void CAR_moveBackward() { digitalWrite(MOTOR_A_IA_PIN, LOW); digitalWrite(MOTOR_A_IB_PIN, HIGH); digitalWrite(MOTOR_B_IA_PIN, LOW); digitalWrite(MOTOR_B_IB_PIN, HIGH); } void CAR_turnLeft() { digitalWrite(MOTOR_A_IA_PIN, HIGH); digitalWrite(MOTOR_A_IB_PIN, LOW); digitalWrite(MOTOR_B_IA_PIN, LOW); digitalWrite(MOTOR_B_IB_PIN, LOW); } void CAR_turnRight() { digitalWrite(MOTOR_A_IA_PIN, LOW); digitalWrite(MOTOR_A_IB_PIN, LOW); digitalWrite(MOTOR_B_IA_PIN, HIGH); digitalWrite(MOTOR_B_IB_PIN, LOW); } void CAR_stop() { digitalWrite(MOTOR_A_IA_PIN, LOW); digitalWrite(MOTOR_A_IB_PIN, LOW); digitalWrite(MOTOR_B_IA_PIN, LOW); digitalWrite(MOTOR_B_IB_PIN, LOW); }

Pasos R\u00e1pidos

  • Si es la primera vez que usas Arduino Nano ESP32, consulta cómo configurar el entorno para Arduino Nano ESP32 en Arduino IDE.
  • Instala la biblioteca DIYables_IRcontroller en Arduino IDE siguiendo esta instrucción
  • Realiza el cableado tal como se muestra en el diagrama anterior.
  • Desconecta el cable del Vin en el ESP32 porque alimentaremos Arduino Nano ESP32 mediante un cable USB al subir el código.
  • Gira el coche boca abajo para que las ruedas queden en la parte superior.
  • Conecta la placa Arduino Nano ESP32 a tu PC mediante un cable USB.
  • Abre Arduino IDE en tu PC.
  • Selecciona la placa correcta Arduino Nano ESP32 y el puerto COM.
  • Copia el código proporcionado y ábrelo en Arduino IDE.
  • Haz clic en el botón Subir en Arduino IDE para transferir el código al Arduino Nano ESP32.
  • Utiliza el control remoto IR para que el coche avance, retroceda, gire a la izquierda, gire a la derecha o se detenga.
  • Verifica si las ruedas se mueven correctamente de acuerdo con tus comandos.
  • Si las ruedas se mueven en la dirección opuesta, invierte los cables del motor DC en el módulo L9110S.
  • También puedes ver los resultados en el Monitor Serial del Arduino IDE.
Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
CAR - MOVING FORWARD CAR - MOVING BACKWARD CAR - TURNING LEFT CAR - TURNING RIGHT CAR - STOP
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2
  • Si todo va bien, desenchufa el cable USB del ESP32, y luego conecta de nuevo el cable al pin Vin 5V. Esto alimentará al Arduino Nano ESP32 desde la batería.
  • Devuelve el coche a su posición normal con las ruedas en el suelo.
  • ¡Diviértete controlando el coche!

Explicación del código

Puedes encontrar la explicación en la línea de comentarios del código de Arduino anterior.

Puedes aprender más sobre el código consultando los siguientes tutoriales:

Puedes ampliar este proyecto mediante:

  • Añadiendo sensores de evitación de obstáculos para detener inmediatamente el coche si se detecta un obstáculo.
  • Añadiendo una función para controlar la velocidad del coche (ver Arduino Nano ESP32 - motor de corriente continua tutorial). El código proporcionado controla el coche a máxima velocidad.

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!