Borg3d: Unterschied zwischen den Versionen

Aus LaborWiki
Wechseln zu: Navigation, Suche
(derp)
 
(28 dazwischenliegende Versionen von 22 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
==[[Blinken Borgs|Borg]] 3d==
[[Borg3d/en|english version]]
=[[Blinken Borgs|Borg]] 3d=


__NOTOC__
__NOTOC__
Zeile 9: Zeile 10:
* Ein [[Laborboard]] mit Microcontroller als Steuerrechner
* Ein [[Laborboard]] mit Microcontroller als Steuerrechner
* Gebaut von Martin Ongsiek
* Gebaut von Martin Ongsiek
===Bauanleitung===
[[Bild:bauanleitung.png|100px]]
'''[[Borg3d Bauanleitung]]''' zum sofort drauf los löten.


===Bilder und Videos===
===Bilder und Videos===
Zeile 15: Zeile 21:
[[Bild:Borg3d-1.jpg|140px]]  
[[Bild:Borg3d-1.jpg|140px]]  
[[Bild:Borg3d-3.jpg|140px]]
[[Bild:Borg3d-3.jpg|140px]]
* [http://www.das-labor.org/files/Borg3d-1.0.mpg Filmchen (8MB)]


===Hardware===
===Hardware===
Zeile 20: Zeile 28:
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).
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 Hellgkeitsstufen, die aber kaum genutzt werden (weil wegen sieht nicht so gut aus).
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. '''wollen''' wir wir veröffentlichen, bis jetzt gab es aber immer etwas wichtigeres zu tun; aber wir hoffen bald auf einen freien Timeslot
Schaltpläne & Co. '''haben''' wir veröffentlicht und ist unter [[Borg3d Bauanleitung]] zu finden.


===Software===
===Software===


Die Software wurde in 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 Hardware-naher Routinen wurde aus einem anderen [[Borg]] Verzeichnis soft-Verlinkt, da diese Rouinen für all unsere [[Blinken Borgs]] identisch sind.
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 [[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===
 
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://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
* 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===


Martin hat lange bevor Peter seinen Borg gebaut im Internet die folgende Seite von [http://www.jamesclar.com/product/2003/3dcubev3/index.html james clar] gefunden. Er hat sich von ihm inspirieren lassen und wollte auf jedenfall auch so ein ding bauen.  
Martin hat lange bevor Peter seinen Borg gebaut im Internet die folgende Seite von [http://www.jamesclar.com/product/2003/3dcubev3/index.html 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 Leutdioden. Dieser Prototyp diente dazu herauszubekommen wie man am besten die Leuchtdioden verlötete.  
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.
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.


== Bilder vom [[22C3]] ==
== Ausstellungen ==
* '''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/
 
== 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
* [[http://80.190.240.89/photos/22c3/index.php?file=d70_016132-01.jpg]]
* [[http://80.190.240.89/photos/22c3/index.php?file=d70_016132-01.jpg]]
* [[http://congress.blinkenarea.org/22c3/22c3-day-0/originalimages/033.blinkenarea-22c3.jpg]]
* [[http://congress.blinkenarea.org/22c3/22c3-day-0/originalimages/033.blinkenarea-22c3.jpg]]
Zeile 47: Zeile 100:
* [[http://arne.blinkenarea.org/22c3/P1010063.JPG]]
* [[http://arne.blinkenarea.org/22c3/P1010063.JPG]]
* [[http://arne.blinkenarea.org/22c3/P1010064.JPG]]
* [[http://arne.blinkenarea.org/22c3/P1010064.JPG]]
* [[http://www.mikesweb.de/ccc/22c3/day3/dcp_0209.jpg]]
 
* [[http://www.mikesweb.de/ccc/22c3/day3/dcp_0210.jpg]]
[[Kategorie:BlinkenBorg]]
* [[http://www.mikesweb.de/ccc/22c3/day3/dcp_0211.jpg]]
[[Kategorie:Microcontroller]]
* [[http://www.flickr.com/photo_zoom.gne?id=78074317&context=set-1671608&size=l]]

Aktuelle Version vom 1. September 2018, 04:10 Uhr

english version

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]

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

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]

Bilder vom 22c3[Bearbeiten | Quelltext bearbeiten]