Arduino Nano - Carro

Este tutorial ensina você a construir um carro controlado por controle remoto IR usando o Arduino Nano e um controle remoto IR.

IR remote control car

Hardware Necessário

1×Official Arduino Nano
1×Alternatively, DIYables Nano V3.0 Development Board
1×Cabo USB A para Mini-B
1×RC Car
1×Módulo Driver de Motor L9110S
1×Kit de Controle Remoto IR
1×Bateria CR2025 (para controle remoto IR)
1×1.5V AA Battery (for Arduino Nano and Car)
1×Fios Jumper
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para Arduino Nano
1×(Recomendado) Placa de Expansão Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentação para Arduino Nano

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

Sobre o Carro Robô

No mundo do Arduino Nano, o carro robô é comumente conhecido como carro RC, carro de controle remoto, carro inteligente ou carro DIY. Essa criação prática pode ser controlada à distância usando um controle remoto IR ou um aplicativo de celular via Bluetooth/WiFi. Ele pode fazer curvas fechadas para a esquerda ou para a direita e se mover para frente ou para trás com facilidade.

Um veículo 2WD (Tração em Duas Rodas) para Arduino Nano é um pequeno carro robô que você pode montar e operar usando uma placa Arduino Nano. Ele normalmente consiste nas seguintes peças essenciais:

  • Chassi: É como a carroceria do carro, onde você fixa todos os outros componentes.
  • Rodas: São as duas rodas que fazem o carro se mover. Elas são conectadas a dois motores DC.
  • Motores: Dois motores DC são usados para acionar as duas rodas.
  • Driver de Motor: A placa do driver de motor é um componente fundamental que conecta o Arduino Nano aos motores. Ela recebe sinais do Arduino Nano e fornece energia e controle aos motores.
  • Placa Arduino Nano: É o cérebro do carro. Ela lê as entradas dos sensores e os comandos do usuário e controla os motores de acordo com eles.
  • Fonte de Energia: O carro 2WD precisa de uma fonte de energia, geralmente pilhas e um suporte para pilhas, para alimentar os motores e a placa Arduino Nano.
  • Receptor Sem Fio: É um módulo infravermelho, Bluetooth ou WiFi que permite a comunicação sem fio com um controle remoto ou celular.
  • Componentes Opcionais: Dependendo do quão avançado você quer que seu projeto seja, você pode adicionar várias peças opcionais, como sensores (por exemplo, sensores ultrassônicos para evitar obstáculos ou sensores seguidores de linha) e mais.

Neste tutorial, para simplificar, vamos usar:

  • Kit de carro 2WD (incluindo chassi, rodas, motores, suporte para pilhas)
  • Driver de Motor L9110S
  • Kit infravermelho IR (incluindo controle IR e receptor IR)

Confira a lista de hardware no topo desta página.

Como Funciona

Arduino Nano 2WD car how it work
  • O Arduino Nano se conecta aos motores DC do carro robô por meio do módulo driver de motor L9110S.
  • O Arduino Nano se conecta a um receptor IR.
  • A bateria alimenta o Arduino Nano, os motores DC, o driver de motor e o receptor IR.
  • Os usuários pressionam as teclas UP/DOWN/LEFT/RIGHT/OK no controle remoto IR.
  • O Arduino Nano recebe os comandos UP/DOWN/LEFT/RIGHT/OK por meio do receptor IR.
  • O Arduino Nano controla o carro para se mover PARA FRENTE/PARA TRÁS/ESQUERDA/DIREITA/PARAR controlando o motor DC por meio do driver de motor.

Diagrama de Ligação

The wiring diagram between Arduino Nano and 2WD car

This image is created using Fritzing. Click to enlarge image

Veja A melhor forma de alimentar o Arduino Nano e outros componentes.

O módulo L9110S alimenta os motores diretamente a partir dos seus pinos VCC e GND e não tem um regulador de 5V embutido. Isso significa que você pode alimentar tudo com uma única fonte de energia — quatro pilhas AA de 1,5V (totalizando 6V). Veja como fazer:

  • Conecte a bateria de 6V aos pinos VCC e GND do módulo L9110S para alimentar os motores.
  • Conecte a mesma bateria de 6V aos pinos Vin e GND do Arduino Nano para alimentar a placa (o receptor IR é alimentado pelo pino 5V do Arduino Nano).
  • Certifique-se de que o módulo L9110S, o Arduino Nano e o receptor IR compartilhem um GND comum.

Diferente do L298N, o L9110S não tem jumpers de habilitação ENA/ENB nem bornes de parafuso de 12V, então a ligação é mais simples.

Código Arduino Nano

/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.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); }

Passos Rápidos

  • Instale a biblioteca DIYables_IRcontroller na Arduino IDE seguindo esta instrução
  • Faça a ligação conforme mostrado no diagrama acima.
  • Desconecte o fio do pino Vin do Arduino Nano porque vamos alimentar o Arduino Nano pelo cabo USB ao fazer o upload do código.
  • Vire o carro de cabeça para baixo para que as rodas fiquem para cima.
  • Conecte o Arduino Nano ao seu computador usando o cabo USB.
  • Copie o código fornecido e abra-o na Arduino IDE.
  • Clique no botão Upload na Arduino IDE para transferir o código para o Arduino Nano.
  • Use o controle remoto IR para fazer o carro ir para frente, para trás, para a esquerda, para a direita ou parar.
  • Verifique se as rodas se movem corretamente de acordo com os seus comandos.
  • Se as rodas se moverem no sentido errado, troque os fios do motor DC no módulo L9110S.
  • Você também pode ver os resultados no Serial Monitor da Arduino IDE.
∞
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
  • Se tudo estiver funcionando bem, desconecte o cabo USB do Arduino Nano e conecte o fio de volta ao pino Vin para alimentar o Arduino Nano com a bateria.
  • Vire o carro de volta à posição normal, com as rodas no chão.
  • Divirta-se controlando o carro!

Explicação do Código

Leia a explicação linha por linha nas linhas de comentário do código!

Você pode aprender mais sobre o código conferindo os seguintes tutoriais:

Você pode ampliar este projeto:

  • Adicionando sensores de desvio de obstáculos para parar o carro imediatamente se um obstáculo for detectado.
  • Adicionando uma função para controlar a velocidade do carro (veja o tutorial Arduino Nano - Motor DC). O código fornecido controla o carro em velocidade máxima.

Vídeo

Tutoriais Relacionados

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!