Arduino Nano - Coche

Este tutorial te enseña cómo construir un coche controlado por infrarrojos usando Arduino Nano y un mando a distancia IR.

coche de radiocontrol por infrarrojos

Acerca de Robot Car

En el mundo de Arduino Nano, el coche robot se conoce comúnmente como coche RC, coche de control remoto, coche inteligente o coche de bricolaje. Esta ingeniosa creación puede ser controlada a distancia ya sea mediante un control remoto IR o una aplicación para smartphone a través de Bluetooth/WiFi. Puede hacer giros pronunciados a la izquierda o a la derecha y avanzar o retroceder con facilidad.

Un vehículo de tracción en dos ruedas (2WD) para Arduino Nano es un pequeño coche robótico que puedes ensamblar y hacer funcionar con una placa Arduino Nano. Por lo general, consta de las siguientes piezas esenciales:

  • Chasis: Este es como el cuerpo del coche, donde se conectan todos los demás componentes.
  • Ruedas: Estas son las dos ruedas que hacen que el coche se mueva. Están conectadas a dos motores DC.
  • Motores: Se utilizan dos motores de corriente continua para impulsar las dos ruedas.
  • Controlador de motor: La placa controladora de motores es un componente crucial que conecta el Arduino Nano con los motores. Recibe señales del Arduino Nano y proporciona energía y control a los motores.
  • Placa Arduino Nano: Este es el cerebro del coche. Lee entradas de sensores y comandos del usuario y controla los motores en consecuencia.
  • Fuente de alimentación: El coche de tracción en dos ruedas necesita una fuente de energía, normalmente baterías y un soporte para baterías, para suministrar energía a los motores y a la placa Arduino Nano.
  • Receptor inalámbrico: Este es un módulo infrarrojo, Bluetooth o WiFi que permite la comunicación inalámbrica con un control remoto o teléfono inteligente.
  • Componentes opcionales: Dependiendo de cuán avanzado quieras que sea tu proyecto, puedes agregar varias piezas opcionales como sensores (por ejemplo, sensores ultrasónicos para evitar obstáculos o sensores de seguimiento de líneas) y más.

En este tutorial, para simplificarlo, usaremos:

  • Kit de coche 2WD (incluye chasis, ruedas, motores, portabaterías)
  • Controlador de motor L298N
  • Kit infrarrojo (incluye controlador IR y receptor IR)

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

Cómo funciona

Coche 2WD con Arduino Nano: cómo funciona
  • Arduino Nano se conecta a los motores DC del coche robot mediante el módulo controlador de motor L298N.
  • Arduino Nano se conecta a un receptor IR.
  • La batería alimenta al Arduino Nano, a los motores DC, al controlador de motor y al receptor IR.
  • Los usuarios pulsan las teclas ARRIBA/ABAJO/IZQUIERDA/DERECHA/OK en el control remoto IR.
  • Arduino Nano recibe los comandos ARRIBA/ABAJO/IZQUIERDA/DERECHA/OK a través del receptor IR.
  • Arduino Nano controla el coche para avanzar/retroceder/izquierda/derecha/DETENER moviendo el motor DC a través del controlador de motor.

Diagrama de Cableado

Diagrama de cableado de un coche 2WD con Arduino Nano

This image is created using Fritzing. Click to enlarge image

Ver La mejor forma de alimentar Arduino Nano y otros componentes.

Normalmente, requerimos dos fuentes de energía:

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

Sin embargo, hay una forma de simplificar esto y usar una única fuente de energía para todo. Puedes lograrlo usando cuatro baterías de 1,5 V (un total de 6 V). Así es como:

  • Conecta las baterías al módulo L298N siguiendo el diagrama anterior.
  • Retira los tres jumpers del módulo L298N.

Código de Arduino Nano

/* * Este código de Arduino Nano fue desarrollado por es.newbiely.com * Este código de Arduino Nano se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano/arduino-nano-car */ #include <DIYables_IRcontroller.h> // DIYables_IRcontroller library #define IR_RECEIVER_PIN 13 // The Arduino Nano pin connected to IR receiver #define ENA_PIN 7 // The Arduino Nano pin connected to the ENA pin L298N #define IN1_PIN 6 // The Arduino Nano pin connected to the IN1 pin L298N #define IN2_PIN 5 // The Arduino Nano pin connected to the IN2 pin L298N #define IN3_PIN 4 // The Arduino Nano pin connected to the IN3 pin L298N #define IN4_PIN 3 // The Arduino Nano pin connected to the IN4 pin L298N #define ENB_PIN 2 // The Arduino Nano pin connected to the ENB pin L298N DIYables_IRcontroller_17 irController(IR_RECEIVER_PIN, 200); // debounce time is 200ms void setup() { Serial.begin(9600); irController.begin(); pinMode(ENA_PIN, OUTPUT); pinMode(IN1_PIN, OUTPUT); pinMode(IN2_PIN, OUTPUT); pinMode(IN3_PIN, OUTPUT); pinMode(IN4_PIN, OUTPUT); pinMode(ENB_PIN, OUTPUT); digitalWrite(ENA_PIN, HIGH); // set full speed digitalWrite(ENB_PIN, HIGH); // set full speed } 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

  • Instala la biblioteca DIYables_IRcontroller en el IDE de Arduino siguiendo esta instrucción
  • Haz el cableado según el diagrama mostrado arriba.
  • Desconecta el cable del pin Vin del Arduino Nano porque vamos a alimentar el Arduino Nano mediante un cable USB al subir el código.
  • Da la vuelta al coche para que las ruedas queden en la parte superior.
  • Conecta el Arduino Nano a tu ordenador usando el cable USB.
  • Copia el código proporcionado y ábrelo en el IDE de Arduino.
  • Haz clic en el Subir botón en el IDE de Arduino para transferir el código al Arduino Nano.
  • Utiliza el control remoto IR para hacer 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 equivocada, intercambia los cables del motor DC en el módulo L298N.
  • También puedes ver los resultados en el Monitor Serial en el IDE de Arduino.
COM6
Send
MOVING FORWARD MOVING BACKWARD TURNING LEFT TURNING RIGHT STOP
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Si todo funciona correctamente, desconecta el cable USB del Arduino Nano, y vuelve a conectar el cable al pin Vin para alimentar al Arduino Nano con 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:

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

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!