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.
Aggiunta il link al corso Linux Uno su Udemy.
Aggiunto il tutorial per la realizzazionedi un Arcade con materiale di riciclo.