Line Follower

Ragazzi chi ma da una mano nel programmare un line follower?

scusa se mi permetto, ma cosa lo costruisci a fare un line follower se il software lo fai fare agli altri? che soddisfazione può darti?

Il bello di fare una cosa non è tanto il risultato, ma il risolvere le problematiche per raggiungerlo.

non credo che nessuno si metterà qui a farti il progetto perchè le persone hanno da portare avanti i loro. Poi per scrivere un software uno dovrebbe avere l'oggetto a portata di mano e fare test.

Come hai visto ti ho aiutato volentieri con quel problemino elettronico e insieme lo abbiamo risolto, ma ora stai chiedendo un programma funzionante.

Io ti consiglio di studiare le risposte del sensore con dei programmi test, in questo modo saprai come risponde a certi impulsi. Successivamente studia il movimento con altrettanti test. Non è una cosa semplice, ma con un po' di determinazione ce la puoi fare.

Poi ti ripeto, se posti problemi specifici le persone saranno ben disposte ad aiutarti, se invece chiedi un programma da zero non credo che nessuno ti risponderà.

Inoltre ci sono un monte di line follower open source a giro, guarda se trovi qualche progetto per studiarne il codice. Più lo trovi simile al tuo e meno avrai da modificare.

Ti lascio con una provocazione, chi sarebbe Massimo Banzi adesso se avesse chiesto ad altri di progettare Arduino? ;D

:smiley: :smiley: :smiley: giusto calamaro stavo appunto facendo io il programmino e poi fra un po avrei postato la parte di codice che avevo realizzato per farmi dare una mano! :smiley:

Premettendo che devo far seguire la linea tramite un sensore Fototransistor Fairchild qrb1134, questo è la mia prima parte di codice che fa seguire la linea e però una volta che il sensore non trova piu la linea lo fa ruotare solo a sinistra perchè ho fatto un piccolo circuito con le curve tutte a sinistra e devo dire che facendo cosi funziona.. Però adesso mi sorge la difficoltà di implementare il codice facendo si che il sensore quando non vede piu la linea perchè giustamente c'è una curva deve poter ruotare sia a destra che a sinistra fino a quando non la trova...chi mi aiuta grazie! :smiley: :smiley: Calamaro qui ho bisogno di aiuto! :stuck_out_tongue: :stuck_out_tongue:

int dirbpin = 8; // Direction pin for motor B is Digital 8
int speedbpin = 9; // Speed pin for motor B is Digital 9 (PWM)
int dirapin = 12; // Direction pin for motor A is Digital 12
int speedapin = 10; // Speed pin for motor A is Digital 10 (PWM)
int led = 13;
int sensore = 2; // pin digitale
int val = 0;

void setup()
{
Serial.begin(9600);
pinMode(dirbpin, OUTPUT);
pinMode(dirapin, OUTPUT);
pinMode(led, OUTPUT);
pinMode(sensore, INPUT);

}

void loop()
{
val=digitalRead(sensore);
if(val == 1){
digitalWrite(led,val);
digitalWrite(dirbpin, val); // set direction
digitalWrite(dirapin, val); // set direction
analogWrite(speedbpin, 70);//set velocità
analogWrite(speedapin, 70);//set velocità
val=digitalRead(sensore);
}
else {
digitalWrite(led,val);
analogWrite(speedbpin,70);//set velocità
analogWrite(speedapin, 0);//set velocità
val=digitalRead(sensore);
}
}

Un soluzione elegante secondo me' e' quella di montare un secondo sensore di linea leggermente sfalsato rispetto all'altro, quando uno dei 2 sensori perde il riflesso del bianco sai da che parte gira la linea.

Se lo vuoi fare a livello software, crea una variabile di direzione, svolti a sx se entro tot tempo ( breve da calcolare sperimentalmente ovvero prima che il robot esca del tutto dalla linea e rischi di ritrovarsi nella direzione contraria ) non trovi il bianco inverti la direzione di ricerca e naturalmente cambi lo stato della variabile direzione, se lo trovi entro i tempi stabiliti mantieni la girata da quel lato.

Un soluzione elegante secondo me' e' quella di montare un secondo sensore di linea leggermente sfalsato rispetto all'altro, quando uno dei 2 sensori perde il riflesso del bianco sai da che parte gira la linea.

è più o meno la soluzione che ho adottato per il mio linefollower.
Io ho montato sull'asse delle ruote due sensori QRD1114 posizionati in parallelo. La linea da seguire passa in mezzo ai sensori (i sensori sono appena all'esterno della linea) e quando uno dei due sensori inizia a "vedere" la linea sa che deve girare.
Con questo principio ho creato un linefollower molto preciso :slight_smile:

il problema è che lui ha un sensore solo!

...e ce ne mette un altro! :smiley:

streetspirit è la stessa soluzione che vevo pensato di ottenere io..ho comprato un'altro sensore e adesso mi metto all'opera vi faccio sapere grazie! :smiley:

O due sensori oppure una riga bianca all'interno di due righe nere, però anche qui siamo al punto di partenza, non sai veramente da che parte sta sbandando, Due sensori sono la scelta ottimale :slight_smile: