LED-Display für den Raspberry Pi ohne Elektronik-Kenntnisse

Da ich eher ein Software-Mensch bin, habe ich nach einer Lösung gesucht dem Raspberry Pi ein Display zu verpassen ohne einen Lötkolben zu benutzen oder Schaltungen mit einer Steckplatine zu bauen. Fündig wurde ich beim Dream Cheeky USB Message Board. Dieses braucht nur einen USB-Anschluss und der Hersteller bietet praktischerweise ein Datenblatt an, das genaue Informationen enthält wie dieses anzusteuern ist.

Vorab was zu den Bewertungen. Auf Amazon fallen die Bewertungen für das Board schlecht aus. Dies liegt daran, dass sich die Leute über fehlende Softwareunterstützung beklagen. Da wir unsere eigenen Treiber nutzen, haben wir dieses Problem nicht. Das Board funktioniert einwandfrei.

Treiber

Da Dream Cheeky das Datenblatt für Hardwareentwickler veröffentlicht hat, das genau zeigt welche Bits übertragen werden müssen, ist es keine große Herausforderung hierfür eigene Treiber zu entwickeln.

So gibt es dcled, ein in C geschriebenes Programm, dass das Board ansteuert. Da mir dieses Programm aber nicht flexibel genug war, habe ich mich entschieden eigene Treiber zu entwickeln und zwar in NodeJS. Warum NodeJS? Damit es einfach ist Online-Dienste einzubinden, um beispielsweise Tweets oder das Wetter auf dem Board anzuzeigen. In C wäre wäre der Aufwand deutlich höher.

Installation auf dem Raspberry

NodeJS

Als erstes besorgen wir uns NodeJS, eine serverseitige Runtime für JavaScript. Da es in Raspbian kein Package für NodeJS gibt, kann man dieses anhand des Git Repositories selbst kompilieren. Da dies aber ewig dauert, werde ich nicht näher darauf eingehen. Praktischerweise gibt es nämlich vorkompilierte Packages für ARM. Wir geben also folgendes ein:

wget http://node-arm.herokuapp.com/node_latest_armhf.deb sudo dpkg -i node_latest_armhf.deb node -v

Liefert der letzte Befehl eine Versionsnummer aus, wissen wir, dass die Installation erfolgreich war.

NodeUsbLed installieren

Als nächstes laden wir die eigentlichen Treiber runter:

git clone https://github.com/MorbZ/NodeUsbLed

Hierfür werden noch einige NodeJS Module benötigt. Unter anderem node-hid, welches libusb benötigt, daher installieren wir diese:

sudo aptitude install libusb-1.0-0-dev cd NodeUsbLed npm install node-hid sprintf-js request xml2js ws

Jetzt ist alles installiert, was wir brauchen und wir können das Programm starten:

sudo node rotate.js

Jetzt sollte der Demo-Modus auf dem Display zu sehen sein.

Plugins

Standardmäßig laufen auf dem Display im Demo-Modus verschiedene Plugins durch und werden jeweils für 5 Sekunden angezeigt. Die Plugins sind: Equalizer, Ein sich bewegender Punkt, Uhr, Temperatur und Bitcoin Kurs.

Um einzelne Plugins zu deaktivieren kann man die rotate.js Datei öffnen und die unerwünschten Plugins auskommentieren.

Es ist auch möglich eigene Plugins zu schreiben. Hierzu schaut man sich am Besten die vorhandenen Plugins an. Es ist möglich Text auf dem Display auszugeben oder auch manuell die einzelnen Pixel anzusteuern.

Forever

Um das Display am Laufen zu halten ohne eine Konsole offen zu lassen, kann man Forever nutzen:

sudo npm install forever -g sudo forever start rotate.js

Hiermit wird Forever installiert und das Programm im Hintergrund gestartet. Will man es wieder beenden schreibt man:

sudo forever stopall

Kommentare

  •   Anonymous

    Schade das du dein github repo einfach in GO umgeschrieben hast wodurch dein Guide hier völlig hinfällig ist.
    Sowas macht man nicht!
    Stattdessen hättest du ein neues github repo auf machen und das alte in einen read-only Status versetzen sollen.

    Jetzt darf man sich das selber aus alten commits wiederherstellen wenn man das in Node.js umsetzen möchte da der alte Stand nicht mal getaggt ist.

    *edit*

    Habe die „alte“ Node.js Version wiederhergestellt und auf deiner Grundlage neugeschrieben: https://github.com/b2un0/node-dcled

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.