Christmas tree
Project: Christmas tree | |
---|---|
Featured: | No |
State | Active |
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)
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)!
plan
De open dag in Maart leverde weer een kapotte ledstrip op (eigenlijk de ESP en de oorzaak is min of meer onbekend)
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.
Geïnspireerd door SHA2017, gaan we nu kijken of we een pixelflut versie kunnen maken (zie https://wiki.sha2017.org/w/Pixelflut_bar en https://wiki.sha2017.org/w/Projects:HackTheVU)
Het idee is om een arduino te gebruiken voor enkel de LED's aan te sturen en een ESP om enkel de wifi af te handelen. Bij slechte performance kunnen we eventueel kijken naar een Raspberry Pi of Banana Pi (iperf stats)
updates
xopr 10:23, 4 December 2017 (CET): Weer een opgeblazen ESP: vermoedelijk geeft de step-down converter te hoge pieken of ruis af. Ik heb de converter vastgelijmd op 3V, en heb een ontstoringscondensator en blauwe led toegevoegd om de pieken te dempen (fingers crossed). Resultaat: hij doet 't, maar ik had zelf gehoopt op wat meer pixels per seconde. Aansluiten door blauw op GND en bruin op 12V aan te sluiten, deze gaan naar de groene connector en LEDslinger. Er zit een resetknop en een rotary encoder (draai/drukknop) op welke de volgende mogelijkheden opleveren:
- Reboot: reset-down, reset-up, rotary-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), 5V(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.
xopr 21:17, 19 November 2017 (CET): Inmiddels is de source voor de ESP online gezet, samen met de (aangepaste) versie van Prodigity's python script (en een random afgeleide). De software is getest en zou redelijk wat pixels per seconde moeten kunnen tekenen. Het enige wat nog moet gebeuren is de hardware en kijken hoe goed de 5V aansturing van de 12V leds samenwerkt met de 3v3 van de ESP. De benodigde pinout zou moeten zijn: RXD0: WS2812 data (met jumper naar ftdi, anders lukt uploaden niet). GPIO0: Rotary-A,GPIO4: Rotary-B, GPIO5: Rotary-NO (met Rotary-C en Rotary-P naar GND). Hou tijdens booten de knop ingedrukt om het aantal leds in te stellen.
xopr 16:50, 13 November 2017 (CET): 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 Neopixel 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.
xopr 22:24, 11 November 2017 (CET): ik heb wat arduino code kunnen kloppen; het protocol gaat worden:
PX x RRGGBB\n
naar UDP adres (onder voorbehoud) 192.168.1.234 poort 1234
vaardigheden
Heb je vaardigheden waar je iemand anders mee kan helpen? Vul dan in de tabel hieronder op de juiste plek(ken) je naam in. Wil je iets doen of maken, maar lukt het je niet alleen? Kijk dan in de tabel en vraag de juiste persoon.
solderen | programmeren | figuurzagen | CNC frezen | 3D tekenen | 3D printen |
---|---|---|---|---|---|
xopr |
xopr |
xopr |
Prodigity |
xopr |
xopr |
todo
- hardware uitwerken
- brightness beheren (met draaiknop)
- zekering upgraden (en bekabeling controleren: 12A) of softwarelimiter inbouwen (8A max)
- idle timer inbouwen
voorgaande versies (previous versions)
2016
Roelke heeft een grote boom meegebracht en pmwq, Vicarious en xopr hebben de verlichting erin gehangen.
Deze software draaide erop: ESP-NFC-Christmas-tree
Wil je je eigen software proberen op de boom, let dan op de volgende dingen:
- VIN is 12v!, de regulator voor de ESP staat op 3.3v en de GPIO pull-up wordt door middel van diodes gelimiteerd tot 5.6v
- gebruik je eigen ESP-12 module met breakout board (is verwisselbaar gemaakt in het schepijs-doosje)
- gebruik GPIO0 voor de NeoPixels (200 stuks, xopr meent NEO_RGB in plaats van NEO_GRB)
- Voor de kaartlezer (xopr meent PN532) is de pinout (op volgorde van de ESP-12)
- SCK
- MISO
- MOSI
- SSEL
plan
Het idee is om wederom een NeoPixel-kerstboomverlichting te maken. xopr heeft 20m ws2811 RGB kerstverlichting gekocht (vorige is voor de 2e keer opgeblazen, deze is echt 12v en de aansturing is nagenoeg hetzelfde gebleven.
We kunnen bij elk LEDje een zelfgemaakt dingetje hangen en verlichten. Denk hierbij aan:
- 3D ornamenten printen (geeft misschien mooie schaduw-effecten)
- Plexiglas frezen of graveren
- Karton en papier kan natuurlijk ook (bijvoorbeeld een mini-lampion)
- harddisk platters
uitvoer
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.
Momenteel hebben we in de space:
- Werkende 3D printer
- CNC freestafel
- 1m2 mat-doorschijnend wit plexiglas
- hobbylijm
- emmer met kroonkurken
- wol en behangplaksel (ergens)
- ESP-12 modules (kerstboom moet uiteraard aan het internet hangen en via de telefoon bestuurd kunnen worden)
Wat we nog niet hebben gaan we gewoon kopen (papier/karton, enz.)
2015
uitvoer
De kerstboom is klaar! (soort-van) Je kunt nu een 'programma' kiezen door een NFC kaart (of Vicarious' hand) op het schepijs-doosje te leggen
Let er op dat de strip op een labvoeding hangt: deze is ingesteld op 5V, 4,3A (maximaal stroomverbruik). Zet de voeding aan met de oranje schakelaar linksonder en druk op de "output" drukknop rechts.
Laat de verlichting niet onbeheerd achter!
uitvoer
Momenteel hebben we in de space:
- Werkende 3D printer
- CNC freestafel
- NeoPixels (xopr heeft 5 meter NeoPixels opgeblazen, en gaat de LEDjes die wel nog werken tussen een lange kabel solderen)
- 20m 3-aderig zwart snoer (nog bij xopr thuis)
- 1m2 mat-doorschijnend wit plexiglas
- hobbylijm
- ESP-12 modules (kerstboom moet uiteraard aan het internet hangen en via de telefoon bestuurd kunnen worden)
voortgang
- xopr 21:33, 4 November 2015 (CET) heeft wat berekeningen gedaan met wat aannames: de boom (kegel) is 90x150cm. Met een snoerlengte van 2000cm 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, en met de schatting van 10% a 20% uitval (6 op 77 geteld) op de 300 opgeblazen strip zouden er genoeg over moeten blijven om een sliert te maken. Niet meegenomen in de berekening is het knip- en stripafval van de kabel en de manier om de snoeronderbrekingen weer stevig te verbinden (voorzichtig geschat is dat dat een meter snoer kost). Misschien hoeft het snoer niet in stukken geknipt te worden, maar alleen de buitenste aders (plus en min) ontbloot te worden om zo de LED er diagonaal op te solderen.
- xopr 09:43, 11 November 2015 (CET) begonnen met het aanstrippen van de kabel, wat veel werk blijkt..
- xopr 11:34, 19 November 2015 (CET) Zo'n 65 LEDs gesoldeerd en getest. LEDs zijn nu op dus ik moet verder föhnen.
2014
It's the most hackiest time of the year... Christmas trees are a good excuse to play with LEDs, so TheOnlyJoey and me 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 ;)