Arduino + Wi-Fi, muziek responsieve LED licht meubilair (21 / 22 stap)

Stap 21: Met behulp van PureData of andere Software de Saiko5


De software gebruikt in combinatie met de Saiko5 WiFi LED licht meubilair is in een ontwikkelingsstadium. Alle software is geschreven om te profiteren van de Saiko5 Firmware ontwikkeld voor gebruik met de Arduino of Maple hobbyist planken. De firmware kan een eenvoudig communiation-protocol via de Open Sound Protocol over WiFi waardoor iedere programmeur software om te bepalen van de kleur en de helderheid van de armatuur te schrijven kunt. Software kan worden gevonden in de Downloads sectie.

OSC pakketindeling

Basisfunctionaliteit is gemakkelijk bereikbaar via de liblo bibliotheek, beschikbaar voor python, C, PureData en andere talen. Voorbeeldcode voor fundamentele python scripts voor het beheersen van de verlichting vindt u in het saiko5 archief beschikbaar in de Downloads sectie in de submap/saiko5/software/scripts /

Eenvoudig voorbeeldcode

importeren van liblo

adres = liblo. Adres ("192.168.1.222", "2222")
liblo.send (adres, '/ licht/kleur/set', 'f', 0.8, 'f', 0.0, ('f', 0.2))

In dit codevoorbeeld, dat alles wat die is vereist is voor het besturen van een armatuur Saiko5, zijn er drie lijnen.

1. import liblo
De bibliotheek liblo geïmporteerd. U zal moeten hebben python-liblo geïnstalleerd voor deze functionaliteit moet worden geactiveerd.
2. rede = liblo. Adres ("192.168.1.222", "2222")
Dit maakt een liblo adres object, dat kan worden gebruikt voor het verzenden van pakketten via OSC naar het licht op het opgegeven IP-adres. De lichten zijn standaard geprogrammeerd om te luisteren op poort 2222, en de computer op 192.168.1.2. Deze instellingen kunnen echter gemakkelijk worden veranderd door het uploaden van een gewijzigde versie van de firmware. Merk op dat als u meerdere lichten hebt, u moet de opdrachten verzenden naar alle lichten te doen updates.
3. liblo.send(address, '/light/color/set', ('f', 0.8), 'f', 0.0, ('f', 0.2))
Dit maakt en verzendt een pakket OSC. De specificatie die de lichten verwachten is het pad '/ licht/kleur/set', gevolgd door drie drijvers, die correspondeert met de RGB-helderheid tussen 0 en 1.

Merk op dat dit is geconfigureerd voor het verzenden van opdrachten uit als RGB-gegevens. Dit is niet de aangewezen kleurruimte voor het omgaan met LED-verlichting, en raden we het gebruik van HSI (tint, verzadiging, intensiteit) voor de plaatselijke vertegenwoordiging van lichte kleur. Code is beschikbaar voor het omzetten van HSI in RGB worden omgezet in python in de saiko5 software repository op /saiko5/software/puredata/server/HSI2RGB.py

Hue is een intuïtieve manier om na te denken over "kleur", met waarden variërend tussen 0 en 360 graden, waar 0 graden en 360 graden rood zijn, en als de tint toeneemt, passeert eerst geel, dan groen, dan cyaan, dan blauw, dan magenta voordat hij terugkeerde naar rood. Deze voorstelling zorgt voor de eenvoudige codage van gestage kleurwijzigingen.

Verzadiging is een intuïtieve manier om na te denken over de "blankheid" van een kleur, met een verzadiging van 1.0 zin zo zuiver mogelijk van een kleur, en een verzadiging van 0,0 betekenis wit ongeacht de tint. Het gebruik van verzadiging waarden minder dan 1.0 zorgt voor de gemakkelijke weergave van pastel kleuren.

Intensiteit is de natuurlijke vertegenwoordiging voor de helderheid van een LED-lichtpunt. Intensiteit is gedefinieerd als de som van de rode, groene en blauwe kanalen, tussen 0.0 en 1.0 hier. Dit is anders dan de "waarde" gebruikt in HSV, waar de waarde is gedefinieerd als de maximale waarde tussen de rode, groene en blauwe kanalen. Hoewel het gebruik van de intensiteit in plaats van waarde de maximale helderheid van het licht de helderheid van een enkellijns alleen beperkt, vinden wij dat dit een natuurlijkere manier om een kleur veranderende lichtpunt te gebruiken. Bijvoorbeeld, in HSI colorspace, is een HSI-waarde, als intensiteit constant is, en de kleurtoon veranderd, het totale vermogen wordt gebracht door het lichtpunt blijft ongewijzigd. Echter in HSV is colorspace, als de waarde voortdurend, en de kleurtoon veranderd, de bevoegdheid wordt gebracht door de wijzigingen van het lichtpunt.

Dit is vooral duidelijk in het voorbeeld gaan van rood naar geel (of een primaire naar een secundaire kleur). In het geval van rood komt HSV waarde (0, 1, 1) overeen met een RGB-waarde (1, 0, 0). Dit is hetzelfde resultaat zou afkomstig zijn van de waarde van de HSI (0, 1, 1) gebruiken. Echter voor geel, de waarde van de HSV (60, 1, 1) zou resulteren in een RGB-waarde (1, 1, 0) terwijl een HSI waarde (60, 1, 1) zou resulteren in een RGB-waarde (0,5 0,5, en 0). In het geval van constante waarde is de hoeveelheid licht die wordt stak hoger voor geel dan rood met een factor twee, terwijl in het geval van constante intensiteit, de hoeveelheid licht die wordt stak ongewijzigd is.

De Saiko5-Software

De Software van de Saiko5 werd vooral ontwikkeld op Ubuntu 10.04. Wij raden dat om er zeker van zijn dat uw setup u werkt downloaden en gebruiken onze LiveCD beeld, die voor een fundamentele Ubuntu omgeving met onze software zorgen zal vooraf is geïnstalleerd en ingesteld. We begrijpen echter dat dit niet een ideale situatie voor alle gebruikers, en dus software is ook beschikbaar op onze downloadpagina. De saiko5-repository is opgesplitst in twee hoofdmappen, /saiko5/firmware/en /saiko5/software /. Deze documentatie wordt de software die in de /saiko5/software/map bespreken.

gui

De gui-map bevat een grafische user interface geschreven in python met behulp van de wxpython voor widgets. Deze software biedt eenvoudige controle over de verlichting met behulp van een punt en klik interface, inclusief een HSI-kleur kiezen, IP-adressen voor het verzenden van de opdrachten voor het oppakken en doen basiskleur fietsen modi. Om deze software te gebruiken, opent u de saikoControlGui.py in python.

scripts

De map ' scripts ' bevat fundamentele voorbeeldcode voor het beheersen van de verlichting met behulp van liblo in python. Merk op dat het gebruik van deze zullen vereisen handmatige configuratie van de IP-adressen van de lichten die u te controleren probeert.

* colorcycle.py--dit is een basiskleur fietsen programma met 100% verzadiging en een constante snelheid van verandering.
* setpurple.py--dit is het basaal script hierboven in drie lijnen die de kleur van de gekozen licht wordt ingesteld op onze favoriete schaduw van purple.
* udpstresstest.py--dit script zal benadrukken testen van uw netwerk en de lichten door UDP-pakketten te sturen naar de verlichting. U kunt dit gebruiken om te bepalen hoe stabiel is uw draadloze netwerk.

puredata

De puredata map bevat broncode voor het doen van audio analyse met puredata een begeleidende python server gebruikt voor werkelijke communicatie met de Saiko5 verlichting. Dit is de software die wordt gebruikt om de video's van muziek reactie op de pagina. De schermafdruk toont de PureData + Python Server actief wordt gebruikt om te controleren de Saiko5 armatuur.

* analyzer.pd--dit is de puredata analyzer. Het vereist pd-uitgebreid, evenals de pd-aubio (de aubio analyse muziekbibliotheek) te laten functioneren.
* server/HSI2RGB.py--dit python script converteert HSI waarden naar RGB.
* server/lightconfiguration.py--dit python script bevat de configuratie-informatie voor de inrichting van de Saiko5 wordt gecontroleerd.
* server/lightevents.py--dit python script heeft de basic-code voor de python-server. Dit is de code die in het algemeen zal worden gewijzigd om de nieuwe functionaliteit aan de server toevoegen.
* server/lightserver.py--dit is de algemene python-script dat moet worden uitgevoerd voor de analyzer.pd-software te laten functioneren. Het is ontworpen om te luisteren voor OSC pakketten op poort 2223, en deze pakketten worden geleverd door de puredata software.

Gerelateerde Artikelen

LED licht meubilair voor Aquarium, licht groeien of winkel

LED licht meubilair voor Aquarium, licht groeien of winkel

LED's gebruik van relatief weinig energie en hebben een lange levensduur. De meeste LEDs zijn beoordeeld voor 50.000 of meer uren. Ter vergelijking bronnen meer traditionele licht alleen laatste ongeveer 2000 uur. Plus, LEDs zijn efficiënte - ze gebr
LED licht meubilair ontwerp en bouw

LED licht meubilair ontwerp en bouw

Verlichting met hoge kleuren kleurweergave-index (CRI) nodig waren voor de instelling van een art studio. Diverse verlichting opties werden overwogen met inbegrip: gloeilampen en halogeen lampen, LED (LED) vervanging bollen, compacte fluorescerende l
Smartphone Arduino RBL BLE Shield RGB Led licht Controller

Smartphone Arduino RBL BLE Shield RGB Led licht Controller

Dit is een project dat ik van voor een tijdje nagedacht heb. Ik wilde hebben sommige rgb led-lampjes op mijn boot op afstand bestuurd door mijn Iphone.Dit is een tussenliggende project aangezien we nodig om te solderen, die kan moeilijk zonder een kr
Controle van een LED licht-strip kleur via een Arduino en een iPhone over BLE

Controle van een LED licht-strip kleur via een Arduino en een iPhone over BLE

Dit leerprogramma zal u tonen hoe u kunt besturen van een analoge RGB LED light strip via een Arduino en een iOS-apparaat. Het zal gebruik maken van de lichtshow-app waarmee u één kleur instellen of het maken van een lichtshow met een reeks van kleur
Arduino Motion Sensor controle Led licht

Arduino Motion Sensor controle Led licht

behoefte aan een beetje nuttig tutorial over hoe je draad en programmeren van uw nieuwe bewegingsmelder met je arduino? Goed kijken niet verder. Deze tutorial geeft u een eenvoudig voorbeeld van hoe een bewegingssensor aan uw arduino instellen en uit
LED licht met behulp van een Arduino

LED licht met behulp van een Arduino

Een Arduino is een open-source van de computerhardware, open-source software en microcontroller-gebaseerde kits voor het bouwen van digitale apparaten en interactieve objecten die kunnen voelen en aansturen van fysieke apparaten. Er zijn verschillend
Arduino batterijtester met Led licht

Arduino batterijtester met Led licht

Wat ik aan het maken ben is een batterijtester met Led-verlichting, die ook wordt uitgevoerd op een Arduino.What die het doet toont hoe veel batterij is achtergelaten in het door de LED verlichting van. Voor de bedrading gebruikte ik een breadboard d
LED licht verslaan naar muziek

LED licht verslaan naar muziek

Dit project neemt een transistor tip 31 en het tot een led licht zo aansluiten dat aangesloten op de netspanning zal licht tot de muziek die wordt afgespeeld. U moet een audio spitter dat u steek het licht in één van de vrouwelijke poorten en u audio
Aangepaste LED Touch licht meubilair

Aangepaste LED Touch licht meubilair

mijn vrouw en ik echt niet schelen voor de lichte inrichtingen die uitkwam vijfde wielkampeerauto, dus we besloten om het vervangen van hen met een paar goedkope, bijpassende armaturen vonden we op goedkeuring. Sinds de camper lichten op 12V DC uitvo
Muziek LED licht schedel

Muziek LED licht schedel

dit is mijn creatie gebaseerd off van Motadacruz' muziekdoos Led lichtIk gebruikte 6 rode LED's en zetten hen en het circuit in een lege 'crystal skull' vodka fles en het werkt geweldig!
Hoe maak je muziek IQ Led lichten

Hoe maak je muziek IQ Led lichten

Deze tekenreeks lichte muziek verantwoordelijk IQ is een applicatie gebaseerd op een individueel adresseerbare LED-strip. Het kan veranderen in andere verschillende producten als u wilt. Alles wat je hoeft te doen is het wijzigen van de buiten-wrappe
LED licht-up drink coaster

LED licht-up drink coaster

met dit instructable, ik wilde een van de grote problemen waarmee een party-goer geconfronteerd te verhelpen.  Dus je hoeft een ontzagwekkende wilde partij met Disco verlichting en muziek bonzen.  Een aantrekkelijke (mannelijk of vrouwelijk) passeert
DIY UV-LED licht - See The World In A New Light

DIY UV-LED licht - See The World In A New Light

ik heb altijd graag experimenteren met dingen, en zien de dingen op nieuwe manieren of vanuit verschillende perspectieven, dus ik heb interesse in UV-licht, maar ik houd niet van tube technologie, het biedt gemakkelijker gebruiken en ons veel goedkop
Het gebruik van de mBlock software te controleren Arduino UNO bestuur - potentiometer met LED-verlichting

Het gebruik van de mBlock software te controleren Arduino UNO bestuur - potentiometer met LED-verlichting

Ik begin mBlock om software te gebruiken want ik heb mijn mBot robot kit. mBlock is een grafische programmering software die is ontworpen op basis van Scratch 2.0 en compaible met Arduino UNO, mega 2560, leonardo en etc, meer hardware zal in de toeko