Das Vorbild: blinkenlights
Die Alternativen: BlinkenProjects
Die Motivation: Einstieg in die Welt der 8 Bitter
Die Anforderung: KISS, Standalone Betrieb
Die CPU: Eine Matrix aus 18×8 LEDs benoetigt entweder Schieberegister Voodoo oder eine CPU mit mindestens 18+8=26 IO Pins. Gluecklicherweise verfuegt der groesste noch einfach loetbare (DIL-40 anstatt QFP) ATMega16 ueber 32 IO Pins.
Der Speicher: BlinkenLightMovies sind nicht gerade platzsparend. Wenn man die ASCII Versionen in ein binary Format ueberfuehrt, erhaelt man pro Frame stolze 19 bytes. Alle Movies aus der Blinkenlight Gallery bringen konvertiert 458kb Daten auf die Waage. Der ATMega16 hat 16kb Flash, 1kb SRAM und 512bytes EEPROM. Fuer seine Klasse eine enorme Leistung, aber fuer unser Projekt voellig unzureichend :)
Es wird externer Speicher benoetigt, der mangels freier IO Pins nur seriell (I2C) angebunden werden kann. Atmel bietet mit dem AT24C512 ein serielles EEPROM mit 64kb Speicher an, das zu maximal 4 x 64kb = 256kb kaskadiert werden kann. Dh 256kb/19bytes = 13797 Frames – das sollte reichen.
Die LEDs: Um eine weitere Beschaltung durch Widerstaende/Transistoren zu vermeiden, wurden “2ma Low Current” LEDs eingesetzt, die direkt vom ATMega16 (max 100ma) getrieben werden koennen.
Das Loeten: 144 LEDs a 2 Loetpunkte plus unzaehlige weitere Bahnen und Anschluesse – puh, das mach ich nie wieder :)
Die Ueberraschung: Es hat alles nahezu auf Anhieb geklappt!