ESP8266 - Coche

Una de las cosas más geniales que puedes probar si recién empiezas con el ESP8266 es hacer un coche robot. En esta guía, aprenderemos a usar el ESP8266 para construir un coche robot y controlarlo con un control remoto por infrarrojos. Aprenderemos a hacer un coche robot Bluetooth en otro tutorial.

coche teledirigido por infrarrojos

Hardware Requerido

1×ESP8266 NodeMCU
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×RC Car
1×Módulo Controlador de Motor L298N
1×Kit de Control Remoto IR
1×Batería CR2025 (para control remoto IR)
1×1.5V AA Battery (for ESP8266 and Car)
1×Cables Puente
1×Protoboard
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para ESP8266
1×(Recomendado) Divisor de Alimentación para ESP8266 Tipo-C

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
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 del ESP8266, el coche robot suele llamarse por distintos 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 mando 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 a la izquierda o a la derecha y también avanzar o retroceder.

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

  • Chasis: La base o marco 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 motor: La placa controladora de motor es un componente esencial que hace de interfaz entre el ESP8266 y los motores. Recibe señales del ESP8266 y proporciona la energía y el control necesarios a los motores.
  • Placa ESP8266: El cerebro del coche. Lee las entradas de los sensores y de los comandos del usuario y controla los motores en consecuencia.
  • Fuente de alimentación: El coche 2WD requiere una fuente de alimentación, normalmente baterías y un soporte para baterías, para alimentar los motores y la placa ESP8266.
  • Receptor inalámbrico: Un módulo infrarrojo, Bluetooth o WiFi para 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 (p. ej., sensores ultrasónicos para evitar obstáculos y sensores de seguimiento de línea), y más.

En este tutorial, para simplificarlo, usaremos:

  • Kit de coche con tracción en dos ruedas (incluye chasis, ruedas, motores y portabatería)
  • Controlador de motor L298N
  • Kit infrarrojo (IR) que incluye controlador IR y receptor IR

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

Cómo funciona

ESP8266 NodeMCU coche con tracción en dos ruedas: cómo funciona
  • ESP8266 se conecta a los motores de corriente continua del coche robot a través del módulo controlador de motor L298N.
  • ESP8266 se conecta a un receptor IR.
  • La batería alimenta al ESP8266, a los motores de corriente continua, al módulo controlador de motor y al receptor IR.
  • Los usuarios presionan las teclas UP/DOWN/LEFT/RIGHT/OK en el control remoto IR.
  • ESP8266 recibe los comandos UP/DOWN/LEFT/RIGHT/OK a través del receptor IR.
  • ESP8266 controla el coche para avanzar/retroceder/girar a la izquierda/girar a la derecha/detener, controlando los motores de corriente continua a través del módulo controlador de motor.

Diagrama de Cableado

Diagrama de cableado del coche ESP8266 NodeMCU 2WD

This image is created using Fritzing. Click to enlarge image

Para obtener m\u00e1s informaci\u00f3n, consulte Pines del ESP8266 y c\u00f3mo alimentar ESP8266 y otros componentes.

Por lo general, se requieren dos fuentes de energía:

  • Uno para el motor (indirectamente a través del módulo L298N).
  • Otro para la placa ESP8266, el módulo L298N y el receptor IR.

Sin embargo, hay un método para simplificar esto utilizando una sola fuente de energía para todo. Puedes lograrlo usando cuatro baterías de 1,5 V (un total de 6 V). Así es como puedes hacerlo:

  • Conecta las baterías al módulo L298N como se muestra en el diagrama.
  • Coloca dos puentes que conecten los pines ENA y ENB a 5 voltios en el módulo L298N.
  • Retira un jumper etiquetado como 5VEN, que está marcado con un círculo amarillo en el diagrama.
  • Realiza el resto del cableado como se indica en el diagrama anterior.

Código ESP8266

/* * Este código de ESP8266 NodeMCU fue desarrollado por es.newbiely.com * Este código de ESP8266 NodeMCU se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp8266/esp8266-car */ #include <DIYables_IRcontroller.h> // DIYables_IRcontroller library #define IR_RECEIVER_PIN D1 // The ESP8266 pin connected to IR receiver #define IN1_PIN D2 // The ESP8266 pin connected to the IN1 pin L298N #define IN2_PIN D5 // The ESP8266 pin connected to the IN2 pin L298N #define IN3_PIN D6 // The ESP8266 pin connected to the IN3 pin L298N #define IN4_PIN D7 // The ESP8266 pin connected to the IN4 pin L298N DIYables_IRcontroller_17 irController(IR_RECEIVER_PIN, 200); // debounce time is 200ms void setup() { Serial.begin(9600); irController.begin(); pinMode(IN1_PIN, OUTPUT); pinMode(IN2_PIN, OUTPUT); pinMode(IN3_PIN, OUTPUT); pinMode(IN4_PIN, OUTPUT); } void loop() { Key17 key = irController.getKey(); if (key != Key17::NONE) { switch (key) { case Key17::KEY_UP: Serial.println("MOVING FORWARD"); CAR_moveForward(); break; case Key17::KEY_DOWN: Serial.println("MOVING BACKWARD"); CAR_moveBackward(); break; case Key17::KEY_LEFT: Serial.println("TURNING LEFT"); CAR_turnLeft(); break; case Key17::KEY_RIGHT: Serial.println("TURNING RIGHT"); CAR_turnRight(); break; case Key17::KEY_OK: Serial.println("STOP"); CAR_stop(); break; default: Serial.println("WARNING: unused key:"); break; } } } void CAR_moveForward() { digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW); digitalWrite(IN3_PIN, HIGH); digitalWrite(IN4_PIN, LOW); } void CAR_moveBackward() { digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH); digitalWrite(IN3_PIN, LOW); digitalWrite(IN4_PIN, HIGH); } void CAR_turnLeft() { digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW); digitalWrite(IN3_PIN, LOW); digitalWrite(IN4_PIN, LOW); } void CAR_turnRight() { digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, LOW); digitalWrite(IN3_PIN, HIGH); digitalWrite(IN4_PIN, LOW); } void CAR_stop() { digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, LOW); digitalWrite(IN3_PIN, LOW); digitalWrite(IN4_PIN, LOW); }

Pasos R\u00e1pidos

Para empezar con ESP8266 en el IDE de Arduino, siga estos pasos:

  • Consulta el tutorial cómo configurar el entorno para ESP8266 en Arduino IDE si es la primera vez que usas ESP8266.
  • Conecta la placa ESP8266 a tu computadora usando un cable USB.
  • Abre el IDE de Arduino en tu computadora.
  • Elige la placa ESP8266 correcta, como (p. ej. NodeMCU 1.0 (ESP-12E Module)), y su puerto COM respectivo.
  • Instala la biblioteca DIYables_IRcontroller en el IDE de Arduino siguiendo esta instrucción
  • Realiza el cableado tal como se muestra en el diagrama anterior.
  • Desconecta el cable del pin Vin en el ESP8266 porque alimentaremos el ESP8266 mediante el cable USB al subir el código.
  • Da la vuelta al coche para que las ruedas queden en la parte superior.
  • Copia el código proporcionado y ábrelo en el IDE de Arduino.
  • Haz clic en el botón Subir en el IDE de Arduino para transferir el código al ESP8266.
  • Usa el control remoto IR para hacer avanzar, retroceder, girar a la izquierda, girar a la derecha o detenerse.
  • Verifica si las ruedas se mueven correctamente de acuerdo con tus comandos.
  • Si las ruedas se mueven en la dirección incorrecta, intercambia los cables del motor DC en el módulo L298N.
  • También puedes ver los resultados en el Monitor de serie del IDE de Arduino.
COM6
Send
CAR - MOVING FORWARD CAR - MOVING BACKWARD CAR - TURNING LEFT CAR - TURNING RIGHT CAR - STOP
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Si todo va bien, desconecta el cable USB del ESP8266 y luego vuelve a conectar el cable al pin Vin 5V. Esto proporcionará energía al ESP8266 desde la batería.
  • Coloca de nuevo el coche en su posición normal con las ruedas en el suelo.
  • ¡Diviértete controlando el coche!

Explicación del código

Puede 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:

  • Agregar sensores de evitación de obstáculos para detener el coche de inmediato si se detecta un obstáculo.
  • Agregar una función para controlar la velocidad del coche (ver ESP8266 - motor de corriente continua tutorial). El código proporcionado controla el coche a toda 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.

Tutoriales Relacionados

※ 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!