12. 舵机接口¶
鲁班猫扩展板板载两路舵机接口,分别是舵机接口1和舵机接口2:
扩展板的PWM2对应舵机接口1,PWM3对应舵机接口2:
以鲁班猫1为例,扩展板的PWM2、PWM3对应鲁班猫1的PWM8_M0、PWM14_M0:
执行如下命令开启对应插件:
1 | sudo vi /boot/uEnv/uEnv.txt
|
执行如下命令查看PWM状态:
1 | sudo cat /sys/kernel/debug/pwm
|
以上只开了PWM8_M0、PWM14_M0,如果还开了其他PWM,也是按小到大注册,即先注册 屏幕背光 -> pwm8 -> pwm14
执行如下命令查看PWM设备节点:
1 | ls /sys/class/pwm/
|
以上可根据注册顺序可知,pwm8是pwmchip1、pwm14是pwmchip2。
12.1. python代码测试¶
python测试代码为:lubancat_rk_code_storage/expansion_board/pwm/pwm.py
运行前需要修改pwm.py的pwm接口为实际接口:
1 2 3 4 5 6 7 8 9 10 | '''
filename : pwm.py
'''
...
PWM1 = PWM(1, 0) # pwmchip1, channel0
PWM2 = PWM(2, 0) # pwmchip2, channel0
...
|
将pwm.py传到板卡,将舵机接到两个舵机接口的任意一个,执行如下命令运行程序:
1 2 | # 运行程序
sudo python pwm.py
|
若接入舵机,舵机会重复从0度开始以特定角度转动到180度。
12.2. c代码测试¶
C测试代码为:lubancat_rk_code_storage/expansion_board/pwm/pwm.c
运行前需要修改pwm.c的pwm接口为实际接口:
1 2 3 4 5 6 7 8 9 10 11 12 13 | /*
filename : pwm.c
*/
...
#define GPIOCHIP_PWM1 "pwmchip1"
#define GPIOCHIP_PWM2 "pwmchip2"
#define PWM1_CHANNEL "0"
#define PWM2_CHANNEL "0"
...
|
将pwm.c传到板卡,将舵机接到两个舵机接口的任意一个,执行以下命令编译并运行程序:
1 2 3 4 5 | # 编译程序
sudo gcc -o pwm pwm.c
# 运行程序
sudo ./pwm
|
若接入舵机,舵机会从0度开始以特定角度转动到180度。