The project will show you how to build an advanced motor control with high speed communication, encoder feedback and automatic control with AVR ATmega16 microcontroller. Analyzing motor feedback is the most important task in a motor control and therefore, the project, which is designed by Rickard Haglund & Lars Carlsson, use two Atmel AVR microcontroller. One of them is for analyzing the motor feedback and the other one for steering the motors and communicating with the rest of the system. The two processors communicate by I2C which the ATmega16 has hardware support for. For communicating with other nodes in the system, the project used the low-cost MCP2515 to implement the CAN-protocol. The motor-drive-circuit (L6205) is controlled by PWM signals from one of the ATmega16 MCU.
By using the ATmega16 ADC the system can measure voltage levels and current levels on the motor control card. The obtained data is valuable in the automatic control and adds a higher level of safety to the system. The ATmega16 also has hardware-timers that are excellent for high-speed motor encoder counting. Because of the complexity of the PID-regulation the mathematical calculations are usually done by a PC. By using two ATmega16 the work load on the processors will be shared. One of the processors will analyze the robots sensors such as motor-encoders, motor-current and accelerometers. The other processor will communicate with the rest of the system while controlling the motors.
Motor Control Card
Project Detail and Documentation