PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bin fast fertig, bitte helft mir :)



Roboter n00b
01.04.2005, 13:55
Hallo
So, ich bin gerade daran meinen Bot zu Programmieren. Da er am anfang nicht fuhr und nicht auf die Sensoren achtete, wollte ich ihn jetzt erst mal dazu bringen, geradaus zufahren. Ich habe dann folgendes Programm geschrieben:
(also der C-Control spricht den RnMotor rs232 an)



#fahren
'motorstrom
print "#rmi": put 2: put 58

'beide Motoren ein
print "#rmo": put 2

'beide motoren rechts
print "#rmd": put 2: put 1

'geschwindigkeit
print "#rmg": put 2: put 15

'endlos drehen
print "#rme": put 2
return

also ich habe statt "chr(x)" einfach "put(x)" verwendet, da der CC den Befehl "chr" nicht kennt.
Nun die motoren machen trotzdem keinen Wank, ich habe auch schon TX und RX vertausch. Die motoren hab ich richtig angeschlossen, da ich sie vom PC aus ohne probleme steuern kann, und Spannung ist auch genügend da. Hab ich einen wichtigen befehl vergessen, oder wo liegt das Problem???

danke für eure Mühe :)

gruss Serge

rapo
01.04.2005, 18:41
Hi,
bin nur kurz drübergestolpert, setz mal ein semikolon hinter den print-befehl und dann put... print "xxx"; : put xxx
mfg ralf

Roboter n00b
02.04.2005, 17:05
Hi,
bin nur kurz drübergestolpert, setz mal ein semikolon hinter den print-befehl und dann put... print "xxx"; : put xxx
mfg ralf

Hi Ralf
Vielen dank für den Tipp, es klappt wunderbar O:) . Nun, ich habe nun mit hilfe von Matthias ein Programm geschrieben, und es funktioniert auch schon einigermassen. Ich habe am Roboter 3 IS471 Sensoren, wobei hier noch ein problem vorliegt.
Hier mal das Programm


define x byte
define sensor1 port[1]
define sensor2 port[5]
define sensor3 port[16]


#loop
gosub fahren
wait not sensor1 and sensor2 and sensor3
gosub ausweichen
goto loop

#fahren
'Motorstrom
print "#rmi"; :put 2: put 58
pause 20
'beide Motoren ein
print "#rmo"; : put 2
pause 20
'beide motoren rechts
print "#rmd"; :put 2: put 0
pause 20
'geschwindigkeit
print "#rmg"; :put 2: put 15
pause 20
'endlos drehen
print "#rme"; : put 2
wait not sensor1 and sensor2 and sensor3
gosub ausweichen


#ausweichen
randomize timer
x=rand
if x<128 then gosub rechts else gosub links
return

#links
'Motorstrom
print "#rmi"; :put 2: put 58
pause 20
'beide Motoren ein
print "#rmo"; : put 2
pause 20
'Linker motor nach links
print "#rmd"; :put 0: put 0
'rechter motor nach rechts
print "#rmd"; :put 1: put 1
pause 20
'geschwindigkeit
print "#rmg"; :put 2: put 15
pause 20
'endlos drehen
print "#rme"; : put 2

wait sensor1 and sensor2 and sensor3
goto loop
#rechts
'Motorstrom
print "#rmi"; :put 2: put 58
pause 20
'beide Motoren ein
print "#rmo"; : put 2
pause 20
'Linker motor nach links
print "#rmd"; :put 0: put 1
'rechter motor nach rechts
print "#rmd"; :put 1: put 0
pause 20
'geschwindigkeit
print "#rmg"; :put 2: put 15
pause 20
'endlos drehen
print "#rme"; : put 2
pause 20

wait sensor1 and sensor2 and sensor3
goto loop

nun, das Programm läuft wie gesagt nicht schlecht, das einzige Problem ist, dass die CC sich nur für den Sensor am port [1] interessiert. Also egal was die anderen beiden Sensoren anzeigen, fährt er geradeaus. Die Sensoren funtionieren übrigens, da die Kontroll LED leuchtet. Kann sich die CC irgendwie nur auf einen Port achten? Kann ich mir irgendwie nicht vorstellen. Und wenn ich die 2 nicht beachteten Sensoren an den Port[1] anschliesse, werden nur diese beachtet, dafür die anderen beiden nicht. Hat da jemand einen Lösungsansatz`?

gurss Serge

Roboter n00b
02.04.2005, 20:23
ok, ich habs jetzt hinbekommen

jomammele
02.04.2005, 21:37
Hallo,
du schreibst ganz am Anfang, dass du deine Motoren über den PC direkt ansteuerst.
Wie machst du das`Hast du da ein spezielle Programm?
Gruß
Joachim

Roboter n00b
02.04.2005, 21:42
Hi Joachim
Also mit dem RN-Motor von Robotikhardware geht das ganz gut http://www.shop.robotikhardware.de/shop/catalog/product_info.php?cPath=65&products_id=13
da bekommst du die Software grad mitgeliefert

gruss Serge