Update: Using grayscale image to get faster framerate
HTML-код
- Опубликовано: 6 сен 2024
- I added grayscale support to my Arduino LiveOV7670 project.
It is faster since now there is less information to transfer over UART.
You have to update both the LiveOV7670 and ArduinoImageCapture projects from Github.
The original tutorial video for this project:
• OV7670 Camera Module w...
LiveOV7670 project (Arduino):
github.com/ind...
Arduino image capture project (Java):
github.com/ind...
Buy from AliExpress.com:
OV7670: s.click.aliexp...
Uno clone: s.click.aliexp...
Breadboard: s.click.aliexpr...
Jumper Wires: s.click.aliexpr...
Disclosure: Bear in mind that some of the links in this post are affiliate links and if you go through them to make a purchase I will earn a commission. Keep in mind that I link these companies and their products because of their quality and not because of the commission I receive from your purchases. The decision is yours, and whether or not you decide to buy something is completely up to you.
Music from RUclips audio library.
excuse me sir... if I want to make the trensfer data using NRF24L01, is it possible with the 2.4 Ghz radio transchiever? thanks a lot
Hey. It should be possible, but I haven't tried it myself.
@@IndrekL okay sir thanks a lot👍👍👍
hello, bro I also had the same question I have a non-fifo version of ov7670 i wanted to use it for my DIY drone. I didn't want to buy another expensive unit for this so i was searching for a way to transfer it via nrf24l01 which i used as a receiver and transmitter for my drone. Do you have any luck with this?
@@IndrekL Can you give me some pointers on where to start off this sir? My goal is to be able to transmit image data( if possible live) from one nrf24l01 (on drone) to the base station (nrf24l01). and reconstruct the image display it on tft display. or are there any other better ways to do it ?.
And I am using esp32 wroom for this.
have you tried this on an stm32-f103 such as the blue-pill?
you may find much better frame rate without sacrificing the colour?
Hey!
Yes, I have tried with the Blue Pill module. I got it working at 15fps.
With Arduino, I could cheat a little. The camera and the Arduino are in perfect sync. This means that I don't have to check the pixel clock at all. I can just blindly read incoming pixels.
But with the Blue Pill module, I couldn't get it to sync up. So I needed to check the pixel clock for every pixel read which slowed it down a lot.
So theoretically 30 fps should be possible with the Blue Pill module and the small screen, but I couldn't do it.
This will also increase the framerate on the TFT screen?
No, since 10fps is the maximum I could get with 8Mhz input clock that the Arduino was able to provide. You can get 20fps if you use the WAVGAT nano. It is mostly Atmel compatible, but it can run at 32Mhz.
Okey, thank you very much! I will buy two or three WAVGAT nanos and do this project.
Awesome videos! Keep up the good work.
I have a question, is there a way to use this library to send info to an Android phone via Bluetooth?
I tried getting at least one monochrome picture and getting the pixel brightness values from the serial monitor. However, the values showed random pictures and non made sense.
Can you please help? I am stuck and don't know how to implement it.
Thank you :)
In this example I am sending picture over serial. It should be possible since most Bluetooth and Wifi modules also use serial.
I am currently trying to get it to work with a wifi module.
What exactly did you try to do? Did you connect it with USB to Android and tried to write your own program to read the serial data?
@@IndrekL No I tried sending it to normal serial on Arduino IDE and then used a Java program I made that arranges pixels in a way to make a picture.
I did modify your code a bit. I changed the line that sends a char from a byte and make it send a value instead, I don't think that can be the issue possibly?
@@mouayedg1 Sending characters is much slower because it takes a lot more bytes. You have to lower frame rate to compensate.
For example grey scale value for white pixel is 255. My example sends one byte with value 255. If you want to send it as characters (that can be displayed by Arduino Terminal) then it is three bytes '2', '5', '5' + end of line symbol. So four bytes in total instead of one.
@@IndrekL Okay this makes sense.
I will try modifiying my code again Thanks :)