Monday, February 11, 2013

The Micro Magician robot controller

The Micro Magician robot controller is the perfect choice for small / low voltage robot 
projects. This low cost Arduino compatible controller is packed full of features: 

    •   Small size of just 60mm x 30mm 
    •   Supply voltage from 3.6V to 9V with 3.3V regulator and reverse polarity protection 
    •   ATmega168 or ATmega328 MCU at 8MHz  
    •   Dual 1A FET “H” bridge with electronic braking, current limiting and overload detect 
    •   3 axis accelerometer with 0G detection and either 1.5G or 6G full range sensitivity 
    •   38KHz IR receiver with signal detection LED 
    •   Up to 8 servos can plug directly into the controller when V+ is set to Battery 
    •   3.3V and GND outputs available for powering sensors 
    •   All I/O pins (except D4) have both male and female header pins 
    •   Status LEDs for Power, RX, TX, IR signal and D13. 

The Micro Magician is designed to work on voltages as low as 3.6V allowing it to be  
powered by 3xNiMh cells or a single Li-Ion cell. Do not exceed 9V otherwise damage  
to the A3906 motor driver may occur.  

Two link inputs allow two battery holders to be linked in series otherwise they can be  
ignored. These pins only connect to each other. A header provides power output for  
external devices controlled via the onboard power switch.  

The controller can be powered via the USB port or ISP socket for programming but  
battery   power   is   needed   for   the   motor   controller   and   servos.   Polarity   protection  
prevents damage if the battery is accidentally connected the wrong way. 

A3906 Dual FET “H” bridge 
The A3906 motor driver can drive two DC brushed motors or 1 stepper motor. The  
FET “H” bridges have a very low voltage drop so each output has been internally  
limited to 900mA to prevent damage from accidental short circuits. Electronic braking  
is possible by driving both inputs high.  

The “motor stall flags” are normally held high by pullup resistors and will go low when  
a motor draws more than the 900mA current limit. Connect these to spare digital  
inputs so your program will know if your robot gets stuck. 

When not in use the A3906 can be put into sleep mode and it’s control pins (D5 – D8)  
used for other purposes.  

MMA7361L 3-axis accelerometer 
The MMA7361L detects acceleration due to both gravity and motion on all three axis’s.  
This feature gives robots a sense of balance and can be used to detect if the robot is  
about to fall over. If the robot has fallen over then this sensor can aid self-righting  
maneuvers. The ability to detect acceleration can also be used to determine if the  
robot is moving or has been involved in a collision eliminating the need for bumper  
switches. This sensor uses Analog inputs A0, A1 and A2.