RGB-LED-Matrix: Unterschied zwischen den Versionen
aus Metalab Wiki, dem offenen Zentrum für meta-disziplinäre Magier und technisch-kreative Enthusiasten.
Zur Navigation springenZur Suche springenPk (Diskussion | Beiträge) (Doku init) |
M68k (Diskussion | Beiträge) (// added pic) |
||
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 2: | Zeile 2: | ||
das Metalab besitzt nun eine assemblierte '''RGB-LED-Matrix'''.<br /> | das Metalab besitzt nun eine assemblierte '''RGB-LED-Matrix'''.<br /> | ||
− | die Firmware die drauf ist | + | die Firmware die drauf ist, findet sich unter https://github.com/Metalab/RGBmatrix (Teensy) |
+ | [[Datei:rgb_led_matrix.jpg|thumb|left]] | ||
Was tuts: | Was tuts: | ||
− | * Matrix | + | * Matrix an ein PC Netzteil anstecken |
− | * | + | * USB Kabel an Datenverarbeitungsanlage anstecken |
− | * "FNORD" == start of frame | + | * <strike>"FNORD" == start of frame</strike> 0x1 (siehe [[Blinkenschild]]) |
* 24*24*3 Byte Daten | * 24*24*3 Byte Daten | ||
* win. | * win. | ||
Zeile 14: | Zeile 15: | ||
in der Praxis schaut das so aus: | in der Praxis schaut das so aus: | ||
− | |||
− | |||
# set baudrate on tty | # set baudrate on tty | ||
sudo stty -F /dev/ttyACM0 9600 | sudo stty -F /dev/ttyACM0 9600 | ||
+ | TODO: Baudrate sollte in der Firmware noch hochgedreht werden auf 115200 | ||
+ | |||
+ | '''Shell:''' | ||
# send new frame | # send new frame | ||
echo "FNORD" > /dev/ttyACM0 | echo "FNORD" > /dev/ttyACM0 | ||
Zeile 26: | Zeile 28: | ||
head -c $((24*24*3)) /dev/urandom > /dev/ttyACM0 | head -c $((24*24*3)) /dev/urandom > /dev/ttyACM0 | ||
+ | '''Java:'''<br/> | ||
+ | Why would you do that? For the glory of Satan of course!<br/> | ||
+ | Get it at https://github.com/sixtyeight/fnord-matrix<br/> | ||
+ | |||
+ | <nowiki> | ||
+ | package at.metalab.fun.ledmatrix; | ||
+ | |||
+ | import java.util.Random; | ||
+ | |||
+ | public class RandomPixels extends AbstractExample { | ||
+ | private final static Random RANDOM = new Random(System.currentTimeMillis()); | ||
+ | |||
+ | public static void main(String[] args) throws Exception { | ||
+ | new RandomPixels().execute(args); | ||
+ | } | ||
+ | |||
+ | @Override | ||
+ | protected void init(String[] args) throws Exception { | ||
+ | openLedMatrix("127.0.0.1", 1337); // connect to the daemon | ||
+ | } | ||
+ | |||
+ | @Override | ||
+ | protected void loop() throws Exception { | ||
+ | Pixel pixel; | ||
+ | for (int x = 0; x < 24; x++) { | ||
+ | for (int y = 0; y < 24; y++) { | ||
+ | pixel = frame[x][y]; | ||
+ | pixel.r = RANDOM.nextInt(256); | ||
+ | pixel.g = RANDOM.nextInt(256); | ||
+ | pixel.b = RANDOM.nextInt(256); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | display(); // display the frame | ||
+ | quit(); // exit gracefully | ||
+ | } | ||
+ | } | ||
+ | </nowiki> | ||
viel Spass damit. | viel Spass damit. | ||
− | ich glaub [[User:Amir|Amir]] | + | ich glaub [[User:Amir|Amir]] und [[User:m68k|m68k]] basteln da grade aktiv dran ;) |
− | |||
<nowiki>:*</nowiki> | <nowiki>:*</nowiki> | ||
[[User:Overflo|-flo]] <small>[Mon, 14 Jan 2013]</small> | [[User:Overflo|-flo]] <small>[Mon, 14 Jan 2013]</small> | ||
− | |||
− | |||
[[Kategorie:Projekte]] | [[Kategorie:Projekte]] |
Aktuelle Version vom 27. April 2014, 20:22 Uhr
hi.
das Metalab besitzt nun eine assemblierte RGB-LED-Matrix.
die Firmware die drauf ist, findet sich unter https://github.com/Metalab/RGBmatrix (Teensy)
Was tuts:
- Matrix an ein PC Netzteil anstecken
- USB Kabel an Datenverarbeitungsanlage anstecken
"FNORD" == start of frame0x1 (siehe Blinkenschild)- 24*24*3 Byte Daten
- win.
in der Praxis schaut das so aus:
# set baudrate on tty sudo stty -F /dev/ttyACM0 9600
TODO: Baudrate sollte in der Firmware noch hochgedreht werden auf 115200
Shell:
# send new frame echo "FNORD" > /dev/ttyACM0
# send framedata head -c $((24*24*3)) /dev/urandom > /dev/ttyACM0
Java:
Why would you do that? For the glory of Satan of course!
Get it at https://github.com/sixtyeight/fnord-matrix
package at.metalab.fun.ledmatrix; import java.util.Random; public class RandomPixels extends AbstractExample { private final static Random RANDOM = new Random(System.currentTimeMillis()); public static void main(String[] args) throws Exception { new RandomPixels().execute(args); } @Override protected void init(String[] args) throws Exception { openLedMatrix("127.0.0.1", 1337); // connect to the daemon } @Override protected void loop() throws Exception { Pixel pixel; for (int x = 0; x < 24; x++) { for (int y = 0; y < 24; y++) { pixel = frame[x][y]; pixel.r = RANDOM.nextInt(256); pixel.g = RANDOM.nextInt(256); pixel.b = RANDOM.nextInt(256); } } display(); // display the frame quit(); // exit gracefully } }
viel Spass damit.
ich glaub Amir und m68k basteln da grade aktiv dran ;)
:* -flo [Mon, 14 Jan 2013]