Led Matrix: Unterschied zwischen den Versionen
linked/embedded partlist as google spreadsheet...but due to a stupid bug in mediawiki the iframe doesn't work |
Benko (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(33 dazwischenliegende Versionen von 10 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
=== WTF? === | |||
[[Bild:Matrix_frontside.jpeg|thumb|200px|hypnomatrix is hypnotizing]] | |||
[[Bild:Matrix_backside.jpeg|thumb|200px|all hail to the hypnomatrix]] | |||
For the LED Matrix we wanted to build on the [[CCCamp2007]] we decided to design a GNU LEDMatrix Controller/Driver setup. It consists of two parts the FPGA board and a several driver electronics boards. Now almost one year later we're finally done! | |||
''see also:'' [http://www.flickr.com/photos/1000points/2509802438/ metalab led matrix - demo "die ewigkeit schmerzt"](Video) | |||
== Animations == | |||
Two Animations for the linuxwochen: [[Bild:Metalabanim.zip]] | |||
<div> | |||
<div style='float:left'>{{#ev:youtube|pHdAvMrkO0U}}</div> | |||
</div> | |||
<div style='clear:both'></div> | |||
== Status == | |||
Everything is soldered and it works. We can stream videos via the parallel interface of the via board to the matrix with 72fps :) | |||
* main svn: https://whatever.metalab.at/projects/FPGAMatrix/ | |||
* cliffords mplayer patch: http://svn.clifford.at/handicraft/2008/metaleds/ | |||
== Usage examples == | |||
clifford/mplayer/mplayer-bin -vo metaleds:/dev/lp0 -framedrop -vf scale -zoom -x 72 -y 48 test.avi | |||
netcat -l -p 7000 > /dev/lp0 | |||
Format is: 72x48 bytes of pixeldata (ranging from 0x00 to 0x0F) followed by a single 0x80 (to flip framebuffers) | |||
== Real-time access == | |||
=== Raw protocol === | |||
72x48 = 3456 octets of pixel data followed by a terminating 0x80 octet. | |||
Each pixel data octet represents one pixel's brightness, ranging from 0 (0x00, off) to 15 (0x0F, brightest). | |||
The pixels start at the upper left corner and are numbered in [http://en.wikipedia.org/wiki/Row-major_order row-major order] (see the diagram below). | |||
All output is double-buffered on the fpga, so you have to send a 0x80 after the pixel data to flip the frame buffers. | |||
<pre> | |||
________________________ | |||
| 1 2 3 ... 72| | |||
|73 50 ... 144| | |||
|. | | |||
|. | | |||
|... 3456| | |||
|________________________| | |||
</pre> | |||
=== Using with C/C++ === | |||
You can use the metalib library from here; it comes with a couple of demos: | |||
https://whatever.metalab.at/projects/FPGAMatrix/client/ | |||
=== Using with Python === | |||
You can use functions like getpixel, setpixel, submit with the python classes in https://whatever.metalab.at/projects/FPGAMatrix/python/ | |||
It supports the (now encouraged) way of using TCP. A example (Game of Life) is available. | |||
== Specs == | |||
72x48 pixels totals 3456 blue leds | |||
54 column driver modules (current source). | |||
1 row driver mudule (current sink) | |||
The 8 rows are each connected to a powermosfet and are driven to ground one at a time (so the matrix is 8times multiplexed). | |||
For driving the mosfets we use two Quad-mosfetdriver which in turn are controlled by a 8bit shifting register. | |||
For the columns we take almost the same components except that we have to source current. The mosfets can source up to 250mA but we limit it to about 20mA. | |||
=== Used ICs === | |||
* [http://www.onsemi.com/PowerSolutions/product.do?id=NID5001N NID5001N] MOSFETS for the row driver | |||
* [http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1335&dDocName=en010678 TC4467] used as column driver | |||
* 74HC595 shifting registers | |||
== New MiniITX Board == | |||
VIA EPIA-M 1000G | |||
1 Ghz | |||
1 Gig RAM | |||
MPEG2 Decoderchipset | |||
[[Kategorie:WhateverLab]] | |||
[[Kategorie:Projekte]] |