Inhaltsverzeichnis

kkmulticopter Platine

Die kkmulticopter Platine ist eine der einfachsten und günstigsten Möglichkeiten einen sehr gut stabilisierten Tri-, Quattro- (+ und x Anordnung), Hexa- oder Y6-Copter zu bauen. Auch Modelle mit zwei schwenkbaren Rotoren à la Osprey sind realisierbar. Momentan gibt es neben mehreren Platinen mit bedrahteten Bauteilen. Und eine Platine mit SMD Bauteilen. Deren Aufbau in der Version 5 wird hier beschrieben. Viele denken das Löten von SMD Bauteilen besonders schwierig ist, aber dem ist eigentlich gar nicht so. Das am schwierigsten ein zu lötende Bauteil in dieser Schaltung ist der IC mit seinen 32 Beinen, aber wie man weiter unten sieht ist es mit einem Trick gar nicht so schwer.

Material

Abb. 1: Die leere Platine

BauteilBezeichnungBauformBezugsquelle
IC1 Atmega48/88/168/328 TQFP Reichelt
IC3 LM317LZ TO-92 Reichelt
R1, R2, R3, R12 100Ohm 0805 Reichelt
R4 4.7Ohm 0805 Reichelt
R5, R6, R8 10-25kOhm Potentiometer (3314j) HK401B Gyro oder ebay
R7 680Ohm 0805 Reichelt
R9 220Ohm 0805 Reichelt
R10 68Ohm 0805 Reichelt
R11 4.7kOhm 0805 Reichelt
C1, C2, C3, C4, C7, C9, C11 22-47uF EIA 3528-21/Kemet B HK401B Gyro oder ebay
C5, C6, C8 0.68uF EIA 3528-21/Kemet B Reichelt
C10 2.2uF EIA 3528-21/Kemet B Reichelt
LED1 rot 0805 Reichelt

Bei Problemen beim Schreiben der Firmware C10 gegen 100nF tauschen.

Zusätzlich benötigt man noch:

Für alle Bauteile, die es nicht im Gyro gibt, habe ich einen Reichelt-Warenkorb erstellt, dieser enthält auch ausreichend Stiftleisten.

Werkzeuge und Hilfsmittel

Benötigtes Werkzeug

Besonders praktische Hilfsmittel für das Auflöten des IC:

Gyrorecycling

Aus diesem super günstigen Gyro (ca. 10€) wird das Objekt unserer Begierde (rechts) gewonnen. Dabei enthält er für dieses Projekt weitere interessante Bauteile.

dscn9945.jpg dscn9946.jpg Wie zwei Potis mit 25kOhm und drei Tantalkondensatoren mit 22µF. Es ist empfehlenswert diese Bauteile auch aus den Gyros zu gewinnen, das die Potis in Deutschland nicht einfach zu bekommen sind. Auch die Kondensatoren findet man in dieser Baugrösse nicht beim Elektronikhändler um die Ecke. (siehe Pfeile)

dscn9948.jpg Zum auslöten gebe ich immer etwas frisches Lötzinn an die auszulösenden Teile, und hebele die Teile mit einer gewinkelten Pinzette aus. Die Platine auf der der Gyro sitzt wird ebenfalls mit etwas frischen Lötzinn und Entlötsauglitze behandelt, bis die Platine in dem Schlitz in dem sie sitzt leicht wackelt. Wenn sie jetzt immer noch nicht raus will wird mit dem Seitenschneider vorsichtig etwas mehr Platz gemacht. Von der Rückseite der Gyro-Platine keine Bauteile entlöten.

Und schon hat man diese Teile und noch zwei nützliche Kabel aus dem HK401B Gyro raus operiert.

Bestückung

Platine mit einem kleinen Stück doppelseitigem Klebeband auf dem Tisch befestigen. Ein etwas dickeres Klebeband mit schlechter Klebeeigenschaft ist optimal, dann kann man die Platine immer wieder in eine zu löten gute Position drehen.

Ich verzinne immer eines der Pads die ich als nächstes bestücken will. Wenn das Lötzinn keine gute Flusseigenschaften hat, da riskiert man mehr kalte Lötstellen als einem lieb ist, nehme ich Löthonig dazu. Dazu dippe ich das Zinn ein wenig in den Löthonig. Natürlich funktionieren auch andere Flussmittel, aber sie sollten säurefrei sein. Sonst muss man Lötspitze und Platine nach getaner Arbeit reinigen um nicht später Korrosion an Bauteilen oder der Lötspitze zu haben.

Letzte Möglichkeit aufzuhören!!! Hier mal ein Grössenvergleich. Das ist ein Widerstand in der Bauform 0805, das kleinste Bauteil in dem Lötpuzzle. Die Bauteile nehme ich immer mit einer geraden spitzen Pinzette, so dass ein Pad des Bauteils gut auf das Pad der Platine gelegt werden kann. Dann wird mit dem Lötkolben die erste Seite angelötet, wenn das Bauteil nicht richtig aufliegt, wird noch mal von oben auf das Bauteil gedrückt und nachgelötet.

Ich beginne die Bestückung immer mit der LED (LED1) und ihrem Vorwiderstand (R7), da ich nie sicher bin wie herum man die LED einlöten muss. Das liegt allerdings an der sehr spartanischen Markierung auf der Rückseite der LED. Jedenfalls sollte nach einlöten der Bauteile die LED leuchten wenn man den Pluspol an den zum IC nächsten Pad des Vorwiderstandes anlegt und den Minus-Pol an das Pad der LED, die am nächsten zum IC liegt.

dscn9938.jpg dscn9939.jpg Jetzt kommt das komplizierteste. Das einlöten des IC. Mit seinen vielen Beinen ist die exakte Ausrichtung sehr wichtig, hier kann eine Lupe oder eine Digitalkamera die Makroaufnahmen machen kann, sehr hilfreich sein. Der ATmega 48/88/… hat noch einen weiteren Nachteil, an allen Seiten hat er gleich viele Beine. Doch auf der Platine wie auch auf dem Chip ist eine Ecke mit einem Punkt markiert. Und genau die müssen übereinander zum liegen kommen.
Jetzt werden alle Pads mit Löthonig ganz dünn eingestrichen, das schon erwähnte Streichholz ist dafür optimal da es nicht die Oberfläche der Platine beschädigt. Bei Verwendung der Lötpaste einfach alle Pads einstreichen, wirklich einmal über alle Pads pro Seite. Das Lot fliesst weitgehend beim Löten an die Pads.

Dann wird der IC positioniert, wenn das zufriedenstellend geschehen ist, wird ein Pin angelötet. Danach wird mit der Lupe oder der Digitalkamera, der genau Sitz kontrolliert. Dann kann ruhig grosszügig der Rest der Pins angelötet werden. Danach werden alle Kurzschlüsse mit der Entlötlitze wieder entfernt. Aber Vorsicht nicht zu viel wieder weg nehmen!

Anschliessend werden die restlichen Widerstände eingelötet. Bei R4 und R11 muss aufgepasst werden. Man kann sie leicht verwechseln, leider liegen aber drei Nullen dazwischen. Und der Mikrokontroller würde nicht aus dem Reset kommen und nicht booten. Die LED blitzt dann nicht kurz auf nach dem Anlegen der Betriebsspannung. Selbes gilt für R7 und R10, dann ist aber der Spannungsregler falsch eingestellt und der Vorwiderstand für die LED ist dann auch zu klein.

Jetzt kommen mit den Potis wieder schön grosse Bauteile. Bei der Montage muss man aber darauf achten entweder nur ganz dünn die Pads zu verzinnen. Oder man gibt wieder etwas Löthonig auf die Pads und verzinnt nicht. Bei der ersten Variante besteht die Gefahr das die Potis etwas schräg stehen (siehe linkes Bild). Die Potis im rechten Bild sind ohne vorverzinnte Pads eingelötet worden. Die Potis sollten möglichst weit Richtung Platinenrand platziert werden, damit man später noch an den Kondensatoren gut löten kann.

Jetzt kommen mit den ganzen Tantalkondensatoren wieder einige recycelte Bauteile. Bei den Kondensatoren ist auf die Polung zu achten. Leider sind dies nicht auf der Platine markiert. Wenn alle Kondensatoren drauf sind, sind auch schon alle SMD Bauteile verbaut.

Jetzt kommen endlich die letzten Bauteile mit Beinchen. Auch die sechs Anschlüsse für die Regler können wenn gewünscht mit Stiftleisten versehen werden.

Jetzt fehlen nur noch die Gyros. Zuerst werden die beiden liegenden eingebaut. Dazu werden sie mit Heißkleber befestigt. Man muss darauf achten, dass die Achsen stimmen und die Gyros nicht verdreht sind. Dann noch das stehende Gyro aufkleben.

Zu guter letzt werden die Gyros mit der Platine verlötet. Die liegenden werden mit kurzen L-Förmigen Drahtstücken fest gelötet. Bei dem Stehenden einfach mit Drahtstücken verlöten, zuerst an den Kontakten der Gyros und dann an der Platine. Jetzt noch schnell die Kabel anlöten und fertig.

Firmware flashen

Die folgenden Beispiele gelten für den ATmega48 (m48) in Kombination mit einem USBasp Programmer. Als Software zum Programmieren verwende ich bevorzugt avrdude. Das ist zwar nichts Buntes zum wild rumklicken, aber dafür hat man die volle Kontrolle über das was passiert. Und es funktioniert sogar auf allen Betriebssystemen die ich benutze. Und auch an Windows Benutzer wurde von den Entwicklern von avrdude gedacht. Wie man den USBasp unter Linux ans laufen bekommt habe ich ja schon hier beschrieben. Bei neueren Distributionen ist dies allerdings nicht mehr notwendig. Wer es einfacher und mit GUI haben will der kann mein „KKmulticopter Flash Tool“ verwenden.

<color red>Ganz wichtig ist, darauf zu achten, dass man frei von statischen Aufladungen arbeitet. Nicht mal eben auf der Mikrofaser Couch ne neue firmware einspielen. Das geht mit Sicherheit in die Hose.</color>

Zu erst wird mit 0xE2 die low fuse neu geflasht. Das bewirkt, dass der 8MHz Takt nicht mehr durch 8 geteilt wird. 0xE2 gilt auch für den ATmega88 (m88). Wenn ein anderer Controller benutzt wird muss entsprechend der korrekte Wert für die Fuses bestimmt werden. Dabei hilft der Engbedded AVR Fuse Calculator.

avrdude -c usbasp -p m48 -U lfuse:w:0xE2:m

Wenn alles richtig läuft sollte die folgende oder eine Ähnliche Ausgabe kommen.

avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e9205
avrdude: reading input file "0xE2"
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.02s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xE2:
avrdude: load data lfuse data from input file 0xE2:
avrdude: input file 0xE2 contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of lfuse verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Und direkt hinterher die firmware.

avrdude -c usbasp -p m48 -U flash:w:TricopterV1_5_M48_M88.hex 

Hier nach sollte etwas wie das hier kommen.

avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e9205
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: reading input file "TricopterV1_5_M48_M88.hex"
avrdude: input file TricopterV1_5_M48_M88.hex auto detected as Intel Hex
avrdude: writing flash (4044 bytes):

Writing | ################################################## | 100% 30.12s



avrdude: 4044 bytes of flash written
avrdude: verifying flash memory against TricopterV1_5_M48_M88.hex:
avrdude: load data flash data from input file TricopterV1_5_M48_M88.hex:
avrdude: input file TricopterV1_5_M48_M88.hex auto detected as Intel Hex
avrdude: input file TricopterV1_5_M48_M88.hex contains 4044 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 18.64s



avrdude: verifying ...
avrdude: 4044 bytes of flash verified

avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Wenn alles funktioniert hat sollte beim nächsten Anstecken der Versorgungsspannung an die Platine, die Led kurz aufblitzen. Bei Problemen beim Schreiben der Firmware, C10 gegen 100nF tauschen.

Inbetriebnahme

steckerbelegung.jpg

Steckerbelegung zum Empfänger

(links↔rechts)

  1. Querruder
  2. Höhe
  3. Motor
  4. Seite

Steckerbelegung für Tricopter

  1. Motor links vorne
  2. Motor rechts vorne
  3. Motor hinten
  4. Servo

Steckerbelegung für Quadrocopter

  1. Motor vorne
  2. Motor links
  3. Motor rechts
  4. Motor hinten

Scharfschalten der Platine

Wenn an der Platine die Betriebsspannung angeschlossen wird, blitzt die LED kurz auf. Aber sonst passiert nichts weiter. Das ist beabsichtigt damit es nicht zu einem „Frühstart“ oder anderen Unfällen kommen kann. Deshalb muss zum Scharfschalten (bei Mode2) linke Knüppel nach unten rechts bewegt werden bis die LED dauerhaft leuchtet. Zum Sichern wird der Knüppel nach unten links bewegt. Das kann man recht gut im folgenden Video sehen. Falls das nicht funktioniert, sollte man die Trimmung für Gas und Heck überprüfen.

Grundeinstellung

Als Ausgangspunkt für die ersten Schwebeversuche wurden 50% Dual Rate auf Gas und Roll(Querruder) gesetzt und 100% bei dem Heckservo eingestellt. Die Potis stehen auf ca. 50%. Nun wird versucht zu schweben. Und anschliessend die Werte der Potis so lange erhöhr bis der Tricopter (oder was immer mit der Platine betrieben wird) aufschaukelt. Dann wird wieder etwas zurück genommen. Für dynamisches herumbolzen sollen niedrigere Werte zum gewünschten Ziel führen.

Gasweg der Regler einstellen

Falls es die verwendeten Regler es erlauben, kann man mit folgender Vorgehensweise den Weg der Regler einstellen.

  1. Das Poti für die Einstellung der Heckempfinlichkeit (Yaw) auf Null drehen. Das ist bei der SMD Variante ganz Rechts.
  2. Sender anschalten.
  3. Gasstick auf die höchste Stellung bringen.
  4. Die Platine anschalten.
  5. Warten bis der Regler die Programmierung des Wegs angenommen hat.
  6. Gasstick wieder auf Null ziehen, jetzt sollten die Regler normal initialisieren.
  7. Platine wieder ausschalten.
  8. Das Poti wieder zurück auf die alte Position stellen.

Wirkrichtung der Geber checken

Bitte folgende Schritte ohne die Propeller durchführen.

  1. Alles einschalten und Platine scharf schalten.
  2. Etwas Gas geben so das alle Motoren laufen.
  3. Den Pitch-Knüppel (Höhenruder) nach vorne drücken. Der Motor im Heck sollte jetzt schneller laufen. Ansonsten die Wirkrichtung dieses Gebers reversen.
  4. Den Roll-Knüppel (Querruder) nach links drücken. Der rechte Motor sollte jetzt schneller laufen. Wenn dem nicht so ist Geber reversen.
  5. Gier-Knüppel (Seitenruder) nach links bewegen. Beim Tricopter sollte das Heckservo das Heck nach rechts neigen, so dass der Copter sich gegen den Uhrzeiger dreht. Beim Quattrocopter muss der vordere und hintere Motor schneller werden. Sonst Geber reversen.

Gyrowirkrichtung kontrollieren

Wieder alle Einstellungen ohne Propeller testen.

  1. Alles einschalten und Platine scharf schalten.
  2. Etwas Gas geben so das alle Motoren laufen.
  3. Copter nach vorne neigen. Vorderer Motor(e) sollten schneller werden. Sonst Wirkrichtung des Nick-Gyro ändern.
  4. Copter nach links negen. Linker Motor sollte schneller werden. Sonst Wirkrichtung des Roll-Gyro ändern.
  5. Copter im Uhrzeigersinn drehen. Beim Tricopter sollte das Heckservo den Heck-Motor nach rechts drehen. Beim Quattrocopter sollten vorderer und hinterer Motor schneller werden. Sonst Wirkrichtung des Yaw-Gyro ändern.

Gyrowirkrichtung ändern

  1. Roll Poti auf Null stellen. Bei der SMD Platine ganz nach Rechts drehen.
  2. Platine einschalten.
  3. LED blinkt 10 mal schnell.
  4. Den Geber bewegen dessen Gyro reversed werden soll.
  5. LED blinkt dauerhaft.
  6. Platine wieder ausschalten.

Zum Einstellen von weiteren Gyros die ganze Prozedur ab Punkt 2 wiederholen. Zum Schluss das Roll Poti wieder auf seine alte Stellung bringen.