Laser pistol (4 / 6 steg)
Steg 4: Microcontroller och kod
För att kontrollera kretsen, valde jag min favorit mikrokontroller, ATtiny85. Den har lagom bearbetning makt och motsvarande kringutrustning att generera ljud och flash laser. Även om en standard ATtiny85 inte är fått för 3,6 volt, kommer att det köras utan problem på en LiPo cell. Också, det tar tid och starta upp sig fint utan några externa komponenter.
Den huvudsakliga delen av koden är baserad på arbete av David Johnson-Davies - www.technoblogy.com, se hans inlägget daterat den 29 September 2014. Jag kunde ha programmerat in ljudet med inbyggda timers, men jag använde sin "Audio prov Player" istället, så med viss ansträngning kan du programmera helt olika ljud.
Ljudspelaren skrivs mycket skickligt och använder om allt möjligt du kan få av denna lilla processor. Det går helt avbryta driven och avbrotten utlöses av en inre timer.
Koden, postat på codebender, spelar upp ett "Peeeuuwww" ljud som jag skapat med Audacity programvara, nedsamplas med Ubuntu's Sound Converter och sedan ordnade i en bit av C-kod med xxd. Dessutom koden startas om två gånger efter det har spelat ungefär 125 ms, så det låter som "PeePeePeeuuw".
PWM ljudet spelas på pin 2 och stift 3 i omkastad polaritet. Slutstegen ATtiny85 kan bara driva 20 mA, så att endast en hög impedans högtalare (250 ohm eller mer) kan anslutas mellan dessa stift. Jag ville ha ett någorlunda högt ljud, så jag la till en enkel lågpassfilter och dämparen, i 18K och en 1K 5 resistor och en 4.7 nF kondensator och matade den signalen till en förstärkare modul.
Medan ljudet spelas upp, styr stift 7 laser-drivrutin för föregående steg synkad med ljudet.