Stap 14: Hoe het werkt (theorie)
De hersenen van het apparaat zijn verpakt in een ATTiny2313 micro-controller. Deze chip behoort tot dezelfde familie van apparaten als de ATMega328 gebruikt in de arduino-platform. Like it's grotere neef, heeft de ATTiny2313 pinnen dat kunnen worden gebruikt als input voor het lezen van dingen zoals knooppersen of output naar controle dingen zoals LEDs. Een kleine hoeveelheid niet-volitile-geheugen opgeslagen code die het automatisch uitgevoerd wanneer de chip is ingeschakeld.
Het verschil is dat de AtTiny heeft minder pinnen en geheugen dan de AtMega328.
Een AtTiny is gemakkelijk in staat om te rijden een zeven segment LED-display, maar er zijn 8 in dit project, twee cijfers voor de positie van elke speler. Aangezien elk beeldscherm 8 LEDs (7 segmenten plus een decimaalteken heeft) betekent dat moet het kunnen afzonderlijk controleren 64 verschillende LEDs! Het is-kunnen met geavanceerde technieken, maar de bedrading is gecompliceerd en vereist een aantal extra transistors en weerstanden. Deze technieken vereisen ook de micro-controller om het grootste deel van zijn tijd bijwerken van de displays, kan snel knipperen ze aan en uit sneller dan het menselijk oog zien.
Dit is waar de Max7219 komt. Deze chip is ontworpen om te doen al het werk van het rijden van maximaal 64 LEDs die exact aantal nodig door dit circuit. De Max7219 heeft een set van 8 pennen die aan elk van de segmenten van alle beeldschermen zijn aangesloten, en een ander ingesteld op macht afzonderlijk van toepassing op elk beeldscherm. Op die manier kan ingesteld (bijvoorbeeld) de LED's die corresponderen met de nummer 8, tentoongesteld 1 kort en aanzet dan stap aan het instellen van de LED's voor weergave 2. Als het gewijzigd van de LED's om een 2 weer te geven en het snel en ontstoken, zou afgewisseld met weergave 1, een "28" worden weergegeven. Het doet dit voor alle 8 displays (2 X 4 spelers) zo snel dat het lijkt alsof het zijn allemaal op op hetzelfde moment.
De Max7219 houdt die nummer gaat welke tentoongesteld en houdt herhalen die cyclus totdat zij een opdracht van de micro-controller ontvangt wijzigen een van hen. De ATTiny2313 is verbonden door 3 lijnen en kunt sturen opdrachten via seriële data zoals "Wijzig cijfer 4 een 'E' wordt weergegeven, wijzigen van cijfer 3 weer te geven van een 'L'".
Met al dat werk voor het beheren van de LEDs dat aan de Max7219 is overgedragen, is alles de ATtiny2313 te doen horloge voor knoppen worden ingedrukt en verzenden van opdrachten naar de Max7219 wanneer het moet veranderen wat wordt weergegeven. In dit geval is de ATtiny2313 eigenlijk een beetje overweldigd voor wat het moet doen.
Dat is allemaal de saaie theorie uit de weg, vervolgens zien mijn gedachten en musings op dit project.