Rainbow Crash

From chaoswiki
Jump to navigation Jump to search
Rainbow crash clyvore small.png

Inspiration

Blinkenlights sind toll. Noch toller sind farbige Blinkenlights. Siehe auch AllColoursAreBeautiful und Moodlamp.

Und mit einem coolen Namen ist das ganze nochmal 20% cooler!

Ziel

Farbige Zimmerbeleuchtung!

Leider sind die Fertigprodukte (LED-Birnen) aus China recht minderwertig. Also warum nicht selbst bauen?

So wird auch wesentlich mehr Leuchtleistung möglich.

LED-Quellen

CREE-LEDs sind immer noch recht teuer. Bei DigiKey gibt es welche auf Stern in RGB für 11$/Stück (7 bei Abhname in grösseren Chargen).

Chinesische LEDs kosten wesentlich weniger. Gleichwertige kriegt man bei Ali Express schon ab 170$ für 100 Stück.

Treiberschaltungen und Fernbedienungen kann man ebenfalls zum Sparpreis aus China bestellen, z.B. aus LED-Spots von DealExtreme.

Reverse Engineering Fernbedienung

Analyse der Fernbedienng von DealExtreme 12V RGB LED Spot mit dem Logik-Analyzer war relativ einfach, Vergleich mit existierenden Protokollen hat ergeben dass NEC IR Codes verwendet wurden. Das Blank-Signal ist etwas kürzer, 480μs statt 567μs, unterm Strich stimmt das Timing aber ziemlich genau mit der Spezifikation überein. Siehe NEC-Protokoll.

Atmel Plätten

Wie so viele andere Bastler habe ich bei meinen ATtiny13 die falschen Fuse-Bits geflasht... Anstatt in der lfuse landeten sie in der hfuse. Nun funktioniert der ISP-Port nicht mehr, weil die RESET-Leitung als GPIO-Pin konfiguriert ist. Zum entbricken ist ein HVSP-Programmer nötig - welcher aber leider (noch) nicht zur Verfügung steht. In Anbetracht der Tatsache dass in Zukunft Andere vielleicht den gleichen Fehler machen werden bzw. dass in einer Schaltung einmal der RESET-Pin für andere Zwecke verwendet werden soll, haben wir uns einen HVSP-Fuse-Bit-Flasher besorgt. Sobald er eingetroffen ist, geht es weiter.

Das HVSP-Protokoll ist in den Datenblättern der jeweiligen Mikrocontroller dokumentiert, aber leider nicht kompatibel zum ISP-Protokoll. Ein ISP-Programmer mit Steuertransistor für die nötigen 12V auf der Reset-Leitung reicht also leider nicht. Hier gibts noch ein bisschen mehr Info dazu: [1].

Hier sind einige Projekte/Produkte zum Wiederherstellen der Fuse-Bits: [2] [3] [4]

Update: Zurücksetzen der Fuse-Bits hat geklappt. CKDIV8 ist nun auf 1, d.h. der ATtiny13 läuft mit der vollen Taktrate. Nun gehts weiter mit dem Projekt.

IR-Decoder

Was brauchen wir:

  • einen IR-Fototransistor
  • einen auf 0.1ms genauen Zähler
  • einen Interrupt-Handler der auf Flanken vom FT reagiert
  • eine State-Machine
  • einen Event-Handler der etwas mit den Tastencodes anfangen kann

Das Modul zum dekodieren der IR-Codes funktioniert nun. Code folgt später. Zusammen mit dem PWM-Code hat es sogar im nur 1KB grossen Speicher vom ATtiny13 Platz.

DX-Fernbedienung = Müll

Leider tut unsere DealExtreme-Fernbedienung nicht mehr so wirklich. Zuletzt hat sie innert Kürze mehrere Batterien (CR2025) leer gefressen, nun sendet sie gar nichts mehr.

Das RC-5-Protokoll ist bei Fernbedienungen noch etwas gebräuchlicer als NEC. Als nächstes heisst es also ein Decoder-Modul für RC-5 zu bauen. Laut [5] ist das ein Manchester-kodiertes 14-Bit-Signal. Der Code dürfte also einfacher als für NEC ausfallen.