Fork me on GitHub

Quadrofly Building a quadrocopter

14Mrz/120

RFM12BS Funkmodul Breakout

RFM12BS Breakout Board

Zur kabellosen Übertragung der Telemetriedaten des Quadrocopters habe ich mir zwei RFM12BS Funkmodule mit 433 MHz besorgt.

Da diese auf Platinen mit einem Rastermaß von 2,00 mm sind, die Quadrocopter-Elektronik aber auf 2,54 mm Lochrasterplatine aufgebaut ist, habe ich mir ein Breakout Board für die RFM12BS-Platinen gelötet. Wie das aussieht, kann man auf dem oberen Foto sehen.

Mit den beiden Stiftleisten kann man die Funkmodule zum Testen auf ein Breadboard stecken. Auf der Lochrasterplatine des Quadrocopters werden später zwei Buchsenleisten angebracht, in die das Funkmodul gesteckt werden kann. Dadurch sind sie bei späteren Umbauten der Elektronik leichter austauschbar.

10Mrz/120

Ein Chassis aus Kohlefaser

Quadrocopter Chassis

Nach ein wenig Sägen, Bohren und Schrauben ist das Kohlefaser-Chassis des Quadrocopters fertig. Inklusive Schrauben kommt es auf ein Gesamtgewicht von 84 Gramm und eine Größe von 283 x 283 mm. Die Grundplatte misst 100 x 100 mm und die Motorausleger haben vom Mittelpunkt gemessen eine Länge von 200 mm.

9Mrz/120

ATMega644 Entwicklungsboard

ATMega 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:

ATMega Grundschaltung mit RS-232

ATMega644 Entwicklungsboard (oben)

ATMega644 Entwicklungsboard (unten)

Downloads:

ATMega644 Entwicklungsboard
ATMega644 Entwicklungsboard
Entwicklungsboard.bb
Version: v0.1beta
50.5 KiB
786 Downloads
Details...
ATMega RS-232 Schaltung
ATMega RS-232 Schaltung
rs232.sch
Version: 1.0
715.4 KiB
829 Downloads
Details...
8Mrz/120

Materiallieferung #1

CFK-Rohre und Platten für das Quadrocopter-Chassis

Die ersten Teile für das Kohlefaser-Chassis meines Quadrocopters sind soeben eingetroffen:

  • 1 Stück CFK-Quadratrohr, innen rund (10,0 mm x 10,0 mm / ø 8,0 mm) x 100 cm
  • 2 Stück CFK-Platte aus Prepreg (100,0 mm x 100,00 mm) T = 1,0 mm
  • 10 Stück Schrauben und Muttern Edelstahl DIN 912 M3 x 16,00 mm
  • 20 Stück Unterlegscheibe DIN 125 M3 Aluminium schwarz eloxiert

Die Carbonteile habe ich bei R&G Faserverbundwerkstoffe GmbH bestellt, die Schrauben und Unterlegscheiben sind von eBay.

Das Quadratrohr wird in vier Stücke mit jeweils 20 cm geteilt und für die vier Ausleger verwendet. Die beiden Platten werden mit den Quadratrohren als "Sandwich" verschraubt. Sobald ich damit fertig bin, werde ich natürlich Fotos der Konstruktion hier veröffentlichen.

7Mrz/120

ATMega simuliert

ASM (CC BY-SA 2.0 PabloBD)

Da die Bauteile für meine RS-232-Schaltung immer noch nicht eingetroffen sind, ich die Software dafür aber bereits am Entwickeln bin, suchte ich eine Möglichkeit, den ATMega644 zu simulieren. Dabei bin ich auf das Tool Simulavr, welches für Windows und Linux zur Verfügung steht, gestoßen. Da man damit einen Mikrocontroller für die Software simulieren kann, konnte ich mit meinem Framework loslegen. Dieses ermöglicht die Ausgabe von Debug-Nachrichten über UART und in Simulavr.

Um das Programm in Simulavr zu testen, muss man die Präprozessordirektive #define SIMULAVR_AVAILABLE in der Datei main.h einkommentieren, damit die Unterstützung für den Simulator mit in die Software kompiliert wird.

Anschließend kann man den Quellcode mit make all kompilieren und die Software per Aufruf von simulavr --device atmega644a --file main.elf -W 0x20,- -m 10000000000 simulieren. --device gibt an, für welchen Mikrocontroller simuliert wird, mit --file wird das kompilierte Programm übergeben, -W 0x20,- hört auf den virtuellen Port in den die Software die Debug-Nachrichten schreibt und -m gibt die Anzahl der Millisekunden an, die unser Simulator simulieren soll.

Den kompletten Quellcode findet man bei GitHub: https://github.com/ni-c/quadrofly/tree/uart

Das Ergebnis sollte folgendermaßen aussehen:


$ simulavr --device atmega644a --file main.elf -W 0x20,- -m 10000000000
Hello debug!
Hello debug!

Ran too long. Terminated after 10000000000 simulated nanoseconds.

$

5Mrz/120

Let’s talk about RS-232

Serial Port (CC BY-NC 2.0 Joe Plocki)

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:

ATMega RS-232 Schaltung
ATMega RS-232 Schaltung
rs232.sch
Version: 1.0
715.4 KiB
829 Downloads
Details...
4Mrz/120

Hallo ATMega!

Hello World (CC BY-SA 2.0 xunil96)

 

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

Downloads:

Grundschaltung ATMega644
Grundschaltung ATMega644
basic.sch
Version: 1.0
690.6 KiB
747 Downloads
Details...