Quadruped robot

FreeCAD parts of quadruped robot
This commit is contained in:
BERSERK 2020-06-29 19:24:43 -05:00
parent 42b036edf7
commit e789bdc614
64 changed files with 34212 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

View file

@ -0,0 +1,74 @@
G04 ---------------------------- Layer name :KeepOutLayer*
G04 EasyEDA v5.5.11, Sun, 03 Jun 2018 10:16:40 GMT*
G04 422a67246ae34fc7a473e8fc002879eb*
G04 Gerber Generator version 0.2*
G04 Scale: 100 percent, Rotated: No, Reflected: No *
G04 Dimensions in millimeters *
G04 leading zeros omitted , absolute positions ,3 integer and 3 decimal *
%FSLAX33Y33*%
%MOMM*%
G90*
G71D02*
%ADD10C,0.254000*%
G54D10*
G01X73152Y32766D02*
G01X70866Y30988D01*
G01X69850Y30226D01*
G01X67818Y28702D01*
G01X51054Y17780D01*
G01X45720Y21082D01*
G01X37338Y26670D01*
G01X28956Y32258D01*
G01X28956Y32258D02*
G01X22860Y31496D01*
G01X22606Y31242D01*
G01X19558Y28448D01*
G01X16764Y24892D01*
G01X13716Y20320D01*
G01X11938Y17018D01*
G01X9906Y13970D01*
G01X7366Y8128D01*
G01X5080Y1778D01*
G01X3810Y0D01*
G01X2390Y2364D01*
G01X1270Y9906D01*
G01X0Y27178D01*
G01X1270Y37084D01*
G01X3556Y47752D01*
G01X7112Y57912D01*
G01X11684Y67310D01*
G01X17018Y75946D01*
G01X25146Y68072D01*
G01X32004Y62230D01*
G01X33274Y61468D01*
G01X34798Y61468D01*
G01X43434Y67310D01*
G01X50800Y71882D01*
G01X55372Y69342D01*
G01X67056Y61722D01*
G01X68072Y61468D01*
G01X68580Y61468D01*
G01X69850Y62484D01*
G01X81280Y72390D01*
G01X83058Y74168D01*
G01X84582Y75946D01*
G01X86868Y72898D01*
G01X93980Y59944D01*
G01X99568Y43688D01*
G01X100838Y35306D01*
G01X101600Y27178D01*
G01X100838Y9906D01*
G01X97790Y0D01*
G01X93218Y10668D01*
G01X90170Y16510D01*
G01X86868Y22352D01*
G01X82222Y29029D01*
G01X80772Y30988D01*
G01X80010Y31750D01*
G01X79286Y31965D01*
G01X73152Y32766D01*
%LPD*%
M00*
M02*

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,141 @@
G04 ---------------------------- Layer name :BOTTOM SOLDER LAYER*
G04 EasyEDA v5.5.11, Sun, 03 Jun 2018 10:16:40 GMT*
G04 422a67246ae34fc7a473e8fc002879eb*
G04 Gerber Generator version 0.2*
G04 Scale: 100 percent, Rotated: No, Reflected: No *
G04 Dimensions in millimeters *
G04 leading zeros omitted , absolute positions ,3 integer and 3 decimal *
%FSLAX33Y33*%
%MOMM*%
G90*
G71D02*
%ADD16R,1.981200X1.981200*%
%ADD17C,1.981200*%
%ADD38R,1.778000X1.778000*%
%ADD39C,1.778000*%
%ADD40C,3.203194*%
%ADD41C,1.503197*%
%LPD*%
G54D16*
G01X71628Y52832D03*
G54D17*
G01X69088Y52832D03*
G01X66548Y52832D03*
G01X64008Y52832D03*
G01X61468Y52832D03*
G01X58928Y52832D03*
G01X56388Y52832D03*
G01X53848Y52832D03*
G01X51308Y52832D03*
G01X48768Y52832D03*
G01X46228Y52832D03*
G01X43688Y52832D03*
G01X41148Y52832D03*
G01X38608Y52832D03*
G01X36068Y52832D03*
G01X71628Y37592D03*
G01X69088Y37592D03*
G01X66548Y37592D03*
G01X64008Y37592D03*
G01X61468Y37592D03*
G01X58928Y37592D03*
G01X56388Y37592D03*
G01X53848Y37592D03*
G01X51308Y37592D03*
G01X48768Y37592D03*
G01X46228Y37592D03*
G01X43688Y37592D03*
G01X41148Y37592D03*
G01X38608Y37592D03*
G01X36068Y37592D03*
G54D38*
G01X89154Y35560D03*
G54D39*
G01X91694Y35560D03*
G01X94234Y35560D03*
G01X96774Y35560D03*
G54D38*
G01X15494Y36830D03*
G54D39*
G01X18034Y36830D03*
G01X20574Y36830D03*
G01X23114Y36830D03*
G01X8890Y28702D03*
G01X6350Y28702D03*
G54D38*
G01X3810Y28702D03*
G54D39*
G01X8890Y23622D03*
G01X6350Y23622D03*
G54D38*
G01X3810Y23622D03*
G54D39*
G01X8890Y18542D03*
G01X6350Y18542D03*
G54D38*
G01X3810Y18542D03*
G54D39*
G01X19304Y63500D03*
G01X16764Y63500D03*
G54D38*
G01X14224Y63500D03*
G54D39*
G01X19304Y58420D03*
G01X16764Y58420D03*
G54D38*
G01X14224Y58420D03*
G54D39*
G01X19304Y53340D03*
G01X16764Y53340D03*
G54D38*
G01X14224Y53340D03*
G54D39*
G01X97536Y28956D03*
G01X94996Y28956D03*
G54D38*
G01X92456Y28956D03*
G54D39*
G01X97536Y23876D03*
G01X94996Y23876D03*
G54D38*
G01X92456Y23876D03*
G54D39*
G01X97536Y18796D03*
G01X94996Y18796D03*
G54D38*
G01X92456Y18796D03*
G54D39*
G01X85598Y65532D03*
G01X83058Y65532D03*
G54D38*
G01X80518Y65532D03*
G54D39*
G01X85598Y60452D03*
G01X83058Y60452D03*
G54D38*
G01X80518Y60452D03*
G54D39*
G01X85598Y55372D03*
G01X83058Y55372D03*
G54D38*
G01X80518Y55372D03*
G54D40*
G01X90678Y42418D03*
G01X90678Y47416D03*
G54D41*
G01X53014Y66548D03*
G01X51308Y66548D03*
G01X49657Y66548D03*
G01X48016Y66548D03*
G01X53522Y22606D03*
G01X51816Y22606D03*
G01X50165Y22606D03*
G01X48524Y22606D03*
G01X83494Y45720D03*
G01X81788Y45720D03*
G01X80137Y45720D03*
G01X78496Y45720D03*
M00*
M02*

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,24 @@
G04 ---------------------------- Layer name :TOP PASTER LAYER*
G04 EasyEDA v5.5.11, Sun, 03 Jun 2018 10:16:40 GMT*
G04 422a67246ae34fc7a473e8fc002879eb*
G04 Gerber Generator version 0.2*
G04 Scale: 100 percent, Rotated: No, Reflected: No *
G04 Dimensions in millimeters *
G04 leading zeros omitted , absolute positions ,3 integer and 3 decimal *
%FSLAX33Y33*%
%MOMM*%
G90*
G71D02*
%ADD13R,1.160018X1.469898*%
%LPD*%
G54D13*
G01X20574Y44958D03*
G01X22606Y44958D03*
G01X14986Y44958D03*
G01X17018Y44958D03*
G01X9906Y45212D03*
G01X11938Y45212D03*
M00*
M02*

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,149 @@
G04 ---------------------------- Layer name :TOP SOLDER LAYER*
G04 EasyEDA v5.5.11, Sun, 03 Jun 2018 10:16:40 GMT*
G04 422a67246ae34fc7a473e8fc002879eb*
G04 Gerber Generator version 0.2*
G04 Scale: 100 percent, Rotated: No, Reflected: No *
G04 Dimensions in millimeters *
G04 leading zeros omitted , absolute positions ,3 integer and 3 decimal *
%FSLAX33Y33*%
%MOMM*%
G90*
G71D02*
%ADD13R,1.363218X1.673098*%
%ADD14R,1.981200X1.981200*%
%ADD15C,1.981200*%
%ADD16R,1.778000X1.778000*%
%ADD17C,1.778000*%
%ADD18C,3.203194*%
%ADD19C,1.503197*%
%LPD*%
G54D14*
G01X71628Y52832D03*
G54D15*
G01X69088Y52832D03*
G01X66548Y52832D03*
G01X64008Y52832D03*
G01X61468Y52832D03*
G01X58928Y52832D03*
G01X56388Y52832D03*
G01X53848Y52832D03*
G01X51308Y52832D03*
G01X48768Y52832D03*
G01X46228Y52832D03*
G01X43688Y52832D03*
G01X41148Y52832D03*
G01X38608Y52832D03*
G01X36068Y52832D03*
G01X71628Y37592D03*
G01X69088Y37592D03*
G01X66548Y37592D03*
G01X64008Y37592D03*
G01X61468Y37592D03*
G01X58928Y37592D03*
G01X56388Y37592D03*
G01X53848Y37592D03*
G01X51308Y37592D03*
G01X48768Y37592D03*
G01X46228Y37592D03*
G01X43688Y37592D03*
G01X41148Y37592D03*
G01X38608Y37592D03*
G01X36068Y37592D03*
G54D16*
G01X89154Y35560D03*
G54D17*
G01X91694Y35560D03*
G01X94234Y35560D03*
G01X96774Y35560D03*
G54D16*
G01X15494Y36830D03*
G54D17*
G01X18034Y36830D03*
G01X20574Y36830D03*
G01X23114Y36830D03*
G01X8890Y28702D03*
G01X6350Y28702D03*
G54D16*
G01X3810Y28702D03*
G54D17*
G01X8890Y23622D03*
G01X6350Y23622D03*
G54D16*
G01X3810Y23622D03*
G54D17*
G01X8890Y18542D03*
G01X6350Y18542D03*
G54D16*
G01X3810Y18542D03*
G54D17*
G01X19304Y63500D03*
G01X16764Y63500D03*
G54D16*
G01X14224Y63500D03*
G54D17*
G01X19304Y58420D03*
G01X16764Y58420D03*
G54D16*
G01X14224Y58420D03*
G54D17*
G01X19304Y53340D03*
G01X16764Y53340D03*
G54D16*
G01X14224Y53340D03*
G54D17*
G01X97536Y28956D03*
G01X94996Y28956D03*
G54D16*
G01X92456Y28956D03*
G54D17*
G01X97536Y23876D03*
G01X94996Y23876D03*
G54D16*
G01X92456Y23876D03*
G54D17*
G01X97536Y18796D03*
G01X94996Y18796D03*
G54D16*
G01X92456Y18796D03*
G54D17*
G01X85598Y65532D03*
G01X83058Y65532D03*
G54D16*
G01X80518Y65532D03*
G54D17*
G01X85598Y60452D03*
G01X83058Y60452D03*
G54D16*
G01X80518Y60452D03*
G54D17*
G01X85598Y55372D03*
G01X83058Y55372D03*
G54D16*
G01X80518Y55372D03*
G54D18*
G01X90678Y42418D03*
G01X90678Y47416D03*
G54D13*
G01X20574Y44958D03*
G01X22606Y44958D03*
G01X14986Y44958D03*
G01X17018Y44958D03*
G01X9906Y45212D03*
G01X11938Y45212D03*
G54D19*
G01X53014Y66548D03*
G01X51308Y66548D03*
G01X49657Y66548D03*
G01X48016Y66548D03*
G01X53522Y22606D03*
G01X51816Y22606D03*
G01X50165Y22606D03*
G01X48524Y22606D03*
G01X83494Y45720D03*
G01X81788Y45720D03*
G01X80137Y45720D03*
G01X78496Y45720D03*
M00*
M02*

View file

@ -0,0 +1,14 @@
;NPTH Drill file created by EasyEDA
M48
METRIC,LZ,000.000
;Holesize 1 = 3.000 METRIC
T01C3.000
%
G05
G90
T01
X017272Y069342
X096520Y013208
X004826Y011176
X084582Y070866
M30

View file

@ -0,0 +1,119 @@
;PTH Drill file created by EasyEDA
M48
METRIC,LZ,000.000
;Holesize 1 = 0.306 METRIC
T01C0.306
;Holesize 2 = 0.701 METRIC
T02C0.701
;Holesize 3 = 0.889 METRIC
T03C0.889
;Holesize 4 = 0.915 METRIC
T04C0.915
;Holesize 5 = 1.701 METRIC
T05C1.701
%
G05
G90
T01
X038661Y059761
X036926Y035659
X036118Y041658
X029222Y041341
X020670Y033080
X013350Y045212
X071059Y039070
X057645Y051163
X074467Y056619
T02
X053014Y066548
X051308Y066548
X049657Y066548
X048016Y066548
X053522Y022606
X051816Y022606
X050165Y022606
X048524Y022606
X083494Y045720
X081788Y045720
X080137Y045720
X078496Y045720
T03
X089154Y035560
X091694Y035560
X094234Y035560
X096774Y035560
X015494Y036830
X018034Y036830
X020574Y036830
X023114Y036830
X008890Y028702
X006350Y028702
X003810Y028702
X008890Y023622
X006350Y023622
X003810Y023622
X008890Y018542
X006350Y018542
X003810Y018542
X019304Y063500
X016764Y063500
X014224Y063500
X019304Y058420
X016764Y058420
X014224Y058420
X019304Y053340
X016764Y053340
X014224Y053340
X097536Y028956
X094996Y028956
X092456Y028956
X097536Y023876
X094996Y023876
X092456Y023876
X097536Y018796
X094996Y018796
X092456Y018796
X085598Y065532
X083058Y065532
X080518Y065532
X085598Y060452
X083058Y060452
X080518Y060452
X085598Y055372
X083058Y055372
X080518Y055372
T04
X071628Y052832
X069088Y052832
X066548Y052832
X064008Y052832
X061468Y052832
X058928Y052832
X056388Y052832
X053848Y052832
X051308Y052832
X048768Y052832
X046228Y052832
X043688Y052832
X041148Y052832
X038608Y052832
X036068Y052832
X071628Y037592
X069088Y037592
X066548Y037592
X064008Y037592
X061468Y037592
X058928Y037592
X056388Y037592
X053848Y037592
X051308Y037592
X048768Y037592
X046228Y037592
X043688Y037592
X041148Y037592
X038608Y037592
X036068Y037592
T05
X090678Y042418
X090678Y047416
M30

View file

@ -0,0 +1,29 @@
// Locate the initial position of legs
// RegisHsu 2015-09-09
#include <Servo.h>
Servo servo[4][3];
//define servos' ports
const int servo_pin[4][3] = { {2, 3, 4}, {5, 6, 7}, {8, 9, 10}, {11, 12, 13} };
void setup()
{
//initialize all servos
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 3; j++)
{
servo[i][j].attach(servo_pin[i][j]);
delay(100);
}
}
while (1);
}
void loop(void)
{
}

View file

@ -0,0 +1,336 @@
// SP-8 quadruped robot - 27/03/2019
// Copyleft - Roberto Hamm - roberto-hamm@sfr.fr
// http://robotix.ah-oui.org
#include <Servo.h>
#include <IRremote.h>
// codes IR remote control
#define cod_0 0x40BF
#define cod_1 0xC03F
#define cod_2 0xE01F
#define cod_3 0x807F
#define cod_4 0xD827
#define cod_5 0x20DF
int IR_signal = A0;
IRrecv irrecv(IR_signal);
decode_results results;
// servo codes
Servo servo_footA;
Servo servo_armA;
Servo servo_footB;
Servo servo_armB;
Servo servo_footC;
Servo servo_armC;
Servo servo_footD;
Servo servo_armD;
int srv_footA = 11; // foot
int srv_armA = 10; // arm
int srv_footB = 9; // foot
int srv_armB = 8; // arm
int srv_footC = 7; // foot
int srv_armC = 6; // arm
int srv_footD = 5; // foot
int srv_armD = 4; // arm
int del = 1500;
int Fdw=60;
int Fup=80;
int Abw=70;
int Afw=110;
int spd=5;
int p13 =13;
void setup() {
Serial.begin(9600);
Serial.println("Spider-S8 : version-190418 - CASE");
// remote control
pinMode(IR_signal, INPUT);
irrecv.enableIRIn();
// servo
servo_footA.attach(srv_footA);
servo_armA.attach(srv_armA);
servo_footB.attach(srv_footB);
servo_armB.attach(srv_armB);
servo_footC.attach(srv_footC);
servo_armC.attach(srv_armC);
servo_footD.attach(srv_footD);
servo_armD.attach(srv_armD);
stall(); delay(1000);
pinMode(p13, OUTPUT);
}
void loop() {
if (irrecv.decode(&results)) {
unsigned int value = results.value;
Serial.println(value, HEX);
switch(value){
case cod_1:
digitalWrite(p13,HIGH);
ROUND();
digitalWrite(p13,LOW);
break;
case cod_2:
digitalWrite(p13,HIGH);
WALK();
digitalWrite(p13,LOW);
break;
case cod_3:
BLINK();
for(int i = 0; i < 7; i++){WALK();}
stall();
flat_up();
delay(1000);
flat_dw();
delay(1000);
for(int i = 0; i < 7; i++){ROUND();}
delay(500);
stall();
break;
case cod_4:
flat_up();
break;
case cod_5:
flat_dw();
flat_up();
break;
case cod_0:
stall();
digitalWrite(p13,LOW);
break;
} // switch
irrecv.resume();
}}
///////// grouped movements ////////////////
void WALK(){
go_ahead();
Afoup(); armAfw(); Afodw();
Cfoup(); armCbw(); Cfodw();
Bfoup(); armBbw(); Bfodw();
Dfoup(); armDfw(); Dfodw();
}
void ROUND(){
armAfw();
armBfw();
armCfw();
armDfw();
Afoup(); armAbw(); Afodw();
Bfoup(); armBbw(); Bfodw();
Cfoup(); armCbw(); Cfodw();
Dfoup(); armDbw(); Dfodw();
}
///////// foot up-down
void Afoup(){
int max=Fup+5;
int min=Fdw+5;
for(int i=min; i<=max; i++) {
servo_footA.write(i);
delay(spd);}}
void Bfoup(){
int max=Fup+5;
int min=Fdw+5;
for(int i=min; i<=max; i++) {
servo_footB.write(i);
delay(spd);}}
void Cfoup(){
int max=Fup+5;
int min=Fdw+5;
for(int i=min; i<=max; i++) {
servo_footC.write(i);
delay(spd);}}
void Dfoup(){
int max=Fup+5;
int min=Fdw+5;
for(int i=min; i<=max; i++) {
servo_footD.write(i);
delay(spd);}}
void Afodw(){
int max=Fup+5;
int min=Fdw+5;
for(int i=max; i>=min; i--) {
servo_footA.write(i);
delay(spd);}}
void Bfodw(){
int max=Fup+5;
int min=Fdw+5;
for(int i=max; i>=min; i--) {
servo_footB.write(i);
delay(spd);}}
void Cfodw(){
int max=Fup+5;
int min=Fdw+5;
for(int i=max; i>=min; i--) {
servo_footC.write(i);
delay(spd);}}
void Dfodw(){
int max=Fup+5;
int min=Fdw+5;
for(int i=max; i>=min; i--) {
servo_footD.write(i);
delay(spd);}}
///////////// basic mvmnts ///////////////
void go_ahead(){
spd=5;
for(int i=Afw; i>=Abw; i--) {
servo_armA.write(i);
servo_armD.write(i);
int y = Abw+Afw-i;
servo_armC.write(y);
servo_armB.write(y);
delay(spd);}}
void flat_up(){
int max=Fup+5;
int min=Fdw+5;
servo_footA.write(min);
servo_footB.write(min);
servo_footC.write(min);
servo_footD.write(min);
delay(500);
for(int i=min; i<=max+50; i++) {
servo_footA.write(i);
servo_footB.write(i);
servo_footC.write(i);
servo_footD.write(i);
delay(spd);}
delay(500);
}
void flat_dw(){
int max=Fup+5;
int min=Fdw+5;
servo_footA.write(max);
servo_footB.write(max);
servo_footC.write(max);
servo_footD.write(max);
delay(500);
for(int i=max; i>=min; i--) {
servo_footA.write(i);
servo_footB.write(i);
servo_footC.write(i);
servo_footD.write(i);
delay(spd);}
delay(500);
}
///////////////////////////
// single arm mvt A
void armAfw(){
int min=Abw+0;
int max=Afw+0;
for(int i=min; i<=max; i++) {
servo_armA.write(i);
delay(spd);
}}
void armAbw(){
int min=Abw+0;
int max=Afw+0;
for(int i=max; i>=min; i--) {
servo_armA.write(i);
delay(spd);
}}
// single arm mvt B
void armBfw(){
int min=Abw+0;
int max=Afw+0;
for(int i=min; i<=max; i++) {
servo_armB.write(i);
delay(spd);
}}
void armBbw(){
int min=Abw+0;
int max=Afw+0;
for(int i=max; i>=min; i--) {
servo_armB.write(i);
delay(spd);
}}
// single arm mvt C
void armCfw(){
int min=Abw+0;
int max=Afw+0;
for(int i=min; i<=max; i++) {
servo_armC.write(i);
delay(spd);
}}
void armCbw(){
int min=Abw+0;
int max=Afw+0;
for(int i=max; i>=min; i--) {
servo_armC.write(i);
delay(spd);
}}
// single arm mvt D
void armDfw(){
int min=Abw+0;
int max=Afw+0;
for(int i=min; i<=max; i++) {
servo_armD.write(i);
delay(spd);
}}
void armDbw(){
int min=Abw+0;
int max=Afw+0;
for(int i=max; i>=min; i--) {
servo_armD.write(i);
delay(spd);
}}
void stall(){
BLINK();
servo_armA.write(90);servo_footA.write(60);
servo_armB.write(90);servo_footB.write(60);
servo_armC.write(90);servo_footC.write(60);
servo_armD.write(90);servo_footD.write(60);
digitalWrite(p13,HIGH);
}
void BLINK(){
for(int i=0; i<3; i++){
digitalWrite(p13,HIGH);
delay(100);
digitalWrite(p13,LOW);
delay(100); }
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,83 @@
#Arduino Quadruped Robot
Arduino Quadruped Robot the project delivered from upstream project [RegisHsu](http://goo.gl/H1vvwW)'s spider robot. This project has been redesigned in 3d printed parts eg: didn't glue servo holder with tibia and fumer, resize body to fit [12300 LIPO battery](http://goo.gl/VmvYhv). You don't need to make a bluetooth remote control anymore but you can control robot using [Android App Bluetooth Joystick](https://github.com/anoochit/android-robot-bt-joypad) instead, [get app from Google PlayStore](https://goo.gl/MF46JS).
New command mode (see source code for detail)
* Test mode - test robot movement in bluetooth command
* Sonar mode - wave your hand in front of ultrasonic sensor to wake up robot
* Free walk mode - walk and avoid obstacle in 20cm like robot vacuum
##Bill of Materials
###3D printed parts
* Top Body x 1
* Bottom Body x 2
* Femur x 4
* Coxa Left x 2
* Coxa Right x 2
* Left Tibia x 2
* Right Tibia x 2
* Electronic plate x 1
###Electronic parts
* Arduino Nano x 1
* Arduino Nano expansion board x 1 (optional)
* Tower Micro Servo 9G x 12
* Switch x 1
* UBEC 5V 3A or Reguletor 5V 3A
* LIPO Battery 7V/12V 3A (3A play for 1hr)
* Prototype PCB Board 6x8 cm
* LED x 1
* DC Socket 2.5mm x 1
* Pin header
* Female Pin Header
* M3 25mm screw x 4
* M3 10mm screw x 4ผ
* M2 10mm screw x 4
##Assemply
Assembly the printed parts for 4 legs with servos, don't screw servo axis at this time, then assembly legs with body.
![](https://lh3.googleusercontent.com/-4tBILi1vqYU/Vgt_RQe2tgI/AAAAAAAAVaw/efOxZv4JH3M/s640-Ic42/12036446_10154144146409989_5611113044391454922_n.jpg)
![](https://lh3.googleusercontent.com/-IXZaI3R5D1k/Vgt_QJF4h7I/AAAAAAAAVaw/deyxqifE9UM/s640-Ic42/11935093_10154146124574989_8970865697741230982_n.jpg)
Assemply electronic parts (schematic'll add later)
* Servo pulse pin connect to Arduino Nano pin D2-D13
* Servo VCC and GND connect to regulator output
* Bluetooth HC-05 Vcc to to Arduino Nano 5V pin, GND, RX-TX and TX-RX
* Arduino Nano, Vin and GND connect to regulator output 5v
* Use dc jack connect with LIPO battery
* Connect battery to input of regulator for stepdown output to 5v
Group servo wire use order Fumer, Tibia, Coxa, connect servos to arduino pin for each leg
* Lelf Front connect to pin D2-D4
* Lelf Back connect to pin D5-D7
* Right Front connect to pin D8-D10
* Right Back connect to pin D11-D13
Flash leg_init.ino script to initial servo angle then screw tight all servo axis, leg position like picture.
![](https://lh3.googleusercontent.com/-HG1EKSQT2PU/VnBCA2T4ROI/AAAAAAAAWKY/pNngD10mjrk/s640-Ic42/20151215_224251.jpg)
Flash spider_robot.ino to Arduino, Finish.
##How to play
Clone joystick app build and install or [get app from Google PlayStore](https://goo.gl/MF46JS) to your mobile phone, open app, swipe and choose connect menu, choose robot bluetooth to connect.
![](https://lh3.googleusercontent.com/-a1jGQdI0nWk/VlglODy-uKI/AAAAAAAAV_8/Ckz4pwvxymg/s640-Ic42/DFG_2015-11-27-16-37-40.png)
Use setting menu to config button or choose QRCode Scanner to scan QRCode below for automatic config.
![](https://lh3.googleusercontent.com/-e-Jw3qc6Nnc/Vl2kEDDOFII/AAAAAAAAWB8/uS01f0dblVQ/s800-Ic42/spider_qr_code_without_logo.png)
Now you can play your robot. see robot in action at [https://www.youtube.com/watch?v=OoDke587s8s](https://www.youtube.com/watch?v=OoDke587s8s)

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 354 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB