Difference between revisions of "Christmas tree"
(Added link and removed featured flag) |
|||
(52 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{Project | {{Project | ||
− | |State= | + | |Featured=No |
− | |Members=Prodigity | + | |State=Completed |
− | |Description= | + | |Members=Prodigity, xopr, AmazingMike, Da Syntax, Wolkje, Computer1up |
+ | |Description=Kerstboom heeft mooie lampjes en versiering nodig | ||
+ | |GitHub=espixelflut | ||
+ | |Picture=treefeeding.png | ||
}} | }} | ||
− | + | (this one's in Dutch so the young participants can join in as well) | |
− | + | Also see [[LED sleeve]] for an evolution on the IP Christmas lights. | |
+ | == LED kerstboom == | ||
+ | Het is weer wintertijd, tijd om een (LED) lichtje te schijnen op de warme verlichting! | ||
+ | Die gaan we uiteraard zelf <s>maken</s> scripten voor de kerstboom. | ||
+ | |||
+ | We hebben een hele hoop dingen in de space liggen waar we vast en zeker iets leuks van kunnen maken (alles en iedereen is welkom)! | ||
+ | Denk hierbij aan: | ||
+ | * 3D ornamenten printen (geeft misschien mooie schaduw-effecten) | ||
+ | * Plexiglas frezen of graveren (we hebben een vierkante meter melkwit plexiglas in de stack) | ||
+ | * Karton en papier kan natuurlijk ook (bijvoorbeeld een mini-lampion) | ||
+ | * harddisk platters | ||
+ | |||
+ | === uitvoer === | ||
+ | :De LEDslinger hangt semi-permanent aan het plafond (kerstboom = moeite). De ATX voeding staat op de kast bij de ingang, aangesloten op zekeringgroep [[Fuse group::A]]. | ||
+ | :Geïnspireerd door [[SHA2017]], hebben we een pixelflut versie gemaakt (zie ook https://wiki.sha2017.org/w/Pixelflut_bar en https://wiki.sha2017.org/w/Projects:HackTheVU). | ||
+ | :<abbr title="2019">Dit jaar</abbr> is ArtNet-ondersteuning toegevoegd (zie talk pagina voor externe links). | ||
+ | |||
+ | Zie hier een media overdosis: | ||
+ | {{Html5media|flutnet_poc.mp4|flutnet (ArtNet voorbeeld}} | ||
+ | {{Html5media|WS2812_kerstgeenboom.mp4|1e script}} | ||
+ | {{Html5media|WS2812_weewoo.mp4|wee woo script}} | ||
+ | {{Html5media|WS2812_ambiled.mp4|ambiled script}} | ||
+ | {{Html5media|WS2812_chrome_app.mp4|chrome app}} | ||
+ | {{Html5media|WS2812_surface.mp4|surface app}} | ||
+ | {{Html5media|WS2812_morse.mp4|morse}} | ||
+ | {{Html5media|WS2812_morse2.mp4|custom morse}} | ||
+ | |||
+ | De hard- en software voor de pixelflut versie is klaar; hij moet alleen nog aangesloten en in de boom gehangen worden: aansluiten door '''blauw op GND''' en '''bruin op 12V''' aan te sluiten, deze gaan naar de groene connector en LEDslinger. | ||
+ | |||
+ | Er zijn als het goed is, 2 zwarte kabels met kroonsteen-stekers; de korte is bedoeld om langs de stam op te lopen. Om kleurafwijking en te grote stroombelasting op de ledslinger te voorkomen, is deze kabel nodig (zorg ervoor dat de kroonsteentjes juist-om ingestoken worden, anders blaas je de LEDs op. | ||
+ | |||
+ | Er zit een resetknop en een rotary encoder (draai/drukknop) op welke de volgende mogelijkheden opleveren: | ||
+ | * Reboot: reset-down, reset-up | ||
+ | * Firmware update mode: reset-down, rotary-down, reset-up, rotary-up | ||
+ | * Set number of LEDs: reset-down, reset-up, wait 1 sec., rotary-down, wait 5 sec., rotary-up (rotary-rotate to change, press rotary to store, reset to cancel) | ||
+ | * LEDs off: rotary-down (not implemented) | ||
+ | * Brightness: rotary-rotate (not implemented) | ||
+ | [[Image:ESPCB.png|thumb|ESPixelflut PCB]] | ||
+ | {{Html5media|WS2812_kerstboom4.mp4|width=|height=}} | ||
+ | :Er zit een FTDI connector op: van buiten naar binnen: RTS(green), RX(yellow), TX(orange), '''3.3V'''(red), CTS(brown), GND(black). | ||
+ | :Er zit een jumper op: buitenkant is step-down converter, binnenkant is FTDI (let op: moet 3.3V zijn!). Uiteraard kun je de middelste pin ook gebruiken om direct 3.3v op de ESP te zetten. | ||
+ | |||
+ | <noinclude> | ||
+ | |||
+ | === plan === | ||
+ | [[User:Xopr|xopr]] is benieuwd naar het [https://youtu.be/1f4Qn94VQK4?t=29 beroemde ArtNet voorbeeld] dat [[user:Prodigity|Prodigity]] geschreven heeft voor [[OHM2013]]. | ||
+ | |||
+ | === updates === | ||
+ | * [[User:Xopr|xopr]] 21:00, 18 November 2019 (CET): ArtNet ondersteuning toegevoegd (erin gehackt). Momenteel alleen nog getest op 1 universe (100 LED's); bij veel netwerkpakketten (>25fps) begint de strip te glitchen, dus er is nog ruimte voor optimalisatie | ||
+ | |||
+ | == todo == | ||
+ | * brightness beheren (met draaiknop) | ||
+ | * zekering upgraden (en bekabeling controleren: 12A) of softwarelimiter inbouwen (8A max) | ||
+ | |||
+ | = voorgaande versies (previous versions) = | ||
+ | == 2018 == | ||
+ | Dit jaar was een rustig jaar voor de pixelflut. | ||
+ | |||
+ | == 2017 == | ||
+ | De [[Open_Door_Day_25-3-2017|open dag in Maart]] leverde ''weer'' een kapotte ledstrip op (eigenlijk de ESP en de oorzaak is min of meer <abbr title="Step-down converter was nog goed, input was beschermd met clamping diodes, ESP was kokend heet en niet meer te programmeren">onbekend</abbr>) | ||
+ | |||
+ | De ledstrip van dit jaar heeft een pixelflut update gekregen, het protocol, getest op Arduino, is geworden: | ||
+ | PX x RRGGBB | ||
+ | naar UDP adres 192.168.1.234 poort 1234 | ||
+ | Het idee van ESP gebruiken voor wifi en arduino voor de leds en 3.3v voeding is aan de kant gezet: zowel de voeding als de seriele verbinding is te instabiel. Inmiddels een proof of concept geschreven voor enkel de ESP met een DMA-gebaseerde NeopixelBus library (op de RX pin). | ||
+ | |||
+ | {{Html5media|WS2812_kerstboom3.mp4|width=|height=}} | ||
+ | Ook heb ik een bash script (met netcat) kunnen testen, maar ben nog niet blij met het resultaat; na verloop van tijd treedt er een fout op als men <code>-w0</code> seconde wacht. Slecht voorbeeld, maar het is een voorbeeld: | ||
+ | #!/bin/bash | ||
+ | while true; do | ||
+ | echo -n "PX 0 `head -c3 </dev/urandom|xxd -p -u`" | nc -uw1 192.168.1.234 1234& | ||
+ | echo -n "PX 1 `head -c3 </dev/urandom|xxd -p -u`" | nc -uw1 192.168.1.234 1234& | ||
+ | sleep 0.1 | ||
+ | done | ||
+ | Gebruik <code>$[ RANDOM % 200 ]</code> om een [http://funloop.org/post/2013-07-12-generating-random-numbers-without-modulo-bias.html semi willekeurige<sup>(en)</sup>] led uit te kiezen. | ||
+ | |||
+ | Begin December weer een opgeblazen ESP: vermoedelijk geeft de step-down converter te hoge pieken of ruis af. | ||
+ | [[User:Xopr|xopr]] heeft de converter vastgelijmd op 3V, en heeft een ontstoringscondensator en blauwe led toegevoegd om de pieken te dempen (fingers crossed). | ||
+ | |||
+ | == 2016 == | ||
+ | Dit jaar hadden we een 20 meter, 12V kant-en-klare LEDslinger (vorige is tijdens de [[open dag]] voor de 2e keer opgeblazen; dit is een RGB variant in plaats van GRB). Data is 5V, maar 3.3V van de ESP lijkt voldoende. | ||
+ | [[User:Xopr|xopr]] heeft iets snel in elkaar gezet voor onderweg naar een festival (met succes), en deze versie is niet stuk gegaan tijdens de [[Exhibition#Open_dag_carbon6_.2F_Avenue_Panache.2F_kunstmarkt_18-9-2016|vorige open dag]]. | ||
+ | Het hardwareschema was een aangepaste versie (5V->12V) van vorig jaar, en deze software draaide erop: [[GitHub::https://github.com/ACKspace/ESP-NFC-Christmas-tree|ESP-NFC-Christmas-tree]] | ||
+ | |||
+ | [[Image:Christmastree_2016.jpg|thumb|right]] | ||
+ | [[User:Roelke|Roelke]] heeft een grote boom meegebracht en [[User:pmwq|pmwq]], [[User:Vicarious|Vicarious]] en [[User:Xopr|xopr]] hebben de verlichting erin gehangen. | ||
+ | |||
+ | De print-layout (in awesome ascii-art, ietwat aangepast): | ||
+ | <pre> | ||
+ | .---------.---------------. | ||
+ | |.------. | o | *DTR | ||
+ | ||o | | o---------o | RX | ||
+ | Vin|oo | | o---------o | TX | ||
+ | *3v3|o0---. | | o o | *VCC | ||
+ | SCK|00 | | | o o | *CTS | ||
+ | MISO|00 | | | 00{|<}--. o | GND | ||
+ | MOSI|00 | | | oo | |.----. | ||
+ | SSEL|00 | | | o+----. | '|( ) | GND | ||
+ | *RST|oo---+ | '--o{10k}' | | | | ||
+ | *IRQ|o | | .{10k}--+--|( ) | LED | ||
+ | GND'o | | | ,_. | | | ||
+ | | | '----+---"@|----|( ) | Vin | ||
+ | | '----------"@|3v3 '----' | ||
+ | '---------------"@| | ||
+ | "-' | ||
+ | *) not connected | ||
+ | </pre> | ||
+ | Merk op dat de spanningsregulator in het schema een liniaire is, en de huidige implementatie bevat een DC-DC converter. Ook werkt de program jumper niet: de bovenste 10k weerstand is te hoog; verbind de bovenste jumperpin (GPIO0) naar GND tijdens het booten om deze in programmeermodus te zetten. | ||
+ | |||
+ | |||
+ | == 2015 == | ||
+ | Deze versie had 200 handgesoldeerde [WS2812] LEDjes en een variant van de [[GitHub::https://github.com/ACKspace/ESP-NFC-Christmas-tree|ESP-NFC-Christmas-tree]] en [[GitHub::https://github.com/ACKspace/Firetree|Firetree github page]] software. Het draaide welliswaar op een (kortsluitvaste) labvoeding, maar had geen zekering en kon dus niet onbeheerd achtergelaten worden. | ||
+ | <gallery> | ||
+ | Image:Big_packet.jpg|Hee, een cadeau<s>tje</s>.. Ga naar [[2k15_interhackerspaces_xmas_swap|2k15 interhackerspaces xmas swap (Engels)]] voor meer info.. | ||
+ | Image:Big_packet2.jpg|..en nog één, wow! | ||
+ | </gallery> | ||
+ | |||
+ | [[User:Xopr|xopr]] had ooit een 5V LEDstrip, maar besloot er 12V op te zetten, wat de strip niet zo leuk vondt. Daarna is hij meer dan een maand bezig geweest om de WS2812 LEDS op een kabel van 20m te solderen. | ||
+ | Met de aanname dat de boom een kegel is van 90x150cm kunnen ongeveer 14 windingen gedaan worden wat een "spoed" geeft van grofweg 10cm: een perfecte afstand van de LEDs zowel horizontaal als verticaal! | ||
+ | Dat betekend dat er zo'n [http://kerstverlichtingbuiten.com/hoeveel-kerstlampjes-in-kerstboom 200 LEDs nodig] zijn. | ||
+ | Het resultaat mocht er dan ook zijn: | ||
+ | <div style="display:inline-block"> | ||
+ | {{#widget:Html5media | ||
+ | |url={{filepath:WS2812_kerstboom1.mov}} | ||
+ | |width=320 | ||
+ | |height=193 | ||
+ | }} | ||
+ | </div> | ||
+ | <div style="display:inline-block"> | ||
+ | {{#widget:Html5media | ||
+ | |url={{filepath:WS2812_kerstboom2.mov}} | ||
+ | |width=320 | ||
+ | |height=193 | ||
+ | }} | ||
+ | </div> | ||
+ | |||
+ | == 2014 == | ||
+ | [[Image:Christmastree.jpg|thumb|right]] | ||
+ | |||
+ | '''It's the most hackiest time of the year...''' | ||
Christmas trees are a good excuse to play with LEDs, | Christmas trees are a good excuse to play with LEDs, | ||
− | so TheOnlyJoey and | + | so [[user:TheOnlyJoey|TheOnlyJoey]] and [[user:Prodigity|Prodigity]] bought a nice looking christmas tree for the space. |
I've also bought some wood at the hardware store and built a base for the tree (standard bases are crap and good ones are too expensive). | I've also bought some wood at the hardware store and built a base for the tree (standard bases are crap and good ones are too expensive). | ||
Line 15: | Line 157: | ||
I invite everyone to have fun with it and get creative ;) | I invite everyone to have fun with it and get creative ;) | ||
− | + | [[Category:LEDs]] | |
− | > | + | </noinclude> |
Latest revision as of 09:12, 16 March 2021
Project: Christmas tree | |
---|---|
Featured: | No |
State | Completed |
Members | Prodigity, xopr, AmazingMike, Da Syntax, Wolkje, Computer1up |
GitHub | espixelflut |
Description | Kerstboom heeft mooie lampjes en versiering nodig |
Picture | |
(this one's in Dutch so the young participants can join in as well) Also see LED sleeve for an evolution on the IP Christmas lights.
Contents
LED kerstboom
Het is weer wintertijd, tijd om een (LED) lichtje te schijnen op de warme verlichting!
Die gaan we uiteraard zelf maken scripten voor de kerstboom.
We hebben een hele hoop dingen in de space liggen waar we vast en zeker iets leuks van kunnen maken (alles en iedereen is welkom)! Denk hierbij aan:
- 3D ornamenten printen (geeft misschien mooie schaduw-effecten)
- Plexiglas frezen of graveren (we hebben een vierkante meter melkwit plexiglas in de stack)
- Karton en papier kan natuurlijk ook (bijvoorbeeld een mini-lampion)
- harddisk platters
uitvoer
- De LEDslinger hangt semi-permanent aan het plafond (kerstboom = moeite). De ATX voeding staat op de kast bij de ingang, aangesloten op zekeringgroep A.
- Geïnspireerd door SHA2017, hebben we een pixelflut versie gemaakt (zie ook https://wiki.sha2017.org/w/Pixelflut_bar en https://wiki.sha2017.org/w/Projects:HackTheVU).
- Dit jaar is ArtNet-ondersteuning toegevoegd (zie talk pagina voor externe links).
Zie hier een media overdosis:
De hard- en software voor de pixelflut versie is klaar; hij moet alleen nog aangesloten en in de boom gehangen worden: aansluiten door blauw op GND en bruin op 12V aan te sluiten, deze gaan naar de groene connector en LEDslinger.
Er zijn als het goed is, 2 zwarte kabels met kroonsteen-stekers; de korte is bedoeld om langs de stam op te lopen. Om kleurafwijking en te grote stroombelasting op de ledslinger te voorkomen, is deze kabel nodig (zorg ervoor dat de kroonsteentjes juist-om ingestoken worden, anders blaas je de LEDs op.
Er zit een resetknop en een rotary encoder (draai/drukknop) op welke de volgende mogelijkheden opleveren:
- Reboot: reset-down, reset-up
- Firmware update mode: reset-down, rotary-down, reset-up, rotary-up
- Set number of LEDs: reset-down, reset-up, wait 1 sec., rotary-down, wait 5 sec., rotary-up (rotary-rotate to change, press rotary to store, reset to cancel)
- LEDs off: rotary-down (not implemented)
- Brightness: rotary-rotate (not implemented)
- Er zit een FTDI connector op: van buiten naar binnen: RTS(green), RX(yellow), TX(orange), 3.3V(red), CTS(brown), GND(black).
- Er zit een jumper op: buitenkant is step-down converter, binnenkant is FTDI (let op: moet 3.3V zijn!). Uiteraard kun je de middelste pin ook gebruiken om direct 3.3v op de ESP te zetten.
plan
xopr is benieuwd naar het beroemde ArtNet voorbeeld dat Prodigity geschreven heeft voor OHM2013.
updates
- xopr 21:00, 18 November 2019 (CET): ArtNet ondersteuning toegevoegd (erin gehackt). Momenteel alleen nog getest op 1 universe (100 LED's); bij veel netwerkpakketten (>25fps) begint de strip te glitchen, dus er is nog ruimte voor optimalisatie
todo
- brightness beheren (met draaiknop)
- zekering upgraden (en bekabeling controleren: 12A) of softwarelimiter inbouwen (8A max)
voorgaande versies (previous versions)
2018
Dit jaar was een rustig jaar voor de pixelflut.
2017
De open dag in Maart leverde weer een kapotte ledstrip op (eigenlijk de ESP en de oorzaak is min of meer onbekend)
De ledstrip van dit jaar heeft een pixelflut update gekregen, het protocol, getest op Arduino, is geworden:
PX x RRGGBB
naar UDP adres 192.168.1.234 poort 1234 Het idee van ESP gebruiken voor wifi en arduino voor de leds en 3.3v voeding is aan de kant gezet: zowel de voeding als de seriele verbinding is te instabiel. Inmiddels een proof of concept geschreven voor enkel de ESP met een DMA-gebaseerde NeopixelBus library (op de RX pin).
Ook heb ik een bash script (met netcat) kunnen testen, maar ben nog niet blij met het resultaat; na verloop van tijd treedt er een fout op als men -w0
seconde wacht. Slecht voorbeeld, maar het is een voorbeeld:
#!/bin/bash while true; do echo -n "PX 0 `head -c3 </dev/urandom|xxd -p -u`" | nc -uw1 192.168.1.234 1234& echo -n "PX 1 `head -c3 </dev/urandom|xxd -p -u`" | nc -uw1 192.168.1.234 1234& sleep 0.1 done
Gebruik $[ RANDOM % 200 ]
om een semi willekeurige(en) led uit te kiezen.
Begin December weer een opgeblazen ESP: vermoedelijk geeft de step-down converter te hoge pieken of ruis af. xopr heeft de converter vastgelijmd op 3V, en heeft een ontstoringscondensator en blauwe led toegevoegd om de pieken te dempen (fingers crossed).
2016
Dit jaar hadden we een 20 meter, 12V kant-en-klare LEDslinger (vorige is tijdens de open dag voor de 2e keer opgeblazen; dit is een RGB variant in plaats van GRB). Data is 5V, maar 3.3V van de ESP lijkt voldoende. xopr heeft iets snel in elkaar gezet voor onderweg naar een festival (met succes), en deze versie is niet stuk gegaan tijdens de vorige open dag. Het hardwareschema was een aangepaste versie (5V->12V) van vorig jaar, en deze software draaide erop: ESP-NFC-Christmas-tree
Roelke heeft een grote boom meegebracht en pmwq, Vicarious en xopr hebben de verlichting erin gehangen.
De print-layout (in awesome ascii-art, ietwat aangepast):
.---------.---------------. |.------. | o | *DTR ||o | | o---------o | RX Vin|oo | | o---------o | TX *3v3|o0---. | | o o | *VCC SCK|00 | | | o o | *CTS MISO|00 | | | 00{|<}--. o | GND MOSI|00 | | | oo | |.----. SSEL|00 | | | o+----. | '|( ) | GND *RST|oo---+ | '--o{10k}' | | | *IRQ|o | | .{10k}--+--|( ) | LED GND'o | | | ,_. | | | | '----+---"@|----|( ) | Vin | '----------"@|3v3 '----' '---------------"@| "-' *) not connected
Merk op dat de spanningsregulator in het schema een liniaire is, en de huidige implementatie bevat een DC-DC converter. Ook werkt de program jumper niet: de bovenste 10k weerstand is te hoog; verbind de bovenste jumperpin (GPIO0) naar GND tijdens het booten om deze in programmeermodus te zetten.
2015
Deze versie had 200 handgesoldeerde [WS2812] LEDjes en een variant van de ESP-NFC-Christmas-tree en Firetree github page software. Het draaide welliswaar op een (kortsluitvaste) labvoeding, maar had geen zekering en kon dus niet onbeheerd achtergelaten worden.
Hee, een cadeau
tje.. Ga naar 2k15 interhackerspaces xmas swap (Engels) voor meer info..
xopr had ooit een 5V LEDstrip, maar besloot er 12V op te zetten, wat de strip niet zo leuk vondt. Daarna is hij meer dan een maand bezig geweest om de WS2812 LEDS op een kabel van 20m te solderen. Met de aanname dat de boom een kegel is van 90x150cm kunnen ongeveer 14 windingen gedaan worden wat een "spoed" geeft van grofweg 10cm: een perfecte afstand van de LEDs zowel horizontaal als verticaal! Dat betekend dat er zo'n 200 LEDs nodig zijn. Het resultaat mocht er dan ook zijn:
2014
It's the most hackiest time of the year... Christmas trees are a good excuse to play with LEDs, so TheOnlyJoey and Prodigity bought a nice looking christmas tree for the space.
I've also bought some wood at the hardware store and built a base for the tree (standard bases are crap and good ones are too expensive).
The tree is going to need decorations and an internet connection (because of reasons).
I invite everyone to have fun with it and get creative ;)