Instructables

Watch futurama on an 8x8 pixel screen

tired of hi-def? (booo!!!)

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.

ingredients:
- (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!
 
Remove these adsRemove these ads by Signing Up

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

shift registers:

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.

skeedes5 months ago
Hi, can the grounds also be driven using any shift register? BTW nice pencilmanship!
cool but don't u think it's misssing a arduino
jensenr303 years ago
what a mess! looks fun!
ha. I agree, i was like.. hmm? then stomach punch - bam got it! Thanks. We need you to write a dictionary for everything that needs an explanation. :)
eshneto4 years ago
 Really great explanation. Keep on going!
ReCreate4 years ago
What movie/show is that?
arduinoe5 years ago
does the display actually flicker like that or is that just a similar refresh rate to the camarea
probably the camera
taz6995 years ago
Awesome explanation. I wish you where my robotics teacher in high school. lol
I wish I had a robotics teacher.
lol mee 2
is that a whippet?
lol ur the second person to ask. no its not mine but its an odd mix breed. i dont remember what it is. but i suppose it looks sort of like that due to the angle i took the photo from.
I only asked because I saw the other post ,and I thought it would be funny and/or annoying if I asked too. I looked up whippets, an they do look similar, but I don't think it is a whippet.
haha lol
Yeah, It worked!
sparr5 years ago
You could add shades of color by storing more than 1 bit of data per subpixel per frame. That 5ms delay for each line is plenty of time to do some pseudo-PWM. It would make the data much larger though.
how would you go about making the screen a 8x6. Meaning that it would be 8 matrix's wide and 6 matrix's tall. How do you interface all the matrix's to act as one big screen
To simply scale this design up, you would need 48 of the matrixes, obviously. The circuit would be laid out as if you had one long 384x8-pixel matrix, even though you would arrange them physically in a rectangle. You would need an additional shift register for each matrix, and all the shift registers would need to be chained together to cascade. And you would need a row driver capable of putting out enough current to drive 384 LEDs at once.

That is not a particularly feasible design. The largest display I have seen like that was 4x2 * 8x8, and that was stretching it. You would probably want to build a 8x1 * 8x8 display, then get more creative in stacking those to avoid ridiculous input pin counts.
sethj (author)  alex_arseneau7 years ago
do you mean 64x48 pixels? you could do that by adding a few more shift registers and adjusting the code to notice them.
darkman1116 years ago
if anyone wants to watch futurama and other shows like american dad the boondocks and robot chicken all seasons and episodes from these show u should try http://newamericandadepisodes.com/ also has funny clips and pics
You could always buy a Zoombox. It's a much easier way to get a giant, crappy picture.
I think he wants SMALL crappy picture ;)
Wash0ut7 years ago
actually, if you pay close attention during the beginning you can see how "futurama" fans out and at the end you can make out a small outline of the tube the guy is sliding through. Nothing great but still distinctive. But who care it's still Awsome!
sethj (author) 7 years ago
has anyone noticed the animated gif?
naught101 sethj7 years ago
yep. took a while, but that's classic.
Bluemetal7 years ago
This was the best, most graphical and easiest to understand explanation of a shift register. :-)
sethj (author)  Bluemetal7 years ago
:)
robonut6257 years ago
Cool! Great description of the '595! lol
royalestel7 years ago
This is pretty cool. If you add a transparent LCD screen in front of it, you can make your own HDR display! Actually, that's something I've been kicking around for a while.
garydion7 years ago
Glad to see someone else using these displays! Should you be interested in a simpler circuit I am using an ATmega8 and a single 74HC373 to drive this display. Less hardware, but probably not quite as bright as I'm multiplexing red/green. I'm working with a friend to create a JAVA app that streams animations to the micro resulting in a very similar effect. Once downloaded to flash, we'll end up with some animated "amulets", much like the Christmas ornaments seen here recently. Great instructable!
sethj (author)  garydion7 years ago
thanks, this is my first instructable. this site is pretty cool! i'm wondering, how are you going about the streaming? i had considered having my python script dump straight into rs232 serial and putting a max232 on the board, but haven't gotten around to it yet... usb would be cooler.
Jacob S.7 years ago
thats pretty cool, I love projects like this, you know, with no practical usage. I didn't know they sold led matrixes like that, I'll have to get a few peace out
Should've done it for an intro with less happening in it. Otherwise, pretty good.
sethj (author)  inevitable_chaos7 years ago
thanks! i had wanted to do something easy like Lost with its big zooming "LOST" but i don't have any dvds of it. the code and everything is included here so if anyone wants to make a data set of something but not build the device, i can try try and load it onto mine and post the video... won't have sound though :)
PetervG7 years ago
It seems to me like the 8x8 matrix playing the Futurama intro was just flashing random things.
sethj (author)  PetervG7 years ago
yeah, it does look kind of random. looking at the code, though, you can see that it is in fact a direct resampling of the show...
Pro

Get More Out of Instructables

Already have an Account?

close

PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!