Este é o projeto que todo mundo quer fazer: um carrinho robô que se move sozinho e desvia dos obstáculos no caminho. Usando o chassi 2WD, o Motor Shield L293D e um sensor ultrassônico montado num servo (que "olha" para os lados), você monta um robô autônomo de verdade. É a porta de entrada para a robótica.

O carrinho tem duas rodas motorizadas (uma de cada lado) e uma roda boba na frente para equilíbrio. Os dois motores são controlados pelo Motor Shield L293D, que permite girar cada roda de forma independente — é assim que o carrinho vira: acelerando uma roda mais que a outra. Na frente, um sensor ultrassônico mede a distância até os obstáculos, o mesmo princípio do sonar. Ele fica montado sobre um servo motor, que gira o sensor para a esquerda e para a direita, permitindo ao carrinho "olhar" os dois lados antes de decidir para onde desviar. A lógica é simples: anda para frente; se detectar um obstáculo perto, para, olha para os dois lados, e vira para o lado com mais espaço livre.
Todos os componentes disponíveis na A2 Robotics — clique em cada item para comprar
Kit chassi 2WD (motores, rodas e suporte de pilhas)
1 kit
Arduino Uno R3
1 unidade
Motor Shield L293D
1 unidade
Sensor ultrassônico HC-SR04
1 unidade
Micro servo SG90
1 unidade
Jumpers (cabos de ligação)
1 kit
Instale três bibliotecas pelo Gerenciador de Bibliotecas da IDE: AFMotor (Adafruit Motor Shield, para os motores), Servo (que já vem instalada) e NewPing (para o sensor ultrassônico). No código abaixo usamos a NewPing, que deixa a leitura do sensor mais simples.
O carrinho anda para frente enquanto o caminho está livre. Ao detectar um obstáculo perto (menos de 20 cm), ele para, gira o servo para olhar à esquerda e à direita, compara as distâncias e vira para o lado com mais espaço. Ajuste a distância de reação e os tempos de curva conforme o seu carrinho.
// Carrinho robô 2WD que desvia de obstáculos — A2 Robotics #include <AFMotor.h> #include <Servo.h> #include <NewPing.h> // Motores nos terminais M1 e M2 do shield AF_DCMotor motorEsq(1); AF_DCMotor motorDir(2); Servo radar; // servo que gira o ultrassônico // Sensor ultrassônico (pinos livres A0 e A1) #define TRIG A0 #define ECHO A1 #define DIST_MAX 200 NewPing sonar(TRIG, ECHO, DIST_MAX); const int DIST_MIN = 20; // distância de reação (cm) const int VELOCIDADE = 180; // 0 a 255 void setup() { radar.attach(10); // servo no pino 10 do shield radar.write(90); // olha para frente motorEsq.setSpeed(VELOCIDADE); motorDir.setSpeed(VELOCIDADE); delay(1000); } void loop() { int distancia = medir(); if (distancia > 0 && distancia < DIST_MIN) { parar(); delay(200); radar.write(20); // olha para a direita delay(400); int distDir = medir(); radar.write(160); // olha para a esquerda delay(400); int distEsq = medir(); radar.write(90); // volta para frente delay(300); if (distEsq >= distDir) { virarEsquerda(); } else { virarDireita(); } } else { frente(); } } // Mede a distância em cm int medir() { delay(50); int cm = sonar.ping_cm(); return (cm == 0) ? DIST_MAX : cm; } void frente() { motorEsq.run(FORWARD); motorDir.run(FORWARD); } void parar() { motorEsq.run(RELEASE); motorDir.run(RELEASE); } void virarEsquerda() { motorEsq.run(BACKWARD); motorDir.run(FORWARD); delay(400); } void virarDireita() { motorEsq.run(FORWARD); motorDir.run(BACKWARD); delay(400); }
Fixe os dois motores nas laterais do chassi, encaixe as rodas e a roda boba na frente. Passe os fios dos motores para cima.
Encaixe o Motor Shield L293D no Arduino e fixe o conjunto no chassi. Ligue o motor esquerdo no M1 e o direito no M2.
Fixe o servo na frente do carrinho e prenda o sensor ultrassônico sobre ele. Assim o sensor pode girar para os lados.
Ultrassônico: TRIG no A0, ECHO no A1, VCC no 5V, GND no GND. Servo no pino 10 do shield.
Ligue o suporte de pilhas no borne de alimentação do shield. Agora o carrinho está sem fios.
Instale as bibliotecas, carregue o código, desconecte o USB e ligue as pilhas. O carrinho vai andar e desviar dos obstáculos sozinho.
Este carrinho é uma plataforma para muita diversão. Você pode adicionar controle por Bluetooth para dirigir pelo celular, um sensor seguidor de linha para ele percorrer um trajeto, LEDs e buzina, ou até uma câmera. Ajustando os tempos das curvas e a distância de reação, dá para deixar o comportamento mais esperto. É o começo da sua jornada na robótica.