Stap 4: Microcontroller en code
Ik koos om te besturen op het circuit, mijn favoriete microcontroller, de ATtiny85. Het heeft net genoeg processing power en bijbehorende randapparatuur voor het genereren van geluid en flash van de laser. Hoewel een standaard ATtiny85 wordt niet beoordeeld voor 3,6 volt, draait het probleemloos op een LiPo cel. Het zal ook, klok en schoen zelf mooi zonder externe onderdelen.
Het grootste deel van de code is gebaseerd op werk door David Johnson-Davies - www.technoblogy.com, Zie zijn post gedateerd 29 September 2014. Ik kon het geluid met behulp van de on-board timers hebt geprogrammeerd, maar ik gebruikte zijn "Audio Sample Player" plaats, dus met enige moeite kunt u het programma volledig verschillende geluiden.
De goede speler heel slim is geschreven en gebruikt over al het mogelijke dat kan je uit deze kleine processor. Het loopt helemaal interrupt aangedreven, en de interrupts worden getriggerd door een interne timer.
De code, geplaatst op codebender, een geluidssignaal "Peeeuuwww" die ik gemaakt met behulp van Audacity software, met behulp van Ubuntu's Sound Converter gedownsampled en vervolgens gerangschikt in een stuk van de C-code met behulp van xxd. Ook opnieuw de code twee keer nadat heeft gespeeld ongeveer 125 ms, dus het klinkt als "PeePeePeeuuw".
De audio PWM-uitgang wordt gespeeld op pin 2 en pin 3 in omgekeerde polariteit. De stadia van de productie van de ATtiny85 kan alleen toer 20 mA, dus alleen een hoge impedantie spreker (250 ohm of meer) kunnen worden aangesloten tussen de pinnen. Ik wilde een redelijk luid geluid, dus ik voegde een eenvoudige low-pass filter en verzwakker, bestaande uit een 18K en 1K 5 weerstand en een condensator nF 4.7 en dat signaal gevoed aan een versterker module.
Terwijl het geluid wordt afgespeeld, bepaalt pin 7 de bestuurder van de laser van de vorige stap in sync met het geluid.