====== LED-pæle ======
Der er to rækker med pæle, med 2 × 12 pæle i hver (i alt 48 pæle) - controlleren sidder i midten af hver række, men hver række ses udefra som 24 sekventielle pæle. Hver pæl har 30 RGB-dioder, dvs der er i hver række 720 dioder, som alle kan kontrolleres individuelt.
===== Opsætning =====
Man skal bruge
- 48 pæle
- 2 controllerbokse (terning i krydsfiner, 160 mm på hver led)
- 48 kabler med 4-polet stik i hver ende
Bemærk at 4 af pælene har monteret et voltmeter (et lille print med et display på). Disse er beregnet til at sidde sidst i rækken.
Stil pælene op og træk kabler imellem dem (J1 er indgang, J2 er udgang). Bemærk at nogle af kablerne er kraftigere end de andre - disse bør sættes tættest på controllerne (for at minimere spændingsfald).
Tilslut 230 V til controllerne. De forbinder nu automatisk til WiFi (SSID Vammen Camping). På displayet kan man se om de er forbundet.
===== Controller =====
Når controlleren tændes, kører den en række af animationer og skifter automatisk til en ny animation efter 60 sekunder. Når hele rækken af animationer er færdig, skiftes 'strip mode' (se nedenfor) osv. Det tager 51 minutter inden hele sekvensen gentages.
Ud over det kan man sende kommandoer til controlleren via UDP.
Controlleren indeholder en ESP32, som er på nettet via WiFi (kode: https://github.com/bullestock/ledpoles/tree/master/esp32/).
===== Kommandoer =====
Kommandoer sendes til port 7890. De to bokse har adresserne ''displaydingo1.v.sman.dk'' og ''displaydingo2.v.sman.dk''. OBS der er client-isolation på wifi, så brug en kablet forbindelse til at nå enhederne.
På [[https://github.com/bullestock/ledpoles/tree/master/python|github]] findes der en række Python-scripts, som man kan bruge til at styre pælene. Eksempler:
python3 setmode.py displaydingo1.v.sman.dk Emergency
python3 freerun.py displaydingo1.v.sman.dk
python3 setspeed.py displaydingo1.v.sman.dk 50
python3 setstripmode.py displaydingo1.v.sman.dk 1
De kommandoer som de forskellige scripts sender er beskrevet i detaljer nedenfor.
==== SEND_RAW_DATA ====
Denne kommando sender rå RGB-data til pælene. Hvis controlleren før kørte en automatisk animation, stopper dette. Eksempel: https://github.com/bullestock/ledpoles/blob/master/python/test.py
* 16 bits (little-endian byte ordering): magic value 1111 (decimal)
* 16 bits (little-endian byte ordering): offset to first LED to control (value between 0 and 719)
* 24 bits x N colors. This is 3 x 8 bit RGB values, for the first LED and auto-incrementing forward.
==== SET_ANIMATION_MODE ====
Denne kommando får controlleren til at køre den angivne animation. Eksempel: setmode.py
* 16 bits (little-endian byte ordering): magic value 1112 (decimal)
* N bytes: animation_mode
Gyldige værdier for animation_mode (case insensitive):
Bars
Bounce
BeatsPerMinute
Chase
ChaseMulti
Confetti
Cylon
Emergency
Fire
Flicker
Juggle
Matrix
PeriodicPalette
Propeller
Radiation
Rainbow
RandomBurst
==== SET_STRIP_MODE ====
Denne kommando har kun effekt hvis der kører en animation. Eksempel: setstripmode.py
* 16 bits (little-endian byte ordering): magic value 1113 (decimal)
* 8 bits: strip_mode
Gyldige værdier for ''strip_mode'':
WholeStrip 0 Animationen bruger alle dioder.
OnePoleCopy 1 Animationen bruger kun den første pæl, og alle andre pæle kopierer den første.
OnePoleShiftCopy 2 Som OnePoleCopy, men mønsteret forskydes 3 dioder mellem hver pæl.
==== SET_SPEED ====
Denne kommando har kun effekt hvis der kører en animation. Eksempel: https://github.com/bullestock/ledpoles/blob/master/python/setspeed.py
* 16 bits (little-endian byte ordering): magic value 1114 (decimal)
* 8 bits: frames_per_second
Gyldige værdier for ''frames_per_second'': 1-50
==== SET_BRIGHTNESS ====
Sætter lysstyrken.
Eksempel: setbrightness.py
* 16 bits (little-endian byte ordering): magic value 1116 (decimal)
* 8 bits: brightness
Gyldige værdier for ''brightness'': 10-255
===== Andet =====
Pælene er forbundet med kabler på 10 meters længde. For at undgå problemer med spændingsfald føres der 12 V ud til pælene, og en regulator på hver pæl omdanner dette til 5V.
Kommunikationen foregår over RS-485 (da nogle af kablerne kun har tre ledere, er det i nogle tilfælde en ikke-balanceret afart af RS-485). Hardware: https://github.com/bullestock/ledpoles/tree/master/pcb