Hexapoduino: Tiny Hexapod 3D Printed, Arduino Controlled

by pictux in Circuits > Arduino

29782 Views, 117 Favorites, 0 Comments

Hexapoduino: Tiny Hexapod 3D Printed, Arduino Controlled

DSCF3148.JPG
DSCF3394.JPG
A few time ago, i found out a 3d printed Micro-Hexapod on Thingiverse.
I started to work on it in the following ways:
- create new accessories/components 3D printable
- explore the possible ways to drive this hexapod.

Here the results:
- a parametric battery holder that fits perfectly on it, without screws
- a parametric pen holder that transforms this hexapod in a drawbot!
- you can drive this hexapod via bluetooth, from your smartphone (here you can find also an Android App!) or from your PC
- you can drive this hexapod by using your nunchuk
- the hexapod can act as a light follower (thanks to 2 LDR)

Now you'll see how to build a full working hexapod!

BOM

DSCF3100.JPG
DSCF2957.JPG
DSCF3259.JPG
DSCF3097.JPG
You need the following PRINTED PARTS:
1x Micro-Hexapod
http://www.thingiverse.com/thing:5156 (by ljon)
http://www.thingiverse.com/thing:34796 (remixed by carlosgs)
files: body.stl & legs.stl

1x battery clip for 4AA
http://www.thingiverse.com/thing:109807 (by me)
file: battery_clip_4AA.stl

1x Pen Holder 
http://www.thingiverse.com/thing:110331 (by me)
files: PenHolder_hexapoduino_front.stl & PenHolder_hexapoduino_back.stl

You can eventually print an insect head / smile / other to put in front of the hexapod, to personalize it.

You need also the ELECTRONIC PARTS:
1x Arduino Mini or Arduino UNO (or compatible)
3x Microservo 9G
4x AA batteries (better if rechargable)

Then, if you want to make a light follower robot, you need:
2x LDR
2x 10K resistor

If you want to drive you robot using a nunchuk, you need:
1x nunchuk
1x nunchuk adapter (you can buy it or you can remove from an old / broken wiimote)
1x 10K resistor

If you want to drive you robot via bluetooth, you need:
1x HC-05 (or compatible) bluetooth module
1x 2K2 resistor
1x TS2950 33 (or compatible) voltage regulator 




Build the Hexapod

DSCF3294.JPG
DSCF3305.JPG
DSCF3293.JPG
DSCF3102.JPG
Build the hexapod is really easy.
You can fix the servo motors to the plate using hot glue.
Then using few m3 screws (6), nuts (6) and washers (12), you can fix the legs to the plate.

Use hot glue also to fix the legs to the servo motors.

Connect Motors to Arduino and Power

DSCF3304.JPG
DSCF3302.JPG
DSCF3305.JPG
DSCF3307.JPG
DSCF3309.JPG
DSCF3298.JPG
DSCF3300.JPG
DSCF3310.JPG
Then you need to connect the servo motors to Arduino.
Servo motors have 3 pin:
- the red one is for power / vcc (5V)
- the black one is for ground (GND)
- the white one is for the signal that drives the motor itself

The central servo motor has to be connected to Arduino pin D2
The right servo motor has to be connected to Arduino pin D3
The left servo motor has to be connected to Arduino pin D4

That's all.

As already told, you can use Arduino UNO or Arduino MINI, and the steps are exactly the same.
If you want to use the Arduino Mini, look at the commented photo.
All the pin usable in this project  are explained.

Once connected the servo motors to Arduino, you can fit your Arduino Mini in the plate.

Then you need to power Arduino and the servo motors.

You can choose a 9v battery or 4AA batteries (that is better).
In this case, you need to prepare the battery holder, creating the circuit that serializes the batteries.



First Test! ...and Assemble All the Pieces!

DSCF3312.JPG
DSCF3116.JPG
DSCF3115.JPG
DSCF3114.JPG
It's time to do the first test.

The library to use with Arduino is ArduSnake:
github.com/Obijuan/ArduSnake
Download and install it.

If you don't know how to install a new library on Arduino, follow this guide:
http://arduino.cc/en/Guide/Libraries

You can use for test the code available here:
http://www.thingiverse.com/download:100066
released by Thingiverse user carlosgs

Upload that skecth into your Arduino and you'll see the first steps of your hexapod :)

If you don't know how to upload sketch into your Arduino Mini, you can follow the "Programming" section here:
http://arduino.cc/en/Main/ArduinoBoardMini

If the test is OK, we can proceed to learn how to drive our hexapod!

Before that, you need to upload the full featured code!

All is available (updated) here:
https://github.com/pictux/Hexapoduino

anyway i attach here the Arduino sketch.

After upload, assemble all the pieces: put the battery holder in the top of the plate.
You can block it simply with a rubber!

Downloads

Hexapod As a Light Follower (thanks to 2 LDR)

DSCF3122.JPG
ldr.png
DSCF3140.JPG
DSCF3128.JPG
DSCF3127.JPG
DSCF3124.JPG
DSCF3123.JPG
For this step you need:
2x LDR
2x 10K resistor

The connections are quite simple, you can look at the attached schema (LDR connection).
You can secure the 2 LDR on the top of the hexapod, to grant more light as possible.

If you point a heavy light in front of your hexapod, it will start to increase its speed.
If you point a light on the left LDR, it will turn left.
If you point a light on the right lDR, it will turn right. 
If you cover the LDRs, the hexapod will stop.

You can see in the images a monster head:)
This "mask" is based on http://www.thingiverse.com/thing:4412
This is one of the ways to customize the hexapod!
Thanks gnolo!


Drive Your Hexapod by Using a Nunchuk

DSCF3136.JPG
nunchuk.png
DSCF3139.JPG
DSCF3138.JPG
DSCF3137.JPG
DSCF3131.JPG
DSCF3132.JPG
DSCF3133.JPG
For this step you need:
1x nunchuk
1x nunchuk adapter (you can buy it or you can remove from an old / broken wiimote)
1x 10K resistor

The connections are quite simple, you can look at the attached schema (Nunchuk connection).

I reuse a connector from an old and broken WiiMote.
The 10K resistor between GND and pin D9 is used by Arduino to "see" that there's a Nunchuk connected (if you look at the skcteh you can understand how!).

You can drive you Hexapod using the joystick on the top of the Nunchuk.
The C button increases the speed, and the Z button decreses the speed


Drive Your Hexapod Via Bluetooth!

Selection_020.png
hc05.png
DSCF3119.JPG
DSCF3121.JPG
DSCF3143.JPG
DSCF3144.JPG
Selection_018.png
Selection_019.png
For this step you need:
1x HC-05 (or compatible) bluetooth module
1x 2K2 resistor
1x TS2950 33 (or compatible) voltage regulator

To understand what is HC-05 bluetooth module, and how works, you can look at the guide which i published in Arduino Forum about 1 year ago:
http://forum.arduino.cc/index.php?topic=104903.0
there are 3 main section:
- hardware connection
- AT programming
- bt serial communication.
The problem is that guide is in italian language :) but there are a lot of pictures and code (i promise: i'll translate it in english).

Anyway, the connections are quite simple, you can look at the attached schema (HC-05 connection).

You need this module working as Slave, and with UART speed at bps 38400.

I made a connector based on the connections described on the schema.
I can attach to one end the BT module, and to the other end the header on the Arduino Mini .

I've developed a simple application that runs on Android < 4.2
I used AppInventor:
http://beta.appinventor.mit.edu/
that is a very particular and easy development environment, maintained by the MIT!
I attached here an image of the frontend (here running in an emulator), and 2 images of the backend (you can see also the codeblock programming!).
I attached also the source of the application: you need an AppInventor account (that is free) to upload and use it!





Downloads

Hexapod Starts to Draw!

DSCF3280.JPG
DSCF3284.JPG
DSCF3283.JPG
DSCF3282.JPG
DSCF3287.JPG
DSCF3281.JPG
DSCF3285.JPG
DSCF3286.JPG
For this final step you need the Pen Holders.

These pen holders are designed (by me :)) to fit perfectly on the supports of the battery holder.
http://www.thingiverse.com/thing:110331

You can secure them using a rubber for each.

Then you only need to fit 1 (front) or 2 pens (front & rear), and let the hexapod free to move and move again and turn and so on.
Hexapod moves with oscillations, so the drawings are very particular!

Here a video:
http://www.youtube.com/watch?v=dJFALt1IaJI

More photos and video are available in my g+ gallery:
http://bit.ly/HexapodUP

 
I've entered this instructable in the Arduino Contest and the Remote Control Contest.
If you enjoyed the post, please vote!
Thanks!