Stap 9: Program de Arduinos
De micro-controllers zijn kleine computers. Alles wat ze doen is het programma dat u schrijven voor hen (de zogenaamde schetsen) uitvoeren. De Arduino IDE (software) is online beschikbaar. U schrijft de code in een versie van de C programmeertaal. Mijn (zeer slecht geschreven) code voor de lightsuit is gekoppeld.
U zal moeten in ten minste twee bibliotheken koppelen. De audio analyzer-library is beschikbaar op DFRobot en het geeft je de mogelijkheid om de interface met de MSGEQ7 zeven bands equalizer. De andere bibliotheek is Bounce2. Het is nodig om te goed debounce de vingertop switches.
Ik wilde de lightsuit functie op twee fundamentele manieren. Eerst, u druk op een schakelaar en de lichten op komen. Eenvoudig. De tweede modus zou zijn om "dance" naar de muziek.
De microfoons geeft een signaal aan de audio analyzer. Het verdeelt het in zeven bands en uitgangen van een matrix van gehele getallen die de sterkte van het signaal in elke band (lage frequentie hoge frequentie). Ik had grote dromen van het creëren van een beat detectie algoritme. Ik geborsteld omhoog op Fouriertransformaties en vond het was te heftig voor de kleine Arduino (of ik was niet de taak). Vervolgens heb ik geprobeerd eerste en tweede afgeleiden van de gegevensstroom te detecteren pieken te nemen. Dat werkte ook goed uit. In het einde gebruikte ik een kludge. Ik houd een lopend gemiddelde van de signaalsterkte verzameld over een paar seconden. De waarde van dit gemiddelde kunt wijzigen met de globale intensiteit van de muziek en de achtergrond. Zodra een signaal in een bepaalde band hoger is dan een drempelpercentage dat ik experimenteel vastgesteld (110%), inschakelen de lichten voor dat kanaal. Ik stel een teller uithoudingsvermogen. Op het eerste flikkerden de lichten net. Ik gebruikte de teller uithoudingsvermogen te vertragen hoe vaak het licht cycli.
Ik begrijp dat PWM werkt niet goed met EL wire aangezien u de AC-cyclus die concurreren met de PWM-cyclus. Dus ik heb niet elke dimmen proberen. De draad van GR is vol op of volledige af.
Ook al had ik meer kanalen bedraad aan de Raad van bestuur, uiteindelijk heb ik alleen met behulp van drie "systemen". De benen werken op de lagere frequentiebanden, de romp werkt uit de middenklasse en de schouders/armen draaien op de hoge frequentie geluiden.
Dus kortom, de wijsvinger ingeschakeld de lichten, zolang de schakelaar wordt ingedrukt. De middelste vinger begint de dans-modus. De ringvinger beëindigt de modus van de dans. Thats it. Voor de helm lichten de wijsvinger alleen de ogen en het mondstuk, want dat ziet er veel koeler dan alles inschakelen.
Ik had bedoelingen op het maken van de derde schakelaar iets dramatischer doen, maar in het einde, was het niet de moeite waard.