You are on page 1of 3

Carro de Controle Remoto com Arduino

Alander Rocha Ribeiro


Universidade Federal do Par
Mateus de Paula C. P. Gomes
Universidade Federal do Par

Joo Paulo Souza Gomes


Universidade Federal do Par
Vitor Yuji Pereira Imamura
Universidade Federal do Par

Ygor Pereira Vaz


Universidade Federal do Par

Resumo
Este artigo tem o objetivo de mostrar a
criao de um carro de controle remoto a partir
de peas do brinquedo LEGO, dois motores
servos, um receptor infravermelho, um controle
remoto de televiso, um placa protoboard,
diversos fios Jumpers e um placa de
microcontrolador Arduino, mostrando em etapas,
como funcionam as peas e como as mesmas
foram utilizadas para esta finalidade.

1. Introduo
O Objetivo deste trabalho foi obter mais
conhecimento sobre a placa Arduino e suas

utilidades. Com toda a sabedoria necessria em


mos, foi possvel a criao de um carro de
controle remoto. Este carro, cuja estrutura foi
feita a partir de peas LEGO, tambm possua
motores que possibilitaram seu movimento e um
receptor infravermelho que, com a utilizao de
um controle remoto de televiso fez com que o
carro se movimentasse com um comando sem fio.

tambm foi usado. Os cdigos enviados por ele e


lidos pelo receptor so os que iro informar ao
Arduino o que ele deve fazer.

2. Equipamentos Utilizados
2.1. Motores Servos
Os motores servos so mquinas,
mecnicas ou eletromecnicas, que apresentam
movimentos proporcionais a um comando. Ao
contrrio de motores contnuos, no possuem
tanta liberdade, eles dispem de uma
movimentao limitada em 180, entretanto, so
bem mais precisos quanto posio.
Nesse trabalho o uso dos dois motores
servos altamente importante. Um dos motores
servo foi usado para fazer as rodas dianteiras
dobrarem. O brao do motor servo est acoplado
um sistema formado por peas LEGO,
possibilitando que as rodas dianteiras executem
um movimento lateral. Com isso, consegue-se
direcionar o mvel.
O segundo motor servo foi usado para
propulsionar o mvel. Como os motores servos s
conseguem fazer um movimento de 180, foi
necessrio alter-lo de modo que ele pudesse se
girar livremente em torno de seu eixo. Para isso,
foi retirado o potencimetro interno dele que o
limitava e dava preciso, de modo que quando era
enviado o comando para que o servo girasse para
certa posio ele no conseguia identificar sua
posio atual e continuava girando
indefinidamente at que era mandado outro
comando para ele. A partir disso foi conectado ao
seu eixo um sistema de engrenagens que
possibilitaram o rolamento das rodas traseiras,
efetivamente propulsionando o mvel.

2.2. Receptor infravermelho e controle


remoto
O receptor infravermelho permite a
leitura dos cdigos que so enviados por ele,
dentre outras coisas, controles remotos. O
receptor captura precisamente cdigos somente se
eles estiverem em certa frequncia, nesse caso de
38 kHz.
Um controle remoto comum com
frequncia de envio compatvel com o receptor

2.3. Placa Microcontroladora Arduino


uma plataforma
de prototipagem eletrnica de hardware livre e
de placa nica, projetada com
um microcontrolador com suporte
de entrada/sada embutido, utiliza uma linguagem
de programao padro, essencialmente C/C+
+. O objetivo da placa criar ferramentas que so
acessveis, com baixo custo, flexveis e fceis de
usar por amadores. Principalmente para aqueles
que no teriam alcance aos controladores mais
sofisticados e de ferramentas mais complicadas.
Para este projeto, utilizamos as portas
digitais 9, 11, 12 e 13, alm de suas portas VCC e
GND do Arduino UNO. O cdigo desenvolvido
para implementao do trabalho segue abaixo:
#include <IRremote.h> //Introduzindo a
biblioteca do receptor infravermelho
#include <Servo.h> //Introduzindo a biblioteca do
motor servo
//Declarando variveis
Servo MotorTras;
Servo MotorFrente;
int RecepIV = 11;
IRrecv irrecv(RecepIV);
decode_results results;
int VelF=125, VelT=108, VelP=114, Centro=67,
LimEsq=10, LimDir=110, i=Centro,
delayFrente=15;
int PinoMotorFrente=13, PinoMotorTras=12,
VccMotorTras=9;
//A funo void setup ser executada apenas uma
vez ao inicializar o Arduino
//Inicializando as portas lgicas, motores servos,
receptor infravermelho, e colocando o motor das
rodas dianteiras na posio 67 que dever
centraliza-las.
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(VccMotorTras, OUTPUT);
digitalWrite(VccMotorTras, LOW);
MotorFrente.attach(PinoMotorFrente);
MotorTras.attach(PinoMotorTras);
MotorFrente.write(i);

}
//A funo void loop ser executada em um ciclo
enquanto o Arduino estiver em funcionamento e
carregado com o programa
void loop()
{
if (irrecv.decode(&results)) //Uma condio para
que o resultado decodificado pelo receptor
infravermelho seja guardado na varivel results
e impresso em um monitor
{
Serial.println(results.value, DEC);
irrecv.resume();
}
switch(results.value)
{
case 12439599:
digitalWrite(VccMotorTras, HIGH);
MotorTras.write(VelF); break; //O carro anda para
frente
case 12447759:
digitalWrite(VccMotorTras, HIGH);
MotorTras.write(VelT); break; //O carro anda pra
tras
case 12394719:
digitalWrite(VccMotorTras, LOW); //O carro
para
break;
case 12431439:
if(i>67)
for(i=i;i>67;i--)
{
MotorFrente.write(i); //Centraliza as rodas
dianteiras
delay(delayFrente);
}
else
for(i=i; i<67; i++)
{
MotorFrente.write(i);//Centraliza as rodas
dianteiras
delay(delayFrente);
}
break;
case 12423789:
for(i=i;i>LimEsq;i--)
{

MotorFrente.write(i);//Vira as rodas dianteiras


para a esquerda
delay(delayFrente);
}
break;
case 12407469:
for(i=i;i<LimDir;i++)
{
MotorFrente.write(i); //Vira as rodas dianteiras
para a direita
delay(delayFrente);}break;}}

2.4. Brinquedo LEGO


O sistema LEGO um brinquedo cujo
conceito se baseia em partes que se encaixam
permitindo inmeras combinaes.
A partir das utilidades desse brinquedo,
foi possvel desenvolver uma estrutura similar a
de um carro onde se colocou os motores servos e
a cima, instalou-se a placa protoboard com o
Arduino e o receptor infravermelho.

3. Referncias
[1] http://www.arduino.cc/
[2] http://arduino.cc/en/reference/servo
[3] http://www.instructables.com/id/Arduino-InfraredRemote-tutorial/?lang=pt
[4] http://arduino.cc/en/Reference/Void
[5] http://arduino.cc/en/Reference/SwitchCase
[6] http://pt.wikipedia.org/wiki/Lego

You might also like