Help with a LOW res 30 (or more) gray scale tv driver
LewisD
Posts: 29
I am trying to display a low (18x18 pixel) resolution image.
I acquire the image from an optical mouse sensor adns-2620. ($1.50)
With the low resolution I would think the timing and memory requirement would be easer
but I would like to get 30 or more gray scale.
The ands-2620 outputs 0-63 gray scale.
Having a high level of gray scale will help me focus the image with a lens as well as look KOOL.
I have no experience with hacking a TV driver.
I believe this will require more that a 3 pin DAC ,so 5 or 6 pin are OK
This is my MATRIX display of my finger.
Then pixel data is shifted up the ASCII table by 48 so I can"see" all of the data.
( What? You don't see it? It right there! See?)
This is an LED flashlight at ~ 12" .
I acquire the image from an optical mouse sensor adns-2620. ($1.50)
With the low resolution I would think the timing and memory requirement would be easer
but I would like to get 30 or more gray scale.
The ands-2620 outputs 0-63 gray scale.
Having a high level of gray scale will help me focus the image with a lens as well as look KOOL.
I have no experience with hacking a TV driver.
I believe this will require more that a 3 pin DAC ,so 5 or 6 pin are OK
This is my MATRIX display of my finger.
Then pixel data is shifted up the ASCII table by 48 so I can"see" all of the data.
( What? You don't see it? It right there! See?)
Co=00 St=41 DY=04 DX=06 SQ=0E MaxP=35 MinP=0D PS=61 SU=0C SL=3A FP=C2 Tick=0A81 JLORTWZ]]]ZWRNIEA= KMORUY^a_^ZWSOKFB= LMOSW[noparse][[/noparse]`ba^[noparse][[/noparse]XUQMGB= LNQVZ^aba_][noparse][[/noparse]WSNHC= MOSWZ]`bba`]YTOIC> NOTWZ]acdca^ZUOKE? ORSVY]aeeca]ZUQMG@ NPSVZ^cddb`^[noparse][[/noparse]WSOHC NPSW[noparse][[/noparse]_cccb`_\YUOJE MOSWZ]_bbcba_ZVRNI LORUWZZaccdb_\YVSO KNORTW[noparse][[/noparse]^bcb`^][noparse][[/noparse]YWS JLNQTW[noparse][[/noparse]^aa`_^^\[noparse][[/noparse]WS JLNQUX[noparse][[/noparse]]^_____\ZWT ILORTVY[noparse][[/noparse]]^_`_^]ZYW ILNQRUVY]____][noparse][[/noparse][noparse][[/noparse][noparse][[/noparse]Z JLMOQSVY\^^_]]]^][noparse][[/noparse] IJKMOSUWZ[noparse][[/noparse]\]]^__^]*
This is an LED flashlight at ~ 12" .
Co=00 St=41 DY=00 DX=00 SQ=46 MaxP=22 MinP=02 PS=2A SU=31 SL=EB FP=C2 Tick=055D 322333344433332222 223344678987543222 333469=BDEC?;75432 3445:BHKMNMLF>9643 3459CJMOOOOOMJ?953 446?IMNOPOOOONJ=75 459EKNNOPPPOOOMC95 46>JMOOQQQQQQONG:6 47DLOPRRRSRRRQOH;6 59HNQRSSSSSSRRPE:6 59IORSQUTTUSSROA95 58GORSTTTTTSRQJ=75 46>KORSSTSSSQNB:53 346?IMPQQRQQNG<733 3336;DIKLMLJF>7432 333347:?BCB?;74322 333333357776432222 232323222333222222*
Comments
See the templates linked in my sig for a simple video driver which you can modify. I'd recommend starting with a simple 8 level output using normal TV mode and then open it up to the full width.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Composite NTSC sprite driver: Forum
NTSC & PAL driver templates: ObEx Forum
OnePinTVText driver: ObEx Forum
-Phil
How big of a screen area will the image be displayed in? Is it pixel for pixel, or 2x2, 4x4, etc...?
The reason I'm asking, is with a few custom characters, my text driver can do this task nicely --if dithering to simulate greys is acceptable. Done this way, using say 64 column screen, the image would occupy 1/4 of the screen display area, or so.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Propeller Wiki: Share the coolness!
Chat in real time with other Propellerheads on IRC #propeller @ freenode.net
Safety Tip: Life is as good as YOU think it is!
I think dithering would give me a false sense of the edge of my pixels ,
making it hard to focus with a lens. but I may give it a try if I cant figure out a TV driver hack.
Eric,
I will read through you code and see if I can grasp it. Thanks
Phil,
I like "simplest way".
Could you elaborate on how I would sync the cog with the TV driver.
The "DUTY modulating the MSB" with a 220pf cap is acting like a one bit DAC , yes?
Thanks for you help
Lewis
Post Edited (LewisD) : 10/16/2009 5:46:49 PM GMT
You will then have to measure the amount of time the pins stay low to determine what kind of sync (vertical, horizontal) it is. Once you've determined that it's a vertical sync, it's just a matter of counting horizontal syncs until you reach the scan line you want to start on and begin generating gray-level output.
Exactly. By taking advantage of this capability in the counters, you free the program for getting the next pixel ready and get a higher (i.e. easier to filter) DUTY rate than you could using software alone.
-Phil
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Style and grace : Nil point
and more resistors on the VGA connection into the TV video could possibly make a 64 level DAC.
And there are separate pins on it for SYNC too.
I'm not sure if modern TVs would turn blue on this but very simple SYNC from VGA mode
(without those extra pulse details specified in NTSC VSYNC) should work, since it's even possible
to make a simple audio-oscilloscope video signal effect (rotated 90 degrees) with just a few LM555 timers
to make simple syncs and wiggle a PONG-like vertical line with incoming audio.
(That scope effect is so simple I've often added something like it to several realtime audio apps for debugging.)
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Composite NTSC sprite driver: Forum
NTSC & PAL driver templates: ObEx Forum
OnePinTVText driver: ObEx Forum