One of the things that came up over winter was that we had an intermittent leak in the roof. In a place we couldn't get to. So I had a brilliant idea (well it seemed like a good idea at the time...)
My plan was to build a remote controlled rover, complete with a colour camera on a pan and tilt mount so I could get it into place and see where the leak was coming from.
For control I was going to use a pair of the Arduino microcontrollers I had, hook up XBee radio links and use them. For actual control I figured I would use a Wii nunchuck. The Arduino can decode the data from the accelerometer in the nunchuck and turn that into commands to control the rover.
Brilliant!
The XBee is intended as a serial data link. so you can send almost any data you want in both directions. But its not really intended for real time control. I got massive lag spikes that brought on flashbacks of "Bloodfeather Belts" (*shudder*)
The original idea also used tank tracks like the ones on this Dozer set.
Unfortunately the tracks are made of plastic with no rubber, so on a hard smooth surface have almost no grip at all. It couldn't even get over a 1 cm high piece of wood.
Not so brilliant.
Ok, This was going to take some more work.
The end result looked like this:
I decided that the best way to handle real time control was to use a system that was designed for just that. I found a (relatively) cheap Tx/Rx pack in the Hitec Optic Sport with Electron6 receiver. The nice thing about the Electron6 is that after a quick mod the Arduino was able to pull the raw data out rather that scan every single servo channel.
So what is in that mess? Well in that lot is an arduino and its prototype shield (left), behind that (unseen) is a Pololu serial servo controller. A wireless camera on a servo pan/tilt mount (top) with the rover's battery underneath that. The blue thing to the right of that is the Electron6. The green thing behind that is the 8V supply for the camera+light (seriously, WHY 8V ?!?!). At the back of the rover (right) you can see the two motor speed controllers with the copper coloured heatsinks. Each of the wheels is driven by its own Lego Power Functions XL motor, these things have a serious amount of torque and have a stall current of 1.8Amps, so I needed to make sure I didn't blow anything up.
Ok now this sucker RAN. But I was sure I could make it less complicated. Some investigation later and I turned up just the thing.
The main reason for the Arduino was to handle the Left / Right mixing. The rover drives like a tank in that it doesn't have any steering other than varying the rates of the left right motors, however I wanted to be able to steer using a single stick on the remote, that way I could you use the other stick to control the camera. So what you do is you take the X/Y coordinates of the joystick and convert them into L/R values. There was already a piece of hardware that robot makers already use to do just this. The Pololu Trex handles this and more. I replaced the arduino, prototype board, serial servo controller and two electronic speed controllers with a single board.
This time it came out something like this:
The green board to the right is the Trex. You can see how much simpler it ended up. The servos for the pan/tilt connect direct to the Electron6
A few days later we had a nice big rain storm, so I climbed up and left the rover in the roof. Down in the lounge room I sat comfortably maneuvering the rover. Only to discover after getting it about a meter in that there was no way I was going to get it to where I wanted. In fact there was almost no way I was going to be able to build a rover to do it. There were 20cm high beams and gaps about half a meter wide to get over.
It might have been a good idea to check these sorts of things to start with.
/facepalm
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment