![]() | |||||||||||||||||||||||
Dit topic gaat over een redelijk makkelijk zelf inelkaar te zetten 7x7 ledmatrix, die je bijvoorbeeld als casebadge ofzo kan gebruiken. Alle pics zijn klikbaar. | |||||||||||||||||||||||
Features | |||||||||||||||||||||||
• 7x7 matrix van ledjes • Kan per individuele led 127 grijstinten laten zien • Interface richting PC: RS232 • Microcontroller: ATTiny2313, met een paar draden en een parallele poort te programmeren. • Licensie: GPL | |||||||||||||||||||||||
PICS!!!11 | |||||||||||||||||||||||
Gefotografeerd in helaas niet te ideale lichtomstandigheden... ![]() ![]() Het apparaat blinkt toch het meest uit als je er animaties op laat zien, bijvoorbeeld een ronddraaiende torus: Filmpje. | |||||||||||||||||||||||
Ontwerp & werking | |||||||||||||||||||||||
Het schema van het geheel is lekker simpel, omdat het meeste werk verzet word door een microcontroller. Het schema is:![]() Zoals je ziet is het niet meer dan een microcontroller, een paar torren (+basisweerstanden) en een stukkie logica om de RS232-niveaus aan te passen aan TTL-spanningen. | |||||||||||||||||||||||
Howto / hoe ik 'm gemaakt heb | |||||||||||||||||||||||
Benodigdheden: Voor het apparaat zelf: • 49 leds (kleur boeit niet) • 8 transistoren, bijvoorbeeld BC550 of BC547 • 1 IC-voetje, 20polig • 1 ATTiny2313 • 1 kristal, 20MHz • 2 condo's, 15pF • 8 weerstanden, 1K • 1 diode • 1 female DB9 connector Voor de programmer: • 1 20-polig IC-voetje • 1 male DB25 connector • Evt. een kristal van 1-8MHz (precieze frequentie boeit niet) En verder: • Fijne soldeerbout + soldeertin • Draad. Je hebt vast nog wel een floppy- of IDE-kabel liggen die je kan slopen Bouw Disclaimer: Dit is hoe ik 'm gebouwd heb. Omdat die van mij een prototype was kan het zijn dat de foto's niet compleet overeenkomen met het schema of de tekst. Ik zal het erbij proberen te vermelden waar het voorkomt. Ten eerste: De led-array: ![]() Ik he het rij voor rij opgebouwd. Je wilt iig erop letten dat je de leds goed-om erin zet: anode aan anode, kathode aan kathode. Als je een led verkeerdom doet, gaat die later niet werken. ![]() De tweede rij ![]() En beide rijen aan elkaar gesoldeerd ![]() En na een uurtje noeste arbeid hebben we een matrix. ![]() Daarna kunnen de torretjes eraan gesoldeerd worden. Let goed op de pinout! ![]() De emittors kunnen allemaal aan elkaar gesoldeerd worden, die gaan straks naar de ground toe. ![]() En zo ziet het er dan uit. Het ground-draadje kan aan pin 9 van het IC-voetje gesoldeerd worden. Let op! In deze en de volgende foto's heb ik de IC-voet er gespiegeld tegenaangesoldeerd. Ook ik maak fouten, en zeker om 2 uur 's nachts ![]() De basis-aansluitingen van de torren moeten ook naar de microcontroller toe. Dat kan met een stuk flatcable... ![]() En dan heb je dit. Let op: het ic-voetje is nog steeds in spiegelbeeld aangesloten. ![]() Daarna komen de kolommen. Kijk wederom naar het schema voor de precieze pinnetjes waar de draadjes aanmoeten; dit is nog steeds in spiegelbeeld. ![]() En de andere kant... ![]() Dan kan je het kristal eraansolderen. Ik heb het in deze foto niet gedaan, maar het is het best om ook de 2 15pF-condensatoren en de 100nF en 10uF-condo's eraan te hangen. Als je al een AVR-programmer (gemaakt) hebt kan je nu de AVR programmeren en als je het geheel dan aan 5V aansluit, moet je dit patroon krijgen: (jammer genoeg een beetje slecht te zien) ![]() Hierna moet je alleen nog het gedeelte van de RS232-link maken. Ik heb hier geen pics van omdat ik het zelf nooit gedaan heb; ik heb gewoon een Siemens C35-datakabel gepakt die ik hier nog had liggen. | |||||||||||||||||||||||
Communicatie & software | |||||||||||||||||||||||
Als je zelf code wilt kloppen om dit display'tje aan te sturen kan dat. Het protocol is heel simpel: De microcontroller word aangestuurd met RS232, 19200 baud, 8 bit, geen parity, 1 stopbit. Als je een plaatje wilt laten zien verstuur je eerst de synchronisatiebyte (waarde: 129) en daarna als bytes de helderheden van de 49 pixels. That's it Ik heb zelf zowel een Linux- als een Windows-progje geschreven hiervoor. Het Windows-programmaatje kan niet meer dan een tickertape-achtig iets laten zien, het Linux-progammaatje kan een sequence van PNG-bestandjes displayen. Het zijn beide programmaatjes die niets kunnen, maar het idee is meer dat mensen een begin hebben om te programmeren en code van af te kijken. | |||||||||||||||||||||||
Programmer | |||||||||||||||||||||||
Omdat ik er niet vanuit ga dat iedereen een AVR-programmer heeft liggen: dit is (voor zover ik weet) de makkelijkste manier om een AVR te programmeren. Voor deze programmer he je niets meer dan een male DB25-connector, een 20-polig IC-voetje, een paar draadjes en eventueel een kristal nodig. De verbindingen maak je als volgt:
Je kunt het optionele kristal tussen pinnetjes 4 en 5 van het IC-voetje knopen, dit zorgt ervoor dat je niet alleen maagdelijke AVRs kan programmeren maar ook AVRs die door een fuse-verandering een kristal nodig hebben. De waarde van het kristal boeit niet, zolang het maar 10MHz of minder is. Om je AVR te programmeren kan je hier een progje vandaanhalen (Win/Linux/BSD/Dos). De juiste manier om 'm aan te roepen is in dit geval: code:
Zie de downloads voor de hex-file die je nodig hebt. Als je zelf al een programmer plus software hebt kan je die ook gebruiken, let er wel op dat je fuses naar DFFF gezet worden. (low=0xFF, high=0xDF dus) | |||||||||||||||||||||||
Downloads | |||||||||||||||||||||||
Je kan de source voor zowel de AVR-firmware als de beide PC-progjes downloaden: • AVR firmware source • Linux proggie source • Windows proggie source (VB6) En voor de mensen zonder AVR-assembler, deze hebben jullie nodig: • AVR firmware, geassembleerde .hex-versie | |||||||||||||||||||||||
Laatst bijgewerkt | |||||||||||||||||||||||
Tue Jun 21 17:36:02 CEST 2005: initieele versie Fri Jun 24 18:25:35 CEST 2005: db25- en ic-pinnen waren omgewisseld; omgedraaid. |
[ Voor 206% gewijzigd door Sprite_tm op 24-10-2007 13:35 ]
Relaxen und watchen das blinkenlichten. | Laatste project: Ikea Frekvens oog