Multicopter Blinker mit Spannungswarmer

macrifice

Erfahrener Benutzer
#1
Hallo,

ich möchte ich hier mein aktuelles Projekt vorstellen. Nach dem ich bei meinen Multicoptern schon bei mehr als 50 Metern kaum noch erkennen kann, wo vorne und hinten ist, habe ich mir vorgenommen was zu bauen, das man auch aus 200m noch erkennen kann.

Dazu sollten vorn und hinten jeweils 3 Stück 3W Luxeon Star LEDs mit unterschiedlichen Frequenzen und Farben blinken, vorne weiß und hinten grün (die haben am meisten Lumen/Watt). Da die Luxeons 3,9V bzw 3,7V Vorwärtsspannung haben, kann man an einer KSQ problemlos 3 Stück betreiben bei 4S-6S. Bei 3S muss man eventuell auf eine LED verzichten.

Als KSQ verwende ich jeweils für vorne und hinten eine LDD-700L, an deren Ausgang 3 LEDs in Serie geschaltet werden. Damit ergibt sich ein Lichtstrom von etwa 200 Lumen pro Watt. Die KSQ haben einen PWM (on/off) Eingang, die ich über einen ATTINY13 PU-20 über 2 Ausgänge getrennt ansteuere. Die Schaltung kann an 3S bis 6S angeschlossen werden. Die Spannungsversorgung vom AVR wird über einen 78L05ACZ geregelt, der hat bis 30V Eingangsspannung und 5% Genauigkeit. Um Störungen ins Bordnetz zu unterdrücken wird die gesamte Schaltung eingangsseitig mit 1uF und 220uF Low-ESR gefiltert. Ich warte derzeit noch darauf, dass ich leihweise ein Ossi bekomme und die Filterung prüfen kann.

Da der AVR parallel auch noch Spannung messen kann, nutze ich dessen ADC zur Lipo-Typ-Erkennung und Spannungsmessung während des Flugs. Dazu ist auf der Platine noch ein Spannungsteiler aus 4,7k und 22k, der den Messbereich bis 6S voll geladen auf etwa 4.5V absenkt, so dass der Messbereich fast voll ausgenutzt wird. Als Referenzspannung nutze ich Vcc.

Sobald der AVR gestartet ist, sammelt er 2.5 Sekunden lang Werte vom ADC und ermittelt, ob ein 4S oder 6S verwendet wird und zeigt das durch entsprechende Blinksequenzen an. Das lässt sich per Software auch auf 3S oder 5S erweitern. Aus dem ermittelten Lipo wird dann die Warnspannung auf 3.6V/Zelle unter Last eingestellt, wer weniger will, kann das leicht ändern. Die LEDs blinken dann über der Warnschwelle normal (2x 100ms vorne, dann 1 Sekunde aus, 3x100ms hinten, dann eine Sekunde aus). Um kurzzeitige Einbrüche zu ignorieren werden die ADC Werte in einen Ringpuffer gespeichert (alle 500ms einer), so dass im Puffer immer Messwerte der letzten 5 Sekunden liegen. Die Spannung wird dann aus den 10 Werten geglättet betrachtet, so dass Ausreisser und kurzzeitige Einbrüche nicht stören. Hier kann man später noch mehr Werte in den Puffer ziehen und andere Glättungen ausprobieren, zB mit mehr Gewichtung auf den letzten Werten. Dazu muss man dann aber auf einen ATTINY45 wechseln, da die Software aktuell schon rund 90% der 1kb Speicher vom ATTINY13 belegt.

Sobald die Spannung unter die Warnschwelle sinkt, blinken alle LEDs dauerhaft mit 4hz. Das scheint mir am besten erkennbar, kann aber auch leicht geändert werden.

Bauteile:
- 2 Stück LDD-700L (ca 4,20 Euro/Stück bei Pollin)
- 1 ATTINY13 20PU und 8DIL Sockel (ca 2 Euro)
- 2 1uF Keramikkondensator (paar cent)
- 1 220uF LOW ESR Elko mit 35V (paar cent)
- 1 22k Widerstand (paar cent)
- 1 4,7k Widerstand (paar cent)
- 1 78L05ACZ (40 cent)
- 3 Stück Luxeon Star 3W weiss (ca 4 Euro/Stück)
- 3 Stück Luxeon Star 3W grün (ca 5-6 Euro/Stück)

Aufbau kann auf Lochraster oder Streifenplatine erfolgen, oder auf einer geätzten Platine. Schaltplan mit Eagle und Platinenlayout, Programmcode in C und Fotos hänge ich noch an. Die geätzte Platine ist ca 33x45mm groß und etwa 14mm hoch.

Aufgrund der Toleranzen in den verschiedenen Bauteilen muss die Spannungsmessung kalibriert werden. Prinzipiell reicht ein gutes Multimeter aus, aber auch die haben meist 3-5% Ungenauigkeit. Besser ist ein analoges Oszilloskop mit 1% Genauigkeit, das hat aber nunmal nicht jeder.

Der Aufbau erfordert natürlich ein wenig Geschick mit Lötkolben und Co und auch grundlegendes Verständnis von Elektronik und Programmierung. Ein ISP muss ebenfalls vorhanden sein und ein Windows PC mit AVR Studio.

Wichtig: Die Tiny13 werden im Auslieferungszustand mit 1,2Mhz "gefused" geliefert. Damit die Software richtig funktioniert, müssen die Fusebits einmal gesetzt werden, damit der Controller mit 9.6Mhz Takt läuft (Fusebits low 0x7a, high 0xff).

Den AVR habe ich auf einen Sockel gesetzt, damit ich ihn zum Programmieren auf ein ISP/Test Board setzen kann. Damit brauche ich den ganzen Kram für einen ISP Anschluss nicht auf der finalen Schaltung.

In der nächsten Variante will ich dann statt der Gesamtspannung jede Zelle einzeln vermutlich mit einem AD7816 oder ähnlichem messen und die Messwerte über I2C in den AVR lesen.

Die 3 Stück 3W LEDs kann man bei normalem, gutem Tageslicht aus 150-200m noch gut erkennen. Bei schlechtem Licht oder Dämmerung sind auch 500m kein Problem. Da die LEDs nicht dauerhaft leuchten und ich die Version auf den Star-Platten verwende, ist keine Kühlung notwendig. Zur Montage an den Copter werden die aber auf ein Stück Alu-Leiste geklebt.

Anhänge folgen.

Grüße,
Christian

EDIT: Habe die Widerstandswerte korrigiert.
 
Zuletzt bearbeitet:

macrifice

Erfahrener Benutzer
#8
Hier noch ein ganz kurzes Video dass die LEDs kurz beim Blinken zeigt. Mache demnächst noch mal eines, dass den ganzen Ablauf mit der Akkuerkennung zeigt.

EDIT: Download entfernt, siehe Beitrag Nr 14 für Update.
 
Zuletzt bearbeitet:

macrifice

Erfahrener Benutzer
#9
In der Schaltung sind die beiden Widerstände noch mit 470 und 2.2k angegeben. Wer nicht will, dass die anfangen zu glühen, nimmt besser die 47k und 220k, wie oben beschrieben. Und die Widerstände sind auch vertauscht, die 220k müssen an Plus anliegen, die 47k gegen Gnd. :eek:
 

Terminus

Erfahrener Benutzer
#12
Kleiner Tipp am Rande, die 220k und 47k sind etwas hoch. Beachte den Eingangswiderstand vom ADC. mach lieber faktor 10 weniger ;-). Und bau noch einen Kondensator vorm ADC für Tiefpass-Wirkung mit ein.

Gut gelayoutet, ich steh auf schöne einseitiger Platinen :)
Nur der Schaltplan, da musst du ein paar GND Symbole spendieren, dann wirds übersichtlicher

Greez Termi
 

macrifice

Erfahrener Benutzer
#13
Ich hab gerade noch mal auf der Schaltung nachgeschaut, sind 4,7k und 22k drin (Edit: also auf der Platine hab ich die so verbaut, hatte den Teiler vorher ausgerechnet). Steh ein bisschen neben mir, hab schon seit 2 Wochen Grippe. :-(

Die Gnd Symbole könnte ich noch spendieren, aber ich hab lieber sichtbare Verbindungen. :)

Wegen des Tiefpassfilters: Vor dem Spannungsteiler hängt doch ein 1uF parallel mit einem 220uF, das sollte doch relativ viel an hohen Frequenzen abschneiden?
 
Zuletzt bearbeitet:

Terminus

Erfahrener Benutzer
#16
Ich hab gerade noch mal auf der Schaltung nachgeschaut, sind 4,7k und 22k drin. Steh ein bisschen neben mir, hab schon seit 2 Wochen Grippe. :-(

Wegen des Tiefpassfilters: Vor dem Spannungsteiler hängt doch ein 1uF parallel mit einem 220uF, das sollte doch relativ viel an hohen Frequenzen abschneiden?
Hehe, nicht wirklich. Rechne vereinfacht mit tau=R*C. (stimmt nicht ganz, da kein PT1 im klassischem Sinne)
dein R der Leitung ist extrem klein (<<1Ohm), dh dein tau ist auch sehr klein. Da die Spannung aber gerne mal kurz einbricht beim Gas geben, schlägt sich das sofort nieder... Ist aber bei einer reinen LED Lösung nicht schlimm, nur beim Buzzer nervt es extrem wenn einem frischen Akku sofort das piepen losgeht ;-)
 

macrifice

Erfahrener Benutzer
#17
Hehe, nicht wirklich. Rechne vereinfacht mit tau=R*C. (stimmt nicht ganz, da kein PT1 im klassischem Sinne)
dein R der Leitung ist extrem klein (<<1Ohm), dh dein tau ist auch sehr klein. Da die Spannung aber gerne mal kurz einbricht beim Gas geben, schlägt sich das sofort nieder... Ist aber bei einer reinen LED Lösung nicht schlimm, nur beim Buzzer nervt es extrem wenn einem frischen Akku sofort das piepen losgeht ;-)
Das hab ich aber doch durch den Ringpuffer in der Software schon eliminiert. Ich halte die letzten 5sek Messwerte vor und nutze nur den Mittelwert. Selbst wenn da 1-2 Sekunden die Spannung unter den Warnpegel einbricht, wird das ausgebügelt. Wenn ich das Ossi hier hab, werde ich das Verhalten mal auf dem Motorprüfstand provozieren, mal sehen, ob ich da noch was tun muss. :)
 

macrifice

Erfahrener Benutzer
#18
Noch ein Tipp für die, die keinen UV Belichter und Ätzanlage haben, so wie ich, aber trotzdem Platinen ätzen wollen. Ich mache das so wie Thomas Pfeifer hier:

http://thomaspfeifer.net/platinen_aetzen.htm

Ich verwende aber statt Natriumpersulfat lieber Eisen-III-Chlorid. NPS hat zwar ein paar kleinere Vorteile, da es weniger unterätzt, allerdings wird das nicht umsonst in der Pyrotechnik verwendet, brennt halt hervorragend. Aber auch mit Fe3Cl sollte man sehr vorsichtig sein und Schutzbrille und Latexhandschuhe tragen.

Das Verfahren funktioniert einwandfrei. Man braucht nur einen Laserdrucker und ein Bügeleisen. Fe3Cl und Ätzschalen bekommt man alles zusammen für ca 20 Euro.
 
FPV1

Banggood

Oben Unten