This project involved the prototype design and development of a small ~35mm cubic robot named Vee. The robot is capable of moving, detecting obstacles and demonstrating primitive behaviors. The design features an AVR microcontroller, differential drive motors, onboard charging, and infrared obstacle detection.
Phase 1 – Chassis and motor board
February 2022 – October 2022
I began development of the micro-robot on the drawing board with countless design sketches and concepts. Eventually design moved to a 3D model and development of a 3D printed chassis prototype. This prototype was iteratively refined and adjusted as other robot features were identified.
The small scale of the chassis and several requirements resulted in the iterative design approach. Each new iteration of the chassis model was 3D printed and carefully examined for suitability. Any required changes were marked up directly on a screenshot of the model using my tablet. This process allowed me to capture a history of nearly 38 design versions and associated changes, but also helped to ensure that required changes were not missed prior to printing the next version. This became extremely important as printing the chassis at suitable quality took upwards of 8 hours so missing a small change, such as increasing clearances, resulted in time lost waiting for a re-print. An example of how changes were annotated is shown above.
While development of the chassis was underway I also began determining requirements for the motor control subsystem. This required identifying suitable tiny motors. Typical micro-robot designs use pager motors, however I found that using a “raw” pager motor would mean I would also need to develop tiny gearing. This began to complicate the project and I ultimately settled on the Solarbotics GM-15 pager motors. These motors come with a built in gearbox and run at a reasonable speed. They even offer a version with a “D” shaft on the output. This configuration made it very easy to press on small plastic gears for the 1:1 drive train.
The motor board includes the H-Bridge motor driver as well as the LiPo battery charger, and 5V regulator. These are discrete, off-the-shelf modules mounted “through-hole”. A key design goal of this project was to avoid fabricating a custom PCB. A much smaller footprint (or more features) could be achieved with a custom PCB and surface-mount components but I will keep this for a future version of the robot to keep the prototype as simple as possible.
As chassis and motor board development continued I also began work on setting up a bread board prototype of the controller board so I could begin testing software in parallel with hardware development. This includes implementing a serial communications library for software debugging and hardware testing. I also began to structure the code in re-usable libraries and functions to make future programming of the robot easier.
Phase 2 – Controller board and obstacle detection
October 2022 – ???
With initial design, production, and assembly of the chassis and motor-board complete, I could now shift my focus to the controller board and obstacle detection sensors. The controller board is based around an AVR ATTiny2313 in a DIP format. While the features and I/O pins of this chip are limited, there is still more than enough functionality to control the prototype board. The small amount of on-board memory also forces me to consider software development more carefully.
Completion of the chassis board determined the final foot print for the controller board. With this size in mind I can begin laying out parts for the controller board and evaluating how much (if any) space is available for obstacle detection sensors.
Planned features of the controller board are listed below. These features will be described in further detail in the following sections as development continues.
- Serial interface
- Programmer interface and peripherals (RESET button and pull-up)
- Motor board interface pins
- Power/status indicators
- GPIO pins for future use
- Left and right infrared obstacle detectors