I am trying to set up a 4 cameras which can take videos/photos at the press of a button.

Things which I will need:

  1. 4 micro cameras(the ones which are very small in size) with good shutter speed and sensor. The cameras will often travel at 20 to 30mph. So I guess good shutter speed is needed.
  2. 2 Push buttons. One will start and stop taking pictures really fast, and the other will do the same for video
  3. Battery which can last atleast taking 5 images/1 min of video recording.
  4. 4 Microsd cards and the connectors. Is there anyway I would be able to set up a common adapter to all these cards, so when connected to a computer it will show up as 4 different drives?

So I think I can make the set up using this: http://www.arducam.com/ But can it take images really fast. I couldn't see any information regarding this. It should be able to take like 4 images per second. Also it would be awesome if this set up can somehow support taking videos.

Now another thing I need is a push button which will start taking the photos and stop taking it.

This whole thing should operate from a battery.

Mostly I want to know is the list of products which will work or the specs to look for when choosing the products. Also I would like to know if this is the best way to go for a project like this. This thing will be more like a toy, so I don't want to use really expensive parts for this. Also I don't want a gopro. I want to make this whole set up myself.

Let me know if you need to know more details about this.

  • 1
    Arduino's are way underpowered for these kinds of applications. Might I suggest something like a Raspberry Pi with Multi Camera Adapter – Gerben Dec 30 '15 at 9:03
  • As it stands, I think this question is too broad to get good answers. At the very least you need to be clear about whether you are planning to use the Arduino as a controller for the cameras or if you're hoping to do the image processing yourself. – dlu Dec 31 '15 at 6:00
  • I want to connect 4 cameras and control it by using a single button to start and stop image capturing. It needs to take like 4 images per second. I want the arduino board because I would like to enable WiFi functionality and small webserver to access the images. What cameras I should use to capture the images as Arduino board can't process the images. Do you have any suggestions? @Gerben – defiant Dec 31 '15 at 8:27
  • 1
    That will never work on a single arduino uno. Webserver, WiFi, images capture, image storage. Why do you insist on using an arduino? – Gerben Dec 31 '15 at 9:47
  • Now that I think about it, I think I will use Pi instead of arduino. The thing is Pi is bigger and it will need a bigger power source. I thought of using arduino because of these reasons. – defiant Jan 1 '16 at 14:58

Arduinos and Cameras do not mix well at all. It's all down to the sheer quantity of data involved in pictures.

Take for instance a typical VGA image - 640x480 pixels at 24-bit (3 byte) colour depth. One single picture requires 640x480x3 = 921600 bytes just to store it.

Add to that the fact that most small cameras include hardware JPEG compression which the Arduino really has no hope of being able to handle, and you just can't do anything with it.

Most camera modules use a system called CSI-3 (Camera Serial Interface version 3) for streaming the raw data from the CCD elements into the target. That allows for high speed data transfer of the whole frame at a speed that is able to support video. If you think about video as 25 frames per second, and raw data, that means that the data is being transferred from the CCD elements in total at arouns 22 MiB/s - there is absolutely no way that an Arduino can deal with that kind of data. So cameras that attach to an Arduino have their own controller chip that compresses the image to JPEG and streams it out through a much slower interface - typically RS232. All the Arduino can then do is tell the camera "Take a picture for me" at which point an image is captured and compressed, and then the Arduino receives the JPEG data through serial (slowly) and stores it on an SD card (also slowly). It can't do anything else with it.

To crunch those numbers - assume that the compressed VGA image from the camera's processor chip is 100,000 bytes (I took a typical photo, scaled it to 640x480 and saved it with 90% JPEG compression and it was roughly that size). At 9600 baud you get 960 bytes per second. 100,000 / 960 = 104 seconds.

That is how long it would take to transfer one single image through the Arduino.

If the camera has a higher speed UART, say 115200 baud (11520 Bps), that would then give you 100,000/11,520 = 8.7 seconds.

So no, using an Arduino to control cameras in that way just isn't possible.

Instead you need a system that can talk CSI-3 directly - something with a direct camera connection, such as the Raspberry Pi. Another alternative is any embedded computer with enough processing power and USB ports to connect cheap USB webcams to. Again the Raspberry Pi would do - especially the newer version 2 with the quad core processor.

  • I really thought of doing this with raspebrry pi, but the thing is I need it to run with batteries and the whole set up should be portable. So if we add Raspberry pi it would need heavy(300gms atleast) batteries right? Is there anyway of doing this without using heavy batteries? I don't care if I use raspebrry pi or arduino to be frank! – defiant Dec 30 '15 at 14:30
  • 1
    If you want to work with video you need a higher powered system. If you work with a higher powered system you require more current. If you require more current you need bigger batteries. It's a fact of life. Using the right batteries is important of course - Li-Poly gives better power density (smaller/lighter batteries with higher power) than alkaline, for instance. – Majenko Dec 30 '15 at 14:32
  • So what if I don't want the video. I would need like 4 images captured per second. Can that be done without a system like raspberry pi or arduino? – defiant Dec 30 '15 at 16:52
  • 2
    It sounds to me like you want to get a bunch of cheap digital cameras and interface the trigger buttons to the Arduino so the Arduino just tells them to take photos. The cameras themselves then do all the work. – Majenko Dec 30 '15 at 16:54
  • 1
    With Arduino you can only control, you cannot get at the data. For that you will need a Pi or something else that can directly interface with the camera or its USB interface. There's no getting away from it, you can't do what you want on an Arduino! At the moment you're trying to use a trowel to do open cast mining. It just won't work. – Majenko Dec 31 '15 at 10:41

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