- ATmega8 microcontroller preloaded with the Arduino boot loader (can be upgraded to ATmega168 or ATmega328) with 16MHz ceramic resonator.
- USB interface and ISP socket for easy programming.
- Dual H-bridge motor controller for rated at 800mA for each motor.
- Motor control circuit can be disconnected to provide additional digital pins.
- Quality screw terminals for power and motor connections.
- Eight 3-pin servo compatible outputs.
- Servo power selectable between +5V regulated or battery direct.
- Reverse polarity protection diode rated at 3A to protect servos.
- 6 analog inputs with +5V and GND connections to power sensors.
- Power switch, power LED, reset button and D13 LED.
- Male and female I/O headers for easy connection.
- Comes pre-tested and pre-loaded with the Arduino IDE.
The Dagu Magician Dual 0.8A Robot Controller is a low cost, Arduino compatible controller for beginners with everything needed to get started, all on one board.
This board uses the ATmega8A and comes preloaded with the Arduino boot-loader. The USB interface allows the controller to be easily programmed with the Arduino IDE and a Mini-B USB cable. Analog pins A0 – A5 can also be selected as digital pins D14 – D19 allowing them to be used as digital I/O pins.
The ATmega8 is the microcontroller used by the original Arduino and has enough program memory to suit beginners (8K). This chip can easily be replaced with an ATmega168 or ATmega328 to increase memory size while maintaining Arduino compatibility. Use the Arduino IDE for programming this controller board.
The USB interface allows the controller to be easily programmed with the Arduino IDE and a Mini-B USB cable. When programming the controller can be powered directly from the USB cable although the USB power will not power the motor control circuit.
Motor Control Circuit
The Magician robot controller has 2 “H” bridges for motor control. The “H” bridges control the speed and direction of small DC brushed motors as used in most robots.
Each motor is controlled by 2 digital outputs. D7 controls the direction of the left motor while D9 controls it’s speed. Similarly D8 controls the direction of the right motor while D10 controls the speed.
If DC brushed motors are not used, then the 4 jumpers next to pins D7-D10 can be removed, giving one male and one female header for each pin.
D9 and D10 can generate PWM signals when the <Servo.h> command is not used in the program code.
Digital (Servo) Pins
There are 8 digital pins available to be used especially with servos. These pins can still be used as standard digital I/O pins but they also have power pins for servos.
+V can be selected between Vcc(+5V) from the regulator or Vbat from the battery allowing servos to be powered directly from the battery.
These pins do not have to necessarily be used with servos. They can also be used with LEDs, simple switches or digital sensors in which case the voltage select jumper should be set to Vcc(+5V) to prevent damage. Each pin has a maximum current limit of 40mA making them unsuitable for driving relays or motors directly. When using LEDs a current limiting resistor of about 270 ohms should be used in series with each LED. Digital pins D2 and D3 can also be used for external interrupts.
These pins are labeled A0 – A5 and are normally used to measure voltages between 0 and 5 Volts. There are many sensors available that have analog outputs which can be powered by the Vcc and GND pins next to the analog input pins.
Note: Make sure you connect the power wires correctly to the sensor to prevent damage to it.
Digital and Analog Pins
When the controller is switched on for the first time or reset then all pins except D13 are converted to inputs. D13 is set to output so that the boot loader can operate it. The LED on D13 flashes when a new program is uploaded. It is recommended that D13 be used for outputs only for this reason. To use a pin for an output it must configure it as an output in the program code.
Analog pins A0 – A5 can also be selected as digital I/O pins D14 – D19.
All controller pins have an internal 20K pullup resistor available which can be enabled by writing a “1” or “HIGH” value to that pin while it is configured as an input.
This board is designed to work with battery voltages from 6V to 9V. Voltages over 9V will prevent the motor control circuit from functioning correctly. Voltages less than 5.5V can cause the 5V regulator to become unreliable. A reverse polarity protection diode protects the controller if the power is accidentally reversed.
The 5V regulator uses a large copper track on the board for a heatsink and when running from a 6V battery can easily handle up to 1A of current. If necessary the regulator can be made upright on the PCB to attach a heatsink. The maximum current rating of the 5V regulator is 1500mA.
The Arduino IDE for programming this board is free and available for Windows, Linux and Mac OSX. This IDE can be downloaded from the Arduino Website [Link]
The latest USB interface drivers for Windows, Linux and Mac OSX can be downloaded from here [Link]
Possible Application Areas
This board can be used for mobile robots that need to have pan-tilt mechanisms, grippers and arms, and numerous sensors mounted on them. For example:
Object Detecting Robot [Link].
Did you create a project using this product? Leave details/links below!