6. 超声波传感器

野火超声波传感器模块有两个超声波探头,分别用于发射和接收超声波,TRIG 脚用于触发发射超 声波,若接收到返回的超声波 ECHO 脚会输出高电平,根据高电平的持续时间计算目标距离。

../_images/show-peripheral-hcsr04.png

注解

关于传感器更详细的信息可以参考其规格手册。


鲁班猫扩展板板载1个超声波接口:

../_images/show-board-hcsr04.png

超声波接口的trig、echo引脚使用主控原生引脚,对应扩展板GPIO_5、GPIO_6:

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

以鲁班猫1为例,对应GPIO3_C1、GPIO3_B6:

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

登入系统,执行如下命令打开配置文件,并开启XL9535设备树插件:

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

6.1. 基础实验

本次基础实验将打印超声波模块的测距距离。

python代码测试

python测试代码为:lubancat_rk_code_storage/expansion_board/hcsr04/hcsr04.py

关于程序中的引脚定义,需要自行根据具体板卡来修改:

注解

gpionum计算方法如下:

group = 0~3(A~D)

gpionum = group * 8 + x

举例 :

C1 = 2 * 8 + 1 = 17

B6 = 1 * 8 + 6 = 14

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
'''
filename : hcsr04.py
'''

...

# gpionum
gpionum_trig = 17
gpionum_echo = 14

# gpiochip
gpiochip_num_trig = "3"
gpiochip_num_echo = "3"

...

将程序拷贝到板卡,执行如下命令运行程序:

1
2
 # 运行程序
 sudo python hcsr04.py

验证时,超声波测距模块前方处尽量空旷,避免周围小物体的回波信号造成错误 待测目标面积尽量不小于0.5平方米,平面尽量平整且垂直于超声波探头。

c代码测试

c测试代码为:lubancat_rk_code_storage/expansion_board/hcsr04/hcsr04.c

关于程序中的引脚定义,需要自行根据具体板卡来修改:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
/*
filename : hcsr04.c
*/

...

#define GPIOCHIP_TRIG           "/dev/gpiochip3"
#define GPIONUM_TRIC            (17)

#define GPIOCHIP_ECHO           "/dev/gpiochip3"
#define GPIONUM_ECHO            (14)

...

将程序拷贝到板卡,执行如下命令编译,运行程序:

1
2
3
4
5
 # 编译程序
 sudo gcc -o hcsr04 hcsr04.c -lgpiod

 # 运行程序
 sudo ./hcsr04.c

验证时,超声波测距模块前方处尽量空旷,避免周围小物体的回波信号造成错误 待测目标面积尽量不小于0.5平方米,平面尽量平整且垂直于超声波探头。

../_images/show-operation-coderun1.png

6.2. 模拟倒车雷达

本次模拟倒车雷达将应用超声波传感器和蜂鸣器,蜂鸣器会根据测距距离改变鸣响频率。

python代码测试

python测试代码为:lubancat_rk_code_storage/expansion_board/hcsr04/radar.py

关于程序中的引脚定义,需要自行根据具体板卡来修改:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
'''
filename : radar.py
'''

...

# gpionum
gpionum_trig = 17
gpionum_echo = 14

# gpiochip
gpiochip_num_trig = "3"
gpiochip_num_echo = "3"

...

将程序拷贝到板卡,执行如下命令运行程序:

1
2
# 运行程序
sudo python radar.py

c代码测试

c测试代码为:lubancat_rk_code_storage/expansion_board/hcsr04/radar.c

关于程序中的引脚定义,需要自行根据具体板卡来修改:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
/*
filename : hcsr04.c
*/

...

#define GPIOCHIP_TRIG           "/dev/gpiochip3"
#define GPIONUM_TRIC            (17)

#define GPIOCHIP_ECHO           "/dev/gpiochip3"
#define GPIONUM_ECHO            (14)

...

将程序拷贝到板卡,执行如下命令编译,运行程序:

1
2
3
4
5
 # 编译程序
 sudo gcc -o radar radar.c -lgpiod

 # 运行程序
 sudo ./radar.c