An diesem Artikel arbeitet gerade Mitglied Willa.
Am besten momentan noch keine gravierenden Ergänzungen / Änderungen vornehmen. Dieser Hinweis verschwindet wenn der Autor soweit ist. Sollte dieser Hinweis länger als drei Tage auf einer Seite sein, bitte beim Autor Willa per PM / Mail oder Forum nachfragen ob er vergessen wurde. |
Inhaltsverzeichnis
Was braucht man hierfür?
- RN-Control Board
- USB -> COM+port Adapter (wenn man keinen COM port mehr am PC hat)
- ISP Programmierkabel (wenn man nicht den Bootloader nutzt)
- PC
- USB-Joystick
- Netzgerät (+-12V)
- Evtl. 2 kleine Motörchem um das ganze zu testen
Einleitung
Ein Roboter (auf Basis eines RN-Control Boards) kann über einen am PC angeschlossenen Joystick sehr einfach kontrolliert werden. In diesem Beispiel benutzen wir SharpDevelop als Entwicklungsumgebung (Programmierprogramm) für eine Windows VB.Net Applikation (ein Computerprogramm). Die Positionsdaten des Joysticks werden schliesslich über die RS232 Schnittstelle an den µC übertragen. Auch wenn du totaler Programmierneuling sein solltest kann dir diese Anleitung helfen. Einfach den Code kopieren und wie beschrieben einfügen. Dann sollte dein RN-Control Board auf Joystick-Befehle hören. Es wird Directinput benutzt um den Joystick zu erkennen und abzufragen. Deswegen muss das .NET Framework installiert sein (link). Die Kommunikation zwischen PC und µC findet - wie bereits erwähnt - über die RS232 Schnittstelle statt. Das Programm auf dem PC sendet alle 100 ms die aktuelle Joystick Position an den µC. Dieser liest die Werte für X und Y Achse ein und kann dann entsprechend darauf reagieren.
Beispielhafter Quellcode für BASCOM
In folgendem Beispiel wartet der µC ganz einfach darauf dass die Variablen X und Y nacheinander per RS232 an ihn gesendet werden. Sobald er Werte empfangen hat skaliert er die so wie er soll und gibt einen Ton entsprechend der Joystick Position aus. Sofort danach wartet er wieder darauf eine neue Joystick Position zu empfangen.
$regfile = "m32def.dat" $framesize = 32 $swstack = 32 $hwstack = 64 $crystal = 16000000 $baud = 9600 Dim X As Integer Dim Y As Integer Dim X1 As Word Dim X2 As Word Dim Y1 As Word Dim Y2 As Word Do 'Darauf warten dass irgendwas gesendet wird Input "" , X Input "" , Y 'Die Variablen umskalieren X1 = X + 10 X2 = X1 * 40 Y1 = Y + 10 Y2 = Y1 * 40 'Einen Ton (Tonhöhe = Joystick Position) ausgeben Sound Portd.7 , 10 , X2 Sound Portd.7 , 10 , Y2 Loop
-empty-
Quellcode in VB.NET (SharpDevelop)
-empty-
Beispielprogramm
-empty-