I have designed and built an experimental robotics platform using the drive system of an electric scooter. It has several important and useful features, including remote control, emergency stops, and shutdown circuitry. In this report I will provide a clear description of these features so that others may incorporate them into their projects.
Ever since elementary school, I have wanted to build a robot. Sure, I’ve built a few from kits, but I wanted to build one from scratch. One I could tweak, modify, and redesign. A platform I could use to explore concepts such as autonomy and telepresence, one large enough to experiment with any sensors or actuators I could think of. I’ve always had so many ideas for projects that building a large robot always got pushed off to the side because of the time and the cost required. But the day I found an old Shoprider scooter at a garage sale, I knew the time had come.
After restoring the scooter to working order, I began working out how to interface it with a microcontroller. I soon discovered that the most expedient method was to emulate the analog signals of the joystick and throttle control on the motor controller. This was simple enough, but I was not familiar with using one joystick to control two wheels, so I wanted to get a feel for the platform’s range of motion and control scheme. I needed a way to control the robot from a distance so I could do this without tripping over it. I decided that the most practical approach would be to relay commands from a remotely located joystick to the motor controller. I chose the 433 MHz RF Transceivers for their ease of integration: the serial interface makes sending and receiving data straightforward, and the 0.1” spaced header lend themselves to the prototyping phase.
Adding remote control to the project presented a design challenge: what does the robot do when it does not have a signal? The answer should be “nothing”. Thus, adding and out-of-range halt feature to the code was critical. Additionally, I decided that the robot should also have a user-activated E-stop that was separate from the main control circuitry, so that if there was a problem with the software, the robot could still be stopped. A keyless entry system for an automobile was used for this purpose. The E-stop is designed so that one button stops the robot, then that button must be pressed again to reset the robot, and then another button must be pressed to re-enable the robot. The reason for this is so that pressing the stop button repeatedly, as one may do in case of panic, will not reactivate the robot. There is no enable button on the robot so that the operator must be in possession of the E-stop fob in order to use the robot.
The startup and shutdown sequences of the robot are very important, because the motor controller will drop into an unresponsive error state if it receives out-of-bounds inputs. To remedy this problem, the Stamp was given control of its own voltage supply so it could manage the startup and shutdown sequences.