PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Robby Programm Touch-Stop



ASA_Warlord
21.10.2004, 16:17
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? 8-[

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=0:pause 500:SYS ROTR:goto loop




Was habe ich falsch gemacht?


mfg

sly1
21.10.2004, 16:46
Hi,
wo fängt dein #loop an? Und welche eingegebene Zeit meinst du?

Gruß

ASA_Warlord
21.10.2004, 16:56
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=0:pause 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

pebisoft
21.10.2004, 17:05
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"

sly1
21.10.2004, 17:12
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ß

ASA_Warlord
21.10.2004, 17:14
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!

sly1
21.10.2004, 17:20
Wenn du nichts drückst ist die Variable TOUCH = 0!

pebisoft
21.10.2004, 17:27
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

ASA_Warlord
21.10.2004, 18:47
werde ich morgen mal testen! Die Akkus müssen nu erstmal wieder laden :(

mfg

ASA_Warlord
22.10.2004, 11:46
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? :-s

mfg