HBRobotics Club Builders Book

A collaborative (hopefully) effort of the
Silicon Valley
HomeBrew Robotics Club
Robot Builders SIG
Last update:


  Notice!
 
Much of the content of this book and many of the links found here are provided by amateur robotics builders of varying levels of knowledge. You should keep this in mind as you use this information.

  Use the ideas and information found here at your own risk!
 

For Membership and Club Information, visit: http://www.geocities.com/homebrewrc/



(This document was written for Netscape Navigator. YMMV with other browsers.)

 

Table of Contents

(Click on a section to take you to that section. Once you are reading the section, click on the header to return here.)


 

Introduction

This book outlines the procedures and methods used by the HomeBrew Robotics Club HBRC) Builders SIG (Special Interest Group).

The Builders SIG was born from a desire to build a group of club robots in a lab setting so that we could share construction ideas. We wanted to be able to get the hack saws and soldering irons out and help each other in addition to attending the great monthly presentations that we get at the regular meetings.

The goal of the SIG is simple. We want to come up with several platform designs that can carry several different processor types and be programed from common workstation platforms. We want the designs to be inexpensive to build from common (in the US at least) hardware store and surplus sources.

We are not all trying to build the same robot, but we are trying to outline a set of instructions that can be mixed and matched and expanded on by club members to build unique robots.

Some members are building robots on their own, and some are working in teams.

Robotics involves concepts from at least three branches of Engineering:

Many of the club members have high levels of knowledge in one or two of these fields, but little or none in the others. We hope that by serendipitous interraction, members can share their strong areas and learn more in their weak ones.


 

Motors

Many people start a new robot by choosing a set of motors. This is because the choice of motor and drive train depend directly on and help to define the capabilities of the rest of the system.

Conversely, If you specify any of the above items, they will drive the motor selection.

Hopefully, the following motor topics will help shed some light on the motor selection process.


 

Motor Torque Requirements

by Chuck Rice - July 1996

 

Torque

 

Torque is the force applied to an object on an axle that causes the object to rotate about the axle.

 

In the case of robotics, it is generally used to indicate amount of force that a motor will produce to turn wheels or move levers.

Although maximum torque that a motor can produce is constant at a particular voltage, the force produced varies based on the leverage. Because of this, torque is normally specified in dual units: force and radius. In other words, the torque is a product of the force times the radius the force is applied over.

This gives us units such as foot-pounds and ounce-inches. In other words, if a shaft will produce a force of 12 ounces at 1 inch from the axle, then it would also produce 1 ounce of force at 12 inches from the axle. A motor such as this would be said to produce 12 ounce-inches of torque.

How do you discover or measure the torque of a motor?

The easiest way is to ask the manufacture. Sometimes when you buy a motor, the torque will be specified in the spec sheet for the motor. Unfortunately, often you do not get this information. In this case, you must measure it yourself. Fortunately, this is not too hard, and there are several ways to do it. If the motor has a pulley on it, you an just tie a string to it with a weight fob on the end. You must be able to add or subtract known amounts of weight from the fob.

You put the fob on the ground with a guess amount of weight in it, then start the motor. If, as the string winds on the pulley, it lifts the fob off of the floor, then you need to repeat with twice as much weight. If it fails to lift the fob, remove half the weight. Keep doing this, adding or subtracting half of the weight that you added or removed the previous time until you get to the point where the motor almost can lift the fob, but not quite. The weight at this point times the radius of the pulley is the stall torque of the motor.

A simple fob can be made from a water bottle. Just add or remove water till you hit the stall point. Then weigh the water bottle. Simpler and faster, if you have a spring scale, is to hook one end of the scale to an immovable object and tie the string to the other end. Then you only have to do the test once because at the stall point, you can read the weight right off the scale.

Stall Torque

The stall torque is the most force that the motor can produce at the given voltage. Past this point, either the motor will burn up due to too much current, or the voltage will drop because there is not enough current. The stall torque is at the point with the least amount of weight where the motor can no longer turn the axle.

So what does this mean to roboticists?

To choose a motor for a robot, you need to know how much force will be required to produce the required movement. (To be continued)


 

Determining Robot Speed


 

Drive Voltage and Current Requirements


 

R/C Servos 101

by Chuck McManis - May 11 1995

 

Servos 101

A servo is a motor that is attached to a position feedback device. Generally there is a circuit that allows the motor to be commanded to go to a specified "position". A very common use of servos is in Radio Controlled models. These R/C servos are sold at hobby stores and via mail order by places like Tower Hobbies for anywhere from $5 to $150.

R/C Servos come in standard "sizes" (so that they fit models well) and use similar control schemes. Unlike general purpose motors, R/C servos are constrained from full rotation. Instead they have a limited rotation of about 180 degrees or less. This is sometimes changed (see "Servo Modifications" below).

A typical R/C servo is the Futaba S148. This servo looks like a rectangular box with a motor shaft coming out of one end and a connector with three wires out of the other end. Attached to the motor shaft is usually (but not always) a "control horn". This is a plastic piece with holes in it for attaching push rods or other mechanical linkages to the servo. The three wires are V+, Control, and Ground. R/C servos typically run on 4.8v (four NiCd batteries) but they often work with voltages between 4 and 6 volts. The control line is used to position the servo. In an R/C model, this line it attached to the radio receiver, on robots it is usually attached to the processor.

R/C Servos are controlled by sending them a "pulse" of variable width. The parameters for this pulse are that it has a minimum width, a maximum width, and a repetition rate. These values are not "standard" but there are conventions that are generally accepted. The convention is that a pulse of approximately 1500 uS (1.5 mS) is the "neutral" point for the servo. Given the rotation constraints of the servo, neutral is defined to be the position where the servo has exactly the same amount of potential rotation in the counter clockwise direction as it does in the clockwise direction. It is important to note that different R/C servos will have different constraints on their rotation but they _all_ have a neutral position, and that position is always around 1500 uS.

These servos are "active" devices, meaning that when commanded to move they will actively hold their position. Thus, if a servo is commanded to the neutral position and an external force is present to push against the servo (presumably through the mechanical linkage) the servo will actively resist being moved out of that position. The maximum amount of force the servo can exert is the torque rating of the servo. The Futaba servo is rated around 40 oz/inches or 2.5 pounds of push at 1 inch away from from the shaft of the servo motor. Servos will not hold their position forever though, the position pulse must be repeated to instruct the servo to stay in position. The maximum amount of time that can pass before the servo will stop holding its position is the command repetition rate. Typical values for the command repetition rate are 20 - 30 mS. You can repeat the pulse more often than this, but not less often. When this timeout expires and there hasn't been another pulse the servo de-energizes the motor. In this state in can be pushed out of position and it will not return to the commanded position.

When the pulse sent to a servo is less than 1500 uS. the servo positions and holds its output shaft some number of degrees counterclockwise from the neutral point. When the pulse is wider than 1500 uS the opposite occurs. The minimal width and the maximum width of pulse that will command the servo to turn to a valid position are functions of each servo. Different brands, and even different servos of the same brand, will have different maximum and minimums. Generally the minimum pulse will be about 1000 uS wide and the maximum pulse will be 2000uS wide. However, these are just guidelines and should be checked on the servos you use. In particular if you attempt to command a servo past its maximum or minimum rotation it will use the maximum amount of current trying unsuccessfully to achieve that position.

Another parameter that varies from servo to servo is the slew rate. This is the time it takes for the servo to change from one position to another. The worst case slewing time is when the servo is holding at the minimum rotation and it is commanded to go to maximum rotation. This can take several seconds on very high torque servos. Typically it takes less than two seconds.

 

Servo Construction

Servos are constructed from three basic pieces, a motor, a feedback device, and a control board. In R/C servos the feedback device is typically a potentiometer (variable resistor). The motor, through a series of gears, turns the output shaft and the potentiometer simultaneously. The potentiometer is fed into the servo control circuit and when the control circuit detects that the position is correct, it stops the motor.

The typical R/C servo varies most in its internal mechanics from other servos and this is generally the difference between "good" and "lousy" servos. The servo mechanism subsystems are the motor, the gear train, the potentiometer, the electronics, and the output shaft bearing. The electronics are pretty much all the same and so not an issue. In the motor department however you can get smaller and larger motors which effect the overall size of the servo. "mini" servos are generally more expensive than "standard" servos in part for this reason.

The gears also vary from servo to servo. Inexpensive servos have plastic gears that will wear out after less than 100 hours of use. More expensive servos have metal gears which are much more durable.

The potentiometer is the feedback device and often the first thing to fail in my servos. If it gets dirty, or the contacts get oxidized, the servo will fail to work properly, sometimes by "jittering or hunting" since the feedback is inaccurate, or turning completely to one side and drawing lots of current since the servo doesn't know where its output shaft is pointing. More expensive servos have "sealed" potentiometers, cheaper ones do not. I've found I can extend the life a wee bit of my pots by using some judicious application of silicone sealant around the edge. You can do this with a syringe if your careful. Be sure and not to get it on the gears though as it will cause them to bind.

The last subsystem is the output shaft bearing. Cheap servos invariably have a plastic on plastic bearing that will not take much load. Medium priced servos generally have metal on metal bearings that stand up better under extended use and expensive servos have ball bearings which work best. Many places also sell "ball bearing upgrades" for cheap servos which consist of a new top cover and ball based bearing for the output shaft. Tower Hobbies sells three "standard" servos with the part numbers TS-51, TS-55, and TS-57 whose primary difference is the bearing. (I believe the '57 has metal gears as well as a ball bearings)

 

Servo Modifications

When used with robots, R/C servos can be employed as sensor pointers, leg lifters, steering wheel turners, etc. But without modification they can not be the main drive system. Since a servo is, at its heart, a DC gear motor with enough torque to move a small platform, servos are often modified to become drive motors.

Modifying a servo to be a drive motor can use one of two strategies, breaking the feedback loop, or lobotomy.

The most brutal way of modifying a servo is the full lobotomy. You open up a servo, remove the electronics, bringing out the power lines to the motor and remove the potentiometer or modify it so that it can rotate 360 degrees. What you are left with is a DC motor, a gear train, and an output shaft on which you can mount plastic pieces that can be used as wheel mounts. This gives you complete control of the mechanics, but you do have to have a motor driver circuit to drive the DC motor in the servo housing.

Breaking the feedback loop is generally the easier way to modify a servo since it takes advantage of the power switching circuit already present on the servo to turn the motor on and off. This modification involves removing/disabling the potentiometer and replacing it with a voltage divider that convinces the servo electronics that the servo is in the neutral position. (You can figure this out by using the old pot, turned to the neutral position and measuring the resistance.) Now to turn the motor clockwise you send the servo a pulse that is wider than 1500 uS and the motor turns (and never stops because there is no potentiometer to tell the servo circuit it has gone far enough). Or to turn the motor counter- clockwise you send it a pulse less than 1500 uS wide.

This latter technique is fine except that the motor driver circuit in the servo may not be able to handle driving the motor continuously. In normal operation, the motor would be driven for a moment and then idled when the servo reached its position. The intermittent nature of turning the motor on and off allows the servo to use a motor driver that is smaller than one that would be needed for 100% duty cycle operation. If this turns out to be the case, the motor electronics will eventually burn out and you'll end up with the full lobotomy case by default.

So there you have it, nearly everything you wanted to know about servos but were afraid to ask. :-)


 

Hacking a Servo



Hacking a Servo


 

H-Bridges

Chuck McMannis has a really cool servo speed control based H-Bridge that can handle high-amp motors. There are two parts to it, the first shows the design for his PIC based Speed Controller and the second is the instructions for building the PIC board and the H-Bridge board.


 

Stepper Motors

Stepper motors can be very useful in robotics construction, but they can also be very difficult to interface. The drive control requirements are quite complex and there are a number of different types of motors. Often when you get a surplus stepper motor, you get little info on what type of stepper motor it is. Fortunately, with a ohmmeter and a little testing you can generally discover what you have.

Once you know the type of stepper you have you still need to know how it should be driven. Douglas Jones at the University of Iowa provides a very good discussion of stepper motors at

http://www.cs.uiowa.edu/~jones/step/index.html

so we will not duplicate that information here.


 

Electrical noise from motors

by M.J. Malone - January, 1998

DC Motor Noise Suppression for Low Voltage Motors:

These methods work well on low voltage (less than 12 V) and low current motors (less than 3 A).

Connect capacitors leading from each motor terminal to the metal case of the motor. These capacitors help quench spikes right at the motor. IF these capacitors are put on a circuit board, even inches away, the leads from the motor to those capacitors become antenni that broadcasting EM interference. The capacitors must be non-polarized and have a high breakdown voltage like ceramic disk capacitors. Provided the motor drive circuit can produce high instantaneous currents, the rule is generally, the larger the capacitors, the better. Values in the nF range, up to 100nF and breakdown voltages of 300V are recommended.

Capacitors will absorb the energy stored in the inductive windings of the motor however in doing so, the voltage across them can go far above the motor drive voltage (hence the need for 300V breakdown). Another approach, which may be used in parallel with capacitors involves zener diodes. Two head to head zener diodes connected across the motor leads will clip voltage spikes coming from the motor. If the motor is running at 12V, 18V Zeners should be used. A higher substantially higher voltage is used because: Zeners ease into their conduction, it does not happen suddenly at their spec voltage. Depending on the motor drive circuit, the drive voltage may go over nominal for short periods or, for instance when NiCads are fully charged and first connected. Lastly, typically, other power elements of the drive circuit can handle 6V over voltages for short times or there are measures in the circuit to deal with them. Remember the point here is to reduce EM noise and clipping motor spikes at +/- 6V over nominal drive voltages is usually sufficient.

Motor noise can be seen in other circuits as a result of current surges down the motor lead wires. These surges produce magnetic fields around the lead wires and these fields can produce voltages in adjacent wiring as the fields are created and dissipate. The key here is to reduce the area enclosed by the leads on their way to the motor and back to the circuit. The leads of a motor should always run side by side, never splitting to go around other elements of the robot. Reducing the area reduces the expanse of the magnetic field not its intensity, which is related to amount of current flow. To reduce the effect of the magnetic field, always twist motor leads. As viewed from a distance, an untwisted motor lead appears to be one long north or south pole. A twisted motor lead appears from a distance to be a number of small north and south poles alternating down the twists of the wire. The field physics is not easy to compute but the intensity of the field at a distance is greatly reduced. Twists in the wires should be one full twist of the wire for every 6-10 wire-diameters down the length. If the wire is 2 mm in diameter, there should be a complete twist every 1-2cm down the length of the leads --- this is a pretty tight twist.

Place wires leading to circuits sensitive to noise well away from motor leads at all times. Where a wire is particularly sensitive to noise, it can be twisted in a pair with a ground wire to reduce EM pickup.

It should be noted that very high frequency circuits in the 10's of GHz will have problems with twisted wires and EM noise reduction by twisting may not be very effective.

When twisting the leads is not sufficient, shielding them may be necessary. Using strips of household or slightly heavier aluminum foil, wrap the twisted leads tightly using a 50% overlap. If your strips of foil are 1cm wide, make sure they overlap on each lay by 5mm. Make sure there is good electrical contact between one strip and the next. Make sure to ground the foil where ever possible but certainly at the end near the motor driver circuit.

Motors can cause noise on power supply lines when they draw surges of current. Any other circuitry attached to the same supply, particularly analog amplification or filtering circuits will couple that noise into their output signals. Using separate supplies works well to solve this problem. Where this is not practical, large capacitors (electrolytics for capacity plus tantalum dip in parallel for response speed) across the power supply lines will act as reservoirs to supply the surges. If only one pair of capacitors are used, they should be located at the motor driver circuit supply point. The vulnerable circuitry can be run at a lower voltage from the same supply using a voltage regulator. Voltage regulators tend to attenuate any variations in input voltage. Use capacitors on both sides of the voltage regulator as is suggested in their application notes. Lastly, an inductor filter can be used to smooth voltages. Place an inductor in the supply line leading toward the vulnerable circuitry and put a large electrolytic capacitor on both sides of the inductor --- in the hundreds of micro Farad if not larger.

-  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  
M.J. Malone,  Assistant Professor
University of Toronto Institute for Aerospace Studies 
UTIAS: rm183, 667-7942, reception: 667-7700, Fax: 667-7799
St.George:  SF4003, 978-3130              *** E-mail is best ***
Electronic Mail: malone@aerospace.utoronto.ca 
Snail mail: 4925 Dufferin St., Downsview Ontario, M3H 5T6

 

Batteries

What is a Amp-Hour (AH)?

by Chuck McManis

An Amp-Hour is the measure of storage capacity for a battery much like a gallon is the measure of the storage capacity for a jug. Milliamp Hours are thousandth's of an Amp Hour. The actual storage capacity of the battery is measured in Joules, but no one knows how to convert Joules to anything useful in their head so the less accurate amp-hour measure is used.

In an ideal world an Amp Hour would represent the ability of a battery to supply one amp of current for one hour. Conversely, it would supply 1/2 amp for two hours. However, because we're really talking about energy, and not water, what happens is this:

The battery has a finite internal resistance which can be fairly low (NiCd batteries have internal resistances that are less the .01 ohm), and so the battery is represented in real life as an ideal battery in series with a resistor. When you draw current from this arrangement the resistor dissipates i^2*r watts in heat. That dissipated energy comes out of the energy storage capacity of the battery. Thus some of the 'amps' being requested, never get to the circuit. They heat up the battery instead.

Battery manufacturers know this too so what they do is pick the "ideal" current drain of the battery (based on ways the battery may be used in a circuit) and they characterize their battery and then use the number they get empirically as the amp-hour rating. For example, Alkaline batteries are tested with a 10mA power load.

Chuck's school of hard knocks generally derates the batteries Amp-Hour rating 75% for "high current" operation. So a 4 Amp-hour battery I'll treat as a 3 Amp-Hour battery (4 * .75) if I'm going to be using it for motors and such.


 

by Curt Meyers

One last detail about amp-hour rates. The battery spec. should contain a designator "c/xx". Where "xx" will be a number, typically xx=20. This designates the time used to measure the discharge. So, "c/20" indicates the discharge occurred over a 20 hour period, other batteries might list "c/2", a 2 hour period. Or maybe even a battery power capacity usually given in watts or kW.

If you go to a battery dealer they can provide these specs and usually show you graphs of the batteries voltage and current versus time.

A nice retail place to go is Batteries Plus at 903 East El Camino Real in Mountain View. They have all this information available.


 

Battery types

There are many different Battery types and some are good and others are not so good for robotics use. Here are some of the types:

Type Advantages Disadvantages
Liquid Lead Acid ? Does not like to be completely drained
Can spill Battery Acid
Lead Acid Gel Cells No leakage problems Does not like to be completely drained
NiCad No leakage problems Likes to be fully drained between discharges

Please note that this table is under construction. If you have any input, it would be appreciated.

 

Charging

 


 

A word about fuses

by Chuck Rice

Generally small batteries (AA, C, and D cell batteries) do not need fuses, but when you get into the area of motor driver batteries at 2, 5, 10 and greater amp-hour levels, be aware that these batteries can carry quite a wallop. It is a good idea to include a fuse near the battery for short circuit protection. Automotive fuses are good for this and with the blade type fuses, you can get cheap clip-on fuse holders that are easy to install. Choose a fuse that is rated a bit higher than your combined motor stall current. Remember that it is a lot easier to replace a fuse than to rewire your motors, and you reduce the risk of having to chase a flaming robot!


 

Power Connectors

There is a good writeup on standard power connectors at PowerStream


 

Sensors


 

Sharp IR Receivers

Implementing Infrared Object Detection

 


 

Ultrasonic Sensors


 

Video


 

Platforms

There is an art to building Robotic Platforms. A robot gets a lot of abuse. It must withstand the rigors of buggy software and broken or misaligned sensors which often send it tumbling off the edge of a table or down a staircase, or at full tilt, head on, into a wall. It must be vibration proof and allow easy attachment of motors, computers, batteries, sensors, and other appendages.

After researching the constraints on the system that the robot builder is designing, he must visualize what he wants the robot to look like and then start designing frames and enclousers(?) to meet that picture. Often it is just a matter of rummaging thru the junk drawer(s)(ss)(sss)(How many do you have?) or browsing at the hardware or surplus store until your eye catches the piece or part that will fit into your picture.

Sometimes it is as simple as walking thru a toy store and seeing a car or truck or tank that fits perfectly or picking up a bunch of Legos and building it. Other times is becomes much more complex where you are cutting and forming metals and plastics to make what you want. The number of elegant and unique designs are limitless.

Given this, there are various classes of robots, each with its own unique set of problems in addition to the common problems faced by all.

We have divided the platforms into four groups here: TableTop, Midsized,"Too big for the Kitchen", and Land & Sea.

Most of the club robots fit into the TableTop or Mid-sized categories, but often have comonalities(?) with more than one category so be sure to check them all out for ideas to be scaled up or down.

Tabletop Robots

Table-top robots are robots that are small enough to fit onto a ping pong sized table even though many of them are designed to run on the floor in spite of their size. Often these small bots are the fastest robots and require high speed gearboxes and light weight batteries and controllers that can respond to sensor input at a very high rate of speed. Other times TableTop robots will be slow and have more complex control programs to teach robotics skills and allow easy testing of complex behaviors. Cats love to pounce on these!

Mid-size Robots

Mid-sized robots are generally a bit bigger and although they can be set on a table or workbench for construction/maintaince they are too big to be tested there and must live on the floor. These bots generally are small enough to move easily around a house, but are generally hefty enough to carry a sizable payload. They generally need stronger frames, use more power, run slower (but not always). Most are not big enough to hurt someone if they bump into them (unless they are high speed versions), but can scratch furniture if allowed to run wild (Never happens to me! <grin>) and will often cause the dog to get up and move if the robot heads toward him. :)

Members Robots:


CR's Parabot

CR's ClubBot

How to build a Animatronic Halloween Skeleton

(Need descriptions of other Club member's robots here)

'To big for the Kitchen' Robots

'To big for the Kitchen' robots are generally just that. They are designed for industrial settings and are much more complex and expensive. They often require vision systems, and people protection circuits as they can hurt someone if they go astray.

Air and Sea Robots

Air and Sea robots are generally designed to fly or float. There are whole sets of unique problems for each of these.


 

Printed Circuit Boards


 

Making PC boards


While roaming around, I found this PCB FAQ. It has a pretty good description of how to make your own Printed Circuit Boards. The English is a bit off, and it looks fairly old, but it contains a lot of good information.


by Wayne Gramlich

Ever since I ran into Alberta Printed Circuits (I think Chuck McManis first pointed me at them), I have basically given up on etching my own boards.

With this outfit, you send them your files via the Internet. They charge you $48 + $.65xN, where N is the number of square inches your board is. They ship the result back to you via Federal Express in 2-3 days. While it *is* possible to etch and drill your own boards with less turn-around time, you won't be saving yourself very much money; particularly, since it is really easy to make mistake when you are etching/drilling your own boards. To boot, the boards you get back will be double sided with plated through holes, which is really pushing it for the average home PCB maker.

Anyhow to answer your original question, here's some PCB URL's:

GreenCirKit

George Patrick's PCB pages
A FAQ for PCB's

My $.02, -Wayne


 

Soldering

 

Harry Lythall has a good page on soldering.


 

Electrical


Basics

Iguana Labs Beginner Tutorials

LEDs

 

LEDs want about 20 to 25 milliamps current max. The equation required here is
 
Voltage = Current * Resistance or V=I*R

so for a 12 volt source and an LED you have:

12 = .025 * R

Solving for R

12 / .025 = R
480 = R

So you need a 480 ohm resistor.

Each LED drops about 1.4 volts (it differs by color) so if you hook
up 6 in series you would see a 8.4 volt drop in voltage across the LEDs.
That would mean that you would want the resistor to drop 3 to 4 volts.
Plugging that into V=I*R we get:

4 / .025 = R
160 = R

So a 160 ohm resistor would work with 6 LEDs in serial. But generally
LEDs are pretty forgiving so pretty much anything in the 160 ohm to 480
ohm range would probably work. The higher values would give you a dimmer
light. -Chuck-

 


 

Robot Controllers


 

PICs

Information

The PIC Chip Uncovered
Peter Anderson's PIC Page

PIC Development Environments

Macintosh

Kevin Coble is currently developing a shareware MacPic assembler and emulator. It is still in prerelease format but it is in pretty good shape and he responds well to problems.

PC
Unix

 

Miniboard

To the: The Mini Board Technical Reference Page


 

6.270

MIT 6.270 Autonomous Robot Design Competition


 

8051


 

Handy Board

To the Handy Board page


 

ColdFire


 

Basic Stamp

Decoding the Basic Stamp by Chuck McManis


 

Books

These are books that some of our members thought might be of interest. We have not real all of them, so cannot recommend them one way or the other. Please let us know which you find useful.


Title and Description ISBN Author Publisher/Distributor
Practical Robotics 0-9681830-0-X Bill Davies Publisher WERD Technology Inc
Unit 35B, Suite 155
10520 Yonge St.
Richmond Hill, Ontario
L4C 3C7
CANADA

Distributed through:

CPIC Technical Books
6200 Dixie Rd, Unit 108
Toronto, Ontario
L5T 2E1
CANADA
Electric Motors and Mechanical Devices for Hobbyists and Engineers (no ISBN) Bill Davies Publisher WERD Technology Inc
Unit 35B, Suite 155
10520 Yonge St.
Richmond Hill, Ontario
L4C 3C7
CANADA

Distributed through:

CPIC Technical Books
6200 Dixie Rd, Unit 108
Toronto, Ontario
L5T 2E1
CANADA

 

Glossary

HBRC HomeBrew Robotics Club
SIG Special Interest Group

 

Sources

Batteries Batteries Plus at 903 East El Camino Real in Mountain View




Valid HTML 4.01!