12. 舵机接口

鲁班猫扩展板板载两路舵机接口,分别是舵机接口1和舵机接口2:

../_images/show-board-pwm.png

扩展板的PWM2对应舵机接口1,PWM3对应舵机接口2:

../_images/show-circuit-pwm-01.png ../_images/show-circuit-pwm-02.png

以鲁班猫1为例,扩展板的PWM2、PWM3对应鲁班猫1的PWM8_M0、PWM14_M0:

../_images/show-circuit-pwm-03.png

执行如下命令开启对应插件:

1
sudo vi /boot/uEnv/uEnv.txt
../_images/show-dtbo13.png

执行如下命令查看PWM状态:

1
sudo cat /sys/kernel/debug/pwm
../_images/show-operation-syspwm.png

以上只开了PWM8_M0、PWM14_M0,如果还开了其他PWM,也是按小到大注册,即先注册 屏幕背光 -> pwm8 -> pwm14

执行如下命令查看PWM设备节点:

1
ls /sys/class/pwm/
../_images/show-operation-classdev1.png

以上可根据注册顺序可知,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度。