10
$\begingroup$

I'm trying to connect a camera module to my Arduino Mega, connect my Mega to my Android phone (throught BlueTooth or other), and send the live view of the camera to the mobile phone.

I saw a video online that showed this for still images -- an image captured by the camera module on the Arduino was sent to Android and the output image was viewed after a couple of seconds (the time to send image by BT).

Is this doable with live video instead of image? If yes, please guide me; if no, please suggest some workarounds.

$\endgroup$
2
  • $\begingroup$ Hi Mabdrabo, welcome to robotics.stackexchange! I've updated your wording slightly for better readability. Can you find the URL of the original video you saw online? $\endgroup$
    – Ian
    Feb 14, 2013 at 20:49
  • $\begingroup$ Also relevant: hackaday.com/2013/02/20/video-phone-arduino-shield $\endgroup$
    – Ian
    Feb 20, 2013 at 22:20

5 Answers 5

10
$\begingroup$

You have different options (priority by difficulty level):

  1. Using a smartphone as a camera. There are actually apps for this. If you can attach one phone to your robot then you can stream the live video either on another phone or on the web. However the phone attached to the robot should have an internet connection(3G or even Edge). Search for "live stream" in App store or Google Play.

  2. Using an IP Camera. This option is quite simple and requires you to have an IP camera wich then can be controlled by the Arduino. The IP camera can transmit video wirelessly to your Router or A Raspberry pie. You can then connect another phone or computer to the router to see the live image.

  3. Using a Raspberry Pi. Id normally would not do video or image manipulations in the Arduino platform because of the low performance it has got. You could connect a Raspberry pi to the Arduino. And a good camera to Raspberry pi. Arduino can send commands to Raspberry pi on when to start transmitting and so on. You can then do image manipulations on the Pi as well. And Since Raspberry pi can work as a router you could connect you smartphone to the raspberry pi through wifi or even Bluetooth. You will get a nice and high FPS video even with text/color manipulations.

  4. You could use the Android ADK as your main controller. And then the Arduino is set up as an accessory. In this way the Arduino can command Android what to do. A cheap android based mobile phone will cost you around 100USD and you will get lots of features for the price. Like GPS, Camera, Battery etc. Most modern smart phone have the ability of creating a wifi hotspot. You can then connect any other wifi platform to that hotspot and control the robot or in your case viewing a live stream video. This is by the most elegant method in my opinion.

$\endgroup$
1
  • $\begingroup$ in fact i did what you said in #1, thanks a lot :) $\endgroup$
    – mabdrabo
    Mar 22, 2013 at 11:42
1
$\begingroup$

My solution is a workaround.

I do not send the relatively large image frames via Bluetooth but I use the Android phone with OpenCV to shoot the live video and direct the Arduino via Bluetooth with a few short commands after image processing. The phone is located near the Arduino just as an Arduino connected camera would be.

If you want to see the images - or some processed version of them - remotely you can use another phone connected to camera phone via a second Bluetooth connection.

I am not ready with the above, a Mindstorms NXT, Android, OpenCV version is here.

$\endgroup$
1
$\begingroup$

here's how i managed to solve my problem, i got my old wildfire installed IP Webcam, set-up a wifi hotspot from my nexus4, connected to it from the wildfire, took the wildfire's ip and put it in the nexus4's web viewer.

$\endgroup$
1
$\begingroup$

Yes , it is possible but please note the following points.

1)if you are using Bluetooth, it data transfer rate depends upon different versions like for v2 blue tooth its data transfer rate 3 Mb\s.

2)Now let suppose you are using a camera like ov7670 in QVGA mode(320 x 240 pixels for one frame) each pixel is 8 bits, for a good video you require 30 frames per second, which is 76800 bytes for one frame, for 30 frame it is 2.3 Mb\s.

3) Now 2.3 MB\S < 3 MB\s, you can live vedio streaming.

4) The rest depends how good you are in understanding programing and making Electronics connections with different modules.

$\endgroup$
0
$\begingroup$

To answer the question "is it doable", I would say yes. There is apparently a product called Looxcie that does this, according to this review on Slashgear.

My guess is that it's using BlueTooth's Audio / Video Control Transport Protocol (AVCTP), so you might check for devices and mobile phone software libraries that support AVCTP.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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