Arduino + WiFi, musik lyhörd LED ljus fixtur (21 / 22 steg)

Steg 21: Använda PureData eller annan programvara för att styra Saiko5



Den programvara som används med Saiko5 WiFi LED Light armaturen är i utvecklingsskeden. Alla program är skrivet att dra nytta av den Saiko5 Firmware som utvecklats för användning med antingen Arduino eller lönn hobby styrelser. Den inbyggda programvaran kan en okomplicerad communiation protokoll med öppna ljud-protokollet med WiFi som kan tillåta alla programmerare att skriva programvara för att styra färg och ljusstyrka av fixturen. Programvara finns i avsnittet nedladdningar .

OSC paketformat

Grundläggande funktionalitet och kan lätt nås med hjälp av liblo biblioteket, tillgänglig för python, C, PureData och andra språk. Exempelkod för grundläggande python skript för att styra lampor kan hittas i saiko5 arkiv finns i avsnittet nedladdningar i en undermapp/saiko5/programvara/skript /

Grundläggande exempelkod

importera liblo

Adress = liblo. Adress ("192.168.1.222", "2222")
liblo.send (adress, "/ ljus/färg/set", "f", 0,8, "f", 0,0, ("f", 0,2))

I detta kodexempel som är allt som krävs för att styra en Saiko5 fixtur, finns det tre linjer.

1. importera liblo
Detta importerar liblo biblioteket. Du kommer att behöva ha python-liblo installerat för den här funktionen aktiveras.
2. adress = liblo. Adress ("192.168.1.222", "2222")
Detta skapar ett liblo adress objekt som kan användas för att skicka paket över OSC till ljuset i den angivna IP-adressen. Lamporna är programmerade som standard att lyssna på port 2222 och datorn på 192.168.1.2. Dock kan dessa inställningar ändras enkelt genom att ladda upp en modifierad version av firmware. Observera att om du har flera lampor, du kommer att behöva skicka kommandon till alla lampor att göra uppdateringar.
3. liblo.send(address, '/light/color/set', ('f', 0.8), "f", 0,0, ("f", 0,2))
Detta skapar och skickar ett OSC paket. Den specifikation som ljuset väntar är sökvägen "/ ljus/färg/ange", följt av tre flöten, som motsvarar RGB-ljusstyrka mellan 0 och 1.

Observera att detta är konfigurerad för att skicka kommandon som RGB-data. Detta är inte den föredragna färgrymd för att ta itu med LED-belysning, och vi rekommenderar användning av HSI (nyans, mättnad, intensitet) för den lokala representationen av ljus färg. Koden är tillgänglig för att konvertera från HSI till RGB i python i saiko5 programvara databasen på /saiko5/software/puredata/server/HSI2RGB.py

Nyans är ett intuitivt sätt att tänka på "färg", med värden sträcker sig mellan 0 och 360 grader, där 0 grader och 360 grader är röd, och eftersom nyans ökar, den passerar först genom gul, då grönt, då cyan, sedan blå, sedan magenta innan han återvände till rött. Denna framställning möjliggör enkel kodning av stadig färgändringar.

Mättnad är ett intuitivt sätt att tänka på "vithet" av en färg, med en mättnad av 1.0 mening så ren som möjligt av en färg och en mättnad av 0.0 menande vitt oavsett nyans. Användning av mättnad värden som är mindre än 1,0 möjliggör enkel visning av pastellfärger.

Intensitet är den naturliga representationen för ljusstyrkan av en LED-armatur. Utvecklingsintensitet definieras här som summan av de röda, gröna och blå kanalerna, mellan 0.0 och 1.0. Detta är annorlunda än det "värdet" används i HSV, där värdet definieras som det högsta värdet mellan de röda, gröna och blå kanalerna. Även om användningen av intensiteten i stället för värdet begränsar den högsta intensiteten av ljuset att ljusstyrkan i en enda kanal ensam, anser vi att detta är ett mer naturligt sätt att använda en färgskiftande armatur. Till exempel i HSI färgrymd ändras ett HSI värde, om intensitet är konstant, och nyans den sammanlagda maskinstyrkan som lagts av armatur är konstant. Dock i HSV ändras färgrymd, om värdet är konstant, och nyans kraften som lagts av armatur ändringarna.

Detta är särskilt tydligt i exemplet att gå från rött till gult (eller någon primär till sekundär färg). När det gäller rött är HSV värdet (0, 1, 1) likvärdig med RGB-värdet (1, 0, 0). Detta är samma resultat som skulle komma från med hjälp av HSI värdet (0, 1, 1). Dock för gult, HSV värde (60, 1, 1) skulle resultera i en RGB-värde (1, 1, 0) medan en HSI värdet av (60, 1, 1) skulle resultera i en RGB-värdet (0,5, 0,5, 0). Vid konstant värde är mängden ljus som sätts högre för gul än röd med en faktor två, medan i fallet med konstant intensitet, mängden ljus som sätts är oförändrad.

Saiko5 programvara

Saiko5 programvaran utvecklades främst på Ubuntu 10,04. Vi rekommenderar starkt att för att vara säker på att dina inställningar fungerar du ladda ner och använda vår LiveCD bild som ger en grundläggande Ubuntu miljö med vår programvara förinstallerad och ställa in. Vi förstår dock att detta inte är en idealisk situation för alla användare, och så programvara finns också på vår sida för nerladdningar. Saiko5 databasen är uppdelad i två huvudmappar, /saiko5/firmware/och /saiko5/programvara /. Denna dokumentation kommer att diskutera den programvara som finns i mappen /saiko5/programvara /.

GUI

Gui mappen innehåller ett grafiskt användargränssnitt som skrivet i python med wxpython för widgets. Denna programvara ger dig grundläggande kontroll över armaturer med en punkt och klicka-gränssnitt, inklusive att välja en HSI färg, plocka IP-adresser för att skicka kommandon till och göra grundläggande färg cykling lägen. För att använda denna programvara, öppna saikoControlGui.py i python.

scripts

Scripts mappen innehåller grundläggande exempelkod för styrning av armaturer med liblo i python. Observera att med hjälp av dessa kräver manuell konfiguration av IP-adresserna i ljusets du försöker ta kontroll.

* colorcycle.py--detta är en grundläggande färg cykling programmet med 100% mättnad och en konstant hastighet av förändring.
* setpurple.py--detta är den mycket grundläggande skript visas ovan i tre linjer som kommer att ange färg för valt ljus till våra favorit nyans av lila.
* udpstresstest.py--detta skript kommer att betona testa nätverket och ljus genom att skicka UDP-paket till lamporna. Du kan använda detta för att avgöra hur stabilt det trådlösa nätverket är.

puredata

Mappen puredata innehåller källkoden för att göra ljud analys med puredata med en medföljande python server för faktiska kommunikation med Saiko5 armaturer. Detta är den programvara som används för att göra videor av musik svar på sidan. Skärmbilden visar PureData + Python Server som används aktivt styra Saiko5 fixturen.

* analyzer.pd--detta är puredata analysatorn. Det kräver pd-utökad, och pd-aubio (aubio analys musikbiblioteket) att fungera.
* server/HSI2RGB.py--detta python skript konverterar HSI värdena till RGB.
* server/lightconfiguration.py--detta python skript innehåller konfigurationsinformation för den Saiko5 fixturer kontrolleras.
* server/lightevents.py--detta python skript har den grundläggande koden för python-servern. Detta är den kod som vanligtvis kommer att ändras för att lägga till ny funktionalitet till servern.
* server/lightserver.py--detta är den övergripande python skript som måste vara igång för analyzer.pd programvaran att fungera. Avsikten är att lyssna för OSC paket på port 2223 och de paket som tillhandahålls av programvaran puredata.

Se Steg
Relaterade Ämnen

Hur du använder mBlock programvara kontroll Arduino UNO styrelse - potentiometer med LED-ljus

Jag börja använda mBlock programvara sedan jag fick min mBot robot kit. mBlock är en grafisk programmering programvara som är utformad utifrån Scratch 2.0 och compaible med Arduino UNO, mega 2560, leonardo och etc, hårdvara och kommer att stödjas i f...

LED-ljus fixtur för akvarium, ljusna eller Shop

Lysdioder använder relativt lite energi och har en lång livslängd. De flesta lysdioder är klassade för 50 000 eller mer timmar. För jämförelse källor mer traditionella ljus endast senast ca 2000 timmar. Plus, lysdioder är effektiva - de använder 10 t...

LED-ljus slå på musik

Detta projekt tar en spets 31 transistor och ansluter den till ett led ljus så att när inkopplad kommer ljus upp till den musik som spelas. Du behöver en audio spitter att du kopplar ljuset i en av de kvinnliga portar och du ljudkälla i den andra kvi...

Anpassade LED Touch ljus fixtur

min fru och jag verkligen brydde för armaturer som kom ut vändskiva husbil, så vi beslutade att ersätta dem med ett par billiga, på fixturer hittade vi på avslut. Sedan husbil lamporna drivs på 12V DC, visste jag att jag skulle behöva slita ut 120V A...

LED-ljus med en Arduino

En Arduino är en öppen hårdvara, programvara med öppen källkod och mikrokontroller-baserade kit för att bygga digitala enheter och interaktiva objekt som kan känna och styra fysiska enheter. Det finns flera uppgift en Arduino kan programmeras att gör...

Arduino batteri testare med Led ljus

Vad jag gör är en batteri testare med Led-lampor som också körs på en Arduino.What som det gör är visar hur mycket batteri kvar i det av de LED-belysningen. För ledningar som använde jag en skärbräda som hjälpte mig mycket. Vänligen kommentera mitt p...

Smuts billiga Arduino LED-ljus bar!

Detta instructable har utformats för nybörjare i åtanke, men avancerade användare kan enkelt anpassas för att passa deras behov och önskemål. Det använder bara några gemensamma komponenter, så du inte bör ha mycket besvär att sätta detta tillsammans....

LED ljus vs musik BEATS

Musik BEATS är awesome och LED-lampor tilldra sig vår uppmärksamhet. Kan se effekten när både musik BEATS och LED-lampor är lappade ihop tillsammans... (Y)Steg 1: Vad du behöver1) 5 m LED strip (en eller två som du önskar)2) adapter < 240V input och...

10W RGB LED-ljus målning multiverktyg

Måla med ljus eller 'Ljus målning' använder ljus där en traditionell målare skulle använda färg, så i ljus målning i stället för en traditionell pensel konstnären använder en ljuskälla. bara om någon ljuskälla kan användas som ett ljus målning verkty...

LED-ljus fixturen Design och konstruktion

Lampor med hög color rendering index (CRI) behövdes för en art studio miljö. Flera alternativ belysning ansågs inklusive: glödlampor och halogenlampor, lysdioder (LED) ersättning lökar, kompakta lysrör (lågenergilampor) och ljus fixturer som innehåll...

Arduino - Digital klocka med akvarium RGB ljus kontroll

För min nya fisk tank märkte jag att jag ibland glömt att slå på belysningen eller höll lamporna på länge. Eftersom jag är lat, jag gjorde en enkel lösning för detta, och kontrollerad belysning av mitt akvarium med hjälp av en arduino och en realtids...

Göra en musik i och LED reaktiva Nattduksbord (ingen programmering krävs)

I grund och botten ska jag visa dig hur man gör egna Night Stand som spelar musik och är reaktiv.Du behöver:Trä:Jag använde 1" tjock trä långt balkar ungefär en fot bred och ganska lång (inte beskrivande men ganska mycket dess upp till dig)För benen...

Arduino Wifi Redback

Lägga till trådlösa funktioner i ett projekt normalt innebär att bifoga andra styrelser på din arduino, vilket ökar storleken på din gadget. Detta har varit en huvudvärk att många maskinvaruutvecklare under lång tid. Men kan nu du alla suck i relief,...

DIY UV LED ljus - se världen i ett nytt ljus

jag har alltid gillat att experimentera med saker, och se saker på nya sätt eller ur olika perspektiv, så jag blev intresserad av UV-ljus, men jag inte tycker om teknik, hotellet är lättare använda oss mycket billigare men en LED version är ett snygg...

Ukulele LED-ljus

Hej,I detta instructable jag ska visa dig hur du skapar Ukulele LED-ljus som ändrar färg.Steg 1: material För detta instructable behöver du bara ett par saker.MaterialLED- jag använde en 10 mm RGB själv cykling LED. 20-50 cent. Du kan ta en LED gansk...

Flimrande LED ljus

konvertera en vanlig vaxljus i en realistisk fladdrande LED ljus. Ljus är bra för att öka stämningen i ett rum men de försämras när den används och har en öppen låga i ditt hus kan vara farliga. Mitt mål var att bevara utseendet och doften av en trad...

LED ljus-up drink coaster

med detta instructable, jag försökte åtgärda en av de stora problemen som en part-goer står inför. Så, du har en awesome vild fest med Disco ljus och musik bultande. En attraktiv (manlig eller kvinnlig) passerar genom. Du sitter din öl att gå och slå...

Ljud-lyhörd LED målning (på de relativt billiga)

detta instructable visar dig hur man gör en triptyk målning med LED-lampor som svarar på musik. Jag kommer att vara ärlig och säga att detta inte är det första projektet som denna, men detta är hur jag gjorde detta en och det är relativt billigare än...

Arduino - Theremin med 7 Segment LED Display

i detta instructable, jag kommer att visa dig hur man gör en enkel leksak den kombinationen av LED flash och Theremin. Vi kommer att använda vissa grundläggande elektronik byggd ovanpå en Arduino. Den grundläggande tanken med 7 Segment LED Display va...