Transbot出厂镜像系统已经安装好最新的驱动库,所以可以不必重复安装。如果使用的不是出厂的镜像,或者驱动库有更新内容,才需要安装驱动库。
出厂系统自带的驱动库存放路径:~/Transbot/py_install
安装驱动库的方法请参考以下步骤,这里以V3.1.0版本安装为例。
本课程资料中有提供最新版本的Transbot Python驱动库,名称为py_install.zip。
压缩包里包含以下文件:
也可以到亚博智能官网下载:Yahboom Transbot
在Transbot资料下载专区中点击【python驱动库下载】下载到最新版本py_install.zip文件。
如果是使用Jetson Nano自带的浏览器到亚博智能官网下载文件,请把文件下载到用户可操作路径,例如桌面。
如果是使用资料中的驱动库压缩包文件,或者是用电脑浏览器下载驱动库文件,可以通过WinSCP软件将驱动库压缩包文件拖入Jetson Nano桌面上。
安装成功后驱动库文件可删除掉。
如果还不会使用WinSCP传输文件的朋友,请查看以下网页WinSCP详细安装和操作方法:
打开Jetson Nano的终端,输入以下命令解压。
进入桌面并查看文件是否存在,红色方框中就是目标文件
cd ~/Desktop && ls
解压文件
xxxxxxxxxx
unzip py_install.zip
注意:整个文档例程都是以py_install.zip压缩包放在Jetson Nano系统桌面为例。如果个人把压缩包存放的路径不同,请根据实际路径进入对应的目录去操作。
进入驱动库的文件夹
xxxxxxxxxx
cd py_install
运行安装命令,看到最后提示的安装版本号则表示安装成功。此命令会覆盖掉之前已经安装过的Transbot_Lib驱动库。
xxxxxxxxxx
sudo python3 setup.py install
在终端输入以下命令查看Transbot-Lib的版本号,看到版本号与上面提示的一样就可以了。
xxxxxxxxxx
pip3 list | grep Transbot
注意:Transbot驱动库的名称为Transbot_Lib,但是在python的pip列表查出来的名称是Transbot-Lib,不影响实际使用,在程序中依然是使用Transbot_Lib来导入库。
xxxxxxxxxx
from Transbot_Lib import Transbot
详细内容请查看本节课的视频教程。
源码路径:Transbot/Samples/2.test_transbot.ipynb
以下驱动库的API简介,在后面控制课程中介绍功能用法和参数内容。
xxxxxxxxxx
| clear_auto_report_data(self)
| # 清除单片机自动发送过来的缓存数据
|
| create_receive_threading(self)
| # 开启接收和处理数据的线程
|
| get_accelerometer_data(self)
| # 获取加速度计三轴数据,返回a_x, a_y, a_z
|
| get_battery_voltage(self)
| # 获取电池电压值
|
| get_gyroscope_data(self)
| # 获取陀螺仪三轴数据,返回g_x, g_y, g_z
|
| get_imu_state(self)
| # 获取陀螺仪辅助小车运动的状态,返回True表示开启,返回False则表示关闭,读取失败返回-1。
|
| get_motion_data(self)
| # 获取小车速度,返回线速度v, 角速度a
|
| get_motion_pid(self)
| # 获取小车的运动PID参数, 返回kp, ki, kd
|
| get_uart_servo_angle(self, s_id)
| # 读取总线舵机的角度,s_id表示要读取的舵机的ID号,s_id=[7-9]
|
| get_uart_servo_angle_array(self)
| # 一次性读取三个舵机的角度[xx, xx, xx],如果某个舵机错误则那一位为-1
|
| get_uart_servo_value(self, servo_id)
| # 读取总线舵机位置参数, servo_id=[1-250], 返回:读到的ID,当前位置参数
|
| get_version(self)
| # 获取底层单片机版本号,如1.1
|
| reset_flash_value(self)
| # 重置小车flash保存的数据,恢复出厂默认值。
|
| set_auto_report_state(self, enable, forever=False)
| # 单片机自动返回数据状态位,默认为开启,如果设置关闭会影响到读取数据功能。
| # enable=True,底层扩展板会每隔xx毫秒发送一次数据。enable=False,则不发送。
| # forever=True永久保存,=False临时作用。
|
| set_beep(self, on_time)
| # 蜂鸣器开关,on_time=0:关闭,on_time=1:一直响,
| # on_time>=10:响xx毫秒后自动关闭(on_time是10的倍数)。
|
| set_car_motion(self, velocity, angular)
| # 小车运动控制,velocity=[-0.45, 0.45], angular=[-2.00, 2.00]
|
| set_car_run(self, speed)
| # 设置小车向前或者向后运动,并自动使用陀螺仪辅助运动方向。
| # speed=[-0.45,0.45],=0停止,=正数前进,=负数后退。
|
| set_colorful_effect(self, effect, speed=255, parm=255)
| # RGB可编程灯带特效展示。
| # effect=[0, 6],0:停止灯效,1:流水灯,2:跑马灯,3:呼吸灯,4:渐变灯,5:星光点点,6:电量显示
| # speed=[1, 10],数值越小速度变化越快。
| # parm,可不填,作为附加参数。用法1:呼吸灯效果传入[0, 6]可修改呼吸灯颜色。
|
| set_colorful_lamps(self, led_id, red, green, blue)
| # RGB可编程灯带控制,可单独控制或全体控制,控制前需要先停止RGB灯特效。
| # led_id=[0, 16],控制对应编号的RGB灯;led_id=0xFF, 控制所有灯。
| # red,green,blue=[0, 255],表示颜色RGB值。
|
| set_floodlight(self, light)
| # 控制探照灯, light控制亮度,light = [0, 100], 0为熄灭,100为最亮。
|
| set_imu_adjust(self, enable, forever=False)
| # 设置陀螺仪辅助调节小车运动方向,设置开启后,set_car_motion函数设置角速度为0时起作用。
| # enable=True开启,=False关闭。forever=True永久保存,=False临时作用。
|
| set_motor(self, index, speed)
| # 控制电机PWM脉冲,从而控制速度(未使用编码器测速)。index:[1,2], speed:±100
|
| set_pid_param(self, kp, ki, kd, forever=False)
| # PID 参数控制,会影响set_car_motion函数控制小车的运动速度变化情况。默认情况下可不调整。
| # kp ki kd = [0, 10.00], 可输入小数。
| # forever=True永久保存,=False临时作用。
| # 由于永久保存需要写入芯片flash中,操作时间较长,所以加入delay延迟时间,避免导致单片机丢包的问题。
| # 临时作用反应快,单次有效,重启单片后数据不再保持。
|
| set_pwm_servo(self, servo_id, angle)
| # 舵机控制,servo_id:对应ID编号:X = 1, Y = 2,angle:对应舵机角度值
| # servo_id=[1, 2], angle=[0, 180]
|
| set_speed_limit(self, line_limit, angular_limit, forever=False)
| # 设置小车运动最小速度限制值(最小值)。默认情况下可不设置。
| # line_limit=[0, 0.20],angular_limit=[0, 1.00]
| # forever=True永久保存,=False临时作用。
|
| set_uart_servo(self, servo_id, pulse_value, run_time=500)
| # 控制总线舵机。servo_id:[1-255],表示要控制的舵机的ID号, id=254时, 控制所有已连接舵机。
| # pulse_value=[96,4000]表示舵机要运行到的位置。
| # run_time表示运行的时间(ms),时间越短,舵机转动越快。最小为0,最大为2000
|
| set_uart_servo_angle(self, s_id, s_angle, run_time=500)
| # 设置总线舵机角度接口:id:7-9, angle: 7:[0, 225], 8:[30, 270], 9:[30, 180], 设置舵机要运动到的角度。
| # 设直立向上夹紧状态,三个舵机都为180度,7/8号顺时针(向下)转为减,逆时针(向上)转为增,夹子松开为减,夹紧为增。
| # run_time表示运行的时间(ms),时间越短,舵机转动越快。最小为0,最大为2000
|
| set_uart_servo_angle_array(self, angle_7, angle_8, angle_9, run_time=500)
| # 同时控制三个舵机的角度。
| # 设直立向上夹紧状态,三个舵机都为180度,7/8号顺时针(向下)转为减,逆时针(向上)转为增,夹子松开为减,夹紧为增。
| # angle_7=[0, 225], angle_8=[30, 270], angle_9=[30, 180]
| # run_time表示运行的时间(ms),时间越短,舵机转动越快。最小值为0,最大值为2000
|
| set_uart_servo_id(self, servo_id)
| # 设置总线舵机的ID号,servo_id=[1-250]。
| # 运行此函数前请确认只连接一个总线舵机,否则会把所有已连接的总线舵机都设置成同一个ID,造成控制混乱。
|
| set_uart_servo_torque(self, enable)
| # 关闭/打开总线舵机扭矩力, enable=[0, 1]。
| # enable=0:关闭舵机扭矩力,可以用手转动舵机,但命令无法控制转动;
| # enable=1:打开扭矩力,命令可以控制转动,不可以用手转动舵机。