AVR LipoBlitzer1

Es gibt einige gute Projekte für ein Modell Flugzeug LipoBlitzer im Internet, aber leider veröffentlichen die guten keine Software source codes. Ich dokumentiere mein Projekt LipoBlitzer1 mit allem was dazu gehört unter GNU General Public License (GPL) V3.

Der LipoBlitzer1 blitzt eine grüne und rote 1 W Leistungs LED in Anhängigkeit von der LiPo Akku Spannung (nur 3 Zellen), zur Überwachung in der Luft. Mit einer grünen und roten LED bestückt, kann man ihn auch als Position Beleuchtung benutzen. In Flugrichtung links vorne ist grün, rechts vorne ist rot siehe. Durch um dimensionieren der Bauteile sind auch andere Einsatzfälle denkbar.

Um die Software einfach zu halten, wurde das Programm in C geschrieben unter der Arduino IDE (Integrated Development Environment) mit einem tiny core, um den 8 pin ATtiny25 processor (2KB flash ROM) benutzen zu können. Die Arduino IDE hat den Vorteil, das man sie unter Linux, MAC OS X und Win32 benutzen kann (Stand: Dez. 2012).

Ich würde mich über eine Rückmeldung von nach gebauten Schaltungen freuen (KontaktEmail).

attachment:LipoBlitzer1_DSC03869.jpg

Hardware

Die Bauteile wurden auf eine einseitigen Platine gelötet, die man noch einfach selbst herstellen kann. Es wurde nur 1 Drahtbrücke benötigt. Folgende Bauteile wurden benötigt (Lieferant Reichelt.de):

Es ist möglich, mit circa 12 (15) EUR Materialkosten + Versand aus zukommen.

Die Kabel wurden mit Heißkleber mechanisch gesichert, und die LED Kontakte damit isoliert. Um einen elektrischen Kurzschluss zu vermeiden, empfiehlt es sich die Platine mit Schrumpfschlauch zu überziehen.

attachment:LipoBlitzer1_sch.png

Schaltung

Die Schaltung sollte so einfach als möglich sein, aber noch flexibel in der Programmierung.

Um einfach an den Akku Anschluss zu kommen, wurde ein fertiges Kabel mit Balancer Stecker beschafft.

Die +5 V für den Prozessor werden mit einem Low Power +5 V Regler erzeugt.

Der Widerstands Teiler für die Messung der Akku Spannung wurde auf die Maximal Spannung 20,48 V (A/D Wert=1023) ausgelegt.

Der N-FET IRLML2803 von International Rectifier kann 1 A treiben. Eine integrierte Schaltung mit Spannungswandler für LED Speisung hätte noch eine bessere Auswahl bei der Akku Zellenzahl gebracht, aber der Aufwand war mir zu hoch.

SMD Technik

Die SMD Bauteile wurden gewählt, um den Aufbau klein zu halten. Mit einer Pinzette kann man sie noch handhaben. Zum Einlöten per Hand verzinnt am Besten zuerst nur einen Pad, lötet das Bauteil dort an, und lötet dann den anderen Pad.

Die SMD Pads in der Eagle5 Library wurden so vergrößert, dass man sie besser per Hand löten kann.

Da die SMD Kondensatoren und Widerstände einzeln relativ teuer sind, bietet sich ein Sortiment an. Das gibt es preiswert in China in Gurtstreifen:

Leider werden aus den angebotenen je 100 Stück Widerstände nur 40 Stück, und bei den Kondensatoren sind es je Wert nur 30 Stück anstatt 50 Stück, aber es ist dann immer noch preiswert.

Platine

Die Platine (25 x 50 mm) und der Schaltplan wurde mit dem Programm Eagle5 entwickelt, dass für Hobby Anwender kostenlos ist. Die Files kann man bei den Links herunterladen.

Um mehrere Platinen auf einmal zu fertigen, kann man den .eps File (siehe bei den Links) in der Textverarbeitung Libre Office Writer mehrfach auf einer DIN A4 Seite platzieren. Leider ist der Ausdruck damit auf einem Inkjet Drucker nicht sehr schön. Als Alternative empfiehlt sich, den Film (Dokument) als PDF Datei zu exportieren und dann in guter Qualität mit 100% Größe auszudrucken, auf Transparent Film.

attachment:LipoBlitzer_Test_DSC03868.jpg

Software, Arduino

Die Software wurde mit der aktuellen Arduino IDE Version 1.02 entwickelt.

Diese Entwicklung Plattform (kostenlos) versucht sehr erfolgreich Einsteigern das Programmieren mit AVR Prozessoren einfach zu machen.

Zum leichteren Start hilft Getting started. Als Test Hardware dazu habe ich den Arduino Nano3 eingesetzt, siehe Bild rechts. Dazu muss man den LED Pin in der Software auf 13 legen.

Da Arduino von Hause aus keine ATtiny Prozessoren unterstützt, musste ein passender core installiert werden. Mit arduino-tiny ging das problemlos. Bei der Angabe vom board musste der ATtiny25 @ 1 MHz ausgewählt werden. Dann stimmte das Timing. Eine Diskussion dazu gibt es hier.

Die Warnschwellen wurden an ein erprobtes Beispiel angelehnt:

Spannung        Blinken         Pause           Funktion
 > ca.10,7V     1x blinken      3s Pause        Positionslicht
 < ca.10,7V     2x blinken      2s Pause        ca. 3/4 leer, je nach Lipo
 < ca.10,2V     3x blinken      1s Pause        Landung vorbereiten
 < ca.9,9V      4x blinken      1s Pause        landen
 < ca.9,6V      Nicht mehr      

Blink Dauer: 100 ms
Blink Pause: 200 ms
Pause: 1 - 3 s

Die Analogspannung wird zwar mit einem analogen Tiefpass gefiltert, aber zur weiteren Störungsunterdrückung wurden jeweils 32 aufeinander folgende Messwerte gemittelt.

Das Programm konnte durch die Hilfe der Arduino Libraries kurz bleiben (65 Zeilen), und belegt nur 1,3 von 2,0 KB Flash-Speicher.

Wenn man bei der Arduino Programmierung noch nicht so geübt ist, hilft die Language Reference weiter.

Es wird noch ein Programmiergerät für den AVR Prozessor ATtiny25 benötigt. Eine Arduino Platine kann diese Anforderung auch erfüllen, mit Sketch ArduinoISP, siehe. Ich habe dazu einen Arduino Nano3 benutzt.

Wenn man den .hex File zum externen programmieren des ATtiny haben möchte, muss man folgendes machen:

Als preiswerter externer AVR Programmierer bietet sich an, AVR-USB-Stick für circa 10 EUR inklusive Versand (Bausatz). Die Bauanleitung ist hier. Weitere Details findet man bei Mikrocontroller. Der Original Entwurf stammt von LadyAda (Software).

Zum debuggen kann man das kompakte (circa 250 Byte) KnockBang Protokoll von Coding Badly benutzen, in Zusammenarbeit mit dem Programmierprogramm TinyISP auf einem Arduino Rechner, siehe AVRTinyISP.

Links, Anhänge

List der Seiten in dieser category:

-- RudolfReuter 2012-12-01 17:26:48


Gehe zurück zu CategoryAVR oder StartSeite ; KontaktEmail (ContactEmail)

rudiswiki9: AVRLipoBlitzer1 (last edited 2012-12-31 03:37:34 by dslb-084-058-177-015)