WiFi Robot Project

Ok, so I'm a software developer about to take my first plunge into home robotics! I'm excited, and trying to do as much research as I can, but I thought I'd poke the Arduino community for a little extra guidance, too. Here's what I want to do:

I want to build a simple, tracked robot that I can control remotely offsite via a usb game controller. The robot will broadcast a video feed back, and accept input commands, allow me to pilot it around my house from work (and, possibly, terrorize our cats).

Here's my initial game plan:
WiFi Connection
I plan to use a WiFi connection to allow the robot to connect to my home router, accepting input commands sent from a client application I will build, and sending a video feed back. From my initial research, it sounded as if the Asynclabs BlackWidow or YellowJacket boards were perfect solutions. However, they are out of stock everywhere I've looked, and it seems that as of yesterday (of COURSE, heh), they are closing shop. So it looks as if I will need to find another solution. I'm currently looking at the LinkSprite WiFi Shield as an alternate... but, as I understand it, I will need an Arduino board to hook this guy up to. But which one? I'm pursing the most inexpensive solution possible, but will still do what I need.

Chassis
After much poking around, I ultimately chose the Rover 5 Robot Platform.

Video
Now here, I'm open to suggestions. I don't need anything super fancy pants, just something that will send a reasonably good video feed back to my client application (or to my hosting machine, depending on the solution I settle on). I'm thinking about grabbing this guy, mounting it on the top, and calling it a day. It looks like a very straight forward answer to the problem, and the pan/tilt features are very attractive, too.

My concern here, though, is powering the camera. I have about 0 electrical engineering experience, so even exploring how to properly hook up and convert the camera to use power from a battery will be entirely new for me. But hey, that's why we do these things, right? To learn new stuff! :slight_smile: So any pointers here would be helpful, too.

Other Consideration...
One thing I've been mulling is the fact that I obviously have to leave robot on when I leave in the mornings, or it'll simply be dead by the time I get to work. :stuck_out_tongue: So, I probably need to explore some kind of "wake up" functionality that will keep the robot in a low power consumption state until it receives a prompt from my client app. And the real trick is to get this to work for the camera, too...

Thoughts and suggestions are certainly welcome! I look forward to becoming part of the Arduino community! :smiley:

Welcome.

Have you spent some time in the tutorial section allready as there is a lot of information and examples there that might just give hints how to prog an Arduino.
Also the playground contains lots of articles that might be usefull.

A wifi connection can be quite costly. Sparkfun has also a wifishield in their collection. Zigbee zcould also be an option.

Video: just need an accu for that guy I guess. If you want it to be controlled by the Arduino , check the voltages and connect the grounds.

I'm thinking about grabbing this guy, mounting it on the top, and calling it a day

The arduino can't//won't have anything to with that, so in this context, it is rather irrelevant.

Video: just need an accu for that guy I guess. If you want it to be controlled by the Arduino , check the voltages and connect the grounds.

For clearness I meant the pan and tilt control .. NOt the vid stream

The pan/tilt is via a web interface, isn't it?

@AWOL,
Before hacking the device yes :slight_smile:

What I would do:

Arduino: Arduino pro 3.3v

Wifi: Sparkfun Wifly Shield using the Roving Networks RN 131C

Platform: Roving 5.

Video, you nailed it. Just let the video connect to WiFi on it's own. It's just on the robot for the ride, not connected to the Arduino at all. Use the software the camera comes with to connect it to the internet.

Basically, you'll have two WiFi antennas on the brute, the one for the Wifly and the one for the camera.

The wifly shield basically connects to a telnet client or to a TCP/IP stream as a stream of bytes going in both directions. So, for initial testing, you can use text commands from a Telnet client and then segue to an actual control application connecting via sockets.

Oh, forgot to address your one concern:

The camera is powered by 5vdc at 200ma. The Rover 5 has a 6 cell AA battery holder that will take NiMH batteries, 6 of those totals 7.5 volts dc (1.25 volts per cell) just regulate that down to 5 volts with any regulator (Like a 7805) http://www.national.com/mpf/LM/LM78M05.html#Overview

Build that robot!

Oh, one more thing. (I'm starting to feel like Lt. Columbo)

Low power mode.

Simply powering the camera through a relay will take care of that part. Turn it on through the Arduino when you connect to it.

Wifly shield: It uses 40ma when not transmitting (more when it is transmitting) so that's really not a problem, but it also has a sleep mode that you can use to turn it almost completely off. The problem then is... how do you get it out of sleep mode? It's asleep! If it could make a connection to get out of sleep mode, it wouldn't be asleep, would it?

The Arduino pro 3.3 volt board uses around 4mA, add in the 40mA from the non-transmitting Wifly, and you have only 44 mA. 6 NiMH batteries provide 7.5 volts at 2500 mAh. That's 55 hours of waiting around for a connection.

When you DO start messing with the sleep mode, be sure to program it to WAKE UP before you program it to go to sleep. The reference guide has you doing it the other way around. I managed to make one of mine go into a narcoleptic state where it would immediately go to sleep on power up, with no programmed way to wake it up.

I had to use the hardware reset to reset all programmable settings, explained on page 51 of the reference guide.

For sleep mode you could get a small DC timer and modify it so it counts down for an hour and then it lets battery power through to all the electronics.

Excellent. Thank you so much, everyone. Really appreciate the input! :slight_smile:

@TeslaFan: Ok, so....

Arduino Pro 3.3v
WiFly Shield (WRL-09954)
TTL-232R-3V3 Cable for uploading sketches (or should I give the FTDI Basic Breakout - 3.3V a closer look? Any preferences?)

Now, is there a specific reason why we'd opt for the 3.3v board over the 5? Power consumption? Convenience? (I noticed the WiFly shield is a 3.3v board)

I use the FTDI basic breakout for 3.3v. It's convenient because it supports the auto reset on sketch upload.

I use the 3.3 volt stuff exclusively because it's lower power and can be run off a LiPo battery, all of my projects are intended for battery power, so I just go that way from the start. But you do need to think and plan ahead more with 3.3v only stuff. For example, the FTDI basic can only provide about 50mA, enough for the Arduino, but not the Wifly. In fact, the Wifly is powered off the VIN pin, and has it's own regulator. The FTDI doesn't even supply power to the VIN, so you MUST use an external supply with the WiFly.

Another limitation of 3.3v power is a slower clock. The 3.3v Arduino runs at 8MHz, instead of 16 MHz for the 5v version. I did not want to discover my stuff won't run at the lower frequency when I switch from "Development" at 5v to "Embedded" at 3.3v. So... I use the 3.3v stuff for development as well.

My external supply is a 1000mAh LiPo battery attached to the bottom of the board. That provides 3.7 volts, which powers VIN. There is also a LiPo charger stuck on there, so the battery can charge in place, providing an isolated 3.7 volts to the Arduino and it's friends at all times.

Virtually everything that's 3.3 volt powered has it's own tiny little regulator on board that will take a wide range of voltages on the VIN pin.

When my Rover 5 chassis arrive tomorrow (I ordered 2 of them them last week) I plan on powering the Arduino directly from the 7.5 volt battery pack by connecting it to the input of the LiPo charger. Even if I completely discharge the battery, the Arduino and WiFly will still be on.

Obviously, you're free to use whatever version of Arduino you think will best serve your needs.

Why Rover 5 Robot Platform and not this Pololu - RP5 Tracked Chassis Gray ?
Two motors seem easier to control than 4, is it a problem of payload ? Or do you need the encoders ?

I don't know about MonkeyLord, but I chose the Rover 5 specifically because it DOES have 4 motors and encoders.

I plan on using it as a proof of concept vehicle for my Robotics platform that consists of a Linux machine running on a Giada cube computer:

It connects via TCP/IP to an Arduino gateway (I'm currently using Wifly for the connection) and then through a network protocol connecting a group of Arduinos together for things like sensors, motor control, etc.

My test platform is the Rover 5 with Mecanum wheels, a gyro, and a 3 axis accelerometer. The poor Rover will be lugging around 4 separate Arduino pro 3.3v boards. The proof of concept part is to see if separate Arduinos can communicate to an upstream computer fast enough so the upstream computer can do the calculations to smoothly drive the mecanum wheels.

It'll either be utterly glorious or an unmitigated catastrophe.

For my part, I did see that one, and it was a close runner up. I chose the Rover 5 because
1.) It looks awesome
2.) Angling the legs down gives me a little more ground clearance
3.) I'm hoping the 4 motors will give me a little extra power
4.) .... It looks awesome

I am currently indifferent to the existence of the encoders, but that's probably because I am extremely n00b at this, and do not fully realize what they do for me.

So while I was intrigued by the RP5, and thought it looked cool, ultimately, Rover 5 won out largely due to sex appeal. But, hey, pretty is as pretty does, right? I may yet rue to the decision! :smiley:

@TeslaFan: Your project sounds pretty neat. Are you maintaining a project blog or anything of the sort that I could follow?

Heh. To be totally honest, I didn't want a subjective view to appear to have sway over me, but yeah, the second I saw the rover 5 I thought "That looks SWEET!" And it has 4 motors and encoders? Yeah, add that to the cart. It was like when Big Daddy saw the jetpack on Kick Ass.

MonkeyLord: It occurred to me to do that. I'm totally behind the "Open Source" and "Open Hardware" concepts, and absolutely want to share my tech. In reality, I'm new to Arduino and have only been working on this project for a shave over 2 weeks but I've made astounding progress so far. I spent 20 years working for companies that own everything you do. It's time for a revolution.

I'm totally old school, my first computer was a Cosmac Elf I ordered as a kit from Quest Electronics in 1977. I barely use my cell phone. Text messaging? Tweeting? Forget about it. I have no idea how to even maintain a project log that others can see.

Let's see... I'll start by googling "Starting a blog".

Hmm. This guy says 'Wordpress' is the best, most popular blogging system. Wait. Isn't there an Arduino user that has a Wordpress blog I've seen? Il-something? Googling "Arduino blogs" looks like a who's who of Wordpress users.

That looks like the way to go. I'll get that going tomorrow.

The use of the FOSCAM WiFi Cam is a good idea, I have one that I am using for this purpose and it works like a treat. Also very easy to reverse engineer the protocol and input it all into the one base station (and record the footage).

Weighs about 250G and about uses about 350 mA for me.

Posted by: TeslaFan
"I spent 20 years working for companies that own everything you do."

A few days ago I disassembled an old 5.25 floppy drive, for a PC compatible, and I was amazed by the engine that makes the disk turn. It is so beautiful... that is ART, lots and lots of inteligence used there. On the other hand, if you go to a contemporary art museum you will see a lot of nonsense objects.

@TeslaFan: Heh! Awesome! If you aren't terribly interested in the nuts and bolts, you could always check out blog.com or blogspot.com... They'll host a blog for free that you can usually customize with prefab templates and what-not. You'll be able to get a customized project blog up and running in a matter of minutes.

Whatever solution you opt for, be sure to post back and let inquiring minds know! :slight_smile:

The link is in the signature at the bottom. I think you'll be able to leave comments without too much difficulty. (I went with Wordpress using GoDaddy as a hosting service). I have no idea what I'm doing so far, but I'm cobbling it together.