Hello, I was wondering if it's possible to use an Arduino to generate a digital image onto a tv screen. I've seen the projects others have done with TV interfaces, but all they seem to have done so far is generate test patterns. Is the Arduino fast enough to generate still NTSC images?
See this thread:
Don't know if you referring to the tellymate.
Just in case you haven't seen it:
http://dshop.ch/osc/product_info.php?cPath=23_25&products_id=109313
Is the Arduino fast enough to generate still NTSC images?
Simply without any extra hardware no. Where are you going to store this image? Look at the memory requirement then look what the arduino has. Add that to the speed you can output stuff and it starts to look silly.
With extra hardware like a shift register you can get some patterns but for images you need extra RAM as well. Also you need some memory scanning circuits and a digital time base. Look at dual ported RAM to allow it to be accessed by the arduino and video scanning circuits.
Finally to encode colour on the NTSC (Never Twice the Same Colour) system you need a modulator chip and colour sub carrier generator.
So what is the arduino going to do in this setup once you have it?
It's part of an interactive new media art project. The arduino displays the image of an eye on a small monochrome tv screen, which I've taken the case off of and mounted onto a tripod with some wood. Using several IR sensors, the arduino detects the position of viewers in front of it and the eye follows the viewers around. Since the tv is monochrome, I don't need to generate color images. I was going to write a processing program which could take the images and convert them into two tone black and white images, and output them as a couple of text files. 14k doesn't seem like enough memory to hold at least 4 images worth of data.
14k doesn't seem like enough memory to hold at least 4 images worth of data.
That 14K isn't accessible as storage to your program anyway, its flash memory, not RAM.
Some arithmetic: the visible part of a CCIR/PAL standard definition TV image is roughly 720 pixels wide and 576 lines high, and is refreshed 25 times a second (two 720 * 288 fields at 50Hz).
Even using only 8 bit samples per pixel, that's 414720 bytes per image, or about 10 Mbytes per second.
NTSC/RS170 is a faster update rate, but a lower spatial resolution, so the numbers are roughly the same.
Using massive undersampling to maybe 8 pixels by 8 lines is only just within the capabilities of the Arduino.
[edit]OK, re-read it - your images are fixed, and could go in program memory, but for a 168 would be considerably smaller than 14K, so very buch less than 3.5K bytes per image. I'm not sure you could get the data out of flash fast enough to refresh a screen, even if you had only one bit per pixel.[/edit]