Étape 4: Microcontrôleur et code
Pour contrôler le circuit, j’ai choisi mon préféré microcontrôleur, le ATtiny85. Il a juste assez traitement puissance et périphériques correspondants pour générer son et le flash au laser. Bien qu’un ATtiny85 standard n’est pas évalué pour 3,6 v, il s’exécutera sans problème sur une cellule LiPo. Il sera également, horloge et lui-même démarre très bien sans aucun composant externe.
La partie principale du code est basée sur le travail réalisé par David Johnson-Davies - www.technoblogy.com, voir son message en date du 29 septembre 2014. Je pourrais avoir programmé le son à l’aide des minuteries de bord, mais j’ai utilisé son « lecteur d’échantillons Audio » au lieu de cela, donc avec un certain effort, vous pouvez programmer des sons tout à fait différentes.
Le lecteur audio est écrit très habilement et utilise tout ce que vous pouvez sortir de ce processeur minuscule possible. Il fonctionne entièrement interruption conduite, et les interruptions sont déclenchées par une horloge interne.
Le code, publié le codebender, joue un son de "Peeeuuwww" que j’ai créé à l’aide du logiciel Audacity, redimensionner à l’aide convertisseur d’Ubuntu sonore et ensuite disposés dans un morceau de code C à l’aide de xxd. En outre, le code recommence deux fois lorsqu’il a joué environ 125 ms, alors cela ressemble à « PeePeePeeuuw ».
La sortie audio de PWM est jouée sur la broche 2 et broche 3 à inversion de polarité. Les étages de sortie de l’ATtiny85 peut seul disque 20 mA, ainsi qu’un haut-parleur de haute impédance (250 ohms ou plus) peuvent être connectés entre ces broches. J’ai voulu un bruit assez fort, alors j’ai ajouté un filtre passe-bas simple et atténuateur, consistant en une 18K et 1K 5 résistance et un condensateur de nF 4,7 et alimenté par ce signal à un module d’amplification.
Alors que le son est émis, broche 7 contrôle le pilote d’imprimante laser de l’étape précédente en synchronisation avec le son.