-
-
Robby Programm Touch-Stop
Hi,
ich hoffe mal das thema passt! *gg*
Also ich habe ein Problem *gg*
Ich habe das Programm Einführung Antrieb so verändert, dass Robby eine bestimmte Zeit stoppen soll, wenn man den Touchsensor berührt!
Aber Robby stoppt automatisch nach der eingegeben Zeit! Immer! Das ist doch komisch oder?
Also hier die Modifikation:
if TOUCH then goto Stop
if (ACSL_F and ACSR_F)=on then goto rotate
if ACSL_F=on then goto move_right
if ACSR_F=on then goto move_left
SYS FWDR:SYS FWDL:SPEED_L=255:SPEED_R=255:goto loop
#Stop
SPEED_L=0:SPEED_R=0ause 500:SYS ROTR:goto loop
Was habe ich falsch gemacht?
mfg
-
Neuer Benutzer
Öfters hier
Hi,
wo fängt dein #loop an? Und welche eingegebene Zeit meinst du?
Gruß
-
So hier einmal ab dem loop:
#loop
pause 5:SYS COMNAV_STATUS
'--------- LEDs ansteuern --------------------
if ACSL_F=on then gosub LED4ON else gosub LED4OFF
if ACSR_F=on then gosub LED1ON else gosub LED1OFF
'--------- AUSWEICHMANÖVER EINLEITEN ---------
if TOUCH then goto Stop
if (ACSL_F and ACSR_F)=on then goto rotate
if ACSL_F=on then goto move_right
if ACSR_F=on then goto move_left
SYS FWDR:SYS FWDL:SPEED_L=255:SPEED_R=255:goto loop
'-------- AUSWEICHEN NACH RECHTS -------------
#move_right
SPEED_R=100:SPEED_L=255:goto loop
'-------- AUSWEICHEN NACH LINKS -------------
#move_left
SPEED_L=100:SPEED_R=255:goto loop
'---------- ROTIEREN --------------------
#rotate
SPEED_L=150:SPEED_R=150:SYS ROTR:goto loop
'----------------------------------------------
#Stop
SPEED_L=0:SPEED_R=0ause 500:SYS ROTR:goto loop
Also bei #Stop ist ja eine Pause angegeben (500) <-- Das ist auch die Zeit nach der Robby automatisch stehen bleit - die Pause beim Touch und beim normalen fahren stimmen überein!
mfg
-
Erfahrener Benutzer
Robotik Einstein
touch problem
hallo, du musst einen vergleichswert eingeben.
je nach feuchtigkeit der finger geht er von ca 20- 200.
mfg pebisoft
"if touch > 70 then goto stop"
-
Neuer Benutzer
Öfters hier
OK.
Also ich habe es nicht probiert, aber ich vermute das TOUCH immer zutrifft, probiere mal die Abfrage:
if TOUCH > 25 then goto Stop
Gruß
-
oh, hab ich ganz übersehen!
Mit if touch > 70 then goto stop und funktioniert reibungslos!
Aber wieso hat er vorher immer nach der Zeit gestoppt?
thx!
-
Neuer Benutzer
Öfters hier
Wenn du nichts drückst ist die Variable TOUCH = 0!
-
Erfahrener Benutzer
Robotik Einstein
nicht immer ist touch "0"
da er vom adc-port kommt, kann er auch manchmal einen anderen wert annehmen. frag mal mit einer schleife den "ad[5]" port ab und gib den wert einmal mit print am pc aus.
mfg pebisoft
-
werde ich morgen mal testen! Die Akkus müssen nu erstmal wieder laden
mfg
-
So - Robby hat nu wieder Saft! Ad[5] ist doch der Touch Sensor oder irre ich mich da? Wenn ich ihn durchgehend abfrage dürfte eigentlich kein Signal kommen jedenfalls nicht wenn ich ihn nicht berühre? Was bringt das dann?
mfg
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen