Blinken Borgs: Unterschied zwischen den Versionen

Aus LaborWiki
Wechseln zu: Navigation, Suche
(FreeBSD support des Borg-Simulators, schon seit dem 29C3 drin)
(→‎Simulatoren: aktualisiert)
Zeile 138: Zeile 138:
== Simulatoren ==
== Simulatoren ==


Um auch ohne Borg Animationen entwickeln zu können, hat Martin einen API-Simulator entwickelt, mit denen sich die Borg-Firmware als PC-Anwendung kompilieren und debuggen lässt. Anstelle der AVR-Ports und Schieberegister tritt dann ein GUI-Programm, dass eine idealisierte LED-Matrix zeichnet.
Um auch ohne einen Borg Animationen entwickeln zu können, hat Martin einen API-Simulator entwickelt, mit denen sich die Borg-Firmware als PC-Anwendung kompilieren und debuggen lässt. Anstelle der AVR-Hardware-Ports und der Schieberegister tritt dort ein GUI-Programm, dass eine idealisierte LED-Matrix zeichnet.


Beim Borg 3D ist der Simulator ein eigenständiges Projekt, das Martin als plattformunabhängige OpenGL-Anwendung (GLUT) konzipiert hat.
Beim Borg 3D ist der Simulator ein eigenständiges Projekt, welches [[Benutzer:martin|Martin]] als plattformunabhängiges OpenGL-Programm konzipiert hat.


Die Simulatoren für die zweidimensionalen Borgs sind hingegen in der Borgware 2D integriert, die auch für die tatsächlichen AVR-Images benutzt wird. Dabei findet unter Linux eine abgeleitete Form von Martins Simulator Verwendung. Christian hat einen weiteren Simulator für die Win32-Plattform eingebaut, da der OpenGL-Support von Cygwin mittlerweile einen X-Server unter Windows voraussetzt. Die Build-Skripte merken von allein, unter welchem System sie laufen und wählen automatisch den richtigen Simulator.
Die Simulatoren für die zweidimensionalen Borgs sind hingegen in der [[Borgware-2D]] integriert, die auch zum Erstellen der AVR-Images zuständig ist. Dabei findet unter Linux eine abgeleitete Form von Martins Simulator Verwendung. Christian hat einen weiteren Simulator für die Win32-Plattform eingebaut, da der OpenGL-Support von Cygwin mittlerweile einen X-Server unter Windows voraussetzt. Die Build-Skripte merken von allein, unter welchem System sie laufen und wählen automatisch den richtigen Simulator.


Aufgrund von speziell angepassten Linker-Skripten lässt sich der Simulator der Borgware 2D derzeit nur unter Linux (x86/x64), FreeBSD (x86/x64) und Windows (Cygwin x86) bauen. Wer Unterstützung für andere Archtikturen oder Systeme benötigt, muss selbst ein angepasstes Skript schreiben. Der 3D-Simulator sollte hingegen überall gebaut werden können, wo OpenGL-Header zur Verfügung stehen.
Aufgrund von speziell angepassten Linker-Skripten unterstützt der Borgware-2D-Simulator derzeit nur Linux, FreeBSD und Windows (Cygwin), beschränkt auf die Architekturen x86 und x86_x64. Wer den Borgware-2D-Simulator für andere Plattformen benötigt, muss selbst ein angepasstes Linker-Skript schreiben. Der 3D-Simulator ist hingegen mit jeder Plattform kompatibel, wo OpenGL-Header zur Verfügung stehen.


Folgende Pakete werden unter Linux benötigt, um die Simulatoren zu bauen:
Folgende Pakete sind unter Linux (hier am Beispiel von Ubuntu) nötig, um die Simulatoren zu bauen:
* build-essential
* build-essential (installiert eine komplette GCC-Tool-Chain für den Host)
* make
* make (gmake unter FreeBSD)
* libfreeglut3-dev
* libncurses5-dev (nur Borgware-2D)
* libncurses5-dev (nur Borgware 2D)
* freeglut3-dev


Der aktuelle Sourcecode liegt im [[Subversion]] und kann für den Borg 3D mit
Der aktuelle Sourcecode für den Borg-3D-Simulator liegt im [[Subversion]], das den Checkout folgendermaßen ermöglicht:


   svn co https://www.das-labor.org/svn/microcontroller/src-atmel/
   svn co https://www.das-labor.org/svn/microcontroller/src-atmel/


und für die Borgware 2D mit
Leider ist ein kompletter Checkout des Verzeichnisses '''src-atmel''' notwendig, um den Borg-3D-Simulator zu bauen. Sein Quellcode befindet sich im Unterverzeichnis '''borg/borg-3d-newApi-Simulator''' und ein einfaches ''make'' stößt den Build-Vorgang an.


  svn co https://www.das-labor.org/svn/microcontroller/src-atmel/borg/borgware-2d
Die Borgware-2D residiert mittlerweile auf [https://github.com/das-labor/borgware-2d GitHub]. Das Klonen des Repositorys (inkl. der rfm12lib als Submodul) gestaltet sich so:


ausgecheckt werden.
git clone https://github.com/das-labor/borgware-2d.git
git submodule init
git submodule update


Der Quellcode für die Borgs befindet sich im Unterverzeichnis '''borg'''. Das Verzeichnis '''src-atmel''' muss für den Borg 3D (leider) wirklich komplett ausgechecked werden, während die Borgware 2D mit ihrem eigenen Ordner auskommt.
Der 2D-Simulator lässt sich (nach einem vorangegangenen ''make menuconfig'') mittels ''make simulator'' bauen.
 
Der Simulator für den Borg 3D sollte sich dabei mit einem einfachen ''make'', der Simulator der Borgware 2D mit einem ''make simulator'' bauen lassen.


== Download ==
== Download ==

Version vom 21. März 2014, 06:20 Uhr


Borg3d Bauanleitung

Drahtgebogen.jpg

Wir haben jetzt endlich eine Bauanleitung für den 3D-Borg, die derzeit noch verbessert wird.


Farb Borg 3d

Borg3dColor-1.jpg

5x5x5 RGB-LEDs, einzeln ansteuerbar in einem Würfel von ca. 25x25x25 cm. Er zeigt sanfte Farbübergänge. Die Ansteuerung läuft über einen FPGA mit Treiberplatine der eine 75x5 Matrix ansteuert. Betrachte das Video!

Cube-FAQ:

Unsere Borgs werden nicht verkauft, wirklich nicht.

Borg3d

Borg3d-1.jpg

Martins Borg3d ist ein Drahtgitter aus 8x8x8 Leuchtdioden die so verschaltet sind, dass sich jede Diode einzeln ansteuern lässt. Wir haben viele kleine Animationen und auch ein Spiel -- Pong-3D -- die auf dem Würfel laufen.

Video

Borgs sind cool, vor allem dann wenn man sie selbst gebaut hat. Darum kommt einfach mal zu Löten bei uns vorbei. Man lernt eine Menge und Spass macht's auch.

Unsere Borgs werden nicht verkauft, wirklich nicht. Auch nicht für 1000 Euro.

Pocketlights aka GameboyBorg

144 Flächen-LEDs im 18x8 Format (original Blinkenlights) in einem defekten Gameboygehäuse verbaut. Ein ATmega32 steuert die Animationen, zieht (bald) Blinkenlightsfilme (.blm) von einer MMC Karte und reagiert auf die 8 Buttons. Der On/Off Schalter ist aus dem Original übernommen, ebenso der Netzteilstecker. Alternativ zum Netzteil funktioniert auch Batteriebetrieb. Lange Beschreibung und Bilder folgen...

Video

Peters 8x8 Borg

BlinkenBorg.jpg

Nach den ersten Microcontroller Workshop suchten wir nach Möglichkeiten, mit den neuen tollen Laborboards das Labor zu schmücken. Peter, unser Elektronikexperte, kam die glorreiche Idee ein 8 mal 8 Display aus Lampen, die auf ein Holzbrett geschraubt sind zu entwerfen. Gesagt getan. Inerhalb kürzester Zeit entstand der erste Borg.


Borg16

Andres Ur-Borg

Andre waren 64 nicht genug, und so baute er mit 256 kleinen gelben Leuchtdioden einen neuen Borg, den er später nochmal in groß mit ultrahellen 10 mm Leuchtdioden baute. Dieser hängt im Labor an der Wand und ist die Vorlage für den Borg16.

Der Borg16 wurde mit dem Ziel entwickelt, eine kompakte und trotzdem leicht bestückbare Platine zu haben auf der die mittlerweile entstandene Borgware-2D läuft. Es wurden daher professionell Platinen hergestellt, die es zusammen mit einer Bauanleitung ermöglichen schnell und unproblematisch ein Display anzusteuern.

Borg16 mit Testdisplay


Laufschrift Borg

LS-Borg.jpg

Last but noch least ist da noch der LS-Borg: Es handelt sich um eine dieser fertigen LED-Laufschrift-Dinger, dessen Steuerelektronik wir ausgebaut, und durch ein ATMega32 Board mit CAN Connectivität ausgetauscht haben. Dieser soll bei der Automatisierung des Labors zur Anzeige von Menüs und Betriebszuständen herhalten.

Für diesen Borg wurde eine spezielle Animationssprache für Laufschriften geschrieben namens BorgTextAnim.

Bilder vom 22C3: [1]


Nebel Borg

Nebel borg.jpg

Dieser Borg hat eine 8x16 RGB Matrix die auf einer Holzplatte angebracht ist. Über den LEDs ist eine Plastikwanne, in der Ultraschallnebler sind, die aus Wasser Nebel erzeugen. Besonders schön wirkt es, wenn der Nebel sich leicht bewegt.

Angesteuert wird der Borg über ein FPGA.

Video vom Plasma Effekt: http://de.youtube.com/watch?v=UmjC5r4nDfo

svn co https://www.das-labor.org/svn/fpga/soc-lm32/nebelborg

Wenn der Nebel Borg mal nicht "nebelt", erzeugt er mit der Moodbar zusammen, schöne Farbeffekte an unserer Theke.

Nebel borg theke.jpg


GiGa-Borg

GiGaBorgFoto0033.jpg









Borg Ventilator

Borg beta 1.jpg

Der Borg Ventilator ist ein Projekt, das sich derzeit im Bau befindet.

Ziel ist es, ein bewegtes Bild auf den Flügeln eines Ventilators darzustellen.

Der Borg Ventilator hat insgesamt 244 RGB Led's verteilt auf 4 Flügel. Angesteuert werden diese mit einem FPGA von Xilinx aus der Spartan Baureihe.




Bilder vom 22C3: [2], [3], [4], [5], [6], [7], [8], [9] [10],

Bilder vom 22C3: [11], [12], [13], [14], [15], [16], [17]


Videos

Seht euch die Borgs in Aktion an.

Simulatoren

Um auch ohne einen Borg Animationen entwickeln zu können, hat Martin einen API-Simulator entwickelt, mit denen sich die Borg-Firmware als PC-Anwendung kompilieren und debuggen lässt. Anstelle der AVR-Hardware-Ports und der Schieberegister tritt dort ein GUI-Programm, dass eine idealisierte LED-Matrix zeichnet.

Beim Borg 3D ist der Simulator ein eigenständiges Projekt, welches Martin als plattformunabhängiges OpenGL-Programm konzipiert hat.

Die Simulatoren für die zweidimensionalen Borgs sind hingegen in der Borgware-2D integriert, die auch zum Erstellen der AVR-Images zuständig ist. Dabei findet unter Linux eine abgeleitete Form von Martins Simulator Verwendung. Christian hat einen weiteren Simulator für die Win32-Plattform eingebaut, da der OpenGL-Support von Cygwin mittlerweile einen X-Server unter Windows voraussetzt. Die Build-Skripte merken von allein, unter welchem System sie laufen und wählen automatisch den richtigen Simulator.

Aufgrund von speziell angepassten Linker-Skripten unterstützt der Borgware-2D-Simulator derzeit nur Linux, FreeBSD und Windows (Cygwin), beschränkt auf die Architekturen x86 und x86_x64. Wer den Borgware-2D-Simulator für andere Plattformen benötigt, muss selbst ein angepasstes Linker-Skript schreiben. Der 3D-Simulator ist hingegen mit jeder Plattform kompatibel, wo OpenGL-Header zur Verfügung stehen.

Folgende Pakete sind unter Linux (hier am Beispiel von Ubuntu) nötig, um die Simulatoren zu bauen:

  • build-essential (installiert eine komplette GCC-Tool-Chain für den Host)
  • make (gmake unter FreeBSD)
  • libncurses5-dev (nur Borgware-2D)
  • freeglut3-dev

Der aktuelle Sourcecode für den Borg-3D-Simulator liegt im Subversion, das den Checkout folgendermaßen ermöglicht:

 svn co https://www.das-labor.org/svn/microcontroller/src-atmel/

Leider ist ein kompletter Checkout des Verzeichnisses src-atmel notwendig, um den Borg-3D-Simulator zu bauen. Sein Quellcode befindet sich im Unterverzeichnis borg/borg-3d-newApi-Simulator und ein einfaches make stößt den Build-Vorgang an.

Die Borgware-2D residiert mittlerweile auf GitHub. Das Klonen des Repositorys (inkl. der rfm12lib als Submodul) gestaltet sich so:

git clone https://github.com/das-labor/borgware-2d.git
git submodule init
git submodule update

Der 2D-Simulator lässt sich (nach einem vorangegangenen make menuconfig) mittels make simulator bauen.

Download