Arduino Triple Servo Tester

by Ajaxjones in Circuits > Arduino

3081 Views, 16 Favorites, 0 Comments

Arduino Triple Servo Tester

Img_3270.jpg

I'm currently building several walking robots, all powered by multiple servos. The problem then arises in working out the extent of motion of each servo the range of motion available. In addition, I am trying to work out what type of walking gait is needed. I have several of dumb $2 testers that you can buy, but although they help, they cant actually provide feedback as to what position the servo is in. All subsequent programming is using arduino and so it would be nice to know what value of servo position would do the job. This is when I decided to make a servo tester with a screen for visual readout of the servo position from 1-180.

So for this project all that is needed is an arduino pro-mini, 3 5K pots, some pins for the servos , a SPI OLED and a JST for power. I've also blown more servos than I care to think about so this also calls for a cheap power converter to ensure that it all runs nicely at 5v. I also initially started out with a plain box, but then thought "What would Adam Savage do?" and so added some design details, sprayed it in primer and with various inks and weathering powders gave it a used look. I also made some nicks and cuts and painted them silver to give the impression of a metal box and painted and dirtied up the knobs. A glass cabochon was used as screen bezel. I've also added some faux labels, suitably soaked in coffee that were just printed out and stuck on.

The Circuit

servo tester_schem.png

Here is the circuit and it is very simple. The 1306 OLED runs on SPI and the 3 pots are wired between the 5v and ground with the wiper of each going to one of 3 of the Arduino Analog input pins. The servos are in turn driven from 3 of the arduino outputs.

Power is supplied via a JST socket so that I can use any RX Lipo that might be lying around and this goes into a cheap power convertor that then

Code

The attached code is for the Arduino Pro-mini but will pretty much work on most Arduino's. You will also need to install the u8g library to run the OLED display

The Case

IMG_3271.JPG
IMG_3267.JPG

Board Layout

board-layout.JPG

I'm just using some veroboard to mount everything. For the purpose of being able to re-use anything, both the Arduino and the OLED are plugged into some headers mounted to the board. The pots are also mounted directly to the board as is the power convertor. This one doesnt seem to have the pins mounted on a 0.1" pitch, but some header pins slightly splayed fixed that. General purpose signal wire was used to connect everything together.

You can see in the picture where the power supply sits under the space where the OLED plugs in.

Finishing the Case

weathering.JPG
IMG_3267.JPG
IMG_3268.JPG

The case was finished off by first painting with car grey primer of a couple of coats. Once this was done, I used various weathering powders , some rust washes and some acrylic paints for details. I particularly like slicing some edges of the case and then painting them in a brighter silver so as to make it look like a metal case lurks underneath. The entire box was then sprayed in matt varnish and when dried the cabochon glass was glued into place.

In Use

weyland-logo.JPG
russian warning.png
screen.png
weyland_corp_logo_by_weylandyutaniassoc-d4nmu6g.png

Just for fun, you can see the boot up logo here. All you need to do now is connect the servos, and adjust the pots and read off the relevant servo positions which you can then use in other programs.