Instructables

Create an internet controlled robot using Livebots

Featured
Picture of Create an internet controlled robot using Livebots
Here you will learn how to create an internet controlled robot or other installation using Livebots.

Livebots is a project I'm working on which consists of an easy to use website for all the robots that people can interact with through the internet.


As an example I will be using a simple Arduino UNO with a LED connected to an Raspberry Pi to show you the concept, but of course you can use anything that can be receive messages by the serial port and any computer you would like.

Here is it:
 

And here is another example:

 
 
Remove these adsRemove these ads by Signing Up

Step 1: Program the arduino

Picture of Program the arduino
Attached is a simple arduino program that reads the messages form the serial port and lights the LED when they contain "HIGH" and turns it off when "LOW".

Feel free to adapt it to your own needs.

Step 2: Add the robot to the Livebots website

Picture of Add the robot to the Livebots website
Screenshot (113).png
Screenshot (115).png
Screenshot (120).png
Screenshot (116).png
Screenshot (117).png
Start by creating an account (http://livebots.cc/Account/Register).

Click Add a Robot and upload your bot's picture (http://livebots.cc/Upload/1).

Then you can add your robot information that will appear on the robot's page.

Step 3: Install PySerial

Picture of Install PySerial
vlcsnap-2013-01-12-19h59m04s29.png
vlcsnap-2013-01-12-20h51m58s237.png
vlcsnap-2013-01-12-20h52m12s156.png
vlcsnap-2013-01-12-20h52m25s49.png
vlcsnap-2013-01-12-20h53m08s218.png
vlcsnap-2013-01-12-20h53m34s218.png
vlcsnap-2013-01-12-20h53m51s138.png
In order to let python communicate with arduino you will need to install pySerial: http://pyserial.sourceforge.net/  

1. Download and click open: http://sourceforge.net/projects/pyserial/

2. Unzip and untar the files

3. Install pySerial. On a terminal window, navigate to the folder where you have the files and run the following command:
cd pyserial-2.5
sudo python setup.py install

For more info on how to do this on raspberry pi go here:
http://www.doctormonk.com/2012/04/raspberry-pi-and-arduino.html

PS: If you're on Windows make sure you have python installed: http://www.python.org/getit/windows/ (Thanks msandersmay10 for pointing this out!)

Step 4: Get Livebots python class

Picture of Get Livebots python class
vlcsnap-2013-01-12-20h54m23s207.png
vlcsnap-2013-01-12-20h54m38s98.png
vlcsnap-2013-01-12-20h54m57s32.png
vlcsnap-2013-01-12-20h55m15s179.png
vlcsnap-2013-01-12-20h55m29s91.png
vlcsnap-2013-01-12-20h55m56s120.png
vlcsnap-2013-01-12-20h56m40s41.png
We have a respository for the pyhon code we use to control the robots, you can find it here: https://bitbucket.org/XicoMBD/livebots

In order to use it to control your own robot just follow this steps:

1. Download livebots.py from the repository and save it somewhere convenient

2. Open the terminal window and navigate to the folder where you saved the class
cd ..

3. Run python:
python

4. Import the library:
>>>from livebots import *

5. Create the livebot (Enter the Livebot number on the first field and the serial port name on the second):
>>>livebot('9','/dev/ttyACM0')
Raphango6 months ago
Whoa! Pretty nice man! =D
Is there any way of controlling te Arduino by USB over the internet? Actually, I don't have a RapberryPi...

you need a pi if you like Linux I am running raspbian wheezy (similar to Debian)

ok thank you!

you're welcome

TSJWang Raphango3 months ago
Haha this is a late reply.
Use the ethernet shield. It's not USB, but you can control it without another computer.
And this is a late thank you! ^^
Raphango TSJWang3 months ago
Ok then,gotta try it someday. Thank you!
supra_20097 months ago
in step 6'
6. Make the project:
cd mjpg-streamer/mjpg-streamer

And i got error:
pi@raspberrypi ~ $ cd mjpg-streamer/mjpg-streamer
bash: cd: mjpg-streamer/mjpg-streamer: No such file or directory

I can only typed cd mjpg-streamer/
Then i went on to "make" and still getting error
pi@raspberrypi ~/mjpg-streamer $ make
make: *** No targets specified and no makefile found. Stop.

Can u help us to fix this problem?
XicoMBD (author)  supra_20097 months ago
What happens when you type ls?
DGaley XicoMBD3 months ago
I'm having the same issue as supra_2009:
make: *** No targets specified and no makefile found. Stop.
If I type ls at the command line I get
index.html
Does webcam driver has to be installed or not?
Can I put step 1 into step 2 folder?
pi@raspberrypi ~ $ cd mjpg-streamer
pi@raspberrypi ~/mjpg-streamer $ ls
input_file.so mjpg-streamer.sh output_file.so
input_uvc.so mjpg-streamer.sh.orig output_http.so
mjpg-streamer.log mjpg_streamer output_udp.so
this worked great for me. Do you know how to have the cam start at boot?
Do u installed webcam driver?
XicoMBD (author)  beverageexpert7 months ago
Try to adapt this tutorial maybe:http://www.raspberrypi-spy.co.uk/2013/07/running-a-python-script-at-boot-using-cron/
ilikemysocks7 months ago
This is the best bit of info I have found on this.Thank you.

The repository has moved though. It can be found at https://svn.code.sf.net/p/mjpg-streamer/code/

I also found this page useful to get mjpg-streamer running at boot.
http://www.rudiswiki.de/wiki/DockStarWebCamStream
ilikemysocks7 months ago
This is the best bit of info I have found on this. Thank you.

The repository has moved though it can be found at https://svn.code.sf.net/p/mjpg-streamer/code/

I also found this page useful to get mjpg-streamer running on boot.
TheRafMan8 months ago
Nice project. I came across your Instructable after I Googled how to install mjpg-streamer and your instructions worked perfectly, thank you for detailing it step by step.
Off to work on my version of telepresence :)
saitomaster12 months ago
Very usefull. See more about creating sites http://saitomaster.com
Denon1 year ago
Just had a go with the one with rolling eyes, great fun. Will there be an instructable for puppet bob one day?
XicoMBD (author)  Denon1 year ago
I didn't think it was necessary, you just need to print it (http://www.thingiverse.com/thing:43708), mount it, connect to an arduino and add it to Livebots how it is described here :-)
Hello,
let me start by saying this is a great projects! I've been doing some work with a similar concept for a few years already. If you're interested you can check out my old instructable at http://www.instructables.com/id/Arduino-Candygrabber/ . In the last few months I have begun to work on the project again. This time I did everything in Red5(the queue and the shared objects).
I'm interested which technology you used for Livebots? Of course, if you can share that info.
XicoMBD (author)  odvratno.zgodan1 year ago
Awesome work! For Livebots we used ASP.NET Razor, but basically when someone clicks the button we just create a html file that replaces the previous, like for example on http://livebots.cc/Robot/Message/23.html

Don't you want to add your project to Livebots?
Nice, well it could be useful for some projects in my hacklab, though not for my project as I need very fast response time(under 100ms) and streaming video. Have you tested what is the speed/time it takes from somebody clicking a button in the browser until the command gets to the robot?
In my last iteration I'm writing a Java program for RaspberryPi that would connect to the red5 server directly, and allow it to control it's GPIO pins.
XicoMBD (author)  odvratno.zgodan1 year ago
I've never tested it properly but should be around 1 second.

However, the controls can be inside an iframe, so you can use whatever you want.

Looking forward to your hacklab projects there ;-)
Would it be possible to host the livebots code on our own personal domain?
XicoMBD (author)  Michael_Bell1 year ago
I'm not sure if I understood your question...

You can have your controls on Livebots from your domain using an iframe. Is that what you want?
Yes, I suppose that would work
jupli11 year ago
That's extraordinary ..Man!!! really cool stuff
this is so crazy cool!
By the way, I think it would be very funny if you make a maze.
XicoMBD (author)  andreyeurope1 year ago
That's one of the ideas I had, the problem is that I'm out of time for that, so I was willing that someone would do that instead of me. Are you up to the challenge? ;-)

If you any more ideas for new robots you can share them and vote for others here: http://livebots.cc/ideas 
alvin_lee1 year ago
Man, this is sooooooooooo cool!

p.s.: It's very funny to see that robot dancing like crazy a min after I have the link of this page sent to a friend.
nice job, man!!
GarthBock1 year ago
Awesome job ! I remember years ago a university that had a small bulldozer in a sandbox you could control over the internet. That was way before webcams and Arduinos and easier ways to do it like we have now. I had a lot of fun playing with it during breaktimes. Thought it would be fun to set up something like that. I can't wait to see how far this can go .
That is EXTREMELY awesome. I am in awe. The interface is sleek and embeddable (is that a word?). I shall endeavor to follow this tutorial, though it may be difficult. I am in college and must conform to our network firewall.
XicoMBD (author)  droid_mechanic1 year ago
Glad you enjoyed it!

Yes, getting access to the mjpg stream through the firewall might be difficult. Although you can try to use services like UStream, Bambuser, Hangouts on Air, etc...

Hope to see your bot online soon! ;-)
theargha1 year ago
Which operating system do u use ?
XicoMBD (author)  theargha1 year ago
On the raspberry I tried both with the Raspian Wheezy and the Adafruit's Occidentallis and the process was the same :-)

We've also tested the python class in Windows, OSX, Ubuntu and Linux Mint and it worked everywhere.
Pro

Get More Out of Instructables

Already have an Account?

close

PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!