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