Étape 14 : Comment ça marche (théorie)
Le cerveau de l’appareil est emballé dans un microcontrôleur ATTiny2313. Ce morceau fait partie de la même famille de dispositifs comme l’ATMega328 utilisé dans la plateforme arduino. Comme si c’était le plus grand cousin, le ATTiny2313 possède des broches qui peuvent être utilisés comme entrée pour lire des choses comme les touches ou sortie de contrôler les choses comme les voyants. Une petite quantité de mémoire non volatile stocke du code qu’elle sera exécutée automatiquement dès que la puce est allumée.
La différence est que le AtTiny a moins de broches et mémoire que l’AtMega328.
Un AtTiny est facilement capable de conduire un afficheur sept segments LED, mais il y a 8 dans ce projet, deux chiffres pour chaque position du joueur. Étant donné que chaque affichage a 8 LEDs (7 segments et virgule décimale) qui signifie qu'il doit être en mesure de contrôler séparément les 64 LED différentes ! C’est faisable avec des techniques avancées, mais le câblage est compliqué et exige un certain nombre de transistors supplémentaires et de résistances. Ces techniques exigent également le microcontrôleur pour passer la plupart de qu’il est temps de mettre à jour les affichages, rapidement leur clignote et s’éteint plus rapide que le œil humain peut voir.
C’est là qu’intervient le Max7219. Cette puce est conçue pour faire tout le travail de la conduite jusqu'à 64 LEDs qui correspond exactement au nombre requis par ce circuit. Le Max7219 possède un ensemble de 8 broches qui sont câblés à chacun des segments de tous les écrans, et une autre série à alimenter séparément chaque affichage. De cette façon, elle peut définir (par exemple) tous les voyants qui correspondent au nombre de 8, allumez sur afficheur 1 brièvement et puis déplacer à définir les LED pour l’affichage 2. Si elle a changé les LEDs pour afficher un 2 et rapidement il allumé et éteint, en alternance avec écran 1, un « 28 » s’afficherait. Il fait ceci pour tous les 8 affichages (2 X 4 joueurs) si vite qu’il ressemble à la sont tous en même temps.
Le Max7219 garde une trace de qui va le numéro sur lequel affichage et garde répéter ce cycle jusqu'à ce qu’il reçoit une commande du micro-contrôleur de changer l’un d’eux. Le ATTiny2313 est desservi par 3 lignes et peut envoyer des commandes par l’intermédiaire de données série comme « changer le chiffre 4 pour afficher un « E », de changer le chiffre 3 pour afficher un « L » ».
Avec tout ce travail de contrôler les LEDs déchargées sur le Max7219, tout le ATtiny2313 a à faire est de regarder pour les boutons à presser et envoyer des commandes vers le Max7219 lorsqu’il doit changer ce qui est affiché. Dans ce cas, le ATtiny2313 est en fait un peu accablé pour ce qu’il doit faire.
C’est toute la théorie ennuyeuse de la route, ensuite voir mes pensées et réflexions sur ce projet.