My Lil’Robot
██████████ 50%
[em desenvolvimento]

Apresentação
É um robot muito simples, básico, com o objectivo de seguir linhas e ir desviando-se dos obstáculos.
- |1x| Arduino
- |2x| Servo (para rodar o sensor PING)
- |2x| Mini Geared Motors
- |2x| Rodas
- |3x| Sensores de Reflexão TCRT5000
- |1x| Sensor PING))) de ultrasons
Objectivo Final
Depois de ter tudo montado e a funcionar, quero adicionar a opção de escolher:
- Seguir linha branca no fundo preto ou seguir linha preta no fundo branco
- Ligar e desligar a função de seguir linha
- Ligar e desligar a função de desviar obstáculos
Dificuldades Encontradas
Até agora, a dificuldade que encontrei foi na tentativa de construír o sensor de proximidade pelo tutorial do tr3s. Provavelmente os componentes que utilizei não estavam bons. Solução: Usar o sensor PING))).
Estado Actual
- llllllllll 100% – Base (circular)
- llllllllll 100% – Montagem dos Motores Mini e Rodas
- llllllllll 100% – Montagem do Servo para o Sensor Ultrasons
- 6/Ago/2009 – Encomenda de novo material
- llllllllll 100% – Montagem dos sensores de reflexão para seguir linha
- llllllllll 100% – Programação do Arduino para seguir linha
- llllllllll 0% – Montagem do sensor PING)))
- llllllllll 0% – Programação do Arduino para evitar obstáculos
Já sabem que todos os comentários, sugetões, etc são importantes. Quero ouvir o que pensam do projecto.
Quando tiver oportunidade, faço uma sessão fotográfica para verem como está.
Fotos
http://picasaweb.google.pt/ricdays/MyLilRobot
Vídeo
Código (Arduino)
int ledPin = 13; // LED
int senEsq = 0; // Sensor da Esquerda
int senMei = 1; // Sensor do Meio
int senDir = 2; // Sensor da Direita
int valEsq = 0;
int valMei = 0;
int valDir = 0;
boolean Esq = false;
boolean Mei = false;
boolean Dir = false;
int motores[] = {2,3,4,5};
int pwm[] = {9,6};
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(motores[0], OUTPUT);
pinMode(motores[1], OUTPUT);
pinMode(motores[2], OUTPUT);
pinMode(motores[3], OUTPUT);
pinMode(pwm[0], OUTPUT);
pinMode(pwm[1], OUTPUT);
Serial.begin(9600);
digitalWrite(motores[0], HIGH);
digitalWrite(motores[1], LOW);
digitalWrite(motores[2], HIGH);
digitalWrite(motores[3], LOW);
}
void loop(){
valEsq = analogRead(senEsq);
valMei = analogRead(senMei);
valDir = analogRead(senDir);
if(valEsq < 100){Esq = true;}else{Esq = false;}
if(valMei < 100){Mei = true;}else{Mei = false;}
if(valDir < 100){Dir = true;}else{Dir = false;}
if(Esq)
{
// Virar para a esquerda
Serial.println("100");
analogWrite(pwm[0], 0);
analogWrite(pwm[1], 64);
}else if(Mei)
{
// Frente
Serial.println("010");
analogWrite(pwm[0], 64);
analogWrite(pwm[1], 64);
}else if(Dir)
{
// Virar à direita
Serial.println("001");
analogWrite(pwm[0], 64);
analogWrite(pwm[1], 0);
}
delay(10);
}
2 Comentários »
Feed RSS para comentários a este post. TrackBack URI
Publicar um comentário
Blog em WordPress.com. | Theme: Pool by Borja Fernandez.
Entries and comments feeds.


Po’ sou completamente Leigo no Assunto mas estava Muito Afim de montar Esse Robô o custo sairia certa de quanto ? Muiito dificil para pessoas que não entendem Sobre?
Tmb Gostaria de Saber Aonde posso encontrar essas Peças?
Comentário por Luan — Novembro 7, 2009 #
Boas Luan.
Um robô destes pode ficar a cerca de 50€.
A sparkfun.com parece-me ser a loja com mais variedade de produtos.
Em Portugal, loja.lusorobotica.com
Cumprimentos,
Ricardo Dias
Comentário por Ricardo Dias — Novembro 9, 2009 #