Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Video display with Arduino

Status
Not open for further replies.

Gola4u

New Member
Hi friends,
I like to make a project where i can use arduino map every video frame data of video file(avi, mp4,flv etc...) on my pc onto an RGB LED display board. I prefer arduino software to send the data in three channels (i.e. RGB) of 8 bits each simultaneously. Data would be serially sent to arduino through the USB port. The 24 bit data will be delivered to the display board by multiplexing. My only problem is how to get the code to convert and deliver the data to arduino. Any code samples or ideas?
 
Are you aware that you are not going to get high-enough data-rates to convert and display video with arduino.

Why don't you write a PC program that makes the conversion and sends the data to the display? Why you want bottle neck like arduino in between?
 
Thanks very much misterT. As I've pointed earlier, "My only
problem is how to get the code to convert and deliver the data to arduino" or the USB port if I should write the program in another language like c , java, python, ruby etc... then implement the display system with shift registers, multiplexers and other discrete components. I need help with the coding in any programing language except c because c is a bit difficult for me.
 
I've also found that processing programing language will be very handy for the task. Additional ideas are warmly welcome :)
 
that's a great suggestion :)
I've also found that processing programing language will be very handy for the task. Additional ideas are warmly welcome :)
 
Are you aware that you are not going to get high-enough data-rates to convert and display video with arduino.

Why don't you write a PC program that makes the conversion and sends the data to the display? Why you want bottle neck like arduino in between?

Thanks very much. The Arduino reference specifies that the Serial.begin(speed) "Sets the data rate in bits per second (baud) for serial data transmission. For communicating with the computer, use one of these rates: 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, or 115200. You can, however, specify other rates " Is 115200 bits per second not high enough data rate to convert and display video?
I want to know because even though processing is an excellent tool for the task, i can't upload a processing sketch to a micro controller(preferably, the AVR series) and run another code in processing to implement a customized protocol for the display system.
 
Could you clear that up a little more?

What kind of data conversion is done on PC?
What kind of data is sent from PC to arduino?
What kind of data conversion is done in arduino?
Does the arduino send the final data to the display? How this is done?
What is the resolution of the display?

I'm quite confused about the overall system you are trying to build..
 
OK, to answer them in order, here is a stripdown:

1. The data is video frame data (series of still pictures) which will be read from a file on the PC and converted into bytes (24 bits specifically), 8 bits for each Red, Green and Blue components of the video colors. NOTE: 8 bits x 3 = 24 bits

2. These bytes(8 bits for Red color, 8 bits for Green color, 8 bits for Blue color) are sent serially to Arduino through the usb port 24 bits at a time.
3.Arduino will ONLY separate the received 24-bit data into three groups of 8 bits each representing RGB component of the video frame. Arduino will push these three individual groups of bits to three separate shift registers (74HC595 shift register is preffered)

4. Arduino will not send the final data to the display. The final data will be sent to the display by demultiplexers(such as the 74HC154 demultiplexer). The demultiplexers take the data from the shift registers and convert it to many digital output which will be distributed to RGB LED display board (RGB LED arranged in a grid pattern)

5. I'm considering 96x64 resolution display.
 
OK, to answer them in order, here is a stripdown:

1. The data is video frame data (series of still pictures) which will be read from a file on the PC and converted into bytes (24 bits specifically), 8 bits for each Red, Green and Blue components of the video colors. NOTE: 8 bits x 3 = 24 bits

2. These bytes(8 bits for Red color, 8 bits for Green color, 8 bits for Blue color) are sent serially to Arduino through the usb port 24 bits at a time.
3.Arduino will ONLY separate the received 24-bit data into three groups of 8 bits each representing RGB component of the video frame. Arduino will push these three individual groups of bits to three separate shift registers (74HC595 shift register is preffered)

4. Arduino will not send the final data to the display. The final data will be sent to the display by demultiplexers(such as the 74HC154 demultiplexer). The demultiplexers take the data from the shift registers and convert it to many digital output which will be distributed to RGB LED display board (RGB LED arranged in a grid pattern)

5. I'm considering 96x64 resolution display.
 
8 bits for each Red, Green and Blue components of the video colors. NOTE: 8 bits x 3 = 24 bits
I'm considering 96x64 resolution display.

So, one frame contains 96*64*24 = 147456 bits of information (not including UART stop/start/parity bits). Sending this data to Arduino at 115200 baud takes over a second (theoretically).. ~1.6 seconds maybe. In practice it takes over two seconds easily.
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top