1. 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.
    Dismiss Notice

Video display with Arduino

Discussion in 'Arduino' started by Gola4u, Jul 20, 2013.

  1. Gola4u

    Gola4u New Member

    Joined:
    Nov 24, 2012
    Messages:
    14
    Likes:
    0
    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?
     
  2. misterT

    misterT Well-Known Member Most Helpful Member

    Joined:
    Apr 19, 2010
    Messages:
    2,697
    Likes:
    368
    Location:
    Finland
    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?
     
  3. Gola4u

    Gola4u New Member

    Joined:
    Nov 24, 2012
    Messages:
    14
    Likes:
    0
    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.
     
  4. dave

    Dave New Member

    Joined:
    Jan 12, 1997
    Messages:
    -
    Likes:
    0


     
  5. misterT

    misterT Well-Known Member Most Helpful Member

    Joined:
    Apr 19, 2010
    Messages:
    2,697
    Likes:
    368
    Location:
    Finland

    Have you googled "reading avi video with java" etc. I got many results. Open source libraries etc. Including this tutorial: http://www.youtube.com/watch?v=qEs5Hh4l5hY
     
  6. misterT

    misterT Well-Known Member Most Helpful Member

    Joined:
    Apr 19, 2010
    Messages:
    2,697
    Likes:
    368
    Location:
    Finland
  7. Gola4u

    Gola4u New Member

    Joined:
    Nov 24, 2012
    Messages:
    14
    Likes:
    0
    I've also found that processing programing language will be very handy for the task. Additional ideas are warmly welcome :)
     
  8. Gola4u

    Gola4u New Member

    Joined:
    Nov 24, 2012
    Messages:
    14
    Likes:
    0
    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 :)
     
  9. Gola4u

    Gola4u New Member

    Joined:
    Nov 24, 2012
    Messages:
    14
    Likes:
    0
    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.
     
  10. misterT

    misterT Well-Known Member Most Helpful Member

    Joined:
    Apr 19, 2010
    Messages:
    2,697
    Likes:
    368
    Location:
    Finland
    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..
     
  11. Gola4u

    Gola4u New Member

    Joined:
    Nov 24, 2012
    Messages:
    14
    Likes:
    0
    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.
     
  12. Gola4u

    Gola4u New Member

    Joined:
    Nov 24, 2012
    Messages:
    14
    Likes:
    0
    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.
     
  13. misterT

    misterT Well-Known Member Most Helpful Member

    Joined:
    Apr 19, 2010
    Messages:
    2,697
    Likes:
    368
    Location:
    Finland
    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.
     

Share This Page