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.
|
|
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.
Besonders praktische Hilfsmittel für das Auflöten des IC:
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.
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)
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.
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.
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.
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.
(links↔rechts)
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.
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.
Falls es die verwendeten Regler es erlauben, kann man mit folgender Vorgehensweise den Weg der Regler einstellen.
Bitte folgende Schritte ohne die Propeller durchführen.
Wieder alle Einstellungen ohne Propeller testen.
Zum Einstellen von weiteren Gyros die ganze Prozedur ab Punkt 2 wiederholen. Zum Schluss das Roll Poti wieder auf seine alte Stellung bringen.