LEZIONE 45

TUTTI I SENSORI

Realizziamo un programma che faccia cercare la luce al microrobot per ricaricarsi e nel tragitto per raggiungerlo eviti gli ostacoli.

#CHIP 16F84, 4           'Tipo di PIC utilizzato
DIR PORTA OUT           'Definisco le porte d'uscita
DIR PORTB IN           'e d'ingresso

DIM Valore as BYTE           'Variabile sensori

Ciclo:           'Se c'è un ostacolo valuto cosa fare
          'Meccanico sinistra
          IF PortB.2 = 1 THEN GOTO SINISTRA
          'Meccanico destra
          IF PortB.3 = 1 THEN GOTO DESTRA
          'Ottico sinistra e destro attivi
          Valore = Portb & b'00110000'
          IF Valore = b'00000000' THEN GOTO AVANTI
          'Ottico sinistra e destro disattivi
          Valore = Portb & b'00110000'
          IF Valore = b'00110000' THEN GOTO AVANTI
          'Ottico sinistra
          IF PortB.4 = 0 THEN GOTO LUCESINISTRA
          'Ottico destra
          IF PortB.5 = 0 THEN GOTO LUCEDESTRA
          'Se non c'è nessun ostacolo vado avanti
          GOTO AVANTI
GOTO Ciclo
DESTRA:           'Il microrobot va indietro
          PortA = b'00000110'           'Attende pochi secondi
          WAIT 1 sec           'Il microrobot gira a destra
          PortA = b'00000101'           'Attende pochi secondi
          WAIT 1 sec           'Salta all'inizio del programma
GOTO Ciclo
SINISTRA:           'Il microrobot va indietro
          PortA = b'00000110'           'Attende pochi secondi
          WAIT 1 sec           'Il microrobot gira a sinistra
          PortA = b'00001010'           'Attende pochi secondi
          WAIT 1 sec           'Salta all'inizio del programma
GOTO Ciclo
LUCEDESTRA:           'Il microrobot gira a destra
          PortA = b'00000101'           'Attende pochi secondi
          WAIT 1 sec           'Salta all'inizio del programma
GOTO Ciclo
LUCESINISTRA:           'Il microrobot gira a sinistra
          PortA = b'00001010'           'Attende pochi secondi
          WAIT 1 sec           'Salta all'inizio del programma
GOTO Ciclo
AVANTI: 'Il microrobot va avanti
          PortA = b'00001001'           'Attende pochi secondi
          WAIT 1 sec           'Salta all'inizio del programma
GOTO Ciclo
END           'Fine del programma

In questo programma si controllano costantemente i sensori meccanici e quelli ottici e si decide cosa fare in base al loro stato.
Da notare l’istruzione

Valore = Portb & b'00110000'
IF Valore = b'00000000' THEN GOTO AVANTI

ed

Valore = Portb & b'00110000'
IF Valore = b'00110000' THEN GOTO AVANTI

che servono per determinare quando tutti e due i sensori ottici sono attivi o disattivi.

Una cosa molto importante è determinare ogni singola possibilità o evento che possa accadere, in modo da non lasciare al caso un eventuale evento.
Se provate a cancellare le istruzioni sopra citate vedrete che il robot funzionerà in modo anomalo, perché in quelle condizioni non saprà cosa fare.

LEZIONE 46
LEZIONE 44

News

Aggiunto il tutorial Snail un line follower base con Arduino Nano.
Recupero di un LCD da 272X204 pixel.
Aggiunto il tutorial del robot MINIMUS.
Aggiunto il manuale sull'utilizzo del tester o multimetro.
Aggiunta la lezione 33 della nuova versione del robot Poor V2.