Stap 11: Software
De software is waar het zwaartepunt van dit project echt is. Het werd ontwikkeld door de K-Labs Software Development Unit (mij met andere woorden). Ik besteed waarschijnlijk meer tijd schrijven en het perfectioneren van de controller programma dan ik deed eigenlijk bezig met het ontwerpen en bouwen van de hardware. Sinds dit project was enigszins laat (dat is waarom u niet zou moeten aan een project slechts een paar dagen vóór de uiterste datum werken), begon ik pas programmeren op 21 December, slechts 3 dagen voor kerstavond. Het kostte me twee hele dagen van programmering en een dagdeel voor foutopsporing en verfijnen van de code, maar er zou nog een bug die mijn detectie (gebeurt wanneer u de programmeur en de Alfa en beta tester) heeft ontdoken. Ook helaas voor velen van u, dit programma is ontworpen om te werken voor Ubuntu Linux. Ik niet echt enige tijd werken aan dit programma voor andere platformen, omdat een van de computers die ik gebruik Ubuntu op hen hebben, maar in theorie zou het pas een paar kleine tweaks ertoe brengen om te werken op andere platformen. Dit programma is ook, kinda hebben een vergelijkbare interface aan Audacity, soortgelijke kleurenschema en de timing reeks ding ontworpen.
Als u dit programma om te werken, moet u hebben van python geïnstalleerd, meest waarschijnlijke python 2.7, want dat is wat ik gebruikte toen ik dit geprogrammeerd. Ook moet u twee extra python pakketten, één voor de grafische interface en één voor de seriële communicatie met de arduino. U kunt deze pakketten installeren, u uitsluitend toegankelijk opwaarts terminal en type in "sudo apt-get install python-serial pygame -y" maar zonder naar de aanhalingstekens. Dan is dit programma moet werken nadat deze twee pakketten zijn geïnstalleerd. Om het te draaien, kan niet u simpelweg gewoon dubbelklik erop omdat het zonder root-rechten openen zal en de seriële communicatie root permissies moet. Dus gewoon open terminal, navigeer naar de map met de opdracht cd, en type "sudo python xmascontr.py" en het programma zal openstellen. Maar zorg ervoor dat de arduino is aangesloten voordat u open te stellen het programma anders dat het niet werken zal zoals het programma alleen de arduino bij het opstarten controleert.
Om te weten als het is klaar om te worden gebruikt, gewoon kijken naar de rechterbovenhoek en in mijn afbeelding ziet u een kleine groene cirkel. Dit is de indicator licht, groene middelen goed om te gaan. Als je een rode cirkel in plaats daarvan, dat betekent dat het kan niet het vinden van de juiste poort of de arduino wordt verbroken. Als je een rode cirkel en de arduino is aangesloten, dan je moet open te stellen het programma in een teksteditor en wijzig de variabele immers de commentaar regels in het pad van je arduino, in mijn geval elke Ubuntu computer die heb ik altijd geprobeerd wordt ingesteld mijn arduino op /dev/ttyACM0 dus ik links die als de poort. Om te vinden wat je arduino poort brandt, ofwel vinden met de arduino IDE of steek de stekker en typt "dmesg | staart"in terminal en proberen te vinden van het pad er. Nu, als je een gele cirkel wanneer u het programma opent, betekent dit dat het detecteert de arduino, maar het hoeft niet voldoende machtigingen om te communiceren met het, dat is de reden waarom we hadden om het te openen met de opdracht sudo zodat u moet weten van het adminwachtwoord.
Zodra je het programma opgestart met een groene cirkel, is het tijd voor het genereren van sequenties. Ik maakte het zo makkelijk mogelijk, alles wat je hoeft te doen is houd de linkermuisknop ingedrukt waar u wilt het licht om te schakelen en sleept u deze naar de gewenste locatie voor het licht uit te schakelen. De blue-ish vierkanten in de figuur zijn waar de op secties. Verwijder een van de blauwe gedeelten, gewoon rechts klikken het en het zal verdwijnen. Schuiven zal bewegen de volgorde horizontaal toe te voegen meer dingen, of als je de rechterkant geraakt tijdens het slepen van een sectie, het auto-scroll wil voor u. Met behulp van de toetsen home en einde slaat u aan het begin of het einde van de hele reeks. Uw muiscursor zal worden gevolgd door een kleine dialoog die u vertelt op welk tijdstip de muis wijst op maar alleen wanneer het zich in één van de 5 tracks, niet het deel van de bovenste menu.
De play-knop zal beginnen te spelen uw track maar als de cirkel niet groen is, niets uit zal worden geschreven. De pauzeknop doet niets... nog. De stopknop stopt een track uit te spelen. De Opslaan knop zal uw volgorde opslaan in een bestand in de huidige active directory onder de naam "xmaslite.xmas", maar wees gewaarschuwd dat zal het overschrijven van een xmaslite.xmas-bestand dat al aanwezig is. De knop openen wordt een xmaslite.xmas-bestand dat het vindt, maar als u probeert een beschadigd of valse xmaslite.xmas-bestand te openen, zal het wissen de huidige volgorde en afdrukken "slechte xmaslite.xmas bestand" geopend. De resetknop stelt gewoon uw reeks te leeg zodat u kunt beginnen. De knop foutopsporing is niet echt belangrijk maar het toont de volgorde in de terminal als u erop klikt, het is er gewoon omdat ik het gebruikte om het vaststellen van deze echt raar glitch maar nuttig zou kunnen zijn als u problemen ondervindt ook.
Ik heb een test xmaslite.xmas bestand bijgevoegd, zodat u kunt het programma testen, gewoon toe te voegen in de zelfde folder, druk op open en je ziet een paar blauwe vierkantjes weergegeven op het scherm.
Ik heb een xmaslights.ino bestand toegevoegd aan de mix. Dit is een arduino-bestand, moet u dit uploaden aan uw arduino, als je de arduino wilt uitvoeren van de opdrachten die u opgeeft door het programma van de reeks. Dit bestand is geprogrammeerd om het maken van je arduino uitgang van de aan-uit signalen op pennen 40, 41, 42, 43, 44 als de 5 pinnen voor elk kanaal.
Alles bij elkaar, niet slecht voor minder dan 200 totaal lijnen van code die is geschreven in 2,5 dagen. Zoals gebruikelijk, ik laat iedereen gebruiken en aanpassen van deze software, maar credit moet worden gegeven aan mij voor het oorspronkelijke programma als het is om te worden gedistribueerd.