Making of V-Maid
The Making of V-Maid
By Clint Bridges
Building an autonomous robot to perform the specific task of vacuuming a small simulated room proved to be a formidable and brain-taxing task. Each step of the process seemed to demand endless hours of problem solving and on-the-fly engineering. In this article I hope to share some of the things I learned.
The first step in any robot design is choosing a motion platform. I chose to build a round base with motors and casters mounted in such a way that the robot could rotate around its vertical axis. This proved to be invaluable for maneuvering around furniture in the small arena.
The round top and bottom of the V-Maid frame are made of Delrin. The 3/8 inch thick sheets of Delrin were formed into disks by milling with a simple wooden fixture in a milling machine.
A single ¼ inch hole was drilled into the center of a rectangular piece of Delrin. A ¼ inch pin was pushed through the Delrin and into a hole in a plywood fixture so that the Delrin could spin freely. Next the proper radius from the pin to the milling bit was set and the spinning bit was progressively lowered into the Delrin as the sheet was turned. The result was a perfect circle with a ¼ inch hole in the center.
The vertical struts that connect the upper and lower Delrin disks are made of an off-the-shelf aluminum extrusion. This extrusion is made by a company called 80/20, Inc. and can be purchased by the linear foot. I chose the 1010 part number, which has a 1-inch square cross section. I bought the extrusion in 4-foot lengths and cut it to length on a Craftsman radial arm saw using a special blade.
The motors used for V-Maid are made by Pittman in Harleysville, PA. Pittman is very easy to deal with and will sell single piece quantities of a wide selection of motors. The motors for V-Maid are Pittman GM9236S019 and have a 12 volt winding, 500 CPR quadrature encoder with index, and ¼ inch output shaft. These motors operate at about 236 max RPM and have a 19.7:1 gear reduction ratio. The wheels for the robot are mounted directly to the output shaft of the motors. Since the wheels have a ½ inch bore an adapter bushing is needed to reduce to the ¼ inch diameter required by the motors. The wheels are McMaster-Carr part number 60885K25 and are actually drive pinch rollers. The required bushing is McMaster-Carr part number 6420K12 and a 10-32 by ½ inch set-screw must be purchased separately.
The front panel includes switches for CPU reset, drives, vacuum, and sensors.
The illuminated push-button switches are made by GC Electronics and were purchased at RS Electronics. The incandescent bulbs included with these switches were discarded and bright white LEDs made by Chicago Miniature were soldered into the lamp sockets.
After experimenting with several vacuum mechanisms, I chose to use brushes to push the rice into a narrow band. Then the suction from a Black & Decker Dustbuster 450 motor would pick rice up from the carpet and deposit it into a Rubbermaid food canister. The hose used to make the vacuum circuit is actually corrugated washing machine drain line hose and is available from most hardware stores. The Dustbuster motor is designed for use with a 4.8-volt rechargeable battery. I drove the motor with a 6-volt battery to increase suction. The motor draws 18 amps continuous current at 6 volts and an automotive relay rated for 30 amps was used to switch the vacuum on and off. A separate Omron timing relay shuts the vacuum relay off after the required 6 minutes and relieves some of the burden from the CPU.
The bottom of V-Maid reveals the brushes used to guide the rice toward the suction hose. The brushes are short pieces of door-bottom weather seal purchased from Home Depot.
I have wanted to learn about the Microchip 17C756 for a long time. This seemed like the perfect opportunity to utilize this high-end microcontroller in a real project. All programming for V-Maid was written in BASIC and was compiled using microEngineering Labs PicBasic Pro compiler. PicBasic Pro uses a version of BASIC similar to Stamp BASIC. I used the beta version for the 16 bit core Microchip MCUs. BASIC programs were written using Windows Notepad and compiled using PicBasic Pro. The Microchip MPLAB assembler was used to create a usable HEX file. Code was tested by plugging the emulator pod from a Picmaster into V-Maids MCU socket. After debugging, the final code was programmed into a windowed 17C756 using a Microchip Promate programmer.
The motors that propel V-Maid have Motor Mind B variable speed controllers made by Solutions Cubed. Two outputs from the 17C756 are used to control the drive motors. These two outputs are connected to the "from master"(FM) pins of the Motor Mind Motor controllers.
These 9 pin devices incorporate an 8 pin PIC for serial input and a motor driver by Allegro Microsystems into a compact package. The Motor Mind B will drive up to 2 amps of continuous current at voltages up to 30VDC. They use a simple serial interface to accept commands or send responses. The command set is powerful with commands such as SETDC, STOP, REV, TECH, and SPDCON available. The Motor Mind B also has a tachometer input and will regulate motor speed from this signal if desired.
Selecting and mounting sensors for V-Maid to detect obstacles was the hardest part of the project. I finally settled on 7 ultrasonic sensors and 2 bumper switches. Four small ultrasonic sensors, made by Hyde Park and purchased through AA Electric, are used to sense obstacles directly in front of the robot at levels just above the floor. This included sensing the lamp base, walls, and speaker. A downward looking Honeywell ultrasonic sensor was used to look for the seat of the chair. Since the legs of the chair were small and round, the lower Hyde Park sensors almost never detected them. Two Velleman Parking Radar kits were assembled and mounted at the midriff of the robot to detect the edge of the chair seat. The chair was by far the hardest obstacle to detect and three of the seven sensors onboard are dedicated to sensing it.
List of Vendors:
2220 Centre Park Court
Stone Mountain, GA 30087
6100 Fulton Industrial Blvd.
Atlanta, GA 30336
343 Godshall Drive
Harleysville, PA 19438
554 North Avenue NW
Atlanta, GA 30318
701 Brooks Ave. South
Thief River Falls, MN 56701
Colorado Spring, CO 80933
11 West Spring Street
Freeport, IL 61032
Chico, CA 95973
Hyde Park Electronics, Inc.
1875 Founders Drive
Dayton, OH 45420
1885-A Beaver Ridge Circle
Norcross, GA 30017
5600 Buford Hwy.
Doraville, GA 30340
1665 Lakes Parkway
Lawrenceville, GA 30243