We wanted to share a little more about the process behind the design of the Truckbot. The process starts by using SolidWorks to do the CAD work, and then exporting those files to PDF, and then using CorelDRAW for the laser printing.
It sounds more complicated than it is, so check out this video of us going from the CAD design PC’s to the laser cutting room at the TechShop for printing on the Epilog.
We started by making our first robot using cardboard from recycling bins to flesh out that the parts all fit as expected. Then we moved up to using some nicer cardboard from Michaels craft store for $5 a sheet. After that we upgraded to acrylic from TAP Plastics, which ran us $20 for an 18’x24′ sheet that makes four robots.
We hope this helps you to create your own custom robot design and share it with us. It only took us a few weeks to feel comfortable so don’t be afraid to dive in and start making a personalized Cellbot today.
The robots we’re using for Cellbots are typically very small and use tiny wires to connect all of the circuits. We’ve had cases where two of these wires bend and start shorting, and other times where we’ve pulled too hard to remove a connection and the solder just snapped. So to be safe, we recommend using plastic heat shrink where possible on your most commonly yanked on parts.
It’s really easy to use and not very expensive with $8 kits from Sparkfun. Here is video of us using heat shrink to protect some parts on a Cellbot:
The most helpful place we’ve used heat shrink is on the HTC breakout board that we plug into the bottom of G1 phones. We insert and remove this dozens of times a day when testing and this has helped make sure we didn’t fry things along the way.
We have some more pictures in the gallery and you can read the captions to learn more about the process. It’s quick, easy, and fun to watch like the old Shrinky Dinks you might have had as a kid. Just don’t put your Cellbot in the oven!
The Nrover Cellbot running on Nokia phones has always been using Bluetooth, and now we’re using it for the Android Truckbot and Tankbot too. This is thanks to an upgrade to the Android Scripting Environment, which now allows for Python code to call the Bluetooth API’s on any Android 2.0 and up device.
Here is a video of a Nexus One phone driving the Tankbot via Bluetooth (do not adjust your set, it came out very dark):
The Tankbot is using this $20 Bluetooth module from Seeedstudio, and a $19 Arduino Pro Mini that runs at 3.3v. We’re also using a $12 3.7v Lithium Polymer battery, but you could get away with 3x 1.5v AAA batteries just as easily. The LED’s for watching the Bluetooth module status are handy for debugging but optional for normal operation.
Here is a picture of early testing where we used a $22 USB to serial adapter from Sparkfun. If you get the master/slave combo Bluetooth unit from Seeedstudio, this will be required for programming the device to be a slave (it isn’t either out of the box). If you go with their slave-only unit then this won’t be needed and it should be ready to go upon arrival.
This is the final configuration where the Bluetooth module is wired into the Arduino via a small breakout board. Not pictured here is the $14 FTDI board that we use to program the 3.3v Arduino. You only need this for programming so only buy one no matter how many 3.3v Arduino’s you buy.
The Bluetooth is being used to get command signals out of the phone and into the microcontroller or servo motor driver board via serial. The software on the robot doesn’t change at all since it just receives text strings over serial and doesn’t care if there is a phone hardwired on the other end or a Bluetooth module. The phone software needs to call the right API’s though.
We’ve updated the Python code for Android here, and the Nokia code has always had that capability. The code for talking to the hardware is different where the Nrover Cellbot on Nokia uses btsocket to establish a connection via btsocket.set_default_access_point(btsocket.access_point(btsocket.select_access_point())), while on Android it is abstracted a bit more with droid.bluetoothConnect(“00001101-0000-1000-8000-00805F9B34FB”). Both get the job done and make a nice alternative to serial, which meant using a modded version of Android, and wasn’t possible on Nokia.
We have a few more pictures in the gallery to help you get started. Try using Bluetooth for your cellphone controlled robot today!
Our inexpensive Truckbot robots have been using tiny $3 micro servos that get modified for continuous rotation. We do this by removing some plastic that prevents the gears from going all the way around and then bypassing the potentiometer inside.
The process took us about 30 minutes the first time but it only takes 5-10 minutes once you’ve gone through it once. You will need several tools and be comfortable soldering small connections. A couple of 250k resistors is also needed to replace what the 5k potentiometer was doing. It used the current position of the servo gear to create a different level of resistance in the circuit. We just want to fake it as always being centered so any command to be in a position other than center will result in forward or backward rotation.
We haven’t found any micro servos for sale that have already been modified, but Fry’s often had larger ones available for under $10. Pololu also carries them in case you’re already ordering from them and want to save on shipping. These don’t fit in the current Truckbot body and use too much power to be run directly from the Arduino’s 5v source. We”re exploring some larger robots and would love to hear about your projects using servos in our discussion group.
For a detailed descriptions of how this works and what steps to take, we recommend checking out Tod’s great article on tobbot.com, which has tons of great details on what to do. We’ve also taken pictures of the servo modification process and put them in a gallery with captions to provide you with additional details.
We’ve added the first bit of autonomy to our Cellbots by having the Truckbot stop before going off a ledge. We did this by building upon the Wheelchairbot’s ability to sense distance with an ultrasonic range finder. Then it just took a bit of tweaking to the Arduino code to use this reading whenever the servos are moving.
The latest version of the code supports two range sensors, where one is intended to move forward and another looking down at the ground. These are both optional but should help prevent your robot from collisions and dangerous tumbles. It is especially handy if your streaming video and controlling the robot with some high latency.
We’ve tested with this Maxbotix and Parallax ultrasonic sensors, and we’ve also ordered some infrared proximity sensors and very small reflectance sensors. Our goal is to have the robot not bump into things or fall off ledges and we’ll likely need somewhere between four and six total sensors to do that. We want to keep the price down so we’re trying different options on our Cellbots and will share the results with you here.