www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Arduino IKEA Coffee table hack


Autor: Tobias .. (thefloe)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Hauke Radtki (lafkaschar) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Tobias .. (thefloe)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe jetzt eine kleine Animation auf dem Display am Laufen. 64x64 Pixel 
mit 6 Frames von einer GIF Animation exportiert.

Youtube-Video "Arduino IKEA Lack coffee table hack - Animation"

Autor: Tobias .. (thefloe)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.