IMADEIT-V3.::.Kontroll-Center

Software

Der "IMADEIT-V3.::.Kontroll-Center" ist entstanden, als ich eine Möglichkeit suchte, den Roboter IMADEIT-V3 leicht fern zu steuern und noch wichtiger, zu debuggen.
Für IMADEIT-V1 und IMADEIT-V2 hatte ich dafür eine Fernbedienung gebaut, jedoch waren diese aufgrund des kleinen Displays nur beschränkt zum Debuggen tauglich. Deshalb war erst in Überlegung, für IMADEIT-V3 ein kleines Touchscreen-LCD zu kaufen. Dies hätte den Vorteil gehabt, dass es recht klein ist, dennoch aber Bedienerfreundlich programmiert werden kann, natürlich mit entsprechendem Aufwand verbunden. Des Weiteren hätte ich zum Programmieren keine neue Programmiersprache lernen müssen.
Da ich mir aber anfang März einen eeepc 900A der Firma ASUS gekauft habe, hat mich seit dem der Gedanke nicht mehr los gelassen, diesen als Fernsteuerung und Debugg-Gerät zu verwenden. Kleiner Hacken dabei: Auf dem eeepc ist als Betriebssystem eeebuntu installiert, auf meine anderen Rechnern habe ich zwar Ubuntu installiert, nutze dennoch oft das ebenso installierte XP bzw. Vista. Somit hatte ich noch den Anspruch, dass das Programm zum Fernsteuern und Debuggen auf beiden Systemen-Typen (Windows und Ubuntu) lauffähig sein soll. Der einfachste Weg währe gewesen, auf dem eeepc wine zu installieren, sodass ich mit Hilfe dieses Programms die *.exe meines Programms hätte starten können. Aber, dies sollte wohl nicht sein; Es war trotz vielen langen, nächtlichen Experimente nicht möglich auf den virtuellen COM-Port zuzugreifen. Und auf dem eeepc ein Windows Betriebssystem zu installieren kam für mich aus verschiedensten Gründen nicht in Frage.
Zu diesem Zeitpunkt wollte ich zum Erstellen Des Kontroll-Centers Delphi verwenden, da ich mit dieser Programmiersprache und -umgebung gut zurechkomme. Jedoch schied Delphi wegen des Problems mit dem virtuellen COM-Port aus und ich musste mich auf die Suche nach einer anderen Programmiersprache machen. Letztendlich bin ich bei Lazarus gelandet.
Lazarus hat für mich den großen Vorteil, dass es sehr Delphi ähnlich ist. U.a. verwendet Lazarus als Programmiersprache Freepascal, was sich (fast) gar nicht von Delphi unterscheidet (Delphi ist sozusagen die Weiterentwicklung von Pascal (Wikipedia.de-Artiekel)). Des Weiteren ist Lazarus Plattformunabhängig, was bedeutet, dass der Code, den ich unter Windows schreibe auch für Ubuntu kompiliert werden kann und umgekehrt! Das ist genau das, was ich so sehr gesucht habe.
Nach ein wenig Suchen habe ich auch eine "Erweiterung" von Lazarus gefunden, mit deren Hilfe man ganz einfach auf den COM-Port zugreifen kann. Dieses Paket heißt Synaser.

Hardware

Hardware, vor allem dann, wenn sie besonders klein sein soll, ist bei mir schon immer ein Problem, da es mir einfach nicht gelingen will, Platinen selbst zu ätzen. Aus diesem Grund kam es mir besonders gelegen, als mir von rs-products.de eine Prototyp-Platine von einem Funk-USB-Stick zugesagt wurde, die sich zu diesem Zeitpunkt noch in Entwicklung befand. (Der Hintergrund dieser Zusage ist, dass ich vor Weihnachten 2008 zwei Motortreiber bei rs-products.de gekauft habe und bei diesen an einer Stelle die Platinenbeschriftung von VCC und GND nicht stimmt. Zum Glück ist aufgrund dieser Fehlbeschriftung bei mir nichts kaputt gegangen.)
Diese Platine kam bei mir Mitte März 2009 an. Sie ist etwa 52mm lang und 16,5mm breit ist, bietet Platz für einen ATMega88 (µC), ein RFM12 (433MHz Funkmodul), einen FT232RL (USB<->RS232 Wandler) und eine aufschraubbare Antenne. Eingesteckt wir die Platine direkt in den USB-Port.
Nach der Bestückung musste ich natürlich sofort testen, ob alles funktioniert, dafür habe ich mir eine kleine Schaltung mit einem weiteren RFM12 Funkmodul und einem ATMega8 aufgebaut. Als Vorlage für mein Programm zur drahtlosen Kommunikation zw. den Prozessoren habe ich dieses von comwebnet.de verwendet. Allerdings gab es bei diesem Programm erstmal ein paar Probleme, diese wurden hier diskutiert.
Nachdem das Problem mit dem Programm erstmal gelöst war habe ich auch ein RFM12 Funkmodul in IMADEIT-V3 eingebaut. Dieses befindet sich auf der Hauptplatine, da ich sonst noch ein weiteres, 12-poliges Kabel quer durch den Roboter hätte legen müssen.
Die Antenne befindet sich nun hinten links an der Wand des Roboters, wodurch die Antenne nicht mehr durch die Alu-Wände abgeschirmt werden, allerdings Schirmt eine der Wände weiterhin ab, was zur leichten Verminderung der Reichweite führt. Um die Antenne an der Wand zu befestigen war es nötig, ein etwa 50cm langes abgeschirmtes Kabel zu verlegen. Der Anschluss von diesem Kabel befindet sich auf der Hauptplatine neben dem Funkmodul (letzte beiden Bilder).
Des Weiteren ist auf dem vorletzten Bild noch eine USB-Buchse zu sehen, in der der Funk USB-Stick steckt. Das Ziel dieser Konstruktion ist, dass der Stick einen festen Ort hat, wenn er nicht gerade im Laptop steckt.

© 2010 by Jonathan Heilmann
Login