RC Fernsteuerung selbst gebaut
Aufgrund einer komplizierten Steuerung für ein Modellboot, bin ich aus die Idee gekommen eine eigene RC-Fernsteuerung zu bauen.
Basis des ganzen ist eine MC-16 von Graupner mit Nautic Modul.
Die erste Idee war, das 40MHz Sende Modul verwenden und eine eigene Mikrocontroller Steuerung auf Basis eines ATMega644pa ein zu bauen.
Da bin ich dann schnell an die grenzen des ATmega gestoßen, unter anderem nur 8 ADC Kanäle. Für die beiden Kreuzknüppel inklusive Mittelstellungsgeber bin ich schon bei 8 Kanälen. Einen Analog Level Muxer, wie in der originalen MC-16 wollte ich nicht einbauen.
Da ist die Wahl auf die ATxmega reihe gefallen, vorallem wegen den 16 ADC Kanälen, von denen 4 gleichzeitig abgefragt werden können.
Im Testaufbau verwende ich ATxmega192A3.
Dann habe ich mich mit dem LCD-Modul SAMSUNG UG12D228AA beschäftigt, siehe http://www.mikrocontroller.net/topic/221289 welches ich dann auch dafür verwenden will.
In weiteren Tests bin ich dann davon abgekommen die Original Sende-Empfangsanlage zu verwenden, Aufgrund von Bandbreite und Rückkanal. Also habe ich mich für zwei XBee Pro 2,4GHz Module entschieden und den Empfänger auch gleich selber zu bauen.
Dazu kommt auch noch ein Flash, ein SD-Slot und ein eigenes Nautic Modul.
Hier ist die aktuelle Liste der Teile Sender Hauptplatine, in Klammern Testboard:
- ATxmega256A3 (ATxmega192A3) – CPU
- 25VF032 – 32MBit Flash
- SAMSUNG UG12D228AA – Display
- SD-Slot
- XBee-PRO 802.15.4 – Sende- / Empfangsmodul
Sender Nauticplatine, in Klammern Testboard:
- ATmega164pa – CPU
Empfänger Hauptplatine, in Klammern Testboard:
- ATxmega256A3 (ATxmega192A3) – CPU
- XBee-PRO 802.15.4 – Sende- / Empfangsmodul
Gehäuse
Da ich das Original Gehäuse der MC-16 verwenden will, muss ich es ein wenig modifizieren.
Das heißt:
- Antennenhalter entfernen und ein Adapter Kabel von I-PEX(UF.L) auf Reverse-SMA eingebaut
- Altes Display entfernen und Platz für das neue LCD-Display schaffen
- Original Platine ausmessen
Beschreibung der Software
Die Software für die Haup CPU wird aus einem Bootloader und der Anwendung selbst bestehen.
Der Bootloader hat die Aufgabe auf der SD Karte nach einem neuen Binary+EE File zu schauen, sollte die Version sich von der im XMega unterscheiden, wird diese geupdatet.
Beim Starten des Programms wird auf der SD Karte nach einem neuen Flash File geschaut, sollte die Version sich von der im Flash unterscheiden, wird diese geupdatet.
Dann wird das Display initialisiert und ein aus dem Flash geladenes Bild angezeigt.
Die Schriftart für die Menüfunktionalitäten wird ebenfalls aus dem Flash geladen und kann ggf. auch geändert werden.
Testaufbau
Hier ein Bild vom aktuellen Testboard. Die XBee Module sind hier durch ein einfaches Kabel ersetzt, da diese am Ende eh nur transparent dazwischen hängen.
Die Ansteuerung der Kreuzknüppel Potentiometer ist hier noch mit einer 1,8V Spannungsquelle und AVREF gelößt. Werde die Eingänge demnächst über einen Spannungsteiler und VCC/1,6 ersetzen, somit kann ich die Potis direkt zwischen VCC und GND anklemmen.
Zeichnung vom Spannungsteiler für die ADC Eingänge.
UPDATE: Habe den Spannungsteiler Testen können, auch mit kleineren Widerständen (6,6k und 11k), anscheinend ist der Innenwiderstand des XMega zu klein. Ausserdem ist wohl der VCC/1,6 Teiler auch mist, da er selbst bei direkt auf GND gelegten ADC Eingang noch um die 100-200 als Wert aus ließt.