Friday, October 8, 2010

Donuts the Drone

I decided to use a different base for the robot when I saw Walmart had cheap RC cars for about $10. I bought one of those, ripped the plastic top off of it, unhooked the motor wires, placed my Arduino and breadboard on top of it, and hooked the motor wires up to the H-bridge. This worked very well, all I had to do was change some code because now instead of using differential drive with 2 wheels, I was using rack and pinion steering with 4 wheels. This body is sturdier with better weight distribution, and with 4 wheels, it drives much better. A body, 4 wheels, and 2 motors for $10 bucks, not bad! Besides this reworking, I also fitted a servo motor with a wireless cam fastened on top. Using VLC, I am able to stream the live video feed from the camera onto my network. Using the VideoView control from the Android SDK, I am able to view this feed from my Droid while controlling the robot. Unfortunately, there's about a 5 second latency on the video stream on the Droid that I haven't been able to solve as of yet. I've been unable to find a solution to the problem, though others have experienced this grief as well. Anyhow, these major cosmetic changes to the robot warrant a new name for it. This new robot is named "Donuts", again thanks to Erin =)

**UPDATE** Since so many people have asked me for the code, I am sharing the Arduino and Android code here. The Arduino code is based on some older code that wasn't cleaned up so it's messy. Also, this was a good resource for me to learn how to get my Android app communicating with my Arduino via bluetooth. Thanks to all who have left comments, good luck on your projects!





51 comments:

  1. Hi i am interested with your project and want to learn more. Can you share your diagram or code. I think your project is awesome


    asrul yanuar

    indonesia

    asrultime@gmail.com

    ReplyDelete
  2. Thanks Asrul! I will send you an email.

    ReplyDelete
    Replies
    1. i like your project too :D can you share the schematic this is my mail: martinozzy1996sk@gmail.com

      Delete
    2. Thanks Martin! If you scroll up to the updated part at the end of my blog post, I have links to the code and some resources. Sorry, I didn't create any schematics for this project.

      Delete
  3. hi i am also interested on your project. can you send me your scematics and your codes so i can have a try, i am currently working on one and i will love to know how you did the web cam bit. also the android app would be amazing to have a look at

    my email is: spartaco_1990@hotmail.com

    regards

    ReplyDelete
    Replies
    1. Hi Sixx, I sent you an email. Good luck with your project!

      Delete
    2. got it, thanks a lot, i will let you know

      Delete
  4. K&P, awesome that work of yours!! CONGRATULATIONS

    I am currently developping something like this (with a different microcontroller and intend to decode the video directly by the cell). So I woould be so gratful if you could spare some further info with me.

    Thank you very much!

    androidcamcar@gmail.com

    ReplyDelete
    Replies
    1. Thanks for the compliments! I will send you an email.

      Delete
  5. Hey man, awesome work. I'm actually building a similar project. I've successfully managed to make my robot move with my android phone over a Wi-fi connection. I was struggling to figure out how to connect the camera to wirelessly stream in the phone and i stumbled upon your blog. I would really appreciate your help. Cheers!

    -Anish
    au_anish@yahoo.co.in

    ReplyDelete
    Replies
    1. Thanks Anish! Congratulations on getting your robot moving. I used VLC to receive the live feed from my camera (it uses RF) and stream it to my network. There are a lot of options here and I am no expert in the subject, but here is a link you may find helpful: http://www.videolan.org/doc/streaming-howto/en/. I used the VideoView control from the Android SDK to receive and display the stream from the network. As you can see in the video and in my blog entry, there is a 5 second delay that I never figured out how to solve =( If you find a better way to do it, please share!

      Delete
    2. Oh, this is a completely new topic to me. I would definitely go through it. By the way, would you mind if i had a look at your app and how u managed to implement the VideoView to stream the video.

      I'm a University student and I'll try having a word with my seniors and lecturers and see if they could sort out the delay part. I'll let you know if i find a lead.

      My e-mail is: au_anish@yahoo.co.in

      Thanks and Good luck with your future projects :)

      Delete
    3. Sure, I'll email you with the Android code and please do let me know if you get any insight or direction from your school. Thanks!

      Delete
    4. Hello, I just found out the reasons for the latency from some forums:

      "The latency is mostly due to the amount of "skip protection" and overbuffering that the Streaming Server is providing for the live reflected stream. At the cost of increasing the real-time latency, the Streaming Server is able to not only provide a better "instant on" response, but the server is also able to provide "skip protection" which handles retransmits of data (as necessary) to help improve the quality of the stream and avoid packet-loss."

      So latency seems to be unavoidable. I've tried with quicktime broadcaster as well but QT has latency of 10 seconds. But, you can use other technologies like DVTS or flash, which have lower latency rates.
      http://www.iupui.edu/~nmstream/live/howto.php

      Thanks a lot for your help.. Good luck with your projects.

      -Anish

      Delete
    5. Thanks Anish, this is good to know. When I was working on this project, I didn't find any useful information on the problem. It seems that using a streaming server might not be the right approach, but I know very little about this topic.

      Delete
  6. CONGRATS!! I am very interested in this, can you send me your code.

    Grats again and good luck with future projects!

    My email is: kizzmyanthia@gmail.com

    ReplyDelete
    Replies
    1. Thanks! I just sent you an email with the code, good luck!

      Delete
  7. hello i will say just CONGRATULATIONS it's so so good
    i have a similar project pleaase help me can you send me the code and good luck genius ;)

    my e-mail: padela007@hotmail.fr

    ReplyDelete
    Replies
    1. Thanks for the kind words padela! I sent you an email with the code, good luck!

      Delete
  8. Greetings From Greece. I am a student at an Industrial informatics Department and i am trying to build a similar project like yours. The thing is that android development is a new section for me. I d appreciate if could mail me the source code and/or any scematics you may have. Thanks in advance!

    You are awesome!

    jbourgas@hotmail.com

    ReplyDelete
    Replies
    1. Thanks man! That sounds like an exciting field of study. I am not an experienced Android developer, but I bought a book on it and read about half of it to get a good basic understanding of it. I sent you an email with the code, good luck!

      Delete
  9. Hi I am also doing something similar. could you PLEASE PLEASE send me all your codes on my email id
    hemika_narang@hotmail.com

    thanks in advance

    ReplyDelete
    Replies
    1. Thanks for commenting hemika! I sent you an email with the code, good luck!

      Delete
  10. This comment has been removed by the author.

    ReplyDelete
  11. hye..your project is awesome...i'm also doing something similar for my final year project but i use sk40c instead of arduino...could you please send me all your codes on my email id... mirza.anugerah87@gmail.com

    thanks in advance!=)

    ReplyDelete
    Replies
    1. Thanks Mohammad! I will send you my code, good luck!

      Delete
  12. Hi Sweet project could you also send me the code or post it online somewhere?

    Cheers
    Lance

    ReplyDelete
    Replies
    1. Thanks Lance! You've motivated me to finally do what I've should've done a long time ago. Please refresh this blog entry and you will find a link to the code at the bottom in an update I published.

      Delete
  13. Hi there just went through ur blog really good job man, i'm stuck at controlling robot with cellphone.I'm carrying out mini project on cam controlled color detection,pls do send me details involved in this one..

    ReplyDelete
  14. sorry here's my mail id buddy,
    balaji.kulkarni92@gmail.com

    ReplyDelete
    Replies
    1. Thanks for the comment Balaji! All the code and details I have available are in the update I added to the end of the blog post. Please see above and good luck!

      Delete
  15. hi i'm nhill and i'm very much interested on your project and its perfect to my project in school. can you please teach me how to do this i'm very desprate because the deadline of our project is very near. theycallmenhill@gmail.com please send me email that can help me please please

    ReplyDelete
  16. hello my name is Nile and I was very interested in your project, the date of posting you've done it long ago, and if you can have ainde codes would be grateful if mandase me via email: I thank nilojrmendonca@gmail.com

    ReplyDelete
  17. Hi my name is Benjamin. I am interested with your project and want to learn more. I need to get a code which show real-time video from a camera connected with arduino. Can you please share your code? My e-mail is hotsun0428@gmail.com
    Thank you~

    ReplyDelete
    Replies
    1. Thanks for the comment Benjamin! I put a link to my code for this project at the end of this blog post. If you scroll up and look for "**UPDATE**", you will find it. Good luck on your project!

      Delete
  18. hi
    great project
    i really liked the android app
    can i have a coppy of that please??
    my email is abdelrazzaq@hiasat.com

    ReplyDelete
    Replies
    1. Thanks for the comment! You are welcome to download the code from my blog. Just search for the text **UPDATE**, and you will see my download links above.

      Delete
  19. This comment has been removed by the author.

    ReplyDelete
  20. Hi, I'm Mike, I'm from Colombia

    Please could you answer me thanks

    your video is great

    I made an application in android with similarly eclippse
    but do not install a camera

    I want to install a camera
    1) what kind of camera is yours, reference?
    2) as the camera communicate by bluetooth or wifi?
    3) your camera is IP?

    I appreciate that answer me as all, in my country, there is no information required ...
    thanks

    ReplyDelete
    Replies
    1. Thanks for the comment Mike!

      Unfortunately, I borrowed the camera from a friend and do not have a link of where to buy it. Anyways, it is not the best camera to use since it is not TCP/IP based. This is why I had the delay because I had to stream it through VLC onto my network in order to read the video feed on my phone. I would recommend getting some kind of webcam that is easy to mount. Good luck!

      Delete
  21. thanks for answering

    you are a good person

    you recommend a camera ip?

    But the code change?

    could use VideoView with IP camera?

    ReplyDelete
    Replies
    1. No problem Miguel, glad to help if I can. I haven't tried using an IP camera before, but if I did, the first thing I would try is to embed the video feed of the camera in an Android WebView: http://developer.android.com/reference/android/webkit/WebView.html

      Delete
    2. Thanks for your time!

      great contribution :)

      Delete
  22. Hi, I'm Cristo, I'm from Spain.

    I like your project, it's great. I'm beginning with Arduino and Android developping. Could you share the code, docs, etc from your project with me, please?

    My email is crisconru@gmail.com

    Thanks

    ReplyDelete
  23. Thanks Cristo! Please see the end of this blog post under the UPDATE section for links to the code and some resources. Good luck!

    ReplyDelete
  24. This comment has been removed by the author.

    ReplyDelete
  25. Hi, I'm Barış (It means peace.), I'm from Turkey.

    Firstly my English is not perfect :D
    That's great job.
    In this project, can you send me a list of the materials you use it? (codes, communication module link to buy it)
    Thanks.
    e mail: barisucarsoy@outlook.com

    ReplyDelete
  26. Hello ,
    this is a great project and i am looking forward to making one like your project , i would much appreciate if you send me the schematic of the project so i can be able to bring it out :)

    sam.ha72@yahoo.com

    Thank you

    ReplyDelete
  27. Hi, I'm mohamed. I was doing a similar project, I had the problem of receiving the video transmition. I saw the code attached here but didn't get line 275 "Uri video = Uri.parse("rtsp://192.168.1.109:5544/stream.sdp");"

    Could you please help me.
    thanks in advance.
    my mail is moh.moanis@gmail.com

    ReplyDelete
  28. pls send schemetic of this project and android application to rafirasheed.tc99@gmail.com

    ReplyDelete
  29. Hello...
    I want to make a robot like this...
    but i don"t no the coding and the schematic
    can you tell me by an e_mail??
    my email: wahyuf333@gmail.com
    Thanks...

    ReplyDelete