Borg Ventilator: Unterschied zwischen den Versionen

Aus LaborWiki
Wechseln zu: Navigation, Suche
Keine Bearbeitungszusammenfassung
 
(52 dazwischenliegende Versionen von 12 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{ProjektInfoBox
{{ProjektInfoBox
|name       =  
|name=Borg Ventilator
|status     = experimental
|status=stable
|image       = borgventilator_bildaufbau2.gif
|image=Borg_beta_1.jpg
|description = Der Borg Ventilator ist ein Rotierendes LED Display basierend auf einem FPGA-System
|description=Der Borg Ventilator ist ein rotierendes LED Display basierend auf einem FPGA-System
|username    = Sauron
|author=[[Benutzer:Sauron|Sauron]], [[Benutzer:Bilex|Bilex]]
|version    =
|platform=FPGA
|update      =
|license=[[Datei:CC_BY_NC.png]]
|platform   = FPGA
|tags=Licht & Sound,
|license     = creative commons Noncommercial
|download    =  
}}
}}
'''Dieses Projekt ist zusammen mit dieser Seite im entstehen.'''
Dieses Projekt steht unter der [http://creativecommons.org/licenses/by-nc/3.0/de/ creative commons Lizenz]. (cc-nc) Eine kommerzielle Nutzung ist ausdrücklich verboten


Dieses Projekt steht unter der [http://creativecommons.org/licenses/by-nc/3.0/de/ creative commons Lizenz]. (cc-nc) Eine Kommerzielle Nutzung ist ausdrücklich Verboten
== Das Projekt ==


==Über dieses Projekt==
Ziel des Projektes ist es ein Videosignal auf einem Ventilator darzustellen. Dazu besitzt der Ventilator insgesamt 244 RGB Led's verteilt auf 4 Flügel. Als Datenquelle verwende ich einen Standard VGA Anschluss. Dieses VGA Signal wird digitalisiert, aufbereitet und auf dem Ventilator dargestellt.


Auch bei diesem [[Borg]] geht es natürlich um Blinken und LED's. Diesmal Sitzen die LED's
== Der Flügel ==
jedoch auf den Flügeln eines Ventilators. Jedes Blatt ist mit RGB LED's bestückt, die von
[[Bild:Borg ventilator1422.JPG |200px|thumb|left|Der Borg im neuen Gehäuse]]
einem FPGA angesteuert werden. Wenn sich der Ventilator dreht, dann wird ein Bild erzeugt.
 
"An Bord" befinden sich ein FPGA von Xilinx aus der Spartan Baureihe, Plattform Flash, LED Treiber und jede Menge SMD RGB LEDs . Es gibt 4 Flügel, die mit RGB LEDs bestückt sind. Insgesamt werden 244 LEDs verbaut. Da die normalen LEDs einfach viel zu gross sind, werden SMD Teile verwendet.
Zusätzlich werden die LEDs je Flügel leicht versetzt. Dadurch verringern sich die dunklen Streifen zwischen den LEDs und die Auflösung steigt. Die Auflösung beträgt 512 Bildpunkte in der Diagonalen.
 
== Video Signal ==
 
Der Borg wird wie ein Monitor an die Grafikkarte angeschlossen. Ein Treiber ist nicht erforderlich. Die Bildschirmauflösung muss dann zwischen 640 X 480 und 1280 X 1024 liegen. Das Videosignal wird mit der vollen Wiederholrate aktualisiert. Der Pixelclock sollte 140 MHz nicht wesentlich übersteigen.
 
== Stromversorgung ==
 
Der nötige Strom wird über einen Satz Schleifringe übertragen. Die nötige Mechanik dafür hat Bilex geplant und gefertigt. Die eigentlichen Schleifringe bestehen aus standard Platinenmaterial. Die Schleifringe haben sich als erstaunlich langlebig erwiesen. Lediglich alle paar Monate sollten die Schleifringe mal gereinigt werden.
 
== Datenübertragung ==


==Vorstellung des Projekts==
[[Bild:Videokopf.JPG|150px|thumb|Umgebauter Kopf eines Videorekorders]]
Die Daten werden berührungslos induktiv Übertragen. Das Prinzip funktioniert wie ein Trafo, mit dem Unterschied, dass sich hier die Sekundärseite dreht.
Je weniger Windungen, desto höhere Datenraten werden möglich. Passende Spulen findet man in jeder Kopftrommel eines Videorekorders.
Da ein Trafo keine Gleichspannung übertragen kann, muss die übertragung Gleichspannungsfrei sein. Weiterhin kann das Taktsignal aus den Datensignalen zurückgewonnen werden. Damit dies funktioniert, wird der Leitungscode B8B10 verwendet. 


Im indernett findet man verschiedene rotary clocks, led fans und ähnliches rotierendes leuchtgeborgse. Da dachte ich mir , das probierst du auch mal aus. Dabei hab ich mir hohe Ziele gesteckt:
Die Daten werden paketweise gesendet. Ein Paket besteht aus 512 Byte Nutzdaten. Danach folgt eine 6 Byte lange Magic Number und noch 2 Byte Checksumme. Mit der Magic Number kann der Empfänger erkennen, ob er immernoch synchron zum Sender arbeitet und sich notfalls auch neu synchronisieren. Bei Fehlern in der Checksumme wird das Datenpaket ignoriert.


1) Die Daten werden in Echtzeit von aussen eingespeisst.
Die Daten werden mit 11,3 MB pro Sec. (= 90 Mbit/s) übertragen.
2) Keine Schleifkontakte
3) Viele Led's  
4) Einen robusten und hochwertigen Aufbau


Als Datenquelle will ich ein Standard VGA Anschluss verwenden. Dieses VGA Signal wird digitalisiert, aufbereitet und auf dem Ventilator dargestellt.


== Der Flügel ==
== Bedieninterface ==
[[Bild:Borgventilator bedieneinheit 1445.JPG |150px|thumb|left|Bedienpanel]]
 
Es gibt nun ein LCD Display und einen Drehencoder mit Taster. Hiermit lassen sich verschiedene Menüs aufrufen und Einstellungen tätigen. Ausserdem erleichtert es die Fehlersuche.
 
==Plasma==
Sollte mal kein Videosignal anliegen, so stellt der Borg einen schönen bunten Plasmaeffekt da. Dadurch lässt sich der Borg auch ohne PC betreiben.
 
== Video ==
[http://www.youtube.com/watch?v=k-I3tt8SvKA hier gibt es das Video]
 
== Technische Daten ==
 
=== Unterstützte Auflösungen ===
 
* 640  X  480  max 100 Hz
* 800  X  600  max 100 Hz
*1024  X  768  max 100 Hz
*1280  X 1024  max  60 Hz
 
Andere Auflösungen können funktionieren, da der Borg grundsätzlich versucht ein Bild darzustellen, auch wenn eine exotische Auflösung gewählt wird.
Überschreitet der Pixeltakt aber ca. 160 Mhz kommt es zu aussetzern.


"An Bord" befinden sich ein FPGA von Xilinx aus der Spartan Baureihe, Plattform Flash, LED Treiber und jede menge smd rgb Led's. Es gibt 4 Flügel, die mit RGB Led's bestückt sind. Insgesamt werden 244 Led's verbaut. Da die normalen LED's einfach viel zu gross sind, werden smd Teile verwendet.
=== Bildwiederholrate ===
Zusätzlich werden die Led's je flügel leicht versetzt. Dadurch verschwinden die Dunklen Streifen zwischen den Led's und die Auflösung steigt. Theoretisch möglich wäre dann eine Auflösung von 512 Bildpunkten in der Diagonalen.


== Video Signal ==
Die Bildwiederholrate ist identisch mit der am PC eingestellten Bildwiederholrate.
Empfehlung: 60 Hz.


Das Video Signal soll von einem Wandler Chip digitalisiert werden, der normalerweise in Monitoren verbaut wird. Nebenbei besitzt der Chip auch einen DVI Eingang. Der Wandler wird von einem FPGA angesteuert. Anschliessend wird das Bild Heruntergerechnet und in einem SRAM gespeichert.
=== Farbtiefe ===
(Auflösung 512 x 512 x 16 Bit) Aus dem Inhalt des Ram werden dann passende Datenpakete gebildet. und zu dem Flügel übertragen.
Da die Datenrate konstant (7,6 MB/s) ist, sinkt die Auflösung mit steigender Drehzahl.


== Stromversorgung ==
Darstellbare Farben: 65535
Theoretisch möglich wären auch 16,7 Mil. Farben, dann jedoch mit etwas geringerer Auflösung


Jetzt wird es ein wenig Schwierig, denn wie bekomm ich Spannung auf die Blätter des Ventilators ?
=== Gamma korrektur ===
Eine elegante Lösung wäre , die Spannung Induktiv zu Übertragen, wie bei einem Trafo. Mann könnte die Sekundärwicklung mitdrehen lassen. Ob das funktioniert wird sich zeigen.


== Datenübertragung ==
Ohne Korrektur sahen die Bilder sehr Flau aus, insbesondere bei Fotos und Videos. Nun lässt sich der Gammawert einstellen. Mit einem Gamma von 1,6 haben wir gute Erfahrungen gemacht.


[[Bild:Videokopf.JPG|150px|thumb|Umgebauter Kopf eines Videorekorders]]
=== Drehzahl ===
Die Daten werden berührungslos Induktiv Übertragen. Das Prinzip funktioniert wie ein Trafo, mit dem Umterschied das sich hier die Sekundärseite dreht.
Je weniger windungen, desto höhere Datenraten werden Möglich. Passende Spulen findet man in jeder Kopftrommel eines Videorekorders.
Da ein Trafo keine Gleichspannung übertragen kann, müssen die anzahl Hi Signale gleich der anzahl Low Signale sein. Theoretisch kann das Taktsignal aus den Datensignalen zurückgewonnen werden (praktisch leider nicht). Ich verwende den B8B10 Code, der all diese eigenschaften vereint, und 8 Bits in 10 Bits darstellt. Auf 4 von 6 Transformatoren werden Daten zum Flügel transportiert, der 5. Trafo transportiert Daten in die andere Richtung (zum Debuggen und Statusdaten) und der Letzte Trafo überträgt ein Taktsignal für die Kommunikation.


Die Daten Werden Paketweise gesendet. Ein Paket besteht aus 512 Byte Nutzdaten. Danach folgt eine 6 Byte lange Magic Number und noch 2 Byte Checksumme. Mit der Magic Number kann der Empfänger erkennen, ob er immernoch synchron zum Sender Arbeitet und sich notfalls auch neu Synchronisieren. bei Fehlern in der Checksumme wird das Datenpaket ignoriert.
Die Drehzahl ist stufenlos einstellbar zwischen 0 und 2500 U/min. Der FPGA passt sich der aktuellen Drehzahl an und es ist ihm völlig egal wie schnell der Ventilator grade dreht. Jedoch macht ein schneller Ventilator viel Lärm.
Empfehlung: 1000 U/min


Die Rohdaten werden mit 4 mal 20 Mbit übertragen, das entspricht etwas 7,5 MByte pro Sec.


== Projektfortschritt ==
== Projektfortschritt ==


Ich habe das Projekt grob in 4 Teile geteilt:
* Demnächst wird er ein Plexiglasgehäuse bekommen, damit wird er hoffentlich so leise, dass er im Dauerbetrieb laufen kann.


1)  Datenübertragung            (70%)
1.1)  Hardware planen                (Fertig)
1.2)  Daten in Datenpakete Packen    (60 % Fertig)
1.3)  Datenpaket Versenden          (Fertig)
1.4)  Datenpaket Empfangen          (Fertig)
1.5)  Diagnosefähigkeiten            (zurückgestellt)
1.6)  Rückkanal                      (zurückgestellt)
2)  Energieübertragung          (Zurückgestellt)
3)  Verarbeitung des VGA Signals    (30% Fertig)
3.1)  Hardware planen                (zurückgestellt)
3.2)  VGA Signal einlesen            (zurückgestellt)
3.3)  RAM beschreiben, lesen        (Fertig,aber fehlerhaft)
3.4)  Umrechnung Koordinatensysteme  (Fertig)
4) Erstellung von Professionllen Platinen. (10%)
   


[[Datei:Borg_ventilator_2.jpg|320px]]
[[Datei:BorgVentilator_27C3-1.jpg|280px]]


[[Datei:BorgVentilator_27C3-2.jpg|300px]]
[[Datei:BorgVentilator_27C3-3.jpg|300px]]


Bisher klappt die Kommunikation nur in eine Richtung, aber dafür über 4 Kanäle gleichzeitig. Dadurch erreiche ich 7,5 Mb/sec.
== Probleme ==
Ein test der Kommunikation bei drehenden Kopf ist noch nicht erfolgt.


* Die Letzte LED (ganz aussen) zeigt etwas falsches an.
* Der Motor ist sehr Laut
* gelegentlich zeigen sich leichte Ringe im Bild


Da ich jetzt erst mal die schnautze voll habe vom VHDL coden, habe ich mal mit der Hardware angefangen.
Im Augenblick entwickel ich den Prototyp eines Flügels mit 64 Led's
== Weiterentwicklung ==
== Weiterentwicklung ==


  Hier sind einige Ideen, die vielleicht irgendwann mal einzug halten werden. (Eine konkrete Umsetzung ist erstmal nicht geplant)
  Hier sind einige Ideen, die vielleicht irgendwann mal einzug halten werden.
   
   
  1) Eine LM32 CPU, die Animationen generiert, wie auf dem Farbborg
  1) Eine LM32 CPU, die Animationen generiert, wie auf dem Farbborg
  2) Einen sd Kartenslot für Animationen und Videos
  2) Einen sd Kartenslot für Animationen und Videos
  3) Ein komfortables Bedieninterface
  <S>3) Ein komfortables Bedieninterface</S> <B> wurde bereits umgesetzt </B>
3b) OSD mit transparentem Hintergrund.
  4) Ausgefallene LED's automatisch erkennen
  4) Ausgefallene LED's automatisch erkennen
  5) Ein selbst Entwickeltes FPGA Board anstelle der Fertigen Boards, das universell einsetzbar ist.
  <S>5) Ein selbst Entwickeltes FPGA Board </S>  <B>wurde bereits umgesetzt</B>
  6) Taktrückgewinnung am Flügel
  <S>6) Taktrückgewinnung am Flügel </S>  <B>wurde bereits umgesetzt</B>
  7) Ein CAN Interface
  7) Ein CAN Interface
== Ausstellungen ==
* 12 / 2010  27C3 Berlin  (Danke an Tesla, der in letzter Minute den Borg noch repariert hat.)
* 05 / 2011  Netzwoche Bielefeld
* 08 / 2011  Robot Unicorn Invasion
* 08 / 2012  Ideenpark Essen
* 12 / 2012  29C3 Hamburg
== Videos ==
Hier noch ein Paar Videos.
[http://www.youtube.com/watch?v=k-I3tt8SvKA hier gibt es das Video]




Zeile 106: Zeile 134:


[http://www.youtube.com/watch?v=wWhpTq-zVCM Farbiger animierter Würfel] (echtzeit)
[http://www.youtube.com/watch?v=wWhpTq-zVCM Farbiger animierter Würfel] (echtzeit)
[http://www.youtube.com/watch?v=7luXyyBkFPQ First Light]
[http://www.youtube.com/watch?v=wsvfa3yw6jQ Ventilator spielt Video ab]
[http://www.youtube.com/watch?v=a0oqp8FZp7I Video 1 vom 27C3]
[http://www.youtube.com/watch?v=e0lBvjDZGK0 Video 2 vom 27C3]
[http://www.youtube.com/watch?v=rkMQSm3kIng&feature=related Video 3 vom 27C3]
[http://picasaweb.google.com/erik.tews/DasLaborVentilator# Fotos vom 27C3]


[[Kategorie:BlinkenBorg]]
[[Kategorie:BlinkenBorg]]
[[Kategorie:FPGA]]
[[Kategorie:FPGA]]

Aktuelle Version vom 8. April 2017, 00:03 Uhr

       
Borg Ventilator

Release status: stable [box doku]

Borg beta 1.jpg
Description Der Borg Ventilator ist ein rotierendes LED Display basierend auf einem FPGA-System
Author(s)  Sauron, Bilex
Platform  FPGA
License  CC BY NC.png



Dieses Projekt steht unter der creative commons Lizenz. (cc-nc) Eine kommerzielle Nutzung ist ausdrücklich verboten

Das Projekt[Bearbeiten | Quelltext bearbeiten]

Ziel des Projektes ist es ein Videosignal auf einem Ventilator darzustellen. Dazu besitzt der Ventilator insgesamt 244 RGB Led's verteilt auf 4 Flügel. Als Datenquelle verwende ich einen Standard VGA Anschluss. Dieses VGA Signal wird digitalisiert, aufbereitet und auf dem Ventilator dargestellt.

Der Flügel[Bearbeiten | Quelltext bearbeiten]

Der Borg im neuen Gehäuse

"An Bord" befinden sich ein FPGA von Xilinx aus der Spartan Baureihe, Plattform Flash, LED Treiber und jede Menge SMD RGB LEDs . Es gibt 4 Flügel, die mit RGB LEDs bestückt sind. Insgesamt werden 244 LEDs verbaut. Da die normalen LEDs einfach viel zu gross sind, werden SMD Teile verwendet. Zusätzlich werden die LEDs je Flügel leicht versetzt. Dadurch verringern sich die dunklen Streifen zwischen den LEDs und die Auflösung steigt. Die Auflösung beträgt 512 Bildpunkte in der Diagonalen.

Video Signal[Bearbeiten | Quelltext bearbeiten]

Der Borg wird wie ein Monitor an die Grafikkarte angeschlossen. Ein Treiber ist nicht erforderlich. Die Bildschirmauflösung muss dann zwischen 640 X 480 und 1280 X 1024 liegen. Das Videosignal wird mit der vollen Wiederholrate aktualisiert. Der Pixelclock sollte 140 MHz nicht wesentlich übersteigen.

Stromversorgung[Bearbeiten | Quelltext bearbeiten]

Der nötige Strom wird über einen Satz Schleifringe übertragen. Die nötige Mechanik dafür hat Bilex geplant und gefertigt. Die eigentlichen Schleifringe bestehen aus standard Platinenmaterial. Die Schleifringe haben sich als erstaunlich langlebig erwiesen. Lediglich alle paar Monate sollten die Schleifringe mal gereinigt werden.

Datenübertragung[Bearbeiten | Quelltext bearbeiten]

Umgebauter Kopf eines Videorekorders

Die Daten werden berührungslos induktiv Übertragen. Das Prinzip funktioniert wie ein Trafo, mit dem Unterschied, dass sich hier die Sekundärseite dreht. Je weniger Windungen, desto höhere Datenraten werden möglich. Passende Spulen findet man in jeder Kopftrommel eines Videorekorders. Da ein Trafo keine Gleichspannung übertragen kann, muss die übertragung Gleichspannungsfrei sein. Weiterhin kann das Taktsignal aus den Datensignalen zurückgewonnen werden. Damit dies funktioniert, wird der Leitungscode B8B10 verwendet.

Die Daten werden paketweise gesendet. Ein Paket besteht aus 512 Byte Nutzdaten. Danach folgt eine 6 Byte lange Magic Number und noch 2 Byte Checksumme. Mit der Magic Number kann der Empfänger erkennen, ob er immernoch synchron zum Sender arbeitet und sich notfalls auch neu synchronisieren. Bei Fehlern in der Checksumme wird das Datenpaket ignoriert.

Die Daten werden mit 11,3 MB pro Sec. (= 90 Mbit/s) übertragen.


Bedieninterface[Bearbeiten | Quelltext bearbeiten]

Bedienpanel

Es gibt nun ein LCD Display und einen Drehencoder mit Taster. Hiermit lassen sich verschiedene Menüs aufrufen und Einstellungen tätigen. Ausserdem erleichtert es die Fehlersuche.

Plasma[Bearbeiten | Quelltext bearbeiten]

Sollte mal kein Videosignal anliegen, so stellt der Borg einen schönen bunten Plasmaeffekt da. Dadurch lässt sich der Borg auch ohne PC betreiben.

Video[Bearbeiten | Quelltext bearbeiten]

hier gibt es das Video

Technische Daten[Bearbeiten | Quelltext bearbeiten]

Unterstützte Auflösungen[Bearbeiten | Quelltext bearbeiten]

  • 640 X 480 max 100 Hz
  • 800 X 600 max 100 Hz
  • 1024 X 768 max 100 Hz
  • 1280 X 1024 max 60 Hz

Andere Auflösungen können funktionieren, da der Borg grundsätzlich versucht ein Bild darzustellen, auch wenn eine exotische Auflösung gewählt wird. Überschreitet der Pixeltakt aber ca. 160 Mhz kommt es zu aussetzern.

Bildwiederholrate[Bearbeiten | Quelltext bearbeiten]

Die Bildwiederholrate ist identisch mit der am PC eingestellten Bildwiederholrate. Empfehlung: 60 Hz.

Farbtiefe[Bearbeiten | Quelltext bearbeiten]

Darstellbare Farben: 65535 Theoretisch möglich wären auch 16,7 Mil. Farben, dann jedoch mit etwas geringerer Auflösung

Gamma korrektur[Bearbeiten | Quelltext bearbeiten]

Ohne Korrektur sahen die Bilder sehr Flau aus, insbesondere bei Fotos und Videos. Nun lässt sich der Gammawert einstellen. Mit einem Gamma von 1,6 haben wir gute Erfahrungen gemacht.

Drehzahl[Bearbeiten | Quelltext bearbeiten]

Die Drehzahl ist stufenlos einstellbar zwischen 0 und 2500 U/min. Der FPGA passt sich der aktuellen Drehzahl an und es ist ihm völlig egal wie schnell der Ventilator grade dreht. Jedoch macht ein schneller Ventilator viel Lärm. Empfehlung: 1000 U/min


Projektfortschritt[Bearbeiten | Quelltext bearbeiten]

  • Demnächst wird er ein Plexiglasgehäuse bekommen, damit wird er hoffentlich so leise, dass er im Dauerbetrieb laufen kann.


Borg ventilator 2.jpg BorgVentilator 27C3-1.jpg

Datei:BorgVentilator 27C3-2.jpg Datei:BorgVentilator 27C3-3.jpg

Probleme[Bearbeiten | Quelltext bearbeiten]

  • Die Letzte LED (ganz aussen) zeigt etwas falsches an.
  • Der Motor ist sehr Laut
  • gelegentlich zeigen sich leichte Ringe im Bild

Weiterentwicklung[Bearbeiten | Quelltext bearbeiten]

Hier sind einige Ideen, die vielleicht irgendwann mal einzug halten werden.

1) Eine LM32 CPU, die Animationen generiert, wie auf dem Farbborg
2) Einen sd Kartenslot für Animationen und Videos
3) Ein komfortables Bedieninterface  wurde bereits umgesetzt 
3b) OSD mit transparentem Hintergrund.
4) Ausgefallene LED's automatisch erkennen
5) Ein selbst Entwickeltes FPGA Board   wurde bereits umgesetzt
6) Taktrückgewinnung am Flügel   wurde bereits umgesetzt
7) Ein CAN Interface

Ausstellungen[Bearbeiten | Quelltext bearbeiten]

  • 12 / 2010 27C3 Berlin (Danke an Tesla, der in letzter Minute den Borg noch repariert hat.)
  • 05 / 2011 Netzwoche Bielefeld
  • 08 / 2011 Robot Unicorn Invasion
  • 08 / 2012 Ideenpark Essen
  • 12 / 2012 29C3 Hamburg

Videos[Bearbeiten | Quelltext bearbeiten]

Hier noch ein Paar Videos.

hier gibt es das Video


Video des Bildaufbaus

Farbiger animierter Würfel (slowmotion)

Farbiger animierter Würfel (echtzeit)

First Light

Ventilator spielt Video ab

Video 1 vom 27C3

Video 2 vom 27C3

Video 3 vom 27C3

Fotos vom 27C3