AVERTISSEMENT : Ce projet est ce que vous appelleriez un SMOP, « une simple question de programmation ». Cela signifie qu’il est de complexité triviale mais longue... alors à moins que vous pouvez tolérer l’ennui dans la mesure où il borde narguait, vous trouverez ce pénible à travailler sur.
Connaissance du langage d’assemblage électronique de base et microcontrôleurs est supposé. Ce n’est pas simple, mais il n’est pas non plus la chirurgie de fusée.
La boîte à musique comporte 4 étapes : stockage de chanson, génération de sons, l’Amplification et la puissance.
Il peut produire un complet 8 octaves de la musique d’onde carrée, c’est un peu moins de 100 notes sur une échelle logarithmique de 5 kilohertz à un peu moins de 20 hertz. La qualité est approximativement celle de vieilles consoles de jeu ou les toutes premières cartes de son midi.
Génération sonore :
Il n’existe pas tant que ça à décrire. Il accepte l’entrée de port parallèle par le biais de PORTB et renvoie un signal carré de fréquence variable sur PORTA, PIN1. Fonctionne sur un attiny26l-8pu, à 1 Mhz. augmentations de vitesse horloge Doubling note une octave plus haut, utile si vous avez fait une erreur de calcul, comme je l’ai fait (j’ai doublé à 2Mhz, le chant final sonné beaucoup mieux).
Simplicité et faible consommation d’énergie étaient primordiaux dans ce projet, c’est pourquoi je n’a pas concevoir une sorte de série/parallèle DAC de me donner bonne sinusoïde sortie. Je n’étais pas aussi prêt à la poubelle un lecteur mp3 (l’autre option de conception pour ce projet) pour quelque chose que je pouvais faire adéquatement avec 10$ de pièces.
Il est conçu tel qu’un deuxième AVR se trouve juste à côté et contient les informations de la chanson.
Stockage de la chanson :
Un atmega16 envoie des nombres de 8 bits sur c’est PORTA pour des durées de jeu, chaque numéro correspondant à une note sur l’autre AVR... essentiellement le format sonore possible plus simple, il y a contrôle du volume même pas dès maintenant, mais si je n’ai ajouter il j’utiliserais PORTB sur la puce « info de la chanson » me donner 8 niveaux de volume, chaque broche soulevé haut provoquerait la puce « interprète la chanson » d’utiliser une broche supplémentaire comme sortie. Ils tous relierait à un ampli op à travers un réseau de résistance, tels que plusieurs broches--> plus de tension sur l’entrée d’amplificateur.
J’ai utilisé à l’origine un autre attiny26l-8pu pour le stockage de la chanson, mais la mémoire (2k) n’était pas suffisante pour la chanson de 313 notes (~ 2800 lignes de code). La seule puce de travail j’ai dû mentir sur inutilisée était un atmega16.
Amplification :
Un amplificateur à deux étages a été construit à l’aide de 2 x transistors NPN N2222 (paire de darlington). Il envoie la sortie d’un buzzer piezo. J’ai remarqué quelques ronfleurs ont travaillé, d’autres non... écouteurs/haut-parleurs toujours travaillées.
Profondément magique : Si vous vous connectez à pin0, le port A à la base du premier transistor dans la paire de darlington, vous obtenez la sortie audio. Si vous vous connectez également pin7 au premier stade de la paire de darlington, la sortie devient très fort. Je soupçonne que j’ai accidentellement défini broche 7 que la sortie de la source... mais la paire darlington est assez sensible pour ramasser quelques fuites quelque part et il encore fonctionne très bien mais un peu tranquillement. Je me suis retrouvé reliant la première étape de la paire de darlington à pin0 et la deuxième étape à la fois la sortie de la première étape et PIN7. Ce produit le volume optimal pour mes fins. Voir modifier dans le premier fichier de code source, peu après le début.
Puissance :
Rien de compliqué ici. Une pile de 9v et un régulateur de tension TL780.