Taschenlampe – Liion + Cree XM-L

Eine gefühlte Ewigkeit bastel ich nun schon an dieser Taschenlampe! Das ist eher etwas für zwischendurch, aber nun ist es endlich soweit, die Hardware ist fertig und die Software ist auf einem guten Weg..

Lange Zeit habe ich nach der „perfekten“ Taschenlampe gesucht. Wichtig war mir dabei besonders Individualität, so bin ich auf die Idee gekommen statt einem Schalter einen Klopfsensor zu nutzen. Hierfür benutze ich einen MPU-9150.  Dieser Chip kann Beschleunigung und Rotation jeweils aller 3 Achsen messen und hat zusätzlich noch einen Kompass und Temperatursensor eingebaut.
Für mich waren ersteinmal nur Beschleunigung und Rotation interessant.

Das Gehäuse hat mir ein Freund netterweise auf der Drehmaschine gefertigt. Angefangen hat alles mit einem Alurohr, und so sieht es dann fertig aus:

gesamt
von links nach rechts: Linsenhalter, Linse, Treibereinheit + LED, Gehäuse, 18650 Lithiumakku, Endkappe
kopf3
Die Linse ist etwas dicker als der Akku. Eine Aussparung hält sie anschließend in Position.

Der MPU-9150 lässt sich über einen TWI (Two-Wire-Interface) ansteuern.. Als Master läuft hier (m)ein (Lieblings-)Attiny-85.

Der Rest der Schaltung ist einfach, ich habe fertige Konstantstrom-ICs verwendet. 9x AMC7135 parallel verschaltet.
Jeder dieser Chips  bringt 350 mA, was insgesamt 3,15A macht.
Die Cree XM-L kann gute 3A vertragen und bringt dabei an die 1000 Lumen ( je nach Lichtfarbe ).

Die Spannungsversorgung der Konstantstrom-ICs wird nun von dem Attiny per PWM getaktet. Ein Strom fließt immer nur, wenn Spannung anliegt. Auf diese Art und Weise wird die LED gedimmt. Exakt die gleiche Schaltung wird so ziemlich in jeder Lithiumtaschenlampe aus China verwendet. Meistens in Verbindung mit einem günstigen Attiny13.

Die Schwierigkeit war es alles in diesem kleinen Gehäuse zu verbauen. Ich habe dazu eine doppelseitige SMD Platine genutzt, auf der Unterseite sitzen die Konstantstrom-ICs, auf der Oberseite der Mikrocontroller und darüber habe ich die Beschleunigungssensorplatine befestigt.

treiber
Oben: Beschleunigungssensor, Unten: Doppelseitige Platine mit Attiny auf der Oberseite und Konstantstrom-ICs auf der Unterseite.

Die Stifte, die den Beschleunigungssensor mit meiner Platine verbinden dienen gleichzeitig dazu den Attiny zu programmieren. So habe ich viel Platz gespart indem ich nicht auch noch einen gesonderten Programmierport einsetzen musste.

programming
Programmierport. Zum Programmieren einfach die Stiftleiste an die Stifte drücken.

 

Für die Ansteuerung des Beschleunigungssensors habe ich  Application Note 310 von Atmel verwendet. Hier steht nocheinmal sehr ausführlich beschrieben, wie die TWI-Schnittstelle funktioniert und den Source Code kann man gut nutzen.

Der MPU-9150 lässt sich in einen Stromsparmodus schalten. Dieser wird verlassen, sobald ein Interrupt getriggert wird. Dies geschieht durch ein „Klopfen“. Hierzu wurde der extra Pin INT herausgeführt.

Eine erste Version der Software bleibt nach dem Einschalten der Taschenlampe (einmaliges Klopfen) in einem Helligkeitseinstellmodus. Hierzu habe ich die Werte des Rotationssensors (Gyro) aufintegriert, sodass eine Drehung der Taschenlampe die Helligkeit verändert.
Ein erneutes Klopfen schaltet die Lampe wieder aus.
Da ich die Lampe hauptsächlich zum Fahrradfahren einsetze darf sie natürlich nicht bei jeder Bodenwelle an und aus gehen. Hierzu gibt es noch einen Fahrradmodus. Dieser wird durch weiteres nach rechts drehen erreicht.
Im Fahrradmodus ist das Klopfen gesperrt. Nur eine schnelle Drehung der Taschenlampe nach links kann die Lampe ausschalten.
Die Software läuft soweit zuverlässig, jedoch geht die Lampe bei jeder Erschütterung an. Das ist natürlich unpraktisch wenn die Lampe nicht in Gebrauch ist. Hierzu möchte ich in der nächsten Version der Software eine Einschaltsicherung hinzufügen. Zusätzlich können ein paar Funktionen wie SOS oder Stroboskop nicht schaden.. 🙂

Genug gelabert, hier gibts Software + Eagle Files

Taschenlampe_ALUv6_eagle

Taschenlampe_ALUv6_C-Code