here's how to convert otherwise reasonable quality video into pixelated garbage and play it on a 2 color 8x8 led matrix, with no sound and only moderate sync.
- (1) 8x8 2 color led matrix
- (1) atmel avr atmega168
- (2) 74hc595 shift register
- (1) 3.3V regulator
- (1) a linux system
this is a mid level avr project, in that it assumes ( does not explain ) how to get a program onto a chip. it's pretty easy once you've done it though, so don't worry. to see how to actually load up a program, The Real Elliot has a nice introduction.
onto the show!
Step 1: Have linux, avr-gcc, python, mplayer...
you'll need linux to use this method, because i used common linuxy things in it. these things are, in no particular order:
1. avr-gcc: needed to make c code into avr code --> wiki stuff about it
2. python: a surprisingly nice programming language --> official site
3. python image library: used here to turn nice video into tiny specs of light without nearly as much hassle as that sounds like. --> pil
4. mplayer: used to turn video into stills --> mplayer
5. mencoder: (optional) change the frame rate of video --> same place as mplayer
i think that is all of the dependancies.
Step 2: Circuit overview
we use 2 of them, one for green and one for red.
the 74hc595 shift register is a simple latched device that converts serial 1's and 0's to parallel 1's and 0's. the 'don't clear' pin is held high while the serial data is clocked in, then the latch pin is set high triggering the output of the parallel data. dropping the 'don't clear' pin empties the output register and gets ready for fresh data.
all that means is the chip acts as a friendly robot that patiently waits until you have said 8 things while touching it on the shoulder. and then when you punch it in the stomach the robot says them all at once out of its 8 mouths. just slap it upside the head and it forgets, ready to go again.