Skilltronic
24.04.2011, 13:15

IR-Signale für Power Functions mit dem PC erzeugen

Hallo zusammen!


Dies ist mein erster Beitrag hier, obwohl ich schon seit langer Zeit LEGO-Fan bin. Aber Programmieren und das Zusammenbasteln elektronischer Schaltungen sind fast noch größere Hobbys von mir. Datenübertragung, speziell das Senden und Empfangen von Infrarotsignalen haben es mir dabei besonders angetan.

Nun habe ich mir vor kurzem, aus purer Begeisterung für die Technik, den Bagger 8043 gegönnt und bin so, mehr oder weniger zufällig, auf die Power Functions und die dazugehörende IR-Fernsteuerung gestoßen. Natürlich wollte ich mehr über das Übertragungsprotokoll von LEGO wissen und bin glücklicherweise auf diese ausführliche Dokumentation gestoßen:

http://www.philohome.com/..._Functions_RC_v110.pdf

Ich war erstaunt über die vielen Möglichkeiten bzw. Betriebsarten, die das System bietet. Bis zu 16 Digital- oder acht PWM-Ausgänge gleichzeitig ansteuern etc. Also habe ich angefangen, das Protokoll in QuickBasic nachzuprogrammieren, um entsprechende IR-Signale vom PC senden zu können, was auch funktioniert. Alles, was man an Hardware dafür braucht, ist eine Infrarot-Sendediode, die man z.B. aus einer alten TV-Fernbedienung ausbauen kann und ein Verlängerungskabel für die serielle Schnittstelle. Bei letzterem wird ein Stecker abgeschnitten und zwei der Leitungen im Inneren mit den Anschlüssen der IR-Diode verdrillt. Man muss nichts löten und es wird keine zusätzliche Stromversorgung benötigt. Zumindest, wenn man auf große Reichweite verzichten kann. So kann man den Computer als Universalfernbedienung für die Power Functions benutzen.

Nun kommt die Einschränkung. So richtig sauber funktioniert das Ganze bisher (!) nur unter echtem DOS. Das liegt daran, dass Windows ständig verschiedene Sachen macht. Da wird z.B. der Messenger auf neue Nachrichten überprüft, ein Antivirenprogramm läuft mit usw. Beim Erzeugen von IR-Signalen kommt es aber auf hohe, zeitliche Genauigkeit an. Unter DOS kann sich der Rechner ausschließlich auf das Sendeprogramm "konzentrieren".

Ich will jetzt aber nicht gleich mit zu vielen, technischen Einzelheiten kommen. Mein eigentliches Anliegen ist, erst einmal zu erfahren, ob es in der LEGO-Gemeinde Leute gibt, die sich für so etwas interessieren. Wie könnte das Ganze in der Anwendung aussehen? Eher steuern von Hand, z.B. per Tastatur oder Maus (z.B. acht Schieberegler auf dem Bildschirm, um acht Verbraucher zu steuern)? Oder eine Programmsteuerung (Motor 3 für 30 Sekunden auf PWM-Stufe 4 und dann Lampe 5 an etc.)? Gibt es so etwas vielleicht schon viel besser?


Gruß
Skilltronic


Laplace
24.04.2011, 16:17

Re: IR-Signale für Power Functions mit dem PC erzeugen

Hi Skilltronic,

ich habe vor einiger Zeit etwas ähnliches gemacht. Da der COM-Port unter Windows recht unzuverlässig ist, habe ich ein USB-Modul verwendet:
Link.

Das Teil hat einen Bit-Bang-Modus zur direkten Weitergabe von USB-Signalen an die einzelnen Pins. Mit einer kleinen Transitorschaltung kann man die Sendeleistung ordentlich hochdrehen d.h. mehrere LED's gleichzeitig steuern.

Ich nutze das, um meine PF-Züge zu fahren suche aber noch nach einer vernüftigen Lösung das Ganze mit NXT zu koppeln um eine interaktive Zugsteuerung zu bekommen.

Gruß
Laplace


» Nun kommt die Einschränkung. So richtig sauber funktioniert das Ganze
» bisher (!) nur unter echtem DOS. Das liegt daran, dass Windows ständig
» verschiedene Sachen macht.
»
» Ich will jetzt aber nicht gleich mit zu vielen, technischen Einzelheiten
» kommen. Mein eigentliches Anliegen ist, erst einmal zu erfahren, ob es in
» der LEGO-Gemeinde Leute gibt, die sich für so etwas interessieren. » Gruß


jorge42
24.04.2011, 21:43

Re: IR-Signale für Power Functions mit dem PC erzeugen

hallo ihr beiden,
ich habe leider mit Elektronik nichts mehr am Hut, einfache Programmierung interessiert mich aber doch. Deshalb steht auch NXT auf meiner Liste. Es gibt ja von HiTechnic zusätzliche Sensoren für NXT, so z.B. ein PF kompatibler Empfänger, ich bin aber der Meinung, auch etwas über einen PF Sender gelesen zu haben, mit dem man den PF Empfänger steuern kann. Damit ließe sich auch ein Lok Betrieb realisieren. Leider finde ich diesen Sender derzeit nicht.


jorge42
24.04.2011, 21:45

Doch gefunden

hab den doch gefunden, hier der Link zum Sender
http://www.hitechnic.com/...add=action&key=NIL1046

und hier zum Empfänger
http://www.hitechnic.com/...add=action&key=NIR1032


Laplace
25.04.2011, 10:19

Re: IR-Signale für Power Functions mit dem PC erzeugen

Hallo Ihr beiden,

der IR-Sender ist zwar teuer aber auch schlecht
Die Reichweite ist sehr gering und damit für die Zugsteuerung nicht zu gebrauchen.
Der Nachteil bei dem UM245R-Modul (gibt es übrigens z.B. bei RS für 19.- link) ist der, dass man immer einen PC/Laptop braucht. Ich bin also noch auf der Suche nach einem "home brewed" IR-Sender für den NXT. Sobald ich was finde melde ich mich wieder.

Gruß
Laplace


» hallo ihr beiden,
» ich habe leider mit Elektronik nichts mehr am Hut, einfache Programmierung
» interessiert mich aber doch. Deshalb steht auch NXT auf meiner Liste. Es
» gibt ja von HiTechnic zusätzliche Sensoren für NXT, so z.B. ein PF
» kompatibler Empfänger, ich bin aber der Meinung, auch etwas über einen PF
» Sender gelesen zu haben, mit dem man den PF Empfänger steuern kann. Damit
» ließe sich auch ein Lok Betrieb realisieren. Leider finde ich diesen
» Sender derzeit nicht.


Skilltronic
26.04.2011, 13:48

Re: IR-Signale für Power Functions mit dem PC erzeugen

Hallo,

Danke erst mal für eure Kommentare und Anregungen. Klar gibt es noch viele Möglichkeiten um z.B. das IR-Signal zu verstärken oder die Sache unter Windows laufen zu lassen. Ich wollte aber bewusst den Material- und Kostenaufwand beim Nachbauen so gering wie Möglich halten.

Was den Eigenbau eines IR-Senders für den NXT angeht - wird dort das gleiche Protokoll benutzt, wie bei den PF? Wenn nicht, gibt es eine Dokumentation des NXT-Protokolls? Ich bastle ein wenig mit PIC-Mikrocontrollern herum, die ich in Assembler programmiere. Auf diese Art habe ich mir schon Fernsteuerungen für verschiedene IR-Protokolle nachgebaut. Das dürfte für die PF auch machbar sein. Aber das ist dann eher was für Elektronikbastler, die schon über etwas Erfahrung auf diesem Gebiet verfügen.

Etwas Ahnliches hatte ich mir schon überlegt, um das Ganze unter Windows laufen zu lassen. Ein µC, der an die serielle Schnittstelle des Computers bzw. einen USB/RS232-Konverter angeschlossen wird und auf entsprechende Befehle vom Rechner hin die passenden IR-Signale erzeugt. Also alles, das zeitkritisch ist, liefe auf dem Controller. Das PC-Programm dazu würde ich dann in FreeBasic schreiben, einer neuen Basicversion speziell für Windows.


Gruß
Skilltronic


Laplace
26.04.2011, 18:11

Re: IR-Signale für Power Functions mit dem PC erzeugen

Hi Skilltronic,

das klingt ja gut. Ich denke ein Microcontroller ist das Einzige das funktionieren würde aber ich habe von dem Zeug keine Ahnung und auch keine Hardware zum Brennen der Firmware und auch keine Softwareumgebung.

Für die Zugsteuerung wird das PowerFunctions-Protokoll verwendet (die neuen Züge fahren alle mit PF-Empfängern). Der NXT hat eine digitale Schnittstelle mit I2C Protokoll. Wenn Du eine gute Idee hast würde ich mich sehr freuen!

Als kleine Anregung hier ein Link den ich gefunden habe mit einem AVR.

Wenn Du möchtest, kannst Du mir gerne eine private Nachricht schicken, damit wir das Forum nicht so voll müllen.

Gruß
Laplace


mike
28.04.2011, 22:15

Re: IR-Signale für Power Functions mit dem PC erzeugen

Hi allerseits


» der IR-Sender ist zwar teuer aber auch schlecht
» Die Reichweite ist sehr gering und damit für die Zugsteuerung nicht zu
» gebrauchen ... Ich bin also noch auf der
» Suche nach einem "home brewed" IR-Sender für den NXT.

Das Problem ist da aber nicht der Sensor / Sender, sondern die Vorgaben seitens LEGO für Sensoren!
Die dürfen zu keiner Zeit mehr als 20mA verbraten ... und damit schränkst Du die Sendeleistung natürlich ein!
Steven Barker von HiTechnic hat uns mal von seinen Problemen mit solchen Vorgaben erzählt. Die Frage wäre also ... kann ich den Sensor dazu bringen, mehr Saft zu verbraten damit die Sendeleistung höher wird?


lg
Mike


BrickLaird
03.07.2011, 22:37

Re: IR-Signale für Power Functions mit dem PC erzeugen

Hallo Zusammen,

genau das was ich Suche, die Züge (naja im Moment erst ein Zug bei mir) per PC fernsteuern.

Leider hab ich so gar kein Talent für's programmieren, Löten und mit elektronischen Bauteilen arbeiten liegt mir da doch eher.

Daher die Frage an euch, bzw dich Skilltronic, ob Du mir im Punkt "Programm" weiterhelfen könntest. Schön wäre es sicherlich, wenn es unter Windows laufen würde, aber DOS wär auch ok.

Wäre Prima wenn Du mir da irgendwie weiterhelfen könntest.

Grüßle


freakwave
04.07.2011, 09:01

Re: IR-Signale für Power Functions mit dem PC erzeugen

» Das Problem ist da aber nicht der Sensor / Sender, sondern die Vorgaben
» seitens LEGO für Sensoren!
» Die dürfen zu keiner Zeit mehr als 20mA verbraten ... und damit schränkst
» Du die Sendeleistung natürlich ein!
» Steven Barker von HiTechnic hat uns mal von seinen Problemen mit solchen
» Vorgaben erzählt. Die Frage wäre also ... kann ich den Sensor dazu
» bringen, mehr Saft zu verbraten damit die Sendeleistung höher wird?

Was hältst Du von einem Verstärker für die NXT Signale?

D.h. Der NXT steuert eine IR-"Batterie" die eine externe Stromversorgung haben. Vorteilhaft wäre wenn da die selbe Stromversorgung wie der NXT hätte um Kabel zu sparen.

Gerald