Bobby Lunceford Connor Phyfer Luke Rice Phillip Bennett SSTEM Robotics – Fall 2010
What is Bioloid? A hobbyist robot kit produced by Korean manufacturer Robotis. Used by Navel Academy in its mechanical engineering program Allows you to create many unique robots using a small number of different parts Robots can accomplish a number of different tasks because of the built in sensor and processor
Examples of robots
The King Spider Different from other robots previously built Stable while walking Looks cool!
Building the King Spider 18x Dynamixels 1x Sensor 1x CM -5
Finite State Machine *All states can go to Error.
Conditions Condition Code Obstacle in front? F Ground below? B Clearance above? A Load on right front leg? RF Load on left front leg? LF Load on right rear leg? RR Load on left rear leg? LR Last position successful? LPS
Condition Codes 011111111 255 1 2 3 4 5 6 7 8 n/a Front Below Above 1 2 3 4 5 6 7 8 n/a Front Below Above Right Front Left Front Right Rear Left Rear Last Position Successful F B A RF LF RR LR LPS 011111111 255
Atmega128 8 Bit Microcontroller AVR Family Memory I/O
Microcontroller What makes a microcontroller? A microcontroller (sometimes abbreviated µC, uC or MCU) is a small computer on a single integrated circuit containing a processor core, memory, and programmable input/output peripherals. Why use a microcontroller? Cost Power consumption Flexibility
AVR Family AVR Doesn’t stand for anything in particular Modified Harvard Architecture Instruction memory and Data memory are separate Instructions and data occupy different address spaces, so a single address could point to data or an instruction Popular due to reasonably priced development kits and free software tools. BIOLOID Can be programmed using GNU toolset and free WinAVR compiler
Memory In System Reprogrammable Flash Memory EEPROM SRAM 128 K (64Kx16) Stores program EEPROM 4K Expensive Non-volatile SRAM Volatile Doesn’t need to be refreshed. Addressed with register file and IO registers Stack is allocated in SRAM
I/O Universal Asynchronous Receiver Transmitter UART0: Dynamixels Communicates between Parallel and Serial devices. UART0: Dynamixels UART1: RS232 Serial to PC Zigbee 100 Wireless
Zigbee 2.4ghz Wireless Serial replacement Max bandwidth: 250kbps Uses UART1, PortD on MCU Transmits as 8 bit character Zigbee enabled when RS232 PC interface is unplugged Programmed basic handshake functions for master/slave operation.
LibAVR and Libbioloid LibAVR LibBioloid General purpose C code for AVR MCU Example: Defines all I/O registers in SRAM with #defines for easy access. LibBioloid Bioloid Specific C Libraries Dynamixel.c: General helper functions for reading data from and writing data to dynamixels. Includes changing position, checking temp. and load.
Code Sample
Things Learned and Future Plans Low level C programming Volatile keyword, inline assembly, macros, #defines MCU operations Low level Bioloid operations Future Plans: Implement more wireless helper functions, like transmission of floating point and larger than 8 bit integers Refine knowledge of libraries and use knowledge to create a complex project.