How to make an intelligent robot with computer vision, voice control, voice synthesis and more, using your Android phone!

Step 1: Parts


1. An Android phone that supports OTG with Android KitKat or later installed. Most modern phones support OTG. (I used a UMI Emax here cos it's powerful and cheap!)

2. An Arduino Uno based robot platform. I recommend the MakeBlock Starter Robot Kit (you can use either IR or Bluetooth version).

3. The top part of a dashboard mobile phone holder (I used a BlackFox Digidock CR-3104)

4. An OTG cable (easily found on ebay or Amazon)

5. A standard micro USB cable (preferably a very short one, or adapter module if you can find one)

6. A magnetic periscope lens (easily found on Amazon or ebay)


1. Arduino IDE

2. DroidScript IDE

<p>Amazing tutorial, thank you! <br><br>My kids want their MBot to talk, I have extra Android phones lying around the house, and this should do the trick! </p>
<p>Color detection, motion detection and face detection are all included internally within DroidScript and run locally (it's amazing how powerful phones are these days). We are also working on an OpenCV vision plugin which will be released as open source very soon :)</p>
<p>Great post!</p><p>Did you perform the object color detection locally as opposed to streaming the data to a more powerful box? Either way, very curious how you handled that computer vision functionality. </p><p>Thanks</p>
<p>Thanks Dave</p><p>I see that you have managed to update the code sample. However it shows a reference to MeOrion.h rather than Makeblock.h. I assume MeOrion is correct, as I get an error when using Makeblock. It loaded fine after the changes were made and we were able to get the voice control working. </p><p>For the standard wiring of the motors I think that.&quot;forward&quot; will turn the robot ...as the code is running both motors at positive speed. One motor is actually reversed in the chassis, so forward actually involves running one motor at negative speed. But this will depend on how anyone has wired up the motors. Just switch the wires of one motor over if you find it is turning on the forward command.</p>
<p>Yes, MakeBlock have updated their Arduino libs since I wrote this article, so you need to use #include &lt;MeOrion.h&gt; instead now. </p><p>I'm glad you got it working, if you fancy trying to stream video back to your PC to make a remotely controlled rover, then you can use the built-in &quot;Camera Stream&quot; sample in DroidScript or you could stream to another Android device using this method:- <a href="https://groups.google.com/d/msg/androidscript/KqY5e0T9-Qw/Lxe87jUJBPsJ" rel="nofollow">https://groups.google.com/d/msg/androidscript/KqY5...</a></p>
<p>I found it difficult to use the voice control though. Possibly because there was too much background noise. I have all these exciting ideas for an autonomous robot with voice control and I really want that part working well. Passing commands to google and back would be really useful if you can feature a solution about that. Getting the latest weather forecast for example.</p>
<p>Thanks for this great idea. However the code sample you provided does not compile. </p><p>Am I correct in understanding that the 4 include statements without a filename should be replaced with the include statements relevant to your specific board? So with the starter robot you used, the include statements would be as below. Is that correct?</p><p>#include &lt;Arduino.h&gt;<br>#include &lt;Wire.h&gt;<br>#include &lt;SoftwareSerial.h&gt;<br>#include &lt;MeOrion.h&gt;</p><p>I have made this change, but when I try to upload the code I get an error stating &quot;avrdude stk500_cmd() programmer is out of sync&quot;</p><p>Do you know what might be the issue?</p><br><br><br>
<p>sir my bluetooth version does not has a remote. is it okk?????</p>
<p>Really cool - had not heard about droid-script before. </p>
<p>This is great! Thanks for sharing! </p>

About This Instructable




More by Dave-Smart:Smart Robot with Vision and Voice control 
Add instructable to: