Dan Larson
Home |
Back to Member Index |
Back to Robot Index
Dan Larson - Hastings, MN
Web Site:
- Type: 2-wheel differential steering type
- Purpose: To roam around a typical home environment without getting into trouble
- Controller: PIC 16F876 (8K words of flash EEPROM, 368 bytes of RAM, built in PWM, A-D, 20MHz clock)
- Software Development Environment: Firmware developed under DOS using Microchip Corp's MPLAB environment. All in PIC assembler code. Uses simple sensor-driven reflexes, and PID loop
for motor speed control and stall detection. Work is on-going with the firmware.
- Sensors: IR proximity (front looking array of 5, and downward array of 2 for "cliff"
detection, although, as I found out at the last meeting, it results in more of a floor tile avoidance
than cliff avoidance behavior.)
Touch sensors made of 1/32" brass rod and Axman micro switches. This is a poor choice
for touch sensor because they get "mangled" easily when snagged on carpet or other obstacles.
Optical encoders built into modified hobby servos for PID, and stall detection
- Actuators: Two heavily modified Futaba S3003 servos for differential drive.
- Power source: Salvaged NiCd cells from laptop battery packs. (8 cells @ ~ 9.6V)
The charging circuit is built into the robot. It just needs to have
an external DC source of >= 16VDC to charge.
- Construction history:
I started out with the "hair-brained" idea of building a robot because I enjoy
electronics as a hobby and have a day time job as a software engineer. I thought
it would be a great way to combine my talents and skills into a single hobby.
I started out with many prototyped circuits and attempted modifying hobby servos,
since nice gear motors were hard to find, not to mention all of the axles, shaft
couplers, and other mechanical goodies needed in order to attach wheels to the
motors. Hobby servos are cheap and easily modified.
I had no real mechanical plan in mind, so I became frustrated and, finally, one day
just started attaching parts to a hunk of plastic. As you can see, this beast
would shatter in a million pieces if it fell to the floor.
I have learned an awful lot from this initial attempt at robot building and hope
to have a better start, mechanically anyway, on the next robot.
- Operational description: Simple steering reflexes are used in response to sensor data.
There are no high-level behaviors programmed at all yet, although
I do plan to spend some time on that part while starting the
mechanics and base of my next robot. Surprisingly, complex
behaviors do appear to manifest as emergent properties of these
simple reflexes. I think the cat knows the robot is no threat
because she just sits and watches it. She only jumps out of the
way if it comes straight at her. Usually, though, she seems to
know it will avoid her with its IR proximity sensors. I think the
cat understands its behaviors better than I do...
- Future Enhancements/Plans: No significant hardware
enhancements are planned, except, perhaps,
to add some CDS photo cells on the top so I can experiment with
light following behaviors. I do plan on restructuring my firmware
and adding some high level behaviors, but they will be fairly limited
due to the tiny amount of RAM that the PIC has to offer.
- Status: Hardware mostly complete, firmware on-going.
See a larger picture here.