Freitag, 16. Mai 2014

LED Bastelein

Zur Abwechslung mal kein Finanzthema ...

Seit geraumer Zeit bastele ich an einer Equinox Uhr (video) herum. Leider kam ich schon länger nicht mehr dazu, weil ich mich so viel mit Finanzen beschäftigt habe. Die neue Wohnung bleibt auch momentan auf der Prioliste ganz weit oben. Die Hardware habe ich bereits in eine Kiste verstaut und weggelegt und möchte diese auch vor dem Umzug nicht mehr herausholen allerdings kann ich ja weiter an der Firmware basteln.
Bisher konnte ich irgendwie nicht den Schweinehund überwinden ... jetzt muss es aber sein!.
Ich habe bereits eine Menge Ideen was man mit der Uhr alles anstellen kann, daher soll die Firmware so flexibel wie möglich sein.
Um das zu erreichen und um selbst etwas zu lernen habe ich mich für den Einsatz eines RTOS entschieden. Bisher habe ich noch nicht so viel Erfahrung damit.
Letztendlich hat sich meine Auswahl auf die folgenden 3 RTOS beschränkt:

ChibiOS
+ sehr mächtig
+ sehr gutes Design
+ sympathische Philosophie der Entwickler
+/- bietet eine komplette HAL mit ein
+/- bietet mehr als ich erstmal brauche
- recht groß
- erstmal gewöhnungsbedürftig

FreeRTOS
+ sehr mächtig
+ kann sehr klein sein
+ nur auf das wesentliche konzentriert
+ gut erweiterbar
+ sehr portabel

RTX
+ sehr klein
+ effizient
- unnötig komplex
- wirkt sehr an den Hersteller Keil gebunden

Auch wenn ChibiOS recht sympatisch wirkt, starte ich erstmal mit FreeRTOS und schaue wie weit ich komme.
Im ersten Schritt will ich erstmal folgende Basis Funktionen implementieren.

  • Ansteuerung der LED Stripes
  • Anzeige der Uhrzeit
  • RTC nutzen
  • Befehle über einfachen UART empfangen
  • eine kleine Grafik lib mit einfachen Animationen und Effekten
weitere Funktionen die in Zukunft dazu kommen sollen
  • Bluetooth Steuerung
  • Android App für Bluetooth Steuerung
  • IRDA Steuerung (inkl. Fernbedienung)
  • Lichtsensor
  • Temperatur Sensor
  • DCF77 Empfänger
  • Mikrofon (-> Lichtorgel abhängig von Umgebungsgeräuschen)
  • Touchscreen (warum auch immer :)
Ich werde versuchen alle implementierten Funktionen nach und nach hier zu Dokumentieren.

Keine Kommentare:

Kommentar veröffentlichen