Introduction: Connect Robotic Wheels to Your Old Laptop
I was recently playing with my original LaptopWheels robotic platform, that I had built from some old pine tongue-and-groove shelving, and it got stuck in the carpet in my living room because the motors driving the wheels were too weak. I decided that it was time to rebuild it, better, and to share the build process here.
Step 1: Gather Tools
#1 Philips Screwdriver
#2 Philips Screwdriver
1/4" Nut Driver
3/8" Nut Driver
Drill, with a full set of bits
Metal Saw (Hacksaw, Jigsaw, reciprocating saw, etc.)
Scrap wood, for sawing jig, and clamps
Step 2: Gather Supplies
Any Laptop PC
USB-Serial cable, if your PC lacks a serial port
USB Webcam, for vision
LPC2000-Series Development Kit. I would recommend the Embedded Artists or Olimex kits, or the Keil Dev Kit, for those with bigger budgets. More experienced developers could design their own PCB and order it online from a PCB Manufacturing service.
10-24 x 3/4" long Bolt, qty. about 20
10-24 Hex Nut, qty. about 20
4-40 Machine Screw, qty. about 30
4-40 Machine Nut, qty. about 30
22-AWG Insulated Wire, several colors, one spool each.
5 1/2" Diameter Wheels
Cheap, Bolt-On Drawer Handle
3' Extruded Aluminum Drip Cap U-Channel (for Front Doors in Homes)
6' Extruded Aluminum 1/2" right-angle
24" x 30" x 1/8" plexiglas sheet
Panel-mount On-Off switch.
Hardware from the old LaptopWheels platform:
Pre-wired 4xD-Cell Battery Holders, qty. 2
1/4" long #4 Spacers, qty. about 30
D-Cell Batteries, qty. 8
Bolt-on Caster Wheels, qty. 2
LPC2000-Series MCU Circuit Board, with some attached Daughterboards
Mosfet H-Bridge Motor Controllers, qty. 2
12V Infrared/Visible Light LED Illumination Module
- 12VDC Power Cables, qty. 2
- H-Bridge Control Cables, qty. 2
- LED Illumination Module Wire Harness
- Specialized USB Parasitic-Power Cable for the MCU
- Specialized Serial Cable for the MCU
- 12VDC Power Harness System
- On/Off switch cable
Gearmotors salvaged from Printers, qty. 2 (found in the dumpster at work)
scrap sheet metal, scraps of PCB
Step 3: Measure Your Laptop PC
Use a tape measure to find the dimensions of your Laptop PC.
Mine measures 13" x 10 3/4".
Step 4: Cut Out Two Sheets of Plexiglas
Mark your sheet of plexiglas up with a Sharpie Marker. You will need the first sheet to be the size of your laptop, plus the width of all of the angle braces that will fit on around it.
Since I used 1/2" angle braces, my total width will be the width of the laptop plus 1/2" on every side, which is 14" x 11 3/4" total. I set the laptop on the marked-up plexiglas, for a simple "will it fit" test.
Measure your saw, to be able to set up a jig for cutting your plexiglas.
Clamp your jig onto your plexiglas, taking care not to damage the plexiglas with your clamps. Check that your saw lines up exactly with the marked cutting lines, as shown in the photo.
Slowly and carefully, cut your first sheet out of the plexiglas.
Cut out the second sheet the same way. In my case, I had a 1/2" extra on the bottom sheet, which I chose to leave on as a front bumper, rather than cutting it off.
I ended up with more than half of the plexiglas left over, which I may use in some future projects.
Step 5: Cut Up Your Aluminum Parts.
Measure your aluminum U-Channel to the front-to-back length of your laptop, plus the width of the front and the back angle braces. In my case, that's 10 3/4" plus 1/2" plus 1/2", or 11 3/4" total. Cut out two lengths of the U-Channel. Mount the U-Channel to the bottom piece of plexiglas by drilling through both and using the 10-24 screws and nuts. This is just a mounting test, for right now; you'll need the parts apart for more work right away.
I layed my laptop on the top piece of plexiglas, and marked off the ports that needed to be accessible with the sharpie marker. Next, I cut out angle braces, and lettered them sequencially, to go on around the laptop. I also needed an additional angle brace across the bottom of the back, because the ports that were back there were making the plate too flimsy. I'm only bolting on the front and back angle braces, because the side angle braces have to bolt onto the U-Channel as well.
I pre-drilled and test-fit all of the mounting holes for the angle braces, at this point.
Step 6: Mount Your Gearmotors and On/Off Switch to the U-Channel
Your gearmotors will differ from mine, but your should be able to mount them pretty easily through the U-Channel metal.
The on/off switch, being a panel-mount part, is pretty easy to install, too. My switch wasn't entirely clear which way was on and which was off, so I tested it with a digital multimeter to find out.
Step 7: Mount the Caster Wheels
When I went to mount the Caster Wheels, I realized that I needed some shims for one side, so I built some spacer plates from scrap sheet metal.
Next, I just bolted the caster wheels on, as seen in these photos.
Step 8: Test-fit All of the Main Components on the Lower Plexiglas Plate
Test-fitting the main parts, I marked the outline of each, and marked the mounting hole positions, then went back later and drilled them out. I used a 1/8" drill bit to make all of the mounting holes for the electronics.
After drilling, I bolted on all of the the main parts, to test out the mounting holes I had just made. I used plastic beads for spacers under all of my PCBA's, to raise up the soldered leads, away from the plexiglas. This also gives some room for wiring to run below the boards.
I decided to put all of the mounting screws in from the bottom, to leave maximal ground clearance in the middle of the robotic platform. Except for the sides, this platform has about 2" of ground clearance, all around.
After the bulk of the holes are drilled, you can remove the protective plastic sheets from your plexiglas, and re-install your components.
Step 9: Oh No, I Forgot to Add ...
We're all human, and we all forget to do some things.
Please see the photos, for the list of additions after-the-fact.
I intended to use some piano hinge to allow the top plate to open up, for access to the lower electronics, however, that didn't work out. I also didn't find a very sturdy location for the handle to be mounted, so it's left out for the time being as well.
Step 10: Attach the Top Plate to the Robotic Platform
Since I decided against the piano hinge, I came up with an alternative. I mounted four screws, pointed up from the top of the robotic platform's U-Channel, as posts for the top plate to mount onto.
Next, I mounted the side angle braces onto the top plate, but I leave the screws out of the holes where the posts will fit through. These holes, I widened out to 1/4", to make fitting the top plate on easier.
I test fit the top plate onto the robotic platform. Since everything looks good, I install the laptop PC onto the top plate, and hook up USB.
Step 11: MCU Firmware
I used the LPC2148 MCU from NXP in my setup, because I'm familiar with them from experience at my job.
Other good choices would be any cheap MCU with analog inputs and free GPIO pins with a free GNU toolchain and an RS232 port.
I created a very basic serial-commanded motor controller system. It takes its commands at 9600bps, in the format "M%d%c%02.2X", as in "M1+0A" for "motor 1, speed 10/32, positive polarity", or "M2-00" for "motor 2, speed 0/32, negative polarity", and drives the H-Bridges with PWM signals. It responds with an "X" character to confirm that the speed command was received, parsed, and applied correctly. As long as your MCU can support the same protocol, and send PWM to the H-Bridges, you can use the same PC software for controls.
Step 12: Install PC Software
I created some PC client/server software, in Visual Basic Express 2005, for the control of the LaptopWheels Robotic Platform, and additional, for my ATRT Robotic Trike platform as well.
Unfortunately, it's still very buggy, and not ready for release. If anyone really wants a copy of the executables in their current state, please e-mail me via instructables, and I will be willing to share them. As I said, though, they are very very buggy.
Step 13: Test Drive!
Nothing's holding you back, though. Go ahead and press your drive wheels onto your gearmotor output shafts, and drive your LaptopWheels robotic platform around.
I've had good luck attaching a webcam and running skype alongside the remote control software, for remote vision, but I did find skype very laggy. It's also cool, to record videos from onboard:
With a webcam, I've also had RoboRealm (unsuccessfully) control the robotics based on machine vision cues, using a serial script, but because my camera was too low in picture quality, it behaved pretty erratically.
Step 14: Contact Me
If anyone decides to build one of these for themselves, I would love to see it in action. Please, go ahead and comment on this 'ible with your photos and videos.
Go crazy, because I'd like to see additional accessories on some of these, like robotic arms added, sonar sensors, laser distance sensors, spikes, Skil Saws instead of wheels, etc.
Thanks for reading :)
Step 15: Keep on Improving
I went back, and found a way to add that handle to the front of the machine.
I also test drove it, with the biggest wheels I have on hand right now, but, I wasn't very happy with my gearmotors, because the gears just spun on their shafts whenever much torque was needed. That was my fault, due to the way I modified them from the way I found them in the dumpster.
I plan to find a way to affix the output shafts to the output gears more solidly, or I may re-purpose those gearmotors for some low-torque project for the future, maybe a smaller, lighter robot with no laptop on top to weigh it down.
Right now, I'm working on some new ideas for powering the drive wheels. One thought is tearing down some cheap electric screwdrivers, and attaching the wheels to their 1/4" hex output shafts.
Edit: I mounted the new, big wheels onto dedicated 1/4" axles, with bearings on the wheels, and used some 1/4" pitch scooter chain and sprockets to connect the wheels to the gearmotors, after modifying the motors themselves significantly more. The Electronic Goldmine web site has great deals on sprockets.
We have a be nice policy.
Please be positive and constructive.