Borg3d: Unterschied zwischen den Versionen

Aus LaborWiki
Wechseln zu: Navigation, Suche
Zeile 37: Zeile 37:


Die Software wurde mit dem avr-gcc in C geschrieben und liegt in unserem [[Subversion]] im [http://roulette.das-labor.org/svnview/microcontroller/src-atmel/borg/borg-3d microcontroller] Verzeichnis. Eine Reihe hardwarenaher Routinen wurde aus einem anderen [[Borg]] Verzeichnis soft-verlinkt, da diese Routinen für all unsere [[Blinken Borgs]] identisch sind.
Die Software wurde mit dem avr-gcc in C geschrieben und liegt in unserem [[Subversion]] im [http://roulette.das-labor.org/svnview/microcontroller/src-atmel/borg/borg-3d microcontroller] Verzeichnis. Eine Reihe hardwarenaher Routinen wurde aus einem anderen [[Borg]] Verzeichnis soft-verlinkt, da diese Routinen für all unsere [[Blinken Borgs]] identisch sind.
===Redesign Software===
Es wird zur Zeit an einer verbesserten Version der Borg3D Firmware gearbeitet. Diese wird auch auf andere Borgs adaptierbar sein.
Folgende Ziele werden dabei verfolgt.
* 16 Farben logarithmisch verteilt mit Anti Flimmer Verfahren vom [[https://roulette.das-labor.org/trac/browser/microcontroller/src-atmel/borg/borg-mini-64gray  borg-mini-65grey]]
* Wenn genügend Speicherplatz vorhanden ist Double Bufferin
* Bisher wurde immer nach einem Bildaufbau gewartet, jedoch wurde die Zeit für Berechnungen vollkommen vernachlässigt. Jetzt gibt die wait(Zeit), die Zeit zwischen zwei bildaufbauten an. Dies wir aus folgenden Gründen gemacht:
** Die Animation auch genauso ist wie beim Simulator läuft
** Die Animation flüssiger Läuft
* Keine longjumps, sowie can und joystick abfragen in der wait-Funktion mehr, stattdessen Spezieller Animationsaufruffunktion und zwei verschiedene Arten zu programmieren:
** Linear so wie bei den bisherigen Animationen.
** Framebasiert. Dabei wird eine extra Funktion 25 mal in der Sekunde aufgerufen und läuft durch. Dieser Modus eignet sich besonders um
*** eine Timeline aufzubauen
*** Musikvisualisation
*** Videos
** Man kann auch beide Modis gleichzeitig verwenden und somit kinderleicht zeitbasierte Veränderungen vornehmen.
**In einer Datenstrucktur wird die Stackpointeradresse stackPtrBack für den Rücksprung ins Hauptprogramm gesichert. Wenn ein Spiel kommt wird das spiel aufgerufen mit dem stackPtrBack+1 und stackPtrBack als Rücksprungadresse.
** Can sowie joystick werden durch eine ISR 25 mal pro Sekunde abgefragt.
** Es wird zurzeit geprüft in wieweit sich das mit avrx umsetzen lässt. 
* Abspielgeschwindigkeit veräderbar, das heißt vorspulern oder slowmotion. Vorführung und Debugging.
* sd*karten animation wie beim farbborg von einem Fat Dateisystem.
* Neue Version von Pong die eine einheitliche auflösung hat und auch auf allen Borgvarianten läuft.
* setPixel3d aus portierungs gründen gleich lassen
* Keine inkompatiblen Positions Strukturen, setpixel soll nun so aussehen setVoxel(uint8_t x, uint8_t y, uint8_t z, uint8_t brithness)
* Switch auf den ATMEGA64-4
**fade effekte usw vom farborg
**double buffering wenns vom Speicherplatz möglich ist
**swapAndWait()
**fade()
Wer noch weitere Ideene hat möge das bitte hier eintragen und mich informieren. madex@gmx.de


===Historie===
===Historie===

Version vom 12. November 2008, 15:36 Uhr

english version

Borg 3d

Facts

  • 8x8x8 LEDs
  • jede LED einzeln ansteuerbar
  • Ein Laborboard mit Microcontroller als Steuerrechner
  • Gebaut von Martin Ongsiek

Bauanleitung

Datei:Bauanleitung.png Borg3d Bauanleitung zum sofort drauf los löten.

Bilder und Videos

Borg-3d.jpg Borg3d-1.jpg Borg3d-3.jpg

Hardware

Der Borg wird von einem ATMega32 gesteuert und verfügt über einen RS232-Port, CAN Bus und zwei Joystick Anschlüsse (ihr wisst schon, die guten alten digitalen vom C64).

Die 512 LEDs werden im Zeitmultiplex-Verfahren (Matrix) zu 8 x 64 LEDs angesteuert -- es hat 4 Helligkeitsstufen, die aber kaum genutzt werden.

Schaltpläne & Co. haben wir veröffentlicht und ist unter Borg3d Bauanleitung zu finden.

Software

Zur Zeit werden werden alle Animationen live gerendert von dem Microcontroller. Es wird zum normalen Betrieb kein PC benötigt, lediglich der Stecker muss in die Steckdose gesteckt werden um den Borg 3D in Berieb zu nehemen. Demnächst wird der Support für Videos bereitgestellt, die mit einem Programm grafisch eingegeben werden können.

Die Software wurde mit dem avr-gcc in C geschrieben und liegt in unserem Subversion im microcontroller Verzeichnis. Eine Reihe hardwarenaher Routinen wurde aus einem anderen Borg Verzeichnis soft-verlinkt, da diese Routinen für all unsere Blinken Borgs identisch sind.

Redesign Software

Es wird zur Zeit an einer verbesserten Version der Borg3D Firmware gearbeitet. Diese wird auch auf andere Borgs adaptierbar sein. Folgende Ziele werden dabei verfolgt.

  • 16 Farben logarithmisch verteilt mit Anti Flimmer Verfahren vom [borg-mini-65grey]
  • Wenn genügend Speicherplatz vorhanden ist Double Bufferin
  • Bisher wurde immer nach einem Bildaufbau gewartet, jedoch wurde die Zeit für Berechnungen vollkommen vernachlässigt. Jetzt gibt die wait(Zeit), die Zeit zwischen zwei bildaufbauten an. Dies wir aus folgenden Gründen gemacht:
    • Die Animation auch genauso ist wie beim Simulator läuft
    • Die Animation flüssiger Läuft
  • Keine longjumps, sowie can und joystick abfragen in der wait-Funktion mehr, stattdessen Spezieller Animationsaufruffunktion und zwei verschiedene Arten zu programmieren:
    • Linear so wie bei den bisherigen Animationen.
    • Framebasiert. Dabei wird eine extra Funktion 25 mal in der Sekunde aufgerufen und läuft durch. Dieser Modus eignet sich besonders um
      • eine Timeline aufzubauen
      • Musikvisualisation
      • Videos
    • Man kann auch beide Modis gleichzeitig verwenden und somit kinderleicht zeitbasierte Veränderungen vornehmen.
    • In einer Datenstrucktur wird die Stackpointeradresse stackPtrBack für den Rücksprung ins Hauptprogramm gesichert. Wenn ein Spiel kommt wird das spiel aufgerufen mit dem stackPtrBack+1 und stackPtrBack als Rücksprungadresse.
    • Can sowie joystick werden durch eine ISR 25 mal pro Sekunde abgefragt.
    • Es wird zurzeit geprüft in wieweit sich das mit avrx umsetzen lässt.
  • Abspielgeschwindigkeit veräderbar, das heißt vorspulern oder slowmotion. Vorführung und Debugging.
  • sd*karten animation wie beim farbborg von einem Fat Dateisystem.
  • Neue Version von Pong die eine einheitliche auflösung hat und auch auf allen Borgvarianten läuft.
  • setPixel3d aus portierungs gründen gleich lassen
  • Keine inkompatiblen Positions Strukturen, setpixel soll nun so aussehen setVoxel(uint8_t x, uint8_t y, uint8_t z, uint8_t brithness)
  • Switch auf den ATMEGA64-4
    • fade effekte usw vom farborg
    • double buffering wenns vom Speicherplatz möglich ist
    • swapAndWait()
    • fade()

Wer noch weitere Ideene hat möge das bitte hier eintragen und mich informieren. madex@gmx.de

Historie

Martin hat lange bevor Peter seinen Borg gebaut im Internet die folgende Seite von james clar gefunden. Er hat sich von ihm inspirieren lassen und wollte auf jeden Fall auch so ein Ding bauen. Ein echter 3D Display hat ihn durch besonders gereizt.

Er baute zunächst einen Prototyp bestehend aus 3x3x3 Leuchtdioden. Dieser Prototyp diente dazu herauszubekommen wie man am besten die Leuchtdioden verlötete.

Anschließend baute er seinen den 8x8x8 Borg. Jedoch erwies sich der Lötaufwand einerseits für die LEDs aber auch für die Treiberplatinen als viel größer als zunächst angenommen.

Ausstellungen

Bilder vom 22C3