line follower
hdopo aver calibratro il sensore centrale e il laterale della scheda line follower ho inserito il codi seguente(proposto nei fascicoli della DeA)
'{$STAMP BS2}
'*************************************************
'* *
'* Programma navigazione con DeA LineFollower *
'* su circuiti chiusi *
'* Utilizza solo 3 sensori IR posizionati nei *
'* 3 alloggi centrali, Sx1 Line Dx1 *
'* *
'*************************************************
'---------- Dichiarazione Costanti ---------------------
LED_ON con 0
LED_OFF con 1
LINEA_BIANCA con 0
LINEA_NERA con 1
MODALITA con LINEA_NERA
Sx1 con 6
LINE con 4
Dx1 con 3
SERVO_DX con 13 ' Porte relative ai servo motori
SERVO_SX con 12
ANTIORARIO_DX con 1000
ANTIORARIO_SX con 1000
ORARIO_DX con 500
ORARIO_SX con 500
SERVO_STOP con 750
VELOCITA100 con 100
'---------- Dichiarazione Variabili ---------------------
ledPos var nib
cont var nib
azione var nib
lfBits var nib
' --------------- Inizializzazione ------------------------------
pause 5000
outl = %01011000
dirl = %01011000
azione = 1
' ---------------- Programma Principale -------------------------
Main:
gosub Lettura_Sensori
DecidiAzione:
lookdown lfBits, [%0001, %0010, %0100], azione
branch azione, [GiraDestra, Avanti, GiraSinistra]
GiraDestra:
pulsout SERVO_DX, SERVO_STOP
pulsout SERVO_SX, SERVO_STOP + VELOCITA100
goto Main
Avanti:
pulsout SERVO_DX, SERVO_STOP - VELOCITA100
pulsout SERVO_SX, SERVO_STOP + VELOCITA100
goto Main
GiraSinistra:
pulsout SERVO_DX, SERVO_STOP - VELOCITA100
pulsout SERVO_SX, SERVO_STOP
goto Main
end
' --------------------- Subroutine --------------------------------
Lettura_Sensori:
lfBits = 0
for cont = 0 TO 2
lookup cont, [Dx1, LINE, Sx1], ledPos
outl.lowbit(ledPos) = LED_ON
pause 1
lfBits.lowbit(cont) = in9 ^ MODALITA
outl.lowbit(ledPos) = LED_OFF
next
return
accendo il panettone ma nulla si muove....
non capisco quale sia l'errore...il codice l'ho controllato parecchie volte...
grazie in anticipo per l'aiuto
|