RC-Car mit PC steuern


Als Vorstufe zum WiiMote RC-Car müßte eine kleine Hardware geschaffen werden, die es ermöglicht, ein RC Car vom PC aus zu steuern. Die Wahl fiel auf die Graupner DX-6 da diese Steuerung eine Schülerbuchse hat und Aufgrund des DSM Systems auch ohne Sorge für Autos eingesetzt werden kann. (Die DX2 und DX3 haben keine Schülerbuchse - wozu auch).
Wie Funktioniert die Schülerbuchse? Ganz einfach, das PPM Signal der Schülersteuerung wird in den Lehrersender eingespeist. Am Lehrersender gibt es dann einen Taster, der zw. Lehrer und Schüler PPM Signal umschaltet. Diesen Taster habe ich bei meiner DX6 gleich mal durch einen Schalter ersetzt, da man sonst beim Testen den Taster immer drücken müßte - unpraktisch da dem durchschnittlichen Menschen die Arme und Hände immer zu schnell ausgehen...

schaltung.jpg


Nun zur Generierung des Schülersignals. Um alles einfach und günstig zu halten, habe ich die Schaltung für die serielle Schnittstelle ausgelegt. Dazu wird lediglich ein MAX232 (den hätte man auch noch einsparen können) und ein Atmel Mega 8 benötigt (plus ein paar Kondis und Widerstände).

ppm-signal.jpg

Der Atmel generiert ständig des PPM Signal. Programmiert ist das ganze in C. Ein Array mit 16x2 Werten definiert dabei das Aussehen des Signals. Im [x][0] steht der Vorladewert des Timer1 und in [x][1] ob der Ausgang High oder Low sein soll.
Bei jedem Timer1 Overflow wird nun ein Arrayzeiger erhöht, der Vorladewert des aktuellen Schritts in den Timer1 geladen und der Ausgang entsprechend gesetzt. Wenn das Ende erreicht ist, wird der Zeiger wieder auf 0 gestellt.
Die Hauptschleife tut gar nichts. Die serielle Schnittstelle wird ebenfalls per Interrupt überwacht. Beim Empfang von Daten wird in der entsprechenden Interruptroutine der empfange Wert in ein Array geschrieben - und - sobald das Endekennzeichen erreicht erkannt wird in das entsprechende Feld geschrieben. Übertragen wird eine Binäre 0, dann die Servonummer (1-7) und schließlich der Stellwert für den Servo. Momentan nur 1-255 (die Null dient ja als Endekennzeichen). Das ist nicht unbedingt elegant, erfüllt aber den Zweck.

Da mein Entwickler kaputt war (einfach zu alt und er in die Problemstoffsammelstelle wandern mußte) diesmal eine Lochrasterplatine.

pc-rc-platine.jpg

 



(c) Schoeppl.info - Last modified: 19.12.2006