GreeBot: um robô amigo do ambiente

Hoje trago-vos um robô criado por um leitor do Make Bits, o João Pedro Lajoso de 15 anos criou um robô amigo do ambiente por usar células solares para recarregar as baterias! Denominou a sua criação de GreenBot. GreeBot, está equipado com um Arduino, uma câmara wireless e ainda sensores infra-vermelhos!

Lista de material usado:

  1. 2 servos motores;
  2. 1 Arduino Duemilanove;
  3. 2 sensores IR da SHARP;
  4. 1 bateria de 7,2V de 1300mAh;
  5. 4 painéis solares de 1,5V;
  6. 2 placas de acrílico;
  7. 1 câmara wireless

O autor do GreeBot, João Pedro Lajoso decidiu divulgar e permitir o uso do código que criou para o seu robô. Certamente que irá ser útil a muitos iniciantes.

Código Robô sem sensor:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
int motorEsq = 11;
int motorDrt = 10
;
void setup()
{
pinMode(motorEsq, OUTPUT);
pinMode(motorDrt, OUTPUT);
}
void loop()
{
parado(4);
frente(2);
esquerda(6);
tras(2);
esquerda(6);
direita(6);
}
void parado(int tempo){ // tempo = segundos/2
for(int i = 0; i<tempo;i++){
analogWrite(motorEsq, 0);
analogWrite(motorDrt, 0);
delay(500);
}
}
void tras(int tempo){ // tempo = segundos/2
for(int i = 0; i<tempo;i++){
analogWrite(motorEsq, 45);
analogWrite(motorDrt, 150);
delay(1500);
}
}
void frente(int tempo){ // tempo = segundos/2
for(int i = 0; i<tempo;i++){
analogWrite(motorEsq, 150);
analogWrite(motorDrt, 45);
delay(2500);
}
}
void esquerda(int tempo){ // tempo = segundos/2
for(int i = 0; i<tempo;i++){
analogWrite(motorEsq, 45);
analogWrite(motorDrt, 45);
delay(500);
}
}
void direita(int tempo){ // tempo = segundos/2
for(int i = 0; i<tempo;i++){
analogWrite(motorEsq, 150);
analogWrite(motorDrt, 150);
delay(500);
}
}

Código sensor IR:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
int sensorIrDPin = 0;
int sensorIrDValue = 0; // valor leído del pot
int motorEsq = 11;
int motorDrt = 10
;
void setup()
{
// inicializa comunicación serial a 9600 bps:
Serial.begin(9600);
pinMode(motorEsq, OUTPUT);
pinMode(motorDrt, OUTPUT);
}
void loop()
 
{
sensorIrDValue = analogRead(sensorIrDPin);
delay(200);
if(sensorIrDValue>=100){
analogWrite(motorEsq, 150);
analogWrite(motorDrt, 45);
}
 
 
sensorIrDValue = analogRead(sensorIrDPin);
delay(200);
if(sensorIrDValue>=100){
analogWrite(motorEsq, 45);
analogWrite(motorDrt, 45);
}
}

GreeBot em acção:

O robô utiliza quatro painéis solares para recarregar as suas baterias ligadas segundo o seguinte circuito de protecção:

GreeBot em detalhe:

Escrito por André Delgado

Fundador e administrador do Make Bits, desde cedo que se interessou por robótica e micro-controladores, principalmente pelo Arduino. Já escreveu 116 artigos no Make Bits sobre os mais variados temas da robótica.

Artigos Relacionados:

Comenta


Make Bits no teu email



* obrigatório


Publicidade:


Sistema Dinheiro Teste Drive