实验环境
(1)硬件环境
六舵机机械臂:包含六个可独立控制的舵机,用于实现机械臂的各种运动姿态。
(2)软件环境
Python 3.x:编程语言环境,用于编写和运行控制机械臂的脚本。
Arm_Lib 库:自定义的Python库,封装了与机械臂通信和控制舵机的底层细节,提供易于使用的API接口。
文本编辑器或IDE:如VSCode、PyCharm等,用于编写、调试和运行Python脚本。
实验代码
从jupyter lab打开5.ctrl_all文件,点击jupyter lab工具栏上的运行按钮,即可看到机械臂六个舵机同时转动,机械臂不断变化自身的姿态。# !/usr/bin/env python3
# coding=utf-8
import time
from Arm_Lib import Arm_Device
# 创建机械臂对象
Arm = Arm_Device()
time.sleep(.1)
# 同时控制六个舵机运动,逐渐变换角度。
def ctrl_all_servo(angle, s_time=500):
Arm.Arm_serial_servo_write6(angle, 180 - angle, angle, angle, angle, angle,
s_time)
time.sleep(s_time / 1000)
def main():
dir_state = 1
angle = 90
# 让舵机复位归中
Arm.Arm_serial_servo_write6(90, 90, 90, 90, 90, 90, 500)
time.sleep(1)
while True:
if dir_state == 1:
angle += 1
if angle >= 180:
dir_state = 0
else:
angle -= 1
if angle <= 0:
dir_state = 1
ctrl_all_servo(angle, 10)
time.sleep(10 / 1000)
# print(angle)
try:
main()
except KeyboardInterrupt:
print(" Program closed! ")
pass
del Arm # 释放掉 Arm 对象
一次控制6个总线舵机对应的API为:Arm_serial_servo_write6(S1, S2, S3, S4, S5, S6, time)
函数功能:同时控制机械臂的六个舵机要运动到的角度。
参数解释:
S1:1号舵机的角度值(0~180)
S2:2号舵机的角度值(0~180)
S3:3号舵机的角度值(0~180)
S4:4号舵机的角度值(0~180)
S5:5号舵机的角度值(0~270)
S6:6号舵机的角度值(0~180)
S1:1号舵机的角度值(0~180)
S2:2号舵机的角度值(0~180)
S3:3号舵机的角度值(0~180)
S4:4号舵机的角度值(0~180)
S5:5号舵机的角度值(0~270)
S6:6号舵机的角度值(0~180)
time:控制舵机运行的时间,在有效范围内,相同角度下时间越小,运动越快;输入0则以最快速度运行。
返回值:无。
