I’ve started the project in early November 2015 and have been doing it on and off when I had time of work. I started it because a friend in London Hackspace had a Hexapod kit laying around with a bunch of unused servomotors. He offered me to build it.
So first step was to test the servos, I’ve connected them to my Pololu Mini Maestro servo controller (a perfect debugging tool for multi-servo projects) and started spinning. A few were broken so I had to take them apart and put back together so that the gears would spin properly again.
After purchasing the remaining servos I did some research. The idea was to build a robot using ROS. And I wanted to use Raspberry Pi 2 to control everything. I’ve found a Hexapod robot project done by someone before using ROS and it became my main starting point. That project used BeagleBone Black, but I for some reason wanted to use Raspberry Pi (perhaps as I was in London and Pi is a UK based device). And so I ordered some additional electronic components: 18-servo Pololu Mini Maestro, Bi-directional 3.3v to 5v logic controller, Pololu MiniMU9 (IMU) and MCP3008 (for ADC as Pi2 doesn’t have those).
Next step was to assemble the kit. I didn’t have to design or cut the hexapod frame as the kit had everything I needed already. Parts weren’t of the best quality, but I couldn’t complain as I got them for free. All I needed to do was to drill some M8 holes and then cut M8 bolts to size to keep two main plates fixed together.
My good friend was visiting London for work and we spent one evening assembling the kit with all of my servos. Happy days 🙂
Next thing I went on to was soldering all the components together in a rough way to make the Hexapod move and test all the things. I spent a few hours getting Raspberry Pi 2 to work with ROS Indigo on Raspbian. I ended up not using ROS yet (as it was a bit too steep of a curve for now) and put together a couple of simple Python scripts to have the commands to move the Hexapod. I made it walk.
After playing around with walking it was clear to me that it was not enough. Before getting into learning ROS I wanted to put all the hardware together. I’ve seen some videos and wanted to have an IR distance sensor on my robot. So I got a small 10-150cm Sharp GP2Y0A60SZ IR Range Sensor from Pololu. And then I also got a very simple stepper motor to be able to sweep the range sensor and map the obstacles.
Now with all these components I wanted to make everything compact. And somehow I got around a KiCAD PCB layout course from Contextual Electronics by Chris Gammell. It was a game changing course for me, in a matter of a week (X-mas holidays) I learned how to make PCBs. The very basics of course but I managed to first design a simple one sided Voltage regulator PCB and then started a double-sided PCB for my Hexapod.
I needed two PCBs for my Hexapod. One for the bottom that would have all the servos connected to it and that would route everything to the Mini Maestro. It would allow the wiring to be more contained. Pavel suggested I do that and I went on designing. First I designed the PCB to route all the servo serial channels in KiCAD and then I designed a mount for this PCB in Fusion 360.
First attempts at etching even single-sided PCBs were not good. But it took only one evening to get good results. Granted, I was using presensitized FR4 boards of fairly good quality from Hobbytronics. After several attempts of making single-sided I went onto double sided. The main issue was sandwiching the boards between the artworks. The laser printer we had at London Hackspace didn’t print opaque enough on the transparencies and so you had to double up both layers. Later I came up with a technique of using Inkspace and making a line thickness of a pCB board between the two layers. Now when you bend the cutout artwork and align that line with the PCB edge – the artworks would align after etching. It took several attempts to make it work but it did work and I have produced my first ever double sided PCB.
I then spent hours drilling it and fixing my silly layout mistakes. But I’ve learnt some lessons.
The next PCB was the Raspberry Pi “Shield” that would have IMU, ADC, IR sensor and the logic controller on it. Several days of work and it was done too. I even used a borrowed copper set to have vias and proper through holes.
It was done. With a critical mistake though, the Raspberry Pi GPIO was on the wrong side! I tried to work around that but to no success.
And so I had to redesign the shield PCB all over again. I made it even better though and included a new thing! With a microphone breakout board connector (for an Adafruit mic board I’ve bought earlier). The idea is to make the Hexapod “dance” to beats.
The PCB was redesigned, re-etched and soldered.
I had to reprint the dome (the top cover) to accomodate all the parts (as I have underestimated the sizes before). I reprinted it with translucent filament so now if I put LEDs inside the dome should shine. Should be awesome.
[More updates will come soon]