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

  1. 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?

  2. 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


Publicar um comentário

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Blog em WordPress.com. | Theme: Pool by Borja Fernandez.
Entries and comments feeds.