Motorcontrollerboard v1.0
Das Motorcontrollerboard ist für die Ansteuerung der vier Motor-ESCs (Electronic speed control) und den Empfang der Funksignale der RC-Fernbedienung verantwortlich.
Die Elektronik auf diesem Board benötigt eine Spannung von 5 Volt, welche durch einen MAX-604 Spannungsregler erzeugt wird. Zum Empfang der Spektrum DSM2-Signale einer DSM2-Fernbedienung kommt ein Deltang Rx35 6-Kanal-Empfänger zum Einsatz welcher mit einem ATMega88-Microcontroller verbunden ist. Dieser decodiert das Summensignal des Empfängers und sendet es über I2C an das Controllerboard, außerdem empfängt er die Sollwerte für die Motoren über I2C und generiert daraus ein PWM-Signal zur Ansteuerung der ESCs.
Das Motorcontrollerboard wird über einen 5-poligen Anschluss mit dem Hauptcontrollerboard verbunden, über diesen läuft die Spannungsversorgung sowie die I2C-Kommunikation mit dem Controllerboard.
Controllerboard v1.0
Die erste Version des Controllerboards ist fertig. Das Controllerboard enthält einen ATMega644-PU Microcontroller zur Steuerung, ein RFM12BS-Funkmodul zur drahtlosen Übertragung der Telemetriedaten, ein 6-DoF-Modul MPU-6050 zur Lagebestimmung, einen MAX-603 Spannungsregler zur Erzeugung der benötigten 3.3 Volt und jede Menge Hühnerfutter.
Über den 5-poligen Anschluss auf der rechten Seite kann eine weitere Platine mit Strom versorgt und über I2C mit dem Microcontroller verbunden werden. Für zukünftige Erweiterungen wie GPS-Modul und DSM2-Empfänger ist noch genügend Platz auf der Lochrasterplatine.
Telemetriemodul fertiggestellt
Nach ausgiebigen Tests auf dem Breadboard habe ich das Telemetriemodul nun auf eine Lochrasterplatine verewigt. Es ist in der Lage empfangene Daten des RFM12 Chips an eine RS-232-Schnittstelle weiterzuleiten. Umgekehrt können auch Daten von der RS-232-Schnittstelle über den RFM12 Chip versendet werden.
![]() |
![]() |
![]() |
Im groben besteht das Modul aus den folgenden vier Teilen: Einem Spannungsregler vom Typ MAX603 der Eingangsspannungen von 2,7V bis 11,5V auf die benötigten 3,3V regelt. Einem MAX3232CPL Pegelwandler, der den TTL-Pegel des Microcontrollers auf RS-232-Pegel umzuwandelt. Ein RFM12BS mit Breakout-Board zum Senden und Empfangen von Daten im 433 MHz Band. Und ein ATMega644/ATMega1284 Microcontroller zur Ansteuerung des RFM12BS Moduls und der UART-Schnittstelle.
ATMega644 Entwicklungsboard
Zum ordentlichen Testen der für den ATMega644 entwickelten Software braucht man immer wieder eine ATMega Grundschaltung. Diese kann man natürlich auf dem Steckbrett aufbauen, dort verbraucht sie aber viel Platz. Da man die Schaltung immer wieder benötigt, werde ich mir ein ATMega644 Entwicklungsboard auf Lochraster aufbauen. Als Basis dafür dient die Grundschaltung mit MAX-232 aus dem Artikel "Let's talk about RS-232", denn die RS-232 Schnittstelle aus dieser Schaltung kann man zum debuggen der Software gut gebrauchen.
Um mir eine grobe Übersicht über die Anordnung der Bauteile auf der Platine zu verschaffen, erstelle ich regelmäßig Lochraster-Platinenlayouts. Dafür benutze ich die Open Source Software BlackBoard Breadboard Designer. Die BlackBoard-Datei der Platine sowie die Eagle-Datei des Schaltplans kann man am Ende dieses Artikels finden.
Schaltplan und Platinenlayout:
Downloads:
Let’s talk about RS-232
Um die Wartezeit auf die ersten Bauteile zu verkürzen, verbesserte und erweiterte ich heute die ATMega644 Grundschaltung aus dem vorherigen Beitrag.
Folgende Verbesserungen nahm ich vor: Da ich zum Programmieren des Microcontrollers einen DIAMEX USB ISP benutze und dieser einen 6-poligen Anschluss verwendet, ersetzte ich den 10-poligen Anschluss durch einen 6-poligen (SV1). Um den Microcontroller neu zu starten falls er mal in einer Endschlossschleife verweilt, wurde der Taster (S1) hinzugefügt, der den RESET-Port des Microcontrollers auf HIGH zieht. Zur Spannungsstabilisierung und Vermeidung von Messungenauigkeiten sind die vier 100 nF Abblockwiderstände (C11, C12, C13, C14) an den Stromversorgungsports der Microcontroller (IC1, MAX232) vorgesehen. Die Spule (L1) erhöht die Messgenauigkeit des eingebauten A/D-Wandlers ebenfalls.
Anschließend erweiterte ich die Schaltung um einen seriellen RS-232 Anschluss, um Daten zwischen Microcontroller und PC austauschen zu können. Da die RS-232-Schnittstelle PC-seitig mit -12V/+12V Signalen arbeitet, der Microcontroller aber mit 0V/+5V Signalen, kommt ein Pegelwandler (MAX232) zum Einsatz. Diesen wurde, wie im Datenblatt angegeben, mit vier 4,7 µF Kondensatoren (C7, C8, C9, C10) ausgestattet. Damit die Übertragung zwischen ATMega644 und PC über RS-232 funktioniert, muss eine bestimmte Frequenz eingehalten werden. Der interne Taktgeber des ATMega ist dafür zu ungenau. Aus diesem Grund schliesste ich einen 20 MHz Quartz (Q1) mit den benötigten zwei 22 pF (C2, C3) Kondensatoren am ATMega an.
Nun heißt es auf die bestellten Bauteile warten, um die Schaltung anschließend auf dem Breadboard aufzubauen und zu testen.
Bauteile:
Part Value Device C2 22pF C2.5/6 C3 22pF C2.5/6 C4 100µF CPOL-EUE5-6 C5 100nF C2.5/6 C6 100nF C2.5/6 C7 4,7µF CPOL-EUE2,5-6E C8 4,7µF CPOL-EUE2,5-6E C9 4,7µF CPOL-EUE2,5-6E C10 4,7µF CPOL-EUE2,5-6E C11 100nF C2.5/6 C12 100nF C2.5/6 C13 100nF C2.5/6 C14 100nF C2.5/6 IC1 ATMEGA644-20PU ATMEGA644-20PU IC2 7805 IC3 MAX232 MAX232 JP1 PINHD-1X3 JP2 PINHD-1X3 L1 10µH L-EUIRF-3 Q1 20Mhz CRYSTALHC49U70 R1 10k R-EU_0207/10 S1 31-XX SV1 ML6
Downloads:
Hallo ATMega!
Nun ist es also soweit, nach 3 Jahren Pause habe ich beschlossen, mich wieder der Elektronik und dem Roboterbau zu widmen. Um mein neues Projekt zu dokumentieren, werde ich meinen Fortschritt in diesem Blog festhalten. Bei dem Projekt handelt es sich um den Aufbau eines Quadrocopters. Die ersten Bauteile sind bereits bestellt und die ersten Schaltpläne entworfen.
Da ich beim Aufbau von zwei Robotern bereits Erfahrungen mit Atmel-Mikroprozessoren sammeln konnte, werde ich diese auch in meinem aktuellen Projekt verwenden. Um mich wieder in die Materie einzuarbeiten, entwarf ich eine sogenannte Grundschaltung, wie sie auch im Roboternetz beschrieben ist. Zum Entwerfen der Schaltpläne verwende ich das Programm "Eagle", welches für Privatanwender als Freeware für alle Betriebssysteme verfügbar ist.
Die Grundschaltung besteht aus einem ATmega644-Mikrocontroller (IC1), einem 78S05 Spannungsregler (IC2) und einer Steckleiste zum anschließen handelsübriger ISP (ISP1). Der 20 MHz Quarz (Q1) ist für die Grundschaltung nicht unbedingt notwendig aber empfehlenswert, da der interne Taktgenerator sehr ungenau arbeitet.
Bauteile:
- C1, C5, C6 - 100 nF Kondensator
- C2, C3 - 22 pF Kondensator
- C4 - 100 µF Kondensator
- R1 - Widerstand 10 kOhm
- Q1 - Standardquarz 20,0000-HCU49U-S
- IC1 - ATMega644-20 PU
- IC 2 - µA 78S05 Spannungsregler