Ez Arduino Spidey - Making a 12 DOF 3D Printed Quadruped Robot

35,955

197

79

Introduction: Ez Arduino Spidey - Making a 12 DOF 3D Printed Quadruped Robot

About: We love robotics!

This is an inexpensive 3D printed 12 DOF quadruped robot using Arduino kind control board. It has two playing modes. One is autonomous pilot mode which the robot walks and performs actions randomly. This is the default. The other is control mode where the robot is controlled by iPhone or Android phone via BLE technology. This page should guide everyone to make one easily.

Step 1: Printing 3D Models

Download the 3D printed STL models files here. Suggested parameters for slicing the models to print are as followings. You may adjust them to fit the 3D printer you're using. If you don't have a 3D printer, you may find online 3D print service.

  • bottom/top thickness: 1mm
  • shell thickness: 1.2mm
  • ayer height: 0.2mm fill
  • density: 10%
  • support: yes
  • adhesion type: skirt or brim

Step 2: Software

Software are free to download:

Robot Code -

  • Arduino code on githup
  • uploading the Arduino code by open firmware.ino in the Arduino Software, see step 10 on IOS app and step 11 on Android app to control the robot.

for HuaDuino, in Arduino IDE software:

the board selection: "Arduino Nano", processor "ATmega328" for AVR Boards support version 1.6.20 or older;

the board selection: "Arduino Nano", processor "ATmega328 (Old Bootloader)" for AVR Boards support version 1.6.21 or newer.

Control Apps -

  • goBLE - iOS app on Apple Store
  • playBLE - Android app on Google Play
  • virtual-gamepad-BLE - Android app contributed by a supporter, for Android 5.0 and latest.
  • virtual-gamepad-SPP Android app contributed by a supporter for HC-06, HC-05 and SPP-CA classic Bluetooth 4.0 SPP module; compatible to Android 4.0 and above

Step 3: Hardware

The components can be found in ebay, amazon, aliexpress, DX and etc online store.

Main -

Bluetooth Module - this module is optional if you don't need App control

  • a HC-06, HC-05 and SPP-CA classic Bluetooth 4.0 SPP module - this is optional if you don't need App control. If you use this type of Bluetooth module, it must use the virtual-gamepad-SPPAndroid app for control; baud rate must be set to 115200; see this tutorial to configure the baud rate using AT commands;
  • Or
  • a BT-05 CC2540 Bluetooth LE module - this is optional if you don't need App control. In fact, there are many BLE modules named differently, but they are built with CC254x chip. Examples such as HM-10 and CC41-A are the typical you can find in the market. Since the firmware is different, the AT command set may vary too. You may use this code to identify them. To work with the robot code and the apps, baud rate is required to set to 115200; service UUID must set to 0xDFB0 and characteristic UUID must set to 0xDFB1 using the AT commands. Below is the code intended to do that automatically but it may not work if you have different one.. The reference of the AT command set to configure BT-05 BLE can be downloaded here. You don't need this module if you like to make this gamepad to control and play Spidey.

  • Below only required for Bluetooth LE module

The following Arduino program issues AT commands setting BLE module service UUID, characteristic ID and baud rate, assuming the BLE default baud rate is 9600. For running below code in HuaDuino with the module onto it, the S1 switch must be set to the BT position.

void setup() {  
  Serial.begin(9600); //change to fit your ble initial baud_rate, usually is 9600<br>
  Serial.println("AT+UUID0xDFB0\r"); // set service UUID<br>
  delay(50);
  Serial.println("AT+CHAR0xDFB1\r"); // set characteristic UUID<br>
  delay(50);
  Serial.println("AT+BAUD8\r"); // set baud rate to 115200
}
void loop() {}

The steps you should do of uploading the Arduino sketch to HuaDuino for BLE control are as following

  1. insert the BLE module, switch S1 to USB side, turn on huaduino,
  2. uploading the above ble module setup program
  3. turn off huaduino, switch S1 to BT side
  4. turn on huaduino, let the ble module setup program run in few seconds.
  5. switch S1 to USB side
  6. uploading the robot program
  7. switch S1 back to BT side, the robot now can be controlled by BLE

Step 4: Installation of Servos and the Control Board

Step 5: Legs

Step 6: Servo Wiring

Connection to digital pins of HuaDuino are as followings:

  • D2 to front right femur servo
  • D3 to front right tibia servo
  • D4 to front right coxa servo
  • D5 to back right femur servo
  • D6 to back right tibia servo
  • D7 to back right coxa servo
  • D8 to front left femur servo
  • D9 to front left tibia servo
  • D10 to front left coxa servo
  • D11 to back left femur servo
  • D12 to back left tibia servo
  • D13 to back left coxa servo

Step 7: Calibration

Using a female-female dupoint wire between A5 and 3.3V pin, the robot servos will be set to default reference angles. This is the status for installing servos and having servo arm capping on the correct angle.

Step 8: Installation of Servo Arms

while the female-female dupoint wire connected between A5 and 3.3V pin, puts the servo arms to the servo shaft

Step 9: Finishing Up

insert the CC2540 Bluetooth BLE module to the board's Bluetooth connector, and slide the S1 switch to the BT side (ignore this step for new version of HuaDuino), finally closes the robot with the top cover and eyes.

Step 10: Plays Using IPhone

To success doing this part, you must configure CC2540 Bluetooth BLE module, see the step 3 - hardware

  • opens the iOS app and closes it the robot
  • after few seconds the BLE paring between the robot and iPhone should be done, you will see the connection symbol changed to green
  • press the top middle virtual button will switch the robot to control mode
  • press bottom middle virtual button will turn back to autonomous self walking mode

Step 11: Plays Using Android Phone

  • open the Android app while robot is on pressing the connection symbol closed the top edge
  • after few seconds you should see listed BLE device and select it and connection symbol should turn to blue when successes
  • press the top middle virtual button it will switch to control mode
  • press bottom middle virtual button will back to autonomous self walking mode

Step 12: Battery Charging

  • plugs a 5V power source micro USB cable to the robot USB port
  • a red light indicates charging
  • a green light indicates charging completed

Make it Move Contest

Runner Up in the
Make it Move Contest

4 People Made This Project!

Recommendations

  • Metal Contest

    Metal Contest
  • Fruit and Veggies Speed Challenge

    Fruit and Veggies Speed Challenge
  • Water Speed Challenge

    Water Speed Challenge

79 Comments

0
jehan14
jehan14

Question 7 weeks ago on Step 2

Bonjour
Je voudrais me lancer dans votre projet , il est super.
Mais il y a des commentaires au sujet du code ou de son transfert qui me un peu peur .
pourriez vous me dire si tout est ok de votre coté.
un grand merci
LH

0
joelmister7
joelmister7

Question 8 weeks ago on Step 3

I have the circuit board but it is the newer version without the bt/usb switch. I am not sure how to upload the code to program the bt control module without the switch. I have everything else done, it is working with the automatic code, just not sure where to go from here. (Trying to get it to work for iOS)
Any help is greatly appreciated, love the design!

1
manic-3d-print
manic-3d-print

Answer 8 weeks ago

This is latest version and it's better. It doesn't need the switch, while bt module on it without usb connection it will use it. You should upload the robot code without connectiong the BT module.

0
joelmister7
joelmister7

Reply 7 weeks ago

Thank you for the reply, I uploaded the code without the bluetooth controller installed like you said, but when I hold my iphone next to it and have the bt unit installed and huiduino powered on, the app still will not connect. No clue why.
I installed the lightBLE app on my phone and it was able to see a device named BT05 which I assume is the BLE module. So it is working on the robots side but for some reason the app wont connect.

0
joelmister7
joelmister7

Reply 7 weeks ago

Tried again today, under the bluetooth window, it showed I was connected to BT05 but again the app did not work.

0
petel2001
petel2001

Question 2 months ago

I am having the same issue as zotovvlad74. Can someone recommend another app for controlling this robot. The PlayBLE app is no longer in the Play store.

0
zotovvlad74
zotovvlad74

3 months ago

Hello, I have assembled this robot everything is great. I would like to manage it from an Android phone, but the links indicated for downloading applications do not work. Where can I download the app for Android?

0
pblsemper
pblsemper

Question 3 months ago on Step 12

Hello !!, congratulations on the project. I want to ask you, what other hardware can be used instead of HuaDuino board, in addition to its modules. Here in Argentina, I can't get that hardware, that's why I consult it. Thank you in advance!

0
keithschaub
keithschaub

Question 7 months ago

I'm at the calibration step - It doesn't calibrate. Not sure why. Any suggestion(s)??????
Here is the youTube link:

0
pszynkar
pszynkar

Answer 7 months ago

removed

0
pszynkar
pszynkar

Reply 6 months ago

Mine problem solved.
To make it work I had to switch front with back, so now connections are:
•D2 to back right femur servo
•D3 to back right tibia servo
•D4 to back right coxa servo
•D5 to front right femur servo
•D6 to front right tibia servo
•D7 to front right coxa servo
•D8 to back left femur servo
•D9 to back left tibia servo
•D10 to back left coxa servo
•D11 to front left femur servo
•D12 to front left tibia servo
•D13 to front left coxa servo
Now it is walking OK!!!

The source of this problem were servos, they all were reversed. Changed them to new ones and now it is all OK.

0
pszynkar
pszynkar

Answer 7 months ago

I would say: connect battery because you need more power than you can get from USB. I'm just guessing.

2
eric.ringeval59
eric.ringeval59

1 year ago

Je l,ai fait avec un arduino uno et une carte d'extension. Bien-sur j'ai du modifier le corps pour l'arduino et le code que j'ai totalement recréé pour l'arduino et le module bluetooth.
Mais pour une raison que je ne trouve pas , le bluetooth s'éteint et se rallume.

IMG_20200322_211239826.jpgIMG_20200322_211639452.jpgVID_20200321_010705844.gif
0
keithschaub
keithschaub

Reply 7 months ago

Figured it out. You HAVE to USE THE BATTERY. The usb port doesn't have enough power for all of the servos and the arduino board fails (light changes from blue to red). See video with BATTERY CONNECTED.
https://youtu.be/zXuT53VqPok

0
ncostis
ncostis

2 years ago

i cannot seem to be able to upload the code to huaduino.

avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x79

avrdude: stk500_recv(): programmer is not responding

is it possible to share the setting of the arduino for huaduino?

0
manic-3d-print
manic-3d-print

Reply 2 years ago

it may due to 1 - you didn't turn on the power switch, 2 - the S1 switch wasn't on the USB side, 3 - you had the servos connected that causing usb port failed to power up the board properly.

0
ncostis
ncostis

Reply 2 years ago

Thank you, I will try them today. And please how do you programma the bluetooth module?

0
ncostis
ncostis

Reply 2 years ago

Unfortunately no luck at all even though i tried what you suggested. In what programmer is the huaduino? USBasp?

IMG_20180809_195233_HDR.jpg
0
keithschaub
keithschaub

Reply 7 months ago

i had same problem.
1. make sure you have a data cable and not a power cable (you will know it is a data cable when you plug it in: it will make the windows sound and it will show up as a new COM port in the selector.

2. The Arudino IDE settings are below.

3. Make sure you have the USB switch in the Huadino set to USB. It will have 3 colors light up on the board. blue, red, and green, see the pic below.


c9e53b8f-c024-43ab-b902-13bd4b725f09.jpg0cdff347-ea5f-49ac-801f-a457fbfb3820.jpg
0
manic-3d-print
manic-3d-print

Reply 2 years ago

you had some mis-understandings, see our reply on thingiverse.