Codice per SUNROVER su Arduino

inserisco il codice che ho utilizzaro per dare vita al Rover.
___________________________________________________

// Applicazione per Rover SunFollower
// Il robot segue le fonti di luce predominanti
// evita gli ostacoli se entra in collisione con un ostacolo
// rilevato dai sensori.
//Ver. 1.0 7/3/2010

#include
#define SX 0 //pin 0 per sensore di SX
#define DX 1 //pin 1 per sensore di DX
#define LSX 9 //pin 9 per sensore di luce di Sinistra
#define LDX 8 //pin 8 per sensore di luce di Destra

Servo myservoDX; // Creo oggetto per ruota di Destra
Servo myservoSX; //Creo oggetto per ruota di Sinistra

long val_SX=0;
long val_DX=0;

long OTT_DX=0; //variabile per registrare la luce di Destra
long OTT_SX=0; // Variabile per registrare la luce di Sinistra
long delta=0; //variabile usata per salvare la differenza di luce tra DX e SX
void setup() {
Serial.begin(9600);
myservoDX.attach(9); // servo ruote al pin 9 PWM ruota di Destra
myservoSX.attach(8); // servo ruote al pin 8 PWM ruota di Sinistra

}

void loop () {
val_SX=analogRead(SX); //leggo i valori degli interruttori di sinistra
val_DX=analogRead(DX); //leggo i valori degli interruttori di destra
OTT_DX=analogRead(LDX); //leggo i valori di luce di Destra
OTT_SX=analogRead(LSX)-5; //leggo i valori di luce di Sinistra
delta = OTT_SX-OTT_DX; // eseguo la sottrazione tra i vaolri rilevati
// ottenendo valori positivi o negativi o ugali a 0

if (val_SX <= 20)
{
myservoSX.write(91); //Rover si ferma per blocco a sinistra
myservoDX.write(92);
delay(1000);
myservoDX.write(95); // va in dietro ruotando sulla ruota Sinistra
myservoSX.write(91);
delay (2000);
}
else if (val_DX 0 ) //rover riceve luce da Sinistra quindi gira a Sinistra
{
myservoSX.write(92); //rover ruota a Sinistra
myservoDX.write(88);
delay (500);
}
else if (delta < 0 ) //rover riceve luce da Destra quindi gira a Destra
{
myservoSX.write(95); //rover ruota a Destra
myservoDX.write(91);
delay (500);
}

else
{
myservoDX.write(88); // va avanti
myservoSX.write(95);
delay(500);
}

Serial.println(delta); //Debug e print del valore differenza tra la luce
myservoDX.write(91); //
myservoSX.write(92); // Rover si ferma
delay(10);
}

Annunci

SUNROVER ver. 1.0

La prima versione del SunRover è operativa !!!

L’obiettivo di Sun Rover è quello di seguire le fonti di luce nell’ambiente, e segue continuamente le variazioni e le quantità maggiori di luce. Tramite due fotoresistenze il SunRover in questo momento è in grado di percepire la luce a destra e sinistra, ma non è in grado di capire se la luce predominante è alle sue spalle.

La  prossima versione inseriro’ una  fotoresistenza nella parte inferiore del SunRover, e tramite un alogoritmo che simula delle decisioni di Intelligenza Artificiale faremo ruotare il Rover in caso di sole alle spalle.

Nel prossimo Post sul sito inserisco il codice ospitato dal Rover in versione 1.0

Ovviamente si tratta di un prototipo per poter testare le capacità di Arduino, sicuramente questo Robot porterà a nuove sue evoluzioni di progetto.

Ora inserisco le foto dell’Hardware, poi anche lo schema circuitale.

RoboRover con Arduino

Questo è il video (di qualità pessima prometto di caricarne uno più interessante a breve) dove si vede la prima versione di RoboRover . Due baffi alle estremità del Robot permettono di capire se c’e’ un contatto con qualche ostracolo e capendo se si tratta di una collisione a destra o sinistra evita l’ostacolo.

ARDUINO: il primo progetto

Questa è la versione di Arduino 2009. www.arduino.cc

Come primo progetto ho deciso di rianimare la carcassa di un vecchio rover (ecco il nome del mio Blog) con scheda madre bruciata, inserendo la mia nuova scheda arduino . Obiettivo del primo progetto è il SUNROVER. Un robot che possa percepire le fonti di luce e raggiungerle in completa autonomia decisionale.