In part 1, I talked about the construction of the Dagu 12-servo hexapod chassis. Now it’s time to add some electronics.
First of all, let me apologise for the delay between the last part and this one. Back in April 2014, I connected up the electronics, and started writing this post, but then real life got in the way of my hobby time, so I have had no time to finish.
As mentioned in part 1, I chose to develop a modular system for the robot that abstracted the movement of the servos from the business logic carried out on the main controller. For this I decided to use a ‘Mini Maestro’ 12-servo controller from Pololu, which would be updated using messages from a main controller over UART. The reason for this is that I wanted the flexibility of being able to swap out the Arduino for something more powerful, should I need more memory or processing power.
At this point, I’m not sure where this project is going to go, so I like to keep my options open. The UART interface means that I could connect virtually any microcontroller, computer, laptop to it, without changing the core code that updates the signals sent to the servos. The Mini Maestro also has it’s own configuration and scripting utility, which allows you to send simple, repetative programs to the board directly from a PC, which is really handy for testing things. I’ll get on to this later.
The electrics are quite simple. A 7.4 V li-po battery supplies a voltage regulator, which provides the correct voltage to the Arduino and Mini Maestro. The 12 servos are connected to the 3-pin headers on the Mini Maestro with no mods needed. There’s a UART serial connection between the Arduino and Mini Maestro for comms, and 2 Sharp infra-red sensors connected to the Arduino for some degree of obstacle avoidance to get things off the ground.
Battery and Voltage Regulation
A 2-cell Lithium polymer (Li-po) battery supplies 7.4 V to a Jeti SBEC switching voltage regulator. This is configured using a jumper to set the voltage down to the 5 V to safely supply the servos (the servos are rated 4.8 – 6.0 V, so I’m using 5 as a safe middle ground. I don’t want to push them hard unless I need to), whilst allowing up to 12 A of current. This should be plenty for the small servos supplied with the Dagu kit.
I’ve used this same regulator in several projects now. It’s great for rapid prototyping as it accepts a wide range of input voltages (6 – 42 V) and the output voltage can be configured to 5.0, 5.5, 6.0, 7.0 or 8.0 V using a simple jumper. Another thing I really like about it is that, being from the RC world, it is populated with the correct, servo-compatible 2.54 mm JST connectors. To plug into the the mini maestro board, I simply replaced the 3-way JST housing for a 2-way one I had lying around. The supply is via the VSRV pins, with the VSRV=VIN jumper set (see below). This provides power to both the servos, and the servo controller’s electronics. It is important to note that, while the USB cable is attached, it is a good idea to remove this jumper, as the electronics are then supplied by the USB port.
The SBEC also has an enable switch, which provides a convenient way of switching the power on and off.
The SBEC also supplies the Arduino Uno board through its second output. To achieve this, I used an old power supply barrel plug out of my box of random bits, connected to the wires from the regulator using a simple choc block connector (I may do a more permanent solder job at some point, but I want to keep things flexible and re-configurable for now).
Control boards and servos
Connections between the control boards and servos couldn’t be simpler. Two wires connect the UART pins of the Arduino to the Mini Maestro for communications; Pin 0 (Rx) of the Arduino is connected to TX, and Pin 1 (Tx) of Arduino is connected to the RX pin of the servo controller. The 12 servos are plugged directly into the Min Maestro board.
I’ve also added two Sharp 2D120X F 13 Infrared sensors (the same used on the Cloud Robotics Hackathon robot), which are connected to the Arduino board using a cool little analogue input shield from RobotBits. The sensors are mounted to the chassis using a couple of cheap angle brackets from a DIY store (There are commercially-available brackets marketed for sensors, but they cost way more, and do the same job!). The position of these sensors is arbitrary, and I may move them once I get on to actually reading them in software and legs are flailing around.
In the next part, I will talk about the electronics in more detail, and how the ‘Maestro Control Centre’ application will help with software prototyping…