Arduino IKEA Coffee table hack

OP #1614266
Hallo,

nachdem ich mein Projekt unter 
Beitrag "Re: Zeigt her Eure Kunstwerke !" vorgestellt habe, 
geht es mir jetzt darum die Ansteuerung zu optimieren (um nicht in dem 
Thread weiter zu diskutieren). Ich verwende ein Arduino Board mit 
ATMega328@20MHz und 3 Display Board von Sureelectronics 
(http://www.sureelectronics.net/goods.php?id=147).
Ein Display besteht aus 64x32 bicolor LEDs und wird über 4 row select 
pins A,B,C,D (=16 Reihen), R1 (Rot obere Display-Hälfte), R2 (untere 
Hälfte), G1, G2 und EN, CLK und LATCH (für die 74HC595 Schieberegister) 
angesteuert.

Zu Beginn habe ich die Display's kaskadiert. Dies ergibt 2x16 Reihen a 
192 bit pro refresh. Die erzielte Frame Rate war gering. Dann habe ich 
A,B,C,D sowie EN, CKL und LATCH gemeinsam verbunden und R1...G2 pro 
Display einzeln angesteuert (19 pins!). Frame rate war gering höher aber 
immer noch nicht top. Im Thread kam der Vorschlag R1...G2 gemeinsam zu 
verbinden und EN & LATCH pro Display einzeln anzusteuern. Ich erkenne 
hier jetzt noch keinen Vorteil, werde es aber mal testen.

Die meiste Zeit geht sowieso bei der Umrechnung des Display Buffers auf 
die Display Hardware drauf. Da ich den Buffer als 96x64 bit ausgelegt 
habe, das Display aber anders herum beladen werden muss. Eine 
Möglichkeit ist die Umrechnung nicht bei der Display-Refresh Methode 
durchzuführen sondern in den setPixel Funktionen, dann ist jedoch ein 
direktes Schreiben in den Buffer nicht mehr möglich.

Wie würdet ihr die Ansteuerung lösen?

Danke für Ideen und Vorschläge,
Tobias
Persönliche Seite #1614302
In den buffer wird doch wesentlich seltener geschrieben als davon 
gelesen (refresh) daher macht es doch sinn, den buffer so aufzubauen, 
dass es möglichst einfach ist ihn auszulesen. Aber sehr schickes 
Projekt! Vielleicht könntest du auch auf XMega umsteigen, da 32MHz und 
Eventsystem etc. Das könnte das ganze etwas schneller machen.
OP #1624157
Habe jetzt die setPixel Funktionen und das schreiben auf das Display 
optimiert. Somit schaffe ich ca. 50 Bilder pro Sekunde vom 
Flash-Speicher auf das Display zu schreiben. Werde nach kleinen 
Anpassungen auch mein Python Skript veröffentlichen mit dem ich die GIF 
Bilder exportierte.

Habe mir auch alte NES Controller besorgt und ein kleines Snake 
programmiert. Video gibts hier: 
http://tobiscorner.floery.net/projects/avr/arduino-ikea-coffee-table-hack-–-snake/232
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.