实验环境
(1)硬件环境
机械臂一台:具备多舵机协同控制功能,可实现复杂的连续动作组合。
(2)软件环境
Vmware虚拟环境:用于运行机械臂控制程序的虚拟操作系统平台。
Python 3.x 环境:支持实验脚本运行的编程语言环境。
Arm_Lib 库:提供机械臂舵机控制API的自定义Python库。
Jupyter Lab:用于编写、运行和调试舞蹈控制代码的交互式开发环境。
实验代码
从jupyter lab打开7.dance文件,点击jupyter lab工具栏上的运行按钮,即可看到机械臂执行一系列连续动作,模拟"跳舞"效果。#!/usr/bin/env python3
#coding=utf-8
import time
from Arm_Lib import Arm_Device
# 创建机械臂对象
Arm = Arm_Device()
time.sleep(.1)
time_1 = 500
time_2 = 1000
time_sleep = 0.5
# 机械臂循环跳舞
def main():
# 让舵机复位归中
Arm.Arm_serial_servo_write6(90, 90, 90, 90, 90, 90, 500)
time.sleep(1)
times = 0.003
while True:
Arm.Arm_serial_servo_write(2, 180-120, time_1)
time.sleep(times)
Arm.Arm_serial_servo_write(3, 120, time_1)
time.sleep(times)
Arm.Arm_serial_servo_write(4, 60, time_1)
time.sleep(time_sleep)
Arm.Arm_serial_servo_write(2, 180-135, time_1)
time.sleep(times)
Arm.Arm_serial_servo_write(3, 135, time_1)
time.sleep(times)
Arm.Arm_serial_servo_write(4, 45, time_1)
time.sleep(time_sleep)
Arm.Arm_serial_servo_write(2, 180-120, time_1)
time.sleep(times)
Arm.Arm_serial_servo_write(3, 120, time_1)
time.sleep(times)
Arm.Arm_serial_servo_write(4, 60, time_1)
time.sleep(time_sleep)
Arm.Arm_serial_servo_write(2, 90, time_1)
time.sleep(times)
Arm.Arm_serial_servo_write(3, 90, time_1)
time.sleep(times)
Arm.Arm_serial_servo_write(4, 90, time_1)
time.sleep(time_sleep)
Arm.Arm_serial_servo_write(2, 180-80, time_1)
time.sleep(times)
Arm.Arm_serial_servo_write(3, 80, time_1)
time.sleep(times)
Arm.Arm_serial_servo_write(4, 80, time_1)
time.sleep(time_sleep)
Arm.Arm_serial_servo_write(2, 180-60, time_1)
time.sleep(times)
Arm.Arm_serial_servo_write(3, 60, time_1)
time.sleep(times)
Arm.Arm_serial_servo_write(4, 60, time_1)
time.sleep(time_sleep)
Arm.Arm_serial_servo_write(2, 180-45, time_1)
time.sleep(times)
Arm.Arm_serial_servo_write(3, 45, time_1)
time.sleep(times)
Arm.Arm_serial_servo_write(4, 45, time_1)
time.sleep(time_sleep)
Arm.Arm_serial_servo_write(2, 90, time_1)
time.sleep(times)
Arm.Arm_serial_servo_write(3, 90, time_1)
time.sleep(times)
Arm.Arm_serial_servo_write(4, 90, time_1)
time.sleep(times)
time.sleep(time_sleep)
Arm.Arm_serial_servo_write(4, 20, time_1)
time.sleep(times)
Arm.Arm_serial_servo_write(6, 150, time_1)
time.sleep(times)
time.sleep(time_sleep)
Arm.Arm_serial_servo_write(4, 90, time_1)
time.sleep(times)
Arm.Arm_serial_servo_write(6, 90, time_1)
time.sleep(time_sleep)
Arm.Arm_serial_servo_write(4, 20, time_1)
time.sleep(times)
Arm.Arm_serial_servo_write(6, 150, time_1)
time.sleep(time_sleep)
Arm.Arm_serial_servo_write(4, 90, time_1)
time.sleep(times)
Arm.Arm_serial_servo_write(6, 90, time_1)
time.sleep(times)
Arm.Arm_serial_servo_write(1, 0, time_1)
time.sleep(times)
Arm.Arm_serial_servo_write(5, 0, time_1)
time.sleep(time_sleep)
Arm.Arm_serial_servo_write(3, 180, time_1)
time.sleep(times)
Arm.Arm_serial_servo_write(4, 0, time_1)
time.sleep(time_sleep)
Arm.Arm_serial_servo_write(6, 180, time_1)
time.sleep(time_sleep)
Arm.Arm_serial_servo_write(6, 0, time_2)
time.sleep(time_sleep)
Arm.Arm_serial_servo_write(6, 90, time_2)
time.sleep(times)
Arm.Arm_serial_servo_write(1, 90, time_1)
time.sleep(times)
Arm.Arm_serial_servo_write(1, 90, time_1)
time.sleep(times)
Arm.Arm_serial_servo_write(5, 90, time_1)
time.sleep(time_sleep)
Arm.Arm_serial_servo_write(3, 90, time_1)
time.sleep(times)
Arm.Arm_serial_servo_write(4, 90, time_1)
time.sleep(time_sleep)
print(" END OF LINE! ")
try :
main()
except KeyboardInterrupt:
print(" Program closed! ")
pass
del Arm # 释放掉 Arm 对象
实验说明:本实验通过按序控制机械臂所有舵机(1-6号)的角度变化和运动时间,组合成一系列连续动作,形成"舞蹈"效果。代码中定义了不同的运动时间参数(time_1、time_2)和间隔时间(time_sleep),使动作更流畅自然。
预期效果:机械臂先复位至初始位置,随后依次完成手臂升降、爪子开合、整体旋转等组合动作,形成循环的舞蹈效果。所有动作通过精确的时间控制实现平滑过渡,展现多舵机协同工作的效果。
