Enkel DIY Christmas Light Controller (11 / 12 steg)
Steg 11: programvara
Programvaran är där tyngdpunkten i detta projekt är verkligen. Det utvecklades av K-Labs programvara utvecklingsenheten (mig alltså). Jag tillbringade förmodligen mer tid att skriva och finslipa programmet controller än jag gjorde faktiskt arbetar på att designa och bygga maskinvaran. Eftersom detta projekt något startades sent (vilket är varför du inte bör arbeta med ett projekt bara några dagar innan tidsfristen), började jag bara programmering på den 21 December, bara 3 dagar innan julafton. Det tog mig två hela dagar av programmering och en halv dag för felsökning och raffinering koden, men det kan fortfarande vara en bugg som har undvikit min upptäckt (händer om du är programmerare och alfa och beta testare). Också, tyvärr för många av er, detta program var ämnad att arbeta för Ubuntu Linux. Jag verkligen spendera inte någon tid på detta program för andra plattformar eftersom någon av datorerna använder jag har Ubuntu på dem, men i teorin skulle det bara ta några finjusteringar att få det att fungera på andra plattformar. Detta program utformades också, ganska har en liknande gränssnitt till Audacity, liknande färgschema och timing sekvens sak.
För att få programmet att fungera, måste du ha python installerade, troligen python 2.7 eftersom det är vad jag använde när jag programmerat detta. Du behöver också två extra python paket, en för det grafiska gränssnittet och en för seriell kommunikation med arduino. För att installera dessa paket, bara öppna terminal och skriva på maskin i "sudo lämplig-få installera python-serial pygame -y" utan anföres. Då bör detta program fungera efter dessa två paket installeras. För att köra den, du kan inte helt enkelt bara dubbelklicka på det eftersom det kommer att öppna utan root-privilegier och seriell kommunikation behöver root-behörighet. Så bara öppna Terminal, navigera till katalogen med kommandot cd och typ "sudo python xmascontr.py" och programmet kommer att öppna upp. Men se till arduino är ansluten innan du öppnar programmet annars det inte fungerar som endast kontrolleras för arduino vid start.
För att veta om det är redo att användas, se bara till det övre högra hörnet och i min bild ser du en liten grön cirkel. Detta är indikatorlampa, gröna sätt bra att gå. Om du får en röd cirkel istället, det innebär att den inte kan hitta rätt port eller arduino är frånkopplad. Om du får en röd cirkel och arduino är ansluten, måste du öppna upp programmet i en textredigerare och ändra variabeln efter alla kommenterade rader till sökvägen för din arduino, i mitt fall anges vilken Ubuntu dator jag har försökt alltid min arduino till /dev/ttyACM0 så jag lämnade det som port. Att hitta vilken port din arduino är på, antingen hitta det med arduino IDE eller koppla in den och skriv "dmesg | svans"i terminal och försöka hitta banan där. Nu, om du får en gul cirkel när du öppnar upp programmet, det innebär att den upptäcker arduino men det har inte tillräcklig behörighet för att kommunicera med det, det är därför vi hade att öppna den med kommandot sudo, så du behöver veta administratörslösenordet.
När du får programmet startas med en grön cirkel, är det dags att generera sekvenser. Jag gjorde det så enkelt som möjligt, allt du behöver göra är att hålla ned vänster musknapp där du vill att ljuset till vända på och dra den dit du vill att stänga av ljuset. Blåaktig kvadraterna på bilden är där på avsnitten är. Ta bort en av de blå delarna, bara högerklicka på det och det kommer att försvinna. Rullning flyttas sekvensen vågrätt för att lägga till fler saker, eller om du träffar den högra kanten medan du drar ett avsnitt, det kommer auto-scroll för dig. Med tangenterna home- och end hoppar du till antingen i början eller slutet av hela sekvensen. Din musmarkören kommer att följas av en liten dialogruta som talar om för dig vid vilken tid din mus pekar på men bara när den är i en av de 5 spår, inte den övre meny delen.
På play-knappen kommer att börja spela ditt spår men om cirkeln inte är gröna, ingenting skrivs ut. Pausknappen inte gör något... ännu. Stopp-knappen stoppas ett spår från att spela. Spara knappen kommer att spara din sekvens till en fil i den aktuella active directory under namnet "xmaslite.xmas" men du ska veta att det skriver över en xmaslite.xmas fil som redan finns. Knappen Öppna öppnas en xmaslite.xmas fil att hittas men om du försöker öppna en korrupt eller falskt xmaslite.xmas fil, det kommer att radera den aktuella sekvensen och skriva ut "dåliga xmaslite.xmas fil". Återställningsknappen återställer bara din sekvens för att vara tom så du kan börja om. Knappen debug inte jätteviktigt men det visar sekvensen i terminal om du klickar på den, det är bara där eftersom jag använde den för att fixa detta jättekonstigt glitch men kan vara användbart om du har problem också.
Jag har bifogat en testfil xmaslite.xmas så du kan testa programmet, lägga till den i samma katalog, och tryck på öppna och du bör se några blå rutor visas på skärmen.
Jag har lagt till en xmaslights.ino fil till mixen. Detta är en arduino fil, måste du överföra detta till din arduino vill du arduino kommandon utfärdas av programmet sekvens. Denna fil är programmerad att göra din arduino utgång på / av-signalerna på stift 40, 41, 42, 43, 44 som 5 stift för varje kanal.
Alla, inte illa för mindre än 200 totala rader kod skriven i 2,5 dagar. Som vanligt, jag låter någon använda och modifiera programvaran men kredit måste ges till mig för det ursprungliga programmet att kunna omfördelas.