About these ads

Interactive Skype-Controlled Mindstorms NXT Car

4 01 2012

After a long wait, I’m back baby! To start the year off with a bang, here’s a Mindstorms NXT car that can be controlled using Skype – by anyone, anywhere, any-when (between today, 1/1/2012 and 1/18/2012).

If you want to get going right away, here is the link for driving this car: http://www.goo.gl/7LLaU.

This is going to be a pretty lengthy post, so I’ve broken it up into the following categories: Introduction/ General ExplanationHardware, Program-mingComputer Tweaks, and How YOU Can Drive This Car. Click any of the categories to jump forward to it.


Introduction/ General Explanation

I’ve been creating websites for a while now, and I was trying to think of a way to combine it with Mindstorms NXT, and this project is the result of that. The webpage is fairly simple – it’s got three arrows (one forward, two to the sides) and a start and a stop button. Clicking the start arrow will begin a Skype conversation with my computer, after which the user should share their screen; the NXT standing in front of my computer (called “Jeeves”) can then “see” the webpage the user is viewing.

That’s where the cool part kicks in – when the user clicks any one of the arrows or the stop button, the page will change to a different shade of gray. This shade of gray is then picked up by Jeeves, who turns it into a Bluetooth message for the other NXT (called “Alfred”). The car then drives in the direction the user tells it to, while remaining within a fenced off area where the webcam can see it.

So, the user can drive a LEGO Mindstorms NXT car, from the comfort of his or her home, without having to install any kind of software (provided that they have Skype).

Hardware – the Car

The car was fairly simple to build – it’s got two motors on the sides with the wheels attached directly (no gears), and a big ball caster attached at the back. It looks quite a bit like my line follower, actually, except for the fact that the caster is a lot bigger because the car needs to be able to drive over the power cable and because it’s on a carpet. Also, it’s got front bumpers so you all can’t break anything while driving it, a color sensor that turns on when the robot is in use, or has been in use the past minute, and a rechargeable battery that’s always plugged in. Some pictures:

The first one is a side view, and the second one is an upside down view.

Hardware – the Receiver

The receiver was a bit more tricky to build because it needed to be a specific height so its light sensor could “see” the right area of the user’s screen. The structure itself is fairly simple – the light sensor is on a big pole attached to the NXT, and it’s got a rechargeable battery that’s always plugged in at the bottom. Here’s a picture of it (without the battery; hence the delay):

Programming

For all of the coding in this project, I’ll provide a basic description of how it works, and then a download link in case you’re interested in trying to build this project yourself sometime. The first two pieces of code (for the car and the receiver) were made using RobotC, and the third (for the website) is in HTML. All of the code will be on Sourceforge.

Programming – the Car

There’s a small function for turning the motors’ PID control on or off  at the beginning of the program to get rid of the peeping noise the motors make when the car is not moving.

In the main task, here’s what happens: the variables are created, the Bluetooth is turned on, and the timer is cleared. In the main while-loop, the last received message is stored, so the robot can later use that information( along with the timer) determine whether it’s been active the last minute and decide to turn the signal light on or off. Then, the robot reads the message last sent to it and plugs it into a switch. Depending on which message it received from the receiver (ah, the irony), it will move the motors. At the end of the while loop, there is a 50 millisecond wait to save battery power.

Click here for the code (first version).

UPDATE: Since the robot is now wireless, the code has changed to support some more sensors for plugging itself in. Read more about these changes here:

http://wp.me/p10flW-l9.

Click here for the code (second version w/ wireless charging capabilities).

Programming – the Receiver

The receiver also starts by initializing its variables and turning on Bluetooth, after which it connects itself with the other NXT – also using Bluetooth. The program then enters its main while loop, in which there is a series of if/ else switches designed to determine what shade of gray the screen is. The if/ else switches then plug this message into the “messageToSend” variable, which is sent out afterwards. The loop ends with a 100 millisecond wait, again to preserve battery.

Click here for the code.

Programming – the Website

There isn’t really much to explain about this one, so I’ll just give you the download link. Please note that the images on the page aren’t included, so you won’t be able to view it correctly in your browser. Screenshot below.

Click here for the code.

Computer Tweaks

There were quite a few tweaks I had to make to my computer, so I decided to list them here in case, again, you want to build this project yourself someday. Keep in mind that I might be missing/ forgetting some things, so if you ever have a problem just leave a comment below.

  • Turned off sleeping mode on both my screen and the computer itself;
  • Skype:  in the general > video settings menu, I changed the first option (“Automatically receive video and screen sharing from…”) to “anyone”;
  • Skype: in the privacy > privacy settings menu, I changed everything to anyone. I also checked all the boxes;
  • Skype: in the calls > call settings menu, I changed “Allow calls from…” to “anyone”, and again checked all the boxes;
  • Skype: in the IM & SMS > IM settings menu, I changed “Allow IMs from…” to “anyone”;

I’m also keeping the Skype window open 24/7, so my background won’t confuse the light sensor.

How YOU Can Drive This Car

Here’s how:

  • Go to http://www.goo.gl/7LLaU
  • Make sure your window is maximized
  • Click the “Start” button
  • Go through the dialog windows you get (there will be more on IE and Firefox than on Google Chrome)
  • Wait for my video to start (this can take up to 20 seconds)
  • Open the “call menu” at the top bar
  • Click “Share Your Screen” – it’s about 3/4th of the way down the menu
  • Click “Share Full Screen”
  • You should now be brought back to the webpage with the arrows. Once you see the car stop, use the arrows to drive it around.
  • To stop, hover your mouse over the little screen where you see the car, and click the red phone button

This project has successfully been tested on the following operating systems:

  • Windows 7

With the following browsers (newest version as of 12/31/2011):

  • Google Chrome (tested best)
  • Firefox
  • Internet Explorer
If you try this project on anything not mentioned above, it’d rock if you could leave a comment stating what you used below so I can add supported  (and not supported) browsers and OS’s. Thanks!

Conclusion

So there you have it: a LEGO Mindstorms NXT car that you can drive using Skype. If you like this project and want to see more, subscribe to my YouTube page and this blog for the latest updates. Once this project ends, I’ll put some statistics on how many people tried this project up down here. Feel free to use anything on this page (the robots, the code, the website, etc.) non-commercially, as long as you give credit where it’s due.

To read more about my Skype car, click here.

Disclaimer: The Skype name, associated trade marks and logos, the Skype “Call Me” button and the “S” logo are trade marks of Skype.

About these ads

Actions

Information

21 responses

4 01 2012
SavedCoder

WOW!! That looks really awesome! Unfortunately, I don’t use Skype… :(

5 01 2012
Xander

I just played with it and it’s really cool. Nice job! The robot becomes hard to see when it’s at the bottom the screen. You might want to tilt your camera down a little.

5 01 2012
Leon (dimastero)

Thank you! Yeah my camera has a slightly larger range when I look at its video from my webcame, so I never noticed that. So thanks! I tilted it down :)

5 01 2012
Sikko Medema

Awsome!!!!!!! i drived it around and it’s so cool!! the conecction was a bit slow but i think thats cuase i did it from holland.
how dit you maked it auto answer my call and ask for video?

5 01 2012
Leon (dimastero)

In Skype, you can go to the options, and I think it’s in the call menu. But if you check the “computer tweaks” section, it says everything I did to Skype to get this to work (btw I’m also Dutch :D)

5 01 2012
Sikko Medema

ehh je robot doet het niet meer sorry ik ben te ver doorgereden en nu staat de kabel strak en beweegt hij niet meer…
ik zou het zo cool vinden om dit ook te doen alleen heb ik maar 1 nxt :(

(sorry dude your robot isn’t working anymore i drived it to far and now the cabel is taut and it doesn’t move…
i would realy like to do this to but i only have one nxt :(

5 01 2012
Leon (dimastero)

Ja dat gebeurt wel eens.. Niet erg want mn moeder is er en die haalt ze steeds uit elkaar als ze boven is.. Ik heb al geprobeert om het te verhelpen, maar vanmiddag maak ik er nog wel wat veranderinge aan. Maar thx voor de tip :)

- Leon

7 01 2012
Mike

That is totally cool!!!!!!!!

7 01 2012
Leon (dimastero)

Thanks! I was checking out your blog and the HumvNXT rocks!

- Leon

8 01 2012
Daniel

Nice!

8 01 2012
Leon (dimastero)

Thanks!

9 01 2012
Skype Controlled Mindstorms Car

[...] love the clever interface between this Mindstorms car and the web. Maker Leon from Rye, NY, built a Skype-based interface that changes the screen color [...]

10 01 2012
Skype Controlled Mindstorms Car « Friendly Feed

[...] love the clever interface between this Mindstorms car and the web. Maker Leon from Rye, NY, built a Skype-based interface that changes the screen color [...]

11 01 2012
Skype Controlled Lego Mindstorms NXT Vehicle (video) » Geeky Gadgets

[...] If you fancy controlling the car yourself it will be available to call up until the 1/18/2012 by simply goto the YouTube video  or World of MindStorms website. [...]

11 01 2012
Veículo construído com o MindStorm NXT da LEGO controlado com o Skype (Vídeo) | PT Gadgets

[...] através do Skype. Para mais detalhes sobre a construção deste veículo, pode visitar o site World of MindStorms. Tem ainda a possibilidade de o guiar [...]

11 01 2012
Omdat het kan: NXT auto besturen op afstand via Skype » ICT & Onderwijs BLOG

[...] in beeld of zo en hoeft verder met niemand in het Engels te praten. NXT auto besturen via Skype Op deze pagina staat een uitgebreidere beschrijving van de werking van de constructie. Het lijkt me prettig om af [...]

30 01 2012
Skype Car – Lots of Numbers « World of MindStorms

[...] Project launch, with a post here, a video on YouTube, and posts on the MindBOARDS and RobotC [...]

28 02 2012
The PriNXT: A Working Printer Made From Lego | Got2.Me

[...] The PriNXT by Leon Overweel is made from Lego’s Mindstorm system that lets you add motors and some programming magic to your Lego projects. Even though he’s just 14 years old, Leon managed to build the PriNXT along with a number of other Lego projects–including a Skype-controlled Lego Car. [...]

28 02 2012
The PriNXT: A Working Printer Made From Lego « « Fix-Singh - Gadget RepairsFix-Singh – Gadget Repairs

[...] The PriNXT by Leon Overweel is made from Lego’s Mindstorm system that lets you add motors and some programming magic to your Lego projects. Even though he’s just 14 years old, Leon managed to build the PriNXT along with a number of other Lego projects–including a Skype-controlled Lego Car. [...]

28 02 2012
The PriNXT: A Working Printer Made From Lego | Tux Doc

[...] The PriNXT by Leon Overweel is made from Lego’s Mindstorm system that lets you add motors and some programming magic to your Lego projects. Even though he’s just 14 years old, Leon managed to build the PriNXT along with a number of other Lego projects–including a Skype-controlled Lego Car. [...]

29 03 2013
Interactive Skype-Controlled Mindstorms NXT Car | Stex Auer Toys Project

[...] Interactive Skype-Controlled Mindstorms NXT Car | World of MindStorms. [...]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s




Follow

Get every new post delivered to your Inbox.

Join 41 other followers

%d bloggers like this: