四足机器人8个舵机实现蜘蛛类的的仿生运动arduino源代码
说明: 通过8个舵机 实现蜘蛛类的的仿生运动,文件包含所有的打印件及嵌入程序,提供arduino源代码,实现10多种运动模式,可以通过蓝牙或者wifi控制。
#include
#include
#include
// ---------------------------------------------------------------------------------------------------------------
SoftwareSerial BluetoothSerial(12 13);
String robotName = "Q1 mini"; // Robot name
const int enableCalibration = true; // Enable calibration button
// ---------------------------------------------------------------------------------------------------------------
const int numberOfServos = 8; // Number of servos
const int numberOfACE = 9; // Number of action code elements
int servoCal[] = { 0 0 0 0 0 0 0 0 }; // Servo calibration data
int servoPos[] = { 0 0 0 0 0 0 0 0 }; // Servo current position
int servoPrgPeriod = 20; // 20 ms
Servo servo[numberOfServos]; // Servo obxxxxject
// Action code
// --------------------------------------------------------------------------------
// Servo zero position
// -------------------------- P02 P03 P05 P15 P07 P08 P11 P16
const int servoAct00 [] PROGMEM = { 135 45 135 45 45 135 45 135 };
// Zero
int servoPrg00step = 1;
const int servoPrg00 [][numberOfACE] PROGMEM = {
// P02 P03 P05 P15 P07 P08 P11 P16 ms
{ 135 45 135 45 45 135 45 135 400 } // zero position
};
// Standby
int servoPrg01step = 2;
const int servoPrg01 [][numberOfACE] PROGMEM = {
// P02 P03 P05 P15 P07 P08 P11 P16 ms
{ 90 90 90 90 90 90 90 90 200 } // servo center point
{ 70 90 90 110 110 90 90 70 200 } // standby
};
// Forward
int servoPrg02step = 11;
const int servoPrg02 [][numberOfACE] PROGMEM = {
// P02 P03 P05 P15 P07 P08 P11 P16 ms
{ 70 90 90 110 110 90 90 70 100 } // standby
{ 90 90 90 110 110 90 45 90 100 } // leg14 up; leg4 fw
{ 70 90 90 110 110 90 45 70 100 } // leg14 dn
{ 70 90 90 90 90 90 45 70 100 } // leg23 up
{ 70 45 135 90 90 90 90 70 100 } // leg14 bk; leg2 fw
{ 70 45 135 110 110 90 90 70 100 } // leg23 dn
{ 90 90 135 110 110 90 90 90 100 } // leg14 up; leg1 fw
{ 90 90 90 110 110 135 90 90 100 } // leg23 bk
{ 70 90 90 110 110 135 90 70 100 } // leg14 dn
{ 70 90 90 110 90 135 90 70 100 } // leg3 up
{ 70 90 90 110 110 90 90 70 100 } // leg3 fw dn
};
// Backward
int servoPrg03step = 11;
const int servoPrg03 [][numberOfACE] PROGMEM = {
// P02 P03 P05 P15 P07 P08 P11 P16 ms
{ 70 90 90 110 110 90 90 70 100 } // standby
{ 90 45 90 110 110 90 90 90 100 } // leg41 up; leg1 fw
{ 70 45 90 110 110 90 90 70 100 } // leg41 dn
{ 70 45 90 90 90 90 90 70 100 } // leg32 up
{ 70 90 90 90 90 135 45 70 100 } // leg41 bk; leg3 fw
{ 70 90 90 110 110 135 45 70 100 } // leg32 dn
{ 90 90 90 110 110 135 90 90 100 } // leg41 up; leg4 fw
{ 90 90 135 110 110 90 90 90 100 } // leg31 bk
{ 70 90 135 110 110 90 90 70 100 } // leg41 dn
{ 70 90 135 90 110 90 90 70 100 } // leg2 up
{ 70 90 90 110 110 90 90 70 100 } // leg2 fw dn
};
// Move Left
int servoPrg04step = 11;
const int servoPrg04