Borg3d: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
(derp) |
||
(3 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 36: | Zeile 36: | ||
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. | 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 [ | Die Software wurde mit dem avr-gcc in C geschrieben und liegt in unserem [[Subversion]] im [[https://github.com/das-labor/legacy/tree/master/microcontroller/src-atmel/borg/borg-3d borg-3d]] 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=== | ===Redesign Software=== | ||
Zeile 43: | Zeile 43: | ||
Folgende Ziele werden dabei verfolgt. | Folgende Ziele werden dabei verfolgt. | ||
* 16 Farben logarithmisch verteilt mit Anti Flimmer Verfahren vom [[https://das-labor | * 16 Farben logarithmisch verteilt mit Anti Flimmer Verfahren vom [[https://github.com/das-labor/legacy/tree/master/microcontroller/src-atmel/borg/borg-mini-64gray borg-mini-65grey]] | ||
* Wenn genügend Speicherplatz vorhanden ist Double Bufferin | * 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: | * 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: | ||
Zeile 89: | Zeile 89: | ||
* '''24. Chaos Communication Congress''' (26. bis 30.12.2007) - http://events.ccc.de/congress/2007/ | * '''24. Chaos Communication Congress''' (26. bis 30.12.2007) - http://events.ccc.de/congress/2007/ | ||
== Bilder vom [[22C3]] == | == Bilder vom [[Veranstaltung/22C3|22c3]] == | ||
* http://www.flickr.com/photos/heipei/78771221 | * http://www.flickr.com/photos/heipei/78771221 | ||
* http://infin.etmail.de/22c3/index.php | * http://infin.etmail.de/22c3/index.php |
Aktuelle Version vom 1. September 2018, 04:10 Uhr
Borg 3d[Bearbeiten | Quelltext bearbeiten]
Facts[Bearbeiten | Quelltext bearbeiten]
- 8x8x8 LEDs
- jede LED einzeln ansteuerbar
- Ein Laborboard mit Microcontroller als Steuerrechner
- Gebaut von Martin Ongsiek
Bauanleitung[Bearbeiten | Quelltext bearbeiten]
Datei:Bauanleitung.png Borg3d Bauanleitung zum sofort drauf los löten.
Bilder und Videos[Bearbeiten | Quelltext bearbeiten]
Hardware[Bearbeiten | Quelltext bearbeiten]
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[Bearbeiten | Quelltext bearbeiten]
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 [borg-3d] 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[Bearbeiten | Quelltext bearbeiten]
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[Bearbeiten | Quelltext bearbeiten]
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[Bearbeiten | Quelltext bearbeiten]
- Linux Tage Essen 2005 (3. bis 4.12.2005) - http://essen.linux-tage.linec.de/
- 22. Chaos Communication Congress (26. bis 30.12.2005) - http://events.ccc.de/congress/2005/?language=de
- pong.mythos (10.02.2006 bis 01.05.2006) - http://www.pong-mythos.net/
- Games Convention / pong.mythos (24.08.2006 bis 27.08.2006)
- 23. Chaos Communication Congress (26. bis 30.12.2006) - http://events.ccc.de/congress/2006/
- Chaos Communication Camp (08. bis 12.08.2007) - http://events.ccc.de/camp/2007/
- Kornhausforum in Bern / pong.mythos (17.08.2007 – 16.09.2007) - http://www.pong-mythos.net/
- 24. Chaos Communication Congress (26. bis 30.12.2007) - http://events.ccc.de/congress/2007/