This weekend can best be described as “Partly Cloudy”, when it comes to electronics & robotics . First, the successes:
- The vehicle is completely built with all the components fully assembled, the wires run neatly and everything bolted down in a secure manner. Plus it looks not all together crappy.
- The Arduino and Pi are talking to one another via USB cable. This allows the Pi to send commands to the Arduino and to get status back.
- I can login to the Pi wirelessly from my phone or laptop and get status and send commands from it.
- The Inertial Measurement Unit is installed and working. There’s a lot of coding to do to make it useful but operational hardware is a big step.
- While rummaging through the electronics section at the Arc, I found a Linksys router for $2.00 (two doll hairs). I brought it home and it works great. I’ll use this to build an isolated and (eventually) portable network. BTW… that router takes 12V at 1A. Running it off of batteries may be a challenge.
I was feeling pretty good about all those accomplishments but there was one small detail that put a bit of a damper on things. As I was doing the final assembly on the vehicle, I reversed the power leads for the Arduino as I was hooking it up. There wasn’t any smoke, flames or other drama but the end result was the Arduino was fried. Totally kaput. And it took the attached motor shield with it. That means that I was unable to make the motors spin or even read any of the sensors. Metaphorically speaking, the vehicle is broke down on the side of the road with the drive-shaft hanging loose.
Jiminy. Jeepers. Drats. Dadgummit! And other very harsh words that the Internet Police will frown on me for.
How did such a thing happen? Well, contrary to good design practices, I was not using a polarized plug for power. If I had been, it would have been physically impossible to hook up the power backwards. That has since been corrected.
Fortunately, Radio Shack has the Arduino on the shelf so I was able to replace that readily enough but the motor shield has to come from Adafruit Industries. It will take a few days but hopefully UPS will treat me right and it will get here before the Thanksgiving break. The goal is to take the vehicle to the track at Rampart HS and do a field test with it over the Thanksgiving break. Stay tuned on this same Bat-Channel for further news.
It may not look like much but the circuit board at the bottom of the picture is a key component in the rover I’m building based on a cheap RC car. Not only does it provide power conversion and distribution, it is the mount point for a potentiometer and switch that can be used for controlling the vehicle. More importantly, it holds a 9 degree of freedom IMU that provides a gyroscope, accelerometer and magnetomer (compass). All those things are on the small green board at the top of the protoboard.
Getting involved in robotics and electronics has been a lot of fun but it has also been great for learning patience. First, I had to learn to not get frustrated every time I make a mistake and ruin hours of hard work. Second, I had to learn that a complex project takes time to finish. You can’t just knock it out by staying up until 4:00 AM two and three times a week. All you accomplish that way is to make a lot of mistakes and get bags under your eyes.
I told Teri that Mr. Miyagi tended his bonsai trees as a way to build something slowly and carefully and that I am doing the same thing with the robot. I’m not sure she buys into the Zen/balance aspect of this hobby. I’m pretty sure she just sees it as “playing with expensive toys” rather than a Miyagi-esque “nurturing a state of calm awareness”. (Don’t tell her… but she isn’t entirely wrong)
Listen to the throaty rumble of the supercharged big-block in this robot. You doubt that the rover has a big-block, much less a supercharger? Go ahead and click play and tell me what it sounds like.
Okay… I confess. That noise is just the noise of the servo moving back and forth. It isn’t that loud in real life but for some reason the mic on the phone makes it sound more significant than it really is. The only IC in this robot stands for Integrated Circuit, not Internal Combustion.
What you’re looking at is an upgraded proximity sensor. The original Infrared proximity sensor was simply glued to the front bumper which meant that it couldn’t detect objects on an angle. The new ultrasonic sensor has better range and better accuracy and is mounted on a micro-servo. The servo mount is HDPE and you can probably tell it was handcrafted.
If you have a keen eye, you can see that the servo is being driven by an Arduino Uno sitting on the desk, not the Arduino Micro that is under the hood. This is a better setup for testing. The Micro is considerably smaller and more difficult to use when experimenting.
This weekend I’ll tie the new hardware into the control system and show off some (hopefully) fancy maneuvering. Ideally, these won’t involve any unexpected stairways. 🙂
After the catastrophic loss of the One Dollar Robot, I headed down to the local Budget Robotics Outlet a.k.a. the toy department at Big Lots. There I found a very cheap RC SUV with “Escalade” plastered on it. I’ve always wanted an Escalade so I plunked down $20 and headed home.
Now let’s be perfectly clear… as an RC toy, this thing was a piece of junk. When I got it home, I could see that one of the wires was hanging out of the bottom not even soldered to anything. After putting batteries in it, I tried it out. It went two inches under its own power and then quit. That’s okay. I didn’t buy it for use an RC toy.
This Escalade was going to become the next testbed for developing my rover. While the wiring and electronics were junk, the motor and steering mechanism were actually not bad. And the chassis was HUGE! I was going to be able to fit a ton of electronics in there and still have the Escalade body fit normally.
First order of business was to remove the body, take out the control board and throw it away. Then I removed all the factory wiring and soldered in some heavier gauge solid-core hook-up wire and mounted an IR distance sensor to the front bumper. Finally I was ready to put in some smarts. I started with the Arduino Uno and a breadboard containing a motor control IC. After I debugged that and got everything working. I moved it all to the much smaller Arduino Micro. When it was all said and done I was able to put in the Arduino, the breadboard, a gigantic 11,000 mAh battery pack AND still have room for a Raspberry PI later on. It doesn’t look like it in this picture but everything fits and the body goes on normally.
One thing neat about this car is that it has one DC motor in the back for moving and another one up front that steers the front wheels. So unlike the One Dollar Robot, this actually steers like a car.
This afternoon I was able to get it working with a basic obstacle avoidance algorithm. This coming week, I’m going to replace the IR sensor with a servo-mounted ultrasonic sensor and get it to steer around obstacles rather than use the simplistic stop, back up and turn approach that it currently uses.
I wonder where I can get some 3″ spinners to really trick it out…?
The good news is that the One Dollar Robot exceeded all expectations regarding duration of flight. The bad news is that it was a wheeled rover and shouldn’t have left the ground at all. Unfortunately, a brief moment of inattention plus an open door to the basement stairs resulted in a high speed launch followed soon after by a catastrophic landing.
What a bummer. I had spent a successful evening building a new control circuit with several new features. I was just about ready to call this rover a success since it met all my design goals. The good news is that the Arduino came through without a scratch and the motors and gears are still usable. Perhaps these components will be adapted to a new, improved rover. Keep an eye out for the Phoenix Rover, risen from the ashes and/or shards of plastic.
Here’s a little project that didn’t work out quite the I had hoped. I decided to try my hand at soldering together a custom circuit on a prototype board for controlling a 2WD robot. My hope was that I could make a smaller board that would do just those things I needed for the $1.00 Robot. Did I mention that I picked up a soldering iron for the first time ever just three weeks ago? It turns out that laying out a board and soldering it is a skill I don’t have yet.
If a well-designed board with quality soldering is a work of art, then this is the equivalent of a finger-painting hanging on the refrigerator. I made so many mistakes when I was doing this that I’m surprised it worked at all. But it did work. For a while. Kinda sorta. The vehicle was slow and once it heated up, the right motor stopped working. I guess there is a bad solder joint in there. Fortunately, I have a store-bought motor-shield that I can use in its place. But I got some invaluable experience at soldering and hopefully my next effort will turn out a little better.
While rummaging through the toy section at the Arc the other day, I spied a busted-up remote control car. It had clearly been stepped on or otherwise abused since parts were missing off the body. Plus, the remote control unit was nowhere to be found. So I was I able to get this gem for just one dollar.
One Man’s Trash…
When I got home, I took off the cracked body, removed the control board from inside, cleaned the battery compartment where the batteries had leaked and made sure that the motors worked. Then I rubber-banded an Arduino and motor shield to the top and mounted an infrared distance sensor to the front. A few minutes of programming and voila… what used to be a busted RC toy was now an obstacle-avoiding robot. Go watch the little guy in action. http://www.youtube.com/watch?v=6C_YUy8C0T8
While it may not look any prettier than when I got it, the result was well worth the dollar I invested.
…is another man’s treasure