Project Wants & Needs
We need hardware for our robot and smart building projects. Overall everything needs to be easy to two-way interface to a PC, for the live simulation component of our cyber-physical systems.
- Read navigation sensors (emergency stop, bumpers, tilt sensors)
- Read mission sensors (temperature? pH?)
- Control several motors. DC? Steppers? Probably less than eight total motor channels, counting basic navigation (wheels or underwater thrusters) and manipulators.
Smart building platform:
- Read temperature data from several sensors (interior, exterior, maybe a few in-wall sensors). Humidity? Wind speed?
- Switch AC voltage at a few amps (120VAC 2A OK, up to 240V 20A max):
- Control incandescent lamp for “little house”
- Control circulation fan for little house or real house.
- Turn on circulation pumps, window shutters,
We really need:
- Real network support: wifi, ethernet, Skype.
- Good debug support: a real screen instead of LEDs.
TurtleBot is Willow Garage’s integration of an ASUS 1215N CUDA-capable laptop, Kinect 3D scanner, and a wheeled iRobot Create platform. It’s $1400 all-in, but has software for automatically mapping based on the Kinect’s 3D cloud. This is more of a tabletop or limited-indoor size, standing only a foot or two high. You can add a servo-based robot arm for $300.
The Parallax EddieRobot ($1250 + laptop + kinect) is a conceptually similar kit, with much larger 6″ diameter wheels.
There are a bunch of DIY portable robot kits, like the DFRobotShop Rover ($90). Most of these aren’t big enough to carry a laptop, so getting network / teleoperation / programmability is a hassle.
The PackBot is a militarized indoor/outdoor platform with manipulator. They’re $65,000, so well outside our price range.
Arduino – ATmega
- Extremely popular for do it yourself projects.
- Good Java IDE
- Arduino Uno board is $30, direct USB and onboard device programmer, 6 analog pins, 14 digital I/O with 6 hardware PWM. If you need more pins, the Arduino Mega 2560 R3 is $60 for 54 digital pins, 14 PWM, and 16 analog. A spare ATmega328 processor is only $5.50.
- Boards are expandable with stackable “shields”, DIP style pluggable boards. A huge variety of shields are available: a blank shield for $15, a 48-output analog mux for $25, beefy 30Amp dual motor driver for $80, VGA output with sprite graphics for $50, even slow Ethernet + MicroSD for $50.
- Teensy is a $20 Arudino-like direct USB ATmega board: not pin compatible, but similar pins, and supports the neat Firmata generic firmware interface.
- Do keep in mind these ways to destroy an Arduino (a thinly veiled advertisement for their $40 “Ruggeduino”).
- Very popular locally, in UAF EE department.
- TI sells the USB-based “MSP430 LaunchPad” for just $4.30, with free shipping! (Up to a maximum of 3 per customer for that price, although Mouser will sell you as many as you want for $5. Dr. Lawlor ordered 3 on 2012-01-23; arrived second-day air!) One downside: the USB-to-UART emulator on the LaunchPad board is capped at 9600 baud, which is annoyingly slow. Windows IAR C/C++ IDE works nicely, and you can single-step and debug with a working live hardware UART connection in HyperTerminal. Linux compiler situation is quite bad, with many incompatible and finicky mspgcc flavors accepting differing variants of the basic hardware access headers, and supporting a shifting subset of devices.
- Tiny super-cheap ($0.70!) 8-bit models, to full featured 32-bit models. Pin counts from 6 pins to hundreds of pins. DIP or SMT. The chips are nearly un-killable.
- There’s a Windows IDE, and good command-line tools for Linux.
- Dr. Lawlor has decent experience with them, and has a stack of PICkit 2 device programmers.
- Mike has played with the PICaxe line, which has a USB bootloader onboard for self-programming.
- Lots of possible suppliers. One interesting option is the LCPXPRESSO, a 20 euro board with a device programmer on the left half, and a little ARM on the right half. You can use it as-is, or crack the board to separate the programmer/debugger from the main board. Only problem for our purposes is getting data in and out efficiently.
- Commercial, popular, but about $300 per seat. Nice for kids to experiment with physical chassis design without having to learn machine shop tools.
- Hitechnic motor controller has a PID loop from encoders (position or velocity control). US Digital Encoders plug in directly.
Dr. Lawlor has used the VNH2SP30, a $10 integrated H bridge driver:
- Pro: 30 amps and 40VDC, which covers almost anything plausible in a small robot. Control inputs are 5V logic current, driven direct from any microcontroller with 1Kohm protection resistor.
- Con: somewhat electrostatic sensitive. Momentary reverse bias will fry the device. Heatsinking becomes important for heavy motor loads. Surface-mount part’s tiny pins are difficult to solder by hand, even for experienced users.
Dr. Lawlor has mostly switched to using relays, since they’re un-killable. Relays can be immersed in water, shorted, hooked up backwards, and generally abused by teenagers and still work fine. They make clicky-clicky sounds when they operate, which is good positive audio feedback. Downside is they only switch at a few hundred Hz, are rated for a few million cycles, and virtually all of them need an FET or Darlington amplifier stage to be driven from a microcontroller.
For tiny motion jobs, radio controlled servos are an excellent choice. They can be extremely light, down to a few grams. Ordered directly from China, they’re under $5 each. All the cheap ones take about 5VDC and use the same simple time = position PWM protocol, which is very easy to interface from a microcontroller. More expensive “digital servos” use a digital command bus, which does let you query torque and daisy-chain servos; you can even build your own OpenServo controllers. High-torque servos (over about 1 ft-lb) need metal gears and get very expensive very quickly.
- Dr. Lawor has a huge bag of about 80 little green servos, and another 10 or so stronger black servos with armatures.
Dr. Lawlor mostly uses Molon-style (big square zinc box) gearmotors. These have up to several foot-pounds of torque, typically run on 12 or 24 VDC, and are sufficient for robots up to dog size. They’re reversible and continuous rotation, but are torque-commanded; to get position feedback you need to add an encoder somewhere.
Automotive windshield wiper motors are usually another step up in torque, capable of moving ATV-sized robots (too big to fit through a door starts to be a real pain, as well as dangerous). They’re typically a big DC motor driving a worm gear at a right angle.
Linear actuators are available for surprisingly little, like this 2″ stroke 12V model. Models rated for hundreds of pounds of force are about $100, move at a few seconds per inch, and draw a few amps at 12VDC.
Dr. Lawlor mostly uses sealed lead-acid batteries, which are cheap, heavy, and reliable. They’re available at Alaska Battery Systems in Fairbanks, on Van Horn.
Lithium-ion Polymer batteries have higher energy density, but need a finicky charge circuit to prevent them, er… exploding. You can kill them by over-discharging, over-charging, etc. Cell voltage is 3.7VDC nominal, 4.23V to 3.0V actual. A “2S” pack is twice this, at 7.4VDC; a “3S” pack is 11.1VDC; and so on. Most small radio controlled toys use them.
Lithium-Iron-Phosphate (li-fe-po) is newer and weirder. They’re available in lead-acid battery sizes at 12V nominal for about twice the price (and half the weight).
The Kinect is a very interesting 3D depth sensor. You can trivially get a 640×480 3D point cloud at 30Hz. With some software, you can extract a joint-model skeleton of nearby people at framerate. It does use 1A at 12VDC (12W), which is about what an entire netbook uses, and won’t work in bright sunlight, beyond its 60 degree field of view, or outside the 0.5m-10m usable depth range.
Dr. Lawlor has a set of surplus thermistors that he’s calibrated pretty well. Run as the bottom of a voltage divider, they go into any A/D port. One problem is self-heating, so the voltage divider aught to be supplied from a switchable output, possibly a digital output pin.
Aren’t there some good I2C thermistor chips? That’d be easier than messing with analog inputs, especially if you want high precision.
Gas sensors seem semi-standardized, and ridiculously cheap: $1 board, $5 per sensor. Sensors for alcohol, methane, LPG, …
The ALTA II is a reflectance spectrometer: one panchromatic receiver plus a set of Landsat-matching spectral LEDs. $165, but would need serious hacking to do automated data logging.