BlinkoMat

From BlinkenArea Wiki
Jump to: navigation, search
zur Projektübersicht
English Version of this Page
Blinkomat.jpg
Jahr
Anzahl Pixel 240 (12x20)
Graustufen / Farben
Leuchtmittel
Leistungsaufnahme
Kontaktperson Sven Hendriks
Projekt-Website

BlinkoMat ist eine Matrix aus LEDs, die mit einem Mikrocontroller angesteuert wird. Als Mikrocontroller kommt ein Atmega16 von Atmel zum Einsatz, welcher mit 16MHz getaktet wird. Der Atmega16 hat 16KB Flash, 1KB SRAM sowie 512 Byte EEPROM. Die LED Matrix besteht aus 12x20=240 LEDs. Für diese Abmessungen habe ich mich aus zwei Gründen entschieden: Erstens hat der eingesetzte Mikrocontroller 32 I/O Leitungen, d.h. die LEDs können direkt angesteuert werden und zweitens, weil 12x20 LEDs wunderbar auf einer Europlatine mit 160mm x 100mm Platz finden. ;-)

Die Idee hinter BlinkoMat war, einen "Standalone-Simulator" für zelluläre Automaten zu basteln, der das Geschehen auf einer LED Matrix zeigt. Daher auch der Name: BlinkoMat = blinkender Automat (oder so). ;-) Während der Entwicklung kamen aber noch weitere Spielchen hinzu, wie z.B. scrollender Text oder graphische Effekte, die mit Sinuswerten aus einer vorberechneten Tabelle gespeist werden (ich erinnere mich da noch an ein C64-Demo, das solche Effekte zeigte).

  • Was kann BlinkoMat bisher:
    • Generell:
      • 16 Graustufen per PWM
      • Ansteuerung der Matrix erfolgt zeilenweise per Timer-Interrupt
    • Simulation zweidimensionaler zellulärer Automaten
      • z.B. Conway's Game of Life, andere Regelsätze sind aber möglich
      • Automaten, die die Margolus-Nachbarschaft benutzen (dabei werden immer Blöcke aus 2x2 Zellen betrachtet)
    • Scrollender Text unter Verwendung des guten, alten Commodore Zeichensatzes PETSCII
    • Starfield Simulation
    • Graphische Effekte, die auf Sinuswerte aus einer Tabelle zurückgreifen
  • Was kann BlinkoMat nicht:
    • Kaffee kochen ;-)
  • Was ist noch geplant:
    • Weitere graphische Effekte, wie z.B. Plasma, Feuer- oder Wassersimulation
    • Eventuell Neuentwicklung des Codes direkt in Assembler. Momentan erfolgt die Entwicklung in C.