On one of my shopping trips around North-West London (ON, Canada), I came across this plastic truck toy at a price of CAD $1.00 plus taxes. As a toy it's probably nothing special, just a piece of plastic with wheels but what made me wonder is if it can be used to create a small robot platform. I wasn't sure what this platform will fit better for 'line-follower' or 'obstacle-avoider' project, so I decided to follow already familiar path and turn it into RC vehicle first using nRF24L01 module and RFL remote control. The chassis are rather long so it makes them rather inefficient when it comes to skid stirring (or so I thought). Hence my plan of action is to see how chassis will perform as an RC platform first and if there is a good reason to use them for more complex 'thinking' robot projects. It's nice to know your chassis limitations before you commit time and effort to attaching sensors and other peripheral electronics.
So first things first, the mechanical part. I had to cut off stock wheel holders and attached four micro-motors using Pololu's motor holders/clamps. Four of these motors should provide adequate torque and skid stirring ability to the platform. Next I soldered wires to the motors and ran them from the under-belly to the top side of the vehicle where all of the electronics will be attached.
When trying to decide what wheels to use for this chassis I eventually ended up using Pololu's tires put onto aluminum rims that you can find here. The end result speaks for itself :) treaded truck tires on 'gun-metal' rims turns it into one mean looking robo-truck.
Once the motors and wheels were on, I've installed venerable Baby Orangutan robot controller from Pololu as my main robot controller board and wired up motors to BabyO motor pins pins along with the other peripheral staff on the robot. At this point I've decided to do basic tests on the chassis. I've programmed BabyO with a code that would run motors through forward, reverse and skid-steering sequence. Put the platform on the floor and just let it run for a few minutes. The results seemed to be encouraging. All of the pre-programmed moves were executed as expected with no hiccups or stalls. So, on to attaching SPE's nRF24L01 radio module and trying to control the robot with RFL remote. For those who've seen our previous post here, the core setup of this robot will look familiar to the one that we used on the 'BUGGER'-bot: BabyO robot controller, nRF24L01 radio and AI remote.
Now, as you might have noticed from the pictures I'm using older version of the Baby Orangutan board on this project despite that there is a newer version being available (and we do have it in stock). The new version of this board has one of the SPI pins - MISO - being re-purposed for motor control. This essentially 'nukes' chip's SPI sub-subsystem since you can't get the data into ATMega168 without "Master In, Slave Out" (MISO) pin. The older version of this board has all core SPI pins (MISO, MOSI, CLK) available aside from "Chip Select" (CS) pin. CS pin is being used for motor control on the green version of the board. However, it's much easier to deal with re-purposed CS pin then with re-purposed MISO pin. CS can always be emulated in software with any available GPIO pin on the micro-controller. So for now I will have to stick to using the green BabyO on the projects that will require SPI functionality though the new version of Baby Orangutan is no less capable controller for small robot projects.
Once everything was installed including two 6V batteries, I noticed that rear wheels formed inverted V-shape. As it turns out plastic is a bit soft to hold the weight. However, this is not a big deal since we can add either an aluminum or PVC plate to the bottom of the chassis to increase platform stiffness. In my case, I had a small piece of PVC plastic laying around so I've used that to reinforce the rear of the vehicle. The front portion of the vehicle was less of an issue since PCB piece used to hold electronics adds stiffness to the front already.
On the topic of power, I'm using two 6V/600mA batteries wired in parallel to provide ample current to four motors, robot controller and nRF24L01 radio. Both batteries can source maximum of up to 1.2A, this should be plenty for this robot in the current configuration. The setup doesn't require voltage regulator since both BabyO and nRF24L01 radio module come with their own voltage regulators. The 6V batteries are well within input voltage range both modules can handle. I only had to add power switch to the whole setup so I won't have to deal with connecting/disconnecting battery wires.
Now after everything is in place, on to trials. There was a single concern that I had at that point. How robot will handle carpet surfaces since it's using treaded rubber wheels. A few skid-stirring platforms that we worked with in the past had issues running on the carpet surface. Due to the soft rubber used on wheels the robot would have a hard time making turns because the rubber would almost stick to the carpet surface. Therefor, we had to limit our test runs to linoleum covered parts of the office and stay away from carpeted surface as far as we could. Well, to my great surprise, the robot handled skid-stirring really well on both linoleum and carpet covered surfaces; I think it's because the wheels are made of stiffer rubber compound then we dealt before. Here is the video.
To sum things up, I'm quite happy with the conversion. It turns out that you CAN use cheap plastic toys as a robotic capable platforms :-). The platform has plenty of space to put staff on, great skid-stirring capability, great visual appeal and did I mention the price - CAD $1 plus taxes. :)