I am working on a project of making a Smart Robot Car using Arduino UNO, L298N Motor Driver Module, ESP8266 Esp-01 WiFi module and RemoteXY app for controlling via smartphone over WiFi.

My question is: If I want to get the live feed of the view that my robot is seeing, using a webcam (say Logitech HD Webcam C270) using a USB to serial converter module or whatsoever, how can I make it possible? Please let me know if there is any special shield or any processing board needed. Help with coding and the conversion of Video data into the transmittable Data for Arduino and help in making that kind of data which can be read by the Device (e.g. Smartphone) is also needed and will be appreciable.

It may be mentioned here that I am a beginner and I am currently learning through YouTube and Blog Tutorials. I am totally dependent on StackExchange like forums for the help in my projects either whenever I am making a mistake or when I want to try and learn something new or both. Please Help me while keeping these things in your mind also.

Please suggest me some good books on this branch of the subject that could make me able to do these kinds of things on my own.

Thank You So Much in advance!

(P.S.: If you feel this question should be downvoted then, please firstly let me know in the comments section why do you feel like this before downvoting, I may delete my question earlier, cause I am concerned about my reputation here.)

  • I've seen some products that working similarly, on Banggood. For example see this one . In this product, a Camera is attached to the robot, which gives the live feed to the user or controller on his smart device. I am also willing to make something similar but I don't know how to communicate between Arduino and a WebCam Live. Thanks in advance! – Naved THE Sheikh Mar 30 '19 at 16:37
  • 1
    The UNO can't handle that kind of bandwidth. Unless you are okay with 1 frame per 10 seconds. USB would also be problematic. I think you'd be better of with something like a Raspberry Pi for the USB Webcam. Or the ESP with some specific camera module . Only use the UNO to drive the motors. – Gerben Mar 30 '19 at 16:56
  • @Gerben have you gone through the link I had commented? If yes then, could you please tell me how is it working? If No, then please check it once and then make me understand that phenomenon. Thanks! – Naved THE Sheikh Mar 30 '19 at 17:28
  • 2
    The link shows a robot with an independent wifi enabled webcam. There is no interaction with the Arduino there, other that the cam sits on the robot – chrisl Mar 30 '19 at 19:21
  • @chrisl please go to this link and see how is he connecting his computer only from one wireless network and running both (the camera and the robot) together. Then, explain me what's going on there. Thanks in advance! – Naved THE Sheikh Mar 30 '19 at 20:01

The Uno is a very limited platform, perhaps surprisingly, given its wide range of abilities and built-in hardware features. The two most glaring limitations for you application are its 16MHz clock speed (relative to modern desktop processors) and thus its bandwidth, and it's non-expandable 2KBytes of RAM.

Image processing would be right out the window, and even merely transmitting a raw image would be pushing its bandwidth limits, for any reasonable frame-size with even a very modest frame-rate.

Example: For a 100x100 8-bit frame at 15 frames/sec, a 16MHz processor (16M instructions per sec) would have (16000000 / (100x100x15)) = ~107 clocks (instructions) available to process each byte. You'd need some of those to either poll for next-byte-ready or to enter and exit an Interrupt Service Routine to process the byte. You're probably up to around 20 clocks (at a wild guess), to do nothing more than a bit of wire can do! Maybe you could do some trivial manipulation of each byte on the way through (say, brightness manipulation) with a few more clocks and you're already using a significant fraction of the processor just for that. And there isn't enough memory to be able to process a region of the image. And if you could, you run out of processor time before you could do much .... The problem just cascades as you approach the limits of speed and memory-space.

| improve this answer | |

As rightly pointed out by others and @JRobert, its very difficult or nearly impossible to live stream a video/audio through Arduino Uno which uses Atmega328 micro-controller which is mostly used for simple embedded processing such as sensor reading, serial tr/rx, i2c like operations.

But there are some workarounds which can make it possible by using some SPI camera and some Bluetooth shield or ESP8266 together.

Take a look at this project which can be helpful to you.


But remember, don't expect a very good quality or higher frame-rate video stream. Also it might only send video, i.e. picture frames and not audio.

Second solutions is:

If you just want your robot to get equipped with a camera which need to be live streamed back to your android/ios phone with good quality AV then the best way to do this is by a standard method used by most RC toys, UAV or robots.

What you need is:

1) 5.8Ghz AV transmitter

  • A Mini FPV Camera NTSC/PAL with inbuilt transmitter or
  • FPV camera and a 5.8G 600mW Wireless Audio/Video Transmitter for FPV

with above options you can get a possible range of 1 Km to 5Km or more.

2) second thing you need is receiver section

  • OTG 5.8G 150CH Full Channel FPV Receiver For Android and iOS is best for this. This above module will help you to receive AV from FPV camera/module to your android.

I'll not give you direct link to the products as that wont be a good idea here on SE. instead you can search for them on google and choose as per your requirement. most of these modules will be less than 2000 INR or 30$

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.