int delayVal = 40;
//Creating Servo Objects
Servo rightAnkle; // เท้าขวา
Servo leftAnkle; // เท้าซ้าย
Servo rightKnee; // เข่าขวา
Servo leftKnee; // เข่าซ้าย
Servo rightThigh; // ต้นขาขวา
Servo leftThigh; // ต้นขาซ้าย
Servo rightHip; // สะโพกขวา
Servo leftHip; // สะโพกซ้าย
void setup() {
//Servo input pins
rightAnkle.attach(2); // เท้าขวา
rightKnee.attach(3); // เข่าขวา
rightThigh.attach(4); // ต้นขาขวา
rightHip.attach(5); // สะโพกขวา
leftAnkle.attach(6); // เท้าซ้าย
leftKnee.attach(7); // เข่าซ้าย
leftThigh.attach(8); // ต้นขาซ้าย
leftHip.attach(9); // สะโพกซ้าย
delay(1000);
stand();
}
void loop()
{
stand();
turnLeft();
}
int rightAnkPos = 90;
int rightKneePos = 90;
int rightThighPos = 90;
int rightHipPos = 90;
int leftAnkPos = 90;
int leftKneePos = 90;
int leftThighPos = 90;
int leftHipPos = 90;
//ปรับค่าตามความเหมาะสม//
void stand ()
{
rightAnkle.write(100); // เท้าขวา
int rightAnkPos = 100;
rightKnee.write(90); // เข่าขวา
int rightKneePos = 90;
rightThigh.write(100); // ต้นขาขวา
int rightThighPos = 100;
rightHip.write(90); // สะโพกขวา
int rightHipPos = 90;
leftAnkle.write(90); // เท้าซ้าย
int leftAnkPos = 90;
leftKnee.write(90); // เข่าซ้าย
int leftKneePos = 90;
leftThigh.write(80); // ต้นขาซ้าย
int leftThighPos = 80;
leftHip.write(92); // สะโพกซ้าย
int leftHipPos = 92;
}
///////////////LEFT/////////////////////////////////////////
void turnLeft()
{
for (int i = 0; i < 5; i += 1)
{
leftThighPos -= 2;
leftKneePos += 2;
leftThigh.write( leftThighPos);
leftKnee.write(leftKneePos );
delay(60);
}
//Left and Right Ankle Bend Left
for (int i = 0; i < 5; i += 1)
{
leftAnkPos += 3;
rightAnkPos += 3;
leftAnkle.write(leftAnkPos);
rightAnkle.write(rightAnkPos );
delay(60);
}
delay(delayVal);
//Left Hip Counter ClockWise,
for (int i = 0; i < 5; i += 1)
{
leftHipPos -= 4;
leftHip.write(leftHipPos);
delay(60);
}
delay(delayVal);
//Left and Right Ankle back to normal
for (int i = 0; i < 5; i += 1)
{
leftAnkPos -= 3;
rightAnkPos -= 3;
leftAnkle.write(leftAnkPos);
rightAnkle.write(rightAnkPos );
delay(60);
}
//Left and Right Ankle Bend Right Left Hip Straighten
for (int i = 0; i < 5; i += 1)
{
leftAnkPos -= 3;
rightAnkPos -= 3;
leftAnkle.write(leftAnkPos);
rightAnkle.write(rightAnkPos );
leftHipPos += 4;
leftHip.write(leftHipPos);
delay(60);
}
delay(delayVal);
//Right Hip Counter Clockwise
for (int i = 0; i < 5; i += 1)
{
rightHipPos -= 4;
rightHip.write(rightHipPos);
leftHipPos += 4;
leftHip.write(leftHipPos);
delay(60);
}
delay(delayVal);
//Left and Right Ankle Normal
for (int i = 0; i < 5; i += 1)
{
leftAnkPos += 3;
rightAnkPos += 3;
leftAnkle.write(leftAnkPos);
rightAnkle.write(rightAnkPos );
delay(60);
}
delay(delayVal);
///////SECOND TIME///////////////
//Left and Right Ankle BEND LEFT
for (int i = 0; i < 5; i += 1)
{
leftAnkPos += 3;
rightAnkPos += 3;
leftAnkle.write(leftAnkPos);
rightAnkle.write(rightAnkPos );
leftThighPos += 2;
leftKneePos -= 2;
leftThigh.write( leftThighPos);
leftKnee.write(leftKneePos );
delay(60);
}
delay(delayVal);
//LEFT HIP CC
for (int i = 0; i < 5; i += 1)
{
leftHipPos -= 4;
leftHip.write(leftHipPos);
rightHipPos += 4;
rightHip.write(rightHipPos);
delay(60);
}
delay(delayVal);
//LEFT RIGHT ANKLE NORMAL
for (int i = 0; i < 5; i += 1)
{
leftAnkPos -= 3;
rightAnkPos -= 3;
leftAnkle.write(leftAnkPos);
rightAnkle.write(rightAnkPos );
delay(60);
}
//Left and Right Ankle Bend Right
for (int i = 0; i < 5; i += 1)
{
leftAnkPos -= 3;
rightAnkPos -= 3;
leftAnkle.write(leftAnkPos);
rightAnkle.write(rightAnkPos );
delay(60);
}
delay(delayVal);
//Right Hip Counter Clockwise
for (int i = 0; i < 5; i += 1)
{
rightHipPos -= 5;
rightHip.write(rightHipPos);
leftHipPos += 2;
leftHip.write(leftHipPos);
delay(60);
}
//LEFT RIGHT ANKLE NORMAL
for (int i = 0; i < 5; i += 1)
{
leftAnkPos += 3;
rightAnkPos += 3;
leftAnkle.write(leftAnkPos);
rightAnkle.write(rightAnkPos );
delay(60);
}
//LEFT RIGHT ANKLE BEND LEFT
for (int i = 0; i < 5; i += 1)
{
leftAnkPos += 3;
rightAnkPos += 3;
leftAnkle.write(leftAnkPos);
rightAnkle.write(rightAnkPos );
rightHipPos += 5;
rightHip.write(rightHipPos);
leftHipPos -= 2;
leftHip.write(leftHipPos);
delay(60);
}
//LEFT RIGHT ANKLE STRAIGHT
for (int i = 0; i < 5; i += 1)
{
leftAnkPos -= 3;
rightAnkPos -= 3;
leftAnkle.write(leftAnkPos);
rightAnkle.write(rightAnkPos );
delay(60);
}
}
ถอดสาย USB ออก แล้ว ใส่ถ่าน 18650 จำนวน 2 ก้อน แล้วลองทดสอบ
วีดีโอผลลัพธ์การทำงานของ โปรเจค หุ่นยนต์ฮิวแมนนอยด์ 8 DOF เพื่อการศึกษา