User Tools

Site Tools

sommerhack:led_poles

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

  1. 48 pæle
  2. 2 controllerbokse (terning i krydsfiner, 160 mm på hver led)
  3. 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.

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

Permalink sommerhack/led_poles.txt · Last modified: 2021/09/04 09:44 by Nikolai Beier

oeffentlich