5.一次控制6个舵机

您当前位置: 首页 > DOFBOT AI视觉机械臂(Jetson nano版) > 基础控制课程

6.5一次控制6个舵机

一、API简介

一次控制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。

time:控制舵机运行的时间,在有效范围内,舵机转动相同的角度,输入运行的时间越小,舵机运动越快。输入0则舵机以最快速度运行。

返回值:无。

 

二、代码内容

代码路径:/home/jetson/Dofbot/3.ctrl_Arm/5.ctrl_all.ipynb

#!/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对象

jupyter lab打开程序文件,并且点击jupyter lab工具栏上的运行整个notebook按钮,即可看到机械臂六个舵机同时转动,机械臂不断变化自身的姿态。

image.png

如果要退出则点击工具栏的停止按钮。

image.png