OCR Text |
Show 29 college of engineering Control of a three degree of freedom leg with sensors involves monitoring sensors, maintaining servo sig-nals for three servos, and calculating movements. For a hexapod these tasks are multiplied by six with the added requirement that the legs must be coordinated. A common method for hexapod control is to assign each of the aforementioned functions to multiple processors and then coordinate the various processors through careful programming. I.e. one processor is used to maintain servo signals for all eighteen servos, and one or more processors are used to monitor the sensors while yet another processor is used to calcu-late movements for all the legs and the body of the hexapod as well as coordinate everything. This method has certain inherent limitations. For instance reaction to an event, such as a touch, is delayed by interpro-cessor communication latency. This project has been about exploring a different method for distributing control functionality. The core idea is that each leg can be controlled by a dedicated microcontroller and that all such controllers can be coordinated via a master processor. Hypothetically this would allow any given leg to respond to a touch more quickly as the processor controlling any given leg's servos is also monitoring the leg's sensors. The approach of this project has been to build a prototype. A working pro-totype will show that such a distribution of control functionality is possible. From there the impact of this design on aspects like system responsiveness, available processing power, power consumption, etc. can be explored. Several aspects of the prototype now work. A library has been written that permits the master and slave microcontrollers to communicate via i2c. Both types of controller can raise and respond to digital interrupts. The master microcontroller software can identify direction of the nearest IR light source. The slave microcontroller software can control three servos as required. Furthermore three servos have been modified such that the positions of the servos can be identified. This part was done in response to short-comings discovered earlier in the project. With these components in place one leg is functional. To extend this functionality to the rest of the hexapod requires deploying the slave software to 5 microcontrollers, physically altering the servos on those legs and connecting those microcontrollers to the master processor. HEXAPOD CONTROL VIA MULTIPLE MICROCONTROLLERS Dustin Webb (Stacy Bamberg) Department of Computer Science, Department of Mechanical Engineering University of Utah UNDERGRADUATE RESEARCH ABSTRACTS Stacy Bamberg Dustin Webb |