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:
-
2 servos motores;
-
1 Arduino Duemilanove;
-
2 sensores IR da SHARP;
-
1 bateria de 7,2V de 1300mAh;
-
4 painéis solares de 1,5V;
-
2 placas de acrílico;
-
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:


















