Este é um projeto de robô com Arduino e Controle Remoto IR. Com as teclas do controle remoto IR você consegue movimentar o robô para frente, para trás, para esquerda e para direita. O vídeo é uma apresentação do projeto.
Neste projeto foi utilizado o kit-Square e o IR control kit.
Para controlá-lo com o controle remoto IR é necessário fazer a seguinte ligação:
Os servos são do kit-Square. O receptor infravermelho é do IR Control Kit. As pilhas são apenas uma referência como alimentação dos servos.
A programação está demonstrada abaixo:
#include <Servo.h>
Servo servoesq,servodir;
int irPin = 2;
int start_bit = 2200;
int bin_1 = 1000;
int bin_0 = 400;
void setup() {
pinMode(irPin, INPUT);
Serial.begin(9600);
Serial.println("Waiting: ");
servoesq.attach(10);
servodir.attach(9);
servoesq.write(89);
servodir.write(89);
}
void loop() {
int key = getIRKey();
if(key != 0)
{
Serial.print("Key Recieved: ");
switch(key)
{
case 146: Serial.print("Right");
servoesq.write(180);
servodir.write(150);
break;
case 147: Serial.print("Left");
servoesq.write(0);
servodir.write(10);
break;
case 148: Serial.print("Back");
servoesq.write(180);
servodir.write(10);
break;
case 165: Serial.print("Forward");
servoesq.write(0);
servodir.write(150);
break;
case 149:
Serial.print("Stop");
servoesq.write(89);
servodir.write(89);
break;
}
Serial.println();
}
}
int getIRKey() {
int data[12];
int i;
while(pulseIn(irPin, LOW) < start_bit);
for(i = 0 ; i < 11 ; i++)
data[i] = pulseIn(irPin, LOW);
for(i = 0 ; i < 11 ; i++)
{
if(data[i] > bin_1)
data[i] = 1;
else if(data[i] > bin_0)
data[i] = 0;
else
return -1;
}
int result = 0;
for(i = 0 ; i < 11 ; i++)
if(data[i] == 1) result |= (1i);
return result;
}
Ao apertar um botão do controle remoto, o Arduino entenderá e irá comandar os servos de acordo com o botão apertado. Se apertar os botões de volume, o robô girará para esquerda ou para direita. Se apertar o botão mudo, o robô irá para frente. Se apertar o botão de AV/TV, o robô irá para trás. E o botão POWER irá parar o robô.
E é isso! Esperamos que tenha gostado! Se tiver dúvidas, poste aqui mesmo neste blog! Para sugestões de tutoriais, clique aqui! Para ver outros tutoriais e projetos desenvolvidos pela equipe LdG e por outros garagistas, clique aqui e aqui, respectivamente! Até a próxima!
Referências:
http://labdegaragem.com/profiles/blogs/tutorial-como-utilizar-o-con...
http://labdegaragem.com/profiles/blogs/tutorial-arduino-com-servomotor
http://www.labdegaragem.org/loja/index.php/32-kits/ir-control-kit-r...
http://www.labdegaragem.org/loja/index.php/32-kits/robokit-02.html
http://www.labdegaragem.org/loja/index.php/32-kits/robokit-03.html
Comentar
O que está rolando é: Eu montei todo o circuito perfeitamente e fui tentar usar mas os servos não se mechem(ao melhor, eles se mechem mas desordenadamente e sem nenhuma influencia do Arduino) já troquei a pilha da alimentação, Já troquei o IR, já fiz diversas coisas mas até agora nada. Faz diferença o tipo de IR ? Faz diferença o tipo de controle ?
AJUDAAAA o projeto é para o dia 06 hoje é dia 03
coloca assim
if(data[i] == 1) result |= (!i);
Estou tendo problema no código em:
if(data[i] == 1) result |= (1i);
o sketch arduino diz: transmitter:74: error: invalid operands of types 'int' and 'int __complex__' to binary 'operator|'
transmitter:74: error: in evaluation of 'operator|=(int, int __complex__)'
O vídeo está privado, o que faço para ter acesso??
Quanto vc gastou no projeto?
QUERO VER O VIDEO DO ROBO
Bom dia / Boa tarde / Boa noite
Vocês poderiam postar os itens do kit-square?
Por que ele não aparece mais na loja virtual.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por
Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!
Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)