扫描总线舵机
SServo.scan()
返回值
使用示例:打印出扫描到的总线舵机id
from pi_driver import SServo
servo= SServo()
print(servo.scan())
修改总线舵机id
SServo.change_id(old,new)
参数说明
old:总线舵机当前的id,总线舵机初始id默认为1
new:想要修改的总线舵机新id,可选范围1——253
使用示例:把3号总线舵机修改为2号
from pi_driver import SServo,Servo
servo= SServo()
servo.change_id(3,2)
设置单个总线舵机角度
SServo.set_position(id,position,ms=0)
参数说明
id:总线舵机id
position:总线舵机转动的目标位置(0——1023,对应0——300度)
ms:可选设置多少毫秒转动到指定位置,默认0以最快时间转动到指定位置
使用示例:让3号总线舵机在500毫秒内转动到中间位置
from pi_driver import SServo
servo= SServo()
servo.set_position(3,511,ms=500)
批量设置总线舵机角度
SServo.set_positions(servos)
参数说明
servos:[Servo(id, position, ms=0)],包含每个舵机id、位置和时间的Servo对象数组
使用示例:让1号和3号总线舵机以最快时间转动到中间位置
from pi_driver import SServo,Servo
servo= SServo()
servo.set_positions([Servo(1,511),Servo(3,511)])
示例代码 Python/舵机归零.py
扫描已连接的总线舵机,并把它们的角度回中(归零)
#!coding:utf-8
from pi_driver import SServo
import time
import os
if __name__ == '__main__':
import serial.tools.list_ports
serial_ports = [i[0] for i in serial.tools.list_ports.comports()]
print(serial_ports)
# servo = SServo('/dev/ttyAMA1')
servo = SServo()
while True:
os.system('clear')
ids = servo.scan_print(25)
for i in ids:
servo.remove_limit(i)
servo.set_position(i,1023/2)
time.sleep(1)
设置舵机零点偏移
SServo.set_offset(id,offset)
参数说明
id:总线舵机id
offset:总线舵机转动的目标位置(0——1023,对应0——300度)
使用示例:让3号总线舵机在500毫秒内转动到中间位置
from pi_driver import SServo
servo= SServo()
servo.set_position(3,511,ms=500)
示例代码 Python/清除校准.py
扫描已连接的总线舵机,清除零点校准
#!coding:utf-8
from pi_driver import SServo
import time
import os
if __name__ == '__main__':
import serial.tools.list_ports
serial_ports = [i[0] for i in serial.tools.list_ports.comports()]
print(serial_ports)
# servo = SServo('/dev/ttyAMA1')
servo = SServo()
while True:
os.system('clear')
ids = servo.scan_print(25)
for i in ids:
servo.set_offset(i,0)
servo.set_position(i,1023/2)
time.sleep(1)