Entwickler-Ecke

Windows API - Lego Mindstorms Tower über RS-232 ansprechen


klezmor - So 15.04.07 11:53
Titel: Lego Mindstorms Tower über RS-232 ansprechen
Ich habe einen älteren Mindstorm Roboter, welcher ein infrarot interface zu meinem Computer hat. Dies funktioniert so, dass über RS-232 ein Tower an den Computer angschlossen wird und dieser mit dem Roboter kommunizieren kann.
Ich glaube nicht, dass es für diesen Tower eine eigene öffentliche API von Lego gibt(ich wüsste es zumindest nicht).
Deshalb will ich diese selbst implementieren.
Ich denke mal der Tower wird nur digitale Signale senden, deshalb sollten eigentlich Funktionen genügen, die z.b. die Infrarotleds für eine bestimmte zeit an und dann wieder ausschalten.
Ich hoffe nicht, dass in dem Tower schon hardwaremäßig ein eigenes Protokoll implementiert ist, da, in diesem Fall, eine eigene Programmierung unmöglich wäre.
Diesen Tower könnte man dann für viele Sachen benutzen, man könnte z.B. das Infrarotprotokoll verschiedener Fernsehrhersteller implementieren und so z.b. fernseher automatisch ein/bzw. ausschalten.
Es gibt auch viele andere nette Dinge, welche über infrarot kommunizieren.
Ich hoffe ihr könnt mir helfen, ich habe eigentlich beinahe keine Ahnung von sowas.


andras - Di 17.04.07 12:14

user profile iconklezmor hat folgendes geschrieben:
Ich glaube nicht, dass es für diesen Tower eine eigene öffentliche API von Lego gibt(ich wüsste es zumindest nicht).

Kann ich mir ehrlich gesagt nicht vorstellen, auf jeden Fall ist die nicht öffentlich.

user profile iconklezmor hat folgendes geschrieben:
Ich hoffe nicht, dass in dem Tower schon hardwaremäßig ein eigenes Protokoll implementiert ist, da, in diesem Fall, eine eigene Programmierung unmöglich wäre.

Naja, irgendwas muss der Tower implementiert haben, woher soll der sonst wissen, was er mit den Signalen machen soll, die vom PC kommen... aber vl kann man rauskriegen wie das funktioniert bzw wie komplex das ganze ist

user profile iconklezmor hat folgendes geschrieben:
...ich habe eigentlich beinahe keine Ahnung von sowas.

Hast du schon etwas Ahnung über die RS232 Schnittstelle, wie die aufgebaut ist etc. oder hast du wirklich 0 Ahnung. Musst du mir halt sagen, weil ich hab keine Lust alles zu erklären obwohl du es schon weißt und wenn du es noch nicht weißt hat es keinen Sinn den Rest zu erklären :wink:


klezmor - Di 17.04.07 17:17

user profile iconandras hat folgendes geschrieben:

user profile iconklezmor hat folgendes geschrieben:
Ich hoffe nicht, dass in dem Tower schon hardwaremäßig ein eigenes Protokoll implementiert ist, da, in diesem Fall, eine eigene Programmierung unmöglich wäre.

Naja, irgendwas muss der Tower implementiert haben, woher soll der sonst wissen, was er mit den Signalen machen soll, die vom PC kommen... aber vl kann man rauskriegen wie das funktioniert bzw wie komplex das ganze ist


Ich habe mich da falsch ausgedrückt, eigentlich meinte ich das Protokoll zwischen dem Mindstorm und dem Tower, anstatt des Protokolls zwischen Tower und Computer.

Also in Bezug auf die RS232 Schnittstelle habe ich wirklich keinerlei Ahnung.


andras - Mi 18.04.07 12:18

user profile iconklezmor hat folgendes geschrieben:

Also in Bezug auf die RS232 Schnittstelle habe ich wirklich keinerlei Ahnung.

Na gut dann mal ein bisschen Theorie.....
im Prinzip gibt es Input und Outputpins (diese kleinen Metallzapfen). die Input vom pc aus gesehen sind für dich ja eigentlich eher uninteressant, schätz ich mal, da der Tower wohl nichts an den PC senden wird...
Also zu den Output-Pins:
Es gibt beim 9-poligen (bin mir sicher dass du den verwendest) 3 Outputs.
RxD, RTS, DTR. Auf Wikipedia [http://de.wikipedia.org/wiki/RS232] kannst du dir die genaue Pinbelegung anschauen.... und vor Allem wo der Pin auf dem Stecker ist.
Doch das wichtigste: RxD sendet Daten, so viel ich weiß digital d.h. du gibts in deinem Programm einfach den Befehl z.B.: den Wert 50 zu senden und dann wird halt 50 als binäre Zahl gesendet. Ich weiß nicht ob das bei dem Tower der Fall ist, aber wenn stellt sich die Frage, was ist in dem Tower drin, dass den Wert verarbeitet oder hängt da die LED direkt dran.... Wenn was dazwischen ist, Mikrocontroller z.B. dann wird's schwer, weil du nicht weißt was das Programm auf dem Mikrocontroller mit den Daten macht. Wenn das direkt an die LEDs weitergegeben wird (im Prinzip ist ja der Wert nu Strom an für 1 und Strom aus für 0) dann flackert die halt und du hast dein an- und ausschalten.
Und was hat es mit RT, DTR auf sich?
Die kannst du nach Belieben an und ausschalten, dauernd an, dauernd aus.....
So, ich hoffe dieser Teil war halbwegs verständlich. :wink:

Und jetzt das Programmieren:
Ich habs schon einmal gschafft, dass ich was durchsckicke durch die serielle Schnittstelle, also es geht, auch wenn das oft stunden dauert :wink:
*tiefinirgendwelchenarchivenwühl**nichtsfind**verdammt* ich dürft die files irgendwann exekutiert haben, kann dir jetzt leider nicht sagen was ich verwendet hab, aber hier im forum gibts was (klick) [http://www.delphi-forum.de/viewtopic.php?t=60876&highlight=rscom], glaub dass da was dabei ist, was hilft. Kann leider nichts testen, da ich an einem Laptop sitze und keine serielle Schnittstelle hab :(
Hoffe das hier hilft dir einmal weiter!!