在小型的桌面级机器人开发领域,很多开发者也使用到fashionstar这款总线舵机。由于该总线舵机配套的控制板是基于树莓派3/4B平台使用的,但是在旭日X3派同样可以使用,仅仅需要做一些小改动,因此我在此说明一下。
首先旭日X3派跟树莓派一样,插上舵机控制板后,直接可以使用控制板供电。
也要注意散热问题,由于官方赠送的散热片过高,需要自己更换更小的散热片(例如我用的是25*25*5mm的散热片)。
话不多说,直接上代码,很简单,只需要把代码上原来在树莓派上的ttyAMA0改成ttyS3就好了(就这么简单)。程序起名为test.py。
import numpy as np-
import time-
import subprocess-
import serial-
import struct-
from fs_uservo import UartServoManager-
from time import sleep-
import sys-
import os
#旭日X3派的硬件串口为ttyS3,树莓派为ttyAMA0
USERVO_PORT_NAME = ‘/dev/ttyS3’
uart = serial.Serial(port=USERVO_PORT_NAME, baudrate=115200,\-
parity=serial.PARITY_NONE, stopbits=1,\-
bytesize=8,timeout=0)-
srv_num = 1 # 舵机个数-
UartServoManager(uart, srv_num=1, mean_dps=100)-
uservo_manager = UartServoManager(uart, srv_num=srv_num)
while(1):
time.sleep(2)
#uservo_manager.request_set_srv_angle(舵机号, 角度, 转动时长,ms)
uservo_manager.request_set_srv_angle(0, 0, 2000)
#延时2秒
time.sleep(2)
#舵机顺时针转动135度
uservo_manager.request_set_srv_angle(0, 135, 2000)
time.sleep(2)
至于fashionstar总线舵机编号的设置方法可以参考fashionstar官方文档,舵机的控制代码跟树莓派一样。
需要注意的是,该程序在旭日X3派上只能在终端上运行,例如我把test.py和控制协议程序fs_uservo.py(程序我放在附件中,必须要跟示例程序放在同一个文件下,因为test.py需要引用到这个程序)都放在/home/路径。则在终端输入:
sudo python3 test.py
[输入密码:sunrise]
接下来放一段演示视频。
fashionstar舵机控制板功能很强大,板子上还集成了一个MPU6050角度传感器,使用的是I2C通信协议,基于旭日X3派的操作我会在跑通后发布。
感谢观看!