segunda-feira, 30 de março de 2009

Agora sem o cordão umbilical

Já tirei o cordão umbilical ao meu Arduino. Arranjei umas baterias de um avião RC (7.2V 1000mAH). O único problema é o carregador que não é inteligente e é preciso estar de olho nas baterias para não aquecerem.

PS: Agora tive que lhe fechar um pouco a torneira aos motores porque senão ninguém o conseguia apanhar.

quinta-feira, 26 de março de 2009

O meu Arduino já tem rodas






Já consegui juntar tudo e por o Arduino a rolar, a desviar-se de objectos e a buscar a luz.

Como rodas arranjei-lhe duas tampas plásticas de garrafão de agua.
Na frente tem 2 arames que accionam dois interruptores e para "vêr a luz" tem 2 LDR's.

O Código é bastante simples e foi feito numa noite.
#define moto1A 7
#define moto1B 8
#define moto1E 9

#define moto2A 4
#define moto2B 5
#define moto2E 6

#define sensor1 2
#define sensor2 3

#define ldr1 0
#define ldr2 1

#define vel1 150
#define vel2 255

void setup()
{
Serial.begin(9600);
Serial.println("SETUP");
}

void loop()
{
lerLuz();

if(!digitalRead(sensor1))
sensorDireita();

if(!digitalRead(sensor2))
sensorEsquerda();

motorFrente(vel1,250);
}


void motorFrente(int vel, int tempo){
digitalWrite(moto1A,LOW);
digitalWrite(moto1B,HIGH);
analogWrite(moto1E, vel);

digitalWrite(moto2A,LOW);
digitalWrite(moto2B,HIGH);
analogWrite(moto2E, vel);

delay(tempo);
}

void motorTras(int vel, int tempo){
Serial.print("Tras : ");
Serial.print(vel,DEC);
Serial.print(" , ");
Serial.println(tempo,DEC);

digitalWrite(moto1A,HIGH);
digitalWrite(moto1B,LOW);
analogWrite(moto1E, vel);

digitalWrite(moto2A,HIGH);
digitalWrite(moto2B,LOW);
analogWrite(moto2E, vel);

delay(tempo);
}

void motorDireita(int vel, int tempo){
Serial.print("Direita : ");
Serial.print(vel,DEC);
Serial.print(" , ");
Serial.println(tempo,DEC);

digitalWrite(moto1A,LOW);
digitalWrite(moto1B,HIGH);
analogWrite(moto1E, vel);

digitalWrite(moto2A,HIGH);
digitalWrite(moto2B,LOW);
analogWrite(moto2E, vel);

delay(tempo);
}

void motorEsquerda(int vel, int tempo){
Serial.print("Esquerda : ");
Serial.print(vel,DEC);
Serial.print(" , ");
Serial.println(tempo,DEC);

digitalWrite(moto1A,HIGH);
digitalWrite(moto1B,LOW);
analogWrite(moto1E, vel);

digitalWrite(moto2A,LOW);
digitalWrite(moto2B,HIGH);
analogWrite(moto2E, vel);

delay(tempo);
}

void motorParar(int tempo){
Serial.print("Parar ");
Serial.print(" , ");
Serial.println(tempo,DEC);

digitalWrite(moto1A,LOW);
digitalWrite(moto1B,LOW);
analogWrite(moto1E, 255);

digitalWrite(moto2A,LOW);
digitalWrite(moto2B,LOW);
analogWrite(moto2E, 255);

delay(tempo);
}

void sensorDireita() {
Serial.println("Sensor Direita");

motorParar(1000);
motorTras(vel1,1000);
motorEsquerda(vel1,700);
}

void sensorEsquerda() {
Serial.println("Sensor Esquerda");

motorParar(1000);
motorTras(vel1,1000);
motorDireita(vel1,700);
}

void lerLuz(){
int dir = analogRead(ldr1);
int esq = analogRead(ldr2);

Serial.print("Luz : ");
Serial.print(esq,DEC);
Serial.print(" , ");
Serial.println(dir,DEC);

if((dir-esq)<-100){
motorDireita(vel1,500);
}
else if((dir-esq)<-50){
motorDireita(vel1,250);
}
else if ((dir-esq)>100){
motorEsquerda(vel1,500);
}
else if ((dir-esq)>50){
motorEsquerda(vel1,2500);
}
}

terça-feira, 24 de março de 2009

PJBot - 1º's passos, ou voltas

Estou a tentar fazer um Bot autónomo com 2 rodas acopladas a 2 motores DC.
Para já ainda estou a juntar o material necessário e vou vêr se começo alguns testes.
Material:

Links Uteis

Robótica:

Sensores:


Motores:


Módulos RF:

Lojas online:
  • Aliatron - Já comprei (motores DC e placa de controle de motores DC) aqui e gostei do serviço. Os portes são um pouco caros (9€ fixos)
  • Active-Robots - Estou a pensar comprar umas coisas por aqui (Servos e Sonar ultra-som)
  • DigiControle - Não tem loja online mas enviam material de várias marcas. Foi lá que comprei os módulos RFM12-868D da Hoperf.
  • SuperRobotica -
Amostras gratuitas:
  • Maxim - Têm vários tipos de IC's (memórias, temperatura, rs232, etc) e ainda enviam amostras.
  • Vishay - Ainda estou à espera das amostras.(Recusaram-me as amostras)
Informação útil:

Arduino!?!?! Que é isso???»

Deixo aqui alguns links importantes: