RGB-matris med en Raspberry Pi!

Som ni säkert märkt gillar vi på m.nu när det lyser! Lysdioder ligger oss nära om hjärtat så vad kan vara bättre än massor med lysdioder inklämda i en liten yta!?

Fram till nu har vi haft en ”simpel” 7-segmentsbaserad display som visar hur många beställningar vi har kvar att packa och hur många vi hunnit packa under dagen. Denna har dock ett par problem:

  1. Den kan endast visa 4 tecken. Det räcker inte när vi kan ha över 100 beställningar att packa på morgonen!
  2. Den börjar bli till åren och bygger på en 1-wire lösning
  3. Den är inte RGB!

Detta ville vi ta tag i och när vi till slut tog in Adafruits stora led-matriser kunde vi inte hålla oss längre.

Observera dock att lösningen är extremt flexibel och kan användas till mer än att visa upp antalet beställningar.

För detta projekt behövs:

Gör så här:

Förberedelser:

Se till att ha ett minneskort med en fungerande version av valfritt Linuxsystem. Vi använde senaste versionen av Raspbian.

Hårdvaran:

Börja med att löda på headers på RGB HATen. Vi följde Adafruits ypperliga guide här: https://learn.adafruit.com/adafruit-rgb-matrix-plus-real-time-clock-hat-for-raspberry-pi/assembly

Se dock upp med att inte löda fast IDC header och terminalblocken åt fel håll. Gör man det är det inte hela världen, men det blir lättare att koppla in allt om det är rätt från början.

Vi skruvar sedan på ett par distanser så vi inte riskerar att klämma eller bryta av något.

Efter detta är det bara att montera på hatten, stoppa i ett batteri till RTC klockan samt koppla in alla kablar.

Mjukvaran:

Installation

Vi fortsätter följa Adafruits utmärkta guide och installerar deras bibliotek för att styra matriser. Detta görs genom terminalen med följande kommando:

Under installationens gång kommer man få ett flertal frågor. Vi valde t ex ”Convenience”-läget och har varit mycket nöjda än så länge.

Programmering

När biblioteket är installerat finns det massor med exempel, både i C och Python. Men eftersom vi känner oss mest bekväma med python väljer vi att scripta i det språket.

Eftersom vi kommer använda biblioteket måste även vissa filer importeras till scriptet. Lättast är att lägga sitt eget script på samma ställe som exemplen, dvs i mappen ”rpi-rgb-led-matrix/bindings/python/samples”.

Vi väljer även att använda tilläggsbiblioteket lxml för att parsa lite hemsidor. Detta är helt valfritt men installeras med kommandot:

Hela vårt script återfinns på vår github. Men i korthet så har vi en huvudloop som körs i all oändlighet. Varje varv anropar vi olika procedurer som ritar lite olika saker på matrisen.

Kom dock ihåg att matrisen är väldigt dum. Du kommer inte kunna få automatiska radbrytningar eller liknande. Istället följer det med i biblioteket massa fonter med fast bredd på alla bokstäver som kan användas för att lista ut hur många tecken som får plats.

Kör scriptet

För att köra scriptet bör du köra som sudo eftersom matrisbiblioteket använder några lågnivåfunktioner. Så i korthet:

Vill du kunna köra scriptet utan att ha terminalen uppe använder vi kommandot nohup:

Lämna ett svar