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

Hardware Requerido

1×Official Arduino Nano
1×Alternatively, DIYables Nano V3.0 Development Board
1×Cable USB A a Mini-B
1×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 and Car)
1×Cables Puente
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

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 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 L9110S
  • 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 L9110S.
  • 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.

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 energía: cuatro pilas AA de 1,5 V (un total de 6 V). Así es como:

  • 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 para alimentarla (el receptor IR se alimenta desde el pin de 5 V del Arduino Nano).
  • Asegúrate de que el módulo L9110S, la placa Arduino Nano 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

/* * 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 11 // The Arduino Nano pin connected to IR receiver #define MOTOR_A_IA_PIN 5 // The Arduino Nano pin connected to the A-IA pin of the L9110S (Motor A) #define MOTOR_A_IB_PIN 6 // The Arduino Nano pin connected to the A-IB pin of the L9110S (Motor A) #define MOTOR_B_IA_PIN 9 // The Arduino Nano pin connected to the B-IA pin of the L9110S (Motor B) #define MOTOR_B_IB_PIN 10 // The Arduino Nano 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("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(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

  • 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 L9110S.
  • También puedes ver los resultados en el Monitor Serial en el IDE de Arduino.
Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
MOVING FORWARD MOVING BACKWARD TURNING LEFT TURNING RIGHT STOP
Ln 11, Col 1
Arduino Nano on COM15
2
  • 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!