Archiv verlassen und diese Seite im Standarddesign anzeigen : wie soll ich das zum fahren bringen??
Hallo Experte,
Ich bin neu in der Branche , hab robby RP5 und die Basiserweiterung mit CC2 drauf. Die Demos Funktionieren alle , aber ich wollte selbst ein kleines Code schreiben wo der Robby einfach nach vorne fährt 8-[ .
thread main {
ccrp5.FWD(150,150);
}
was ist daran falsch ???
HILFE!!!!
Danke jungs....
LLiinnuuxx
28.07.2004, 10:56
Einen der beiden Einträge kannst du rühig löschen!
Zu deiner Frage kann ich leider nichts sagen da ich mich nicht mit der Sytaw des RP5 auskenne!
Hallo Maria!
Ich weiß zwar net, wie das mit der cc2 geht, aber mit der cc1 müsste das dann so aussehn:
'Vorher fehlt halt noch das ganze definitions-zeuch
gosub SUBSYS_PWR_ON:beep 368,10,15
REV_L=on:REV_R=on:SYS PLM_SLOW
SYS FWD:SPEED_L=250:SPEED_R=250:pause 300
SYS FWD:SPPED_L=0:SPEED_R=0
@Jonas
wie müsste eine Schaltung zur Motorsteuerung für den Pulsweitenmodulator aussehen? Auf was muss ich alles achten, würde das gerne mit Lego-Motoren machen.
@RCO
ähm, keine ahnung, ich kenn mich nur n bisschen mit dem Robby von Conrad aus... 8-[
Schade, ich weiß nur, dass man dann entweder Transistoren oder Treiber ICs nimmt, aber die müssen halt einiges aushalten (vom Strom her), deshalb hätte mich interessiert, welche Typen man benutzen kann, und wie man sie anschließen muss.
Frag doch nochmal hier im Forum nach. Das weiß bestimmt einer.
Hallo Maria,
daran
thread main {
ccrp5.FWD(150,150);
}
ist nichts falsch, aber der "Gateway" zur CC1 möchte gern vorher initialisiert werden: VALUE=ccrp5.init();
Gruß Dirk
Ist zwar schonetwas her dass hier was geschrieben wurde, aber vielleicht liest es ja doch jemand:
Ich habe auch ein Problem mit der Vorwärtsfahrt.
Der Robi fährt ruckartig und nicht konstant.
Woran könnte das liegen?
Kann er nicht konstant fahren und während dessen andere Funktionen ausführen?
Grüße
Hallo uweZ,
... Du müßtest mal Deinen Code einstellen, sonst kann man dazu wenig sagen.
Gruß Dirk
Hi,
ich habe eine Vermutung:
wenn ccrp5.init() im main thread steht und der main thread ja wie in einer Endlosschleife durchlaufen wird, dann bekomme ich ja ständig einen reset der C1 Unit.
Wie kann ich es programmtechnisch hinbekommen dass init() nur ein mal ausgeführt wird?
Ich habe eine idee mit ner while-schleife in eine funktion zu springen und dann den Vergleichswert der Schleife zu ändern, so dass diese nicht mehr ausgeführ wird. Ist aber wenig elegant.
Ich hatte folgendes programmiert:
thread main
{
ccrp5.init();
ccrp5.FWD(200,200);
//sleep 1000; --> dann fährt er entsprechend mit längeren
Zyklen
}
Hallo UweZ,
... Stimmt, das Problem ist der regelmäßige Neustart (Reset) bei Deinem Programm.
Wenn Du eine Endlosschleife ...
loop { };
... am Ende einfügst, fährt der Robby weiter bis die Batterien schlapp machen.
In den Demos gibt es ein Unterprogramm showDistance(), das anstelle der Endlosschleife etwas sinnvolles tut.
Gruß Dirk
Danke Dirk,
habe das ganze mit loop gelöst.
Habe noch eine andere Frage:
Gibt es ausser mit Sleep (vielleicht auch hardware-technische) Lösung die Spannungsspitzen beim Umschalten von einer Laufrichtung in eine andere zu vermindern. Da mehr als 1A kurzfristig fließen und ich zusätzlich noch eine Kamera und ein Funkmodul an Bord hab machen die meisten Netzteile schlapp (--> Überspannungsschutz Spannung --> 0 --> reset des Robys) Mit Akkus zu arbeiten ist für häufige Tests nicht so toll. Außerdem sind diese schnell leer. Ich hatte schon an einen dicken C gedacht (2200µF) parallel zum Netzgerät.
Grüße
Uwe
Hat da jemand schon mal was gemacht?
Hallo UweZ,
vor jedem Fahrtrichtungswechsel sollte eine Pause von 200 ms eingefügt werden.
Gruß Dirk
Hallo,
die Pause hatte ich schon eingefügt. Mein 1000mA Netzteil für den Robi macht trotzdem schlapp. Ich werds vermelden wenn ich eine akzeptable Lösung gefunden habe.
Grüße
Uwe
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.