2026年1月2日 星期五

[OTTO Ninja] OTTO忍者機器人程式設計控制-單腿控制

 

腳位定義:
左腳 LeftFoot  → D7 (GPIO13)
左腿 LeftLeg   → D8 (GPIO15)
右腳 RightFoot → D3 (GPIO0)
右腿 RightLeg  → D4 (GPIO2)

範例一、站立不動

程式:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
#include <Servo.h>
#define LEFT_LEG_PIN D8

Servo leftLeg;

void setup() {
  leftLeg.attach(LEFT_LEG_PIN);
  leftLeg.write(60);   // 站立角
}

void loop() {
  // 不做任何事
}


範例二、左腿測試程式(站立 ↔ 擺動)
程式:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <Servo.h>

// 左腿舵機腳位(Ninja 常見)
#define LEFT_LEG_PIN D8   // GPIO15

Servo leftLeg;

// 校正角度(依你的機構微調)
int STAND_ANGLE = 60;    // 站立角
int TILT_ANGLE  = 120;   // 傾斜角

void setup() {
  leftLeg.attach(LEFT_LEG_PIN);
  leftLeg.write(STAND_ANGLE);  // 上電先站好
}

void loop() {
  // 左腿傾斜
  leftLeg.write(TILT_ANGLE);
  delay(2000);

  // 左腿回站立
  leftLeg.write(STAND_ANGLE);
  delay(2000);
}

範例三、改成右腿

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <Servo.h>

// 右腿舵機腳位(Ninja 常見)
#define RIGHT_LEG_PIN D4   // GPIO02

Servo rightLeg;

// 校正角度(依你的機構微調)
int STAND_ANGLE = 60;    // 站立角
int TILT_ANGLE  = 120;   // 傾斜角

void setup() {
  rightLeg.attach(RIGHT_LEG_PIN);
rightLeg.write(STAND_ANGLE); // 上電先站好
} void loop() { // 右腿傾斜 rightLeg.write(TILT_ANGLE);
delay(2000); // 右腿回站立 rightLeg.write(STAND_ANGLE);
delay(2000); }



沒有留言:

張貼留言