commit 131afda8edc47214f3acf97fec701897890a3a15 Author: YinMo19 Date: Sun Jun 8 19:43:30 2025 +0800 [initial] Initial code. diff --git a/three_duoji.ino b/three_duoji.ino new file mode 100644 index 0000000..754dc66 --- /dev/null +++ b/three_duoji.ino @@ -0,0 +1,63 @@ +#include // 使用内置舵机库 + +// 定义三个舵机对象 +Servo servo_arm; // 机械臂上下转动 +Servo servo_rotate; // 机械爪左右转动 +Servo servo_grip; // 爪子开合 + +// 初始角度设置(需根据实际机械结构调整) +#define ARM_INIT 0 // 机械臂初始水平位置 +#define ROTATE_INIT 150 // 机械爪初始朝前位置 +#define GRIP_OPEN 30 // 爪子张开角度(小角度) +#define GRIP_CLOSE 140 // 爪子闭合角度(大角度) + +void setup() { + Serial.begin(9600); + // 绑定舵机到对应引脚 + servo_arm.attach(8); // 机械臂舵机接Pin8 + servo_rotate.attach(9); // 旋转舵机接Pin9 + servo_grip.attach(10); // 爪子舵机接Pin10 + + // 初始化位置 + servo_arm.write(60); + servo_rotate.write(ROTATE_INIT); + servo_grip.write(GRIP_OPEN); + delay(1000); // 等待舵机到位 + Serial.println("机械爪初始化完成!"); +} + +void loop() { + // 示例动作序列:抓取物体 + gripObject(); // 执行抓取 + delay(1000); // 保持3秒 + //releaseObject(); // 释放物体 + // delay(3000); // 等待3秒后重复 +} + +// 抓取物体动作函数 +void gripObject() { + servo_arm.write(180); // 机械臂下移(角度减小) + delay(1000); + + servo_rotate.write(90); + delay(800); + servo_grip.write(GRIP_OPEN); // 张开爪子 + delay(1000); + servo_grip.write(GRIP_CLOSE); // 闭合爪子 + delay(1000); + servo_arm.write(ARM_INIT); // 抬升机械臂 +} + +// 释放物体动作函数 +void releaseObject() { + servo_arm.write(180); // 机械臂下移(角度减小) + delay(1000); + + servo_rotate.write(110); + delay(800); + servo_grip.write(GRIP_OPEN); // 张开爪子 + delay(1000); + servo_grip.write(GRIP_CLOSE); // 闭合爪子 + delay(1000); + servo_arm.write(ARM_INIT); // 抬升机械臂 +} \ No newline at end of file