树莓派4B-Python-控制超声波模块

超声波模块

超声波模块为常用的HC-SR04型号,有四个引脚,分别为Vcc、Trig(控制端)、Echo(接收端)、GND,使用起来也比较简单。在树莓派最新官方系统Raspbian中都安装有一个比较好使用的GPIO库,名为“gpiozero”,它包含了许多模块的使用函数,直接调用就好,在许多情况下(仅本人觉得哈)比“RPi.GPIO”库好用且更简洁。
超声波

参数介绍

工作电压:5V
静态电流:<2ma
感应角度:<15°
检测距离:2-450cm
精度:3mm

工作原理

1.采用IO触发测距,通电后会保持低电平,当检测到障碍物后会变为高电平,高电平信号的时间至少要10us。
2.模块自动发送8个40Khz的方波,自动检测是否有信号返回。
3.检测障碍物距离的公式:高电平触发的时间 X 声音传播的速度340m/s / 2
(高电平持续的时间就是超声波从发射到返回的时间)

另外,理论上给超声波连接的线可以比较长的,但本人在==使用超过20cm的连接线后,发现超声波失灵了,检测不到障碍物,有时甚至是障碍物“无中生有”。==所以本人猜测是连接线过长时,电信号被其他连接线发出的电磁场所干扰,因此使Trig(控制端)和Echo(接收端)接收不到信号或被干扰。

然后呢,按理论(本人自己猜测的瞎想理论)来说,解决此现象的方法为:1.不适用常规的连接线,使用那种带有屏蔽保护的导线;2.使用常规连接线时,长度最好是20cm内,若还是有干扰就再缩短长度。

与树莓派4B的连接

超声波连接树莓派
红色:5V----Vcc
蓝色:GND----GND
黄色:GPIO14----Echo(接收端)
绿色:GPIO15----Trig(控制端)

代码

以下代码为超声波最简单的使用——测距。
由于使用gpiozero库的缘故,检测的默认最大距离为1m

from time import sleep
from gpiozero import DistanceSensor

dis = DistanceSensor(14, 15)    #定义超声波的引脚
while True:
    print('', dis.distance, 'm')
    sleep(0.01)

以下代码为检测到障碍物后点亮LED。

from gpiozero import DistanceSensor , LED
from signal import pause

sensor = DistanceSensor(14, 15, max_distance=1, threshold_distance=0.1)  # 设置超声波引脚和检测最大距离、最小距离
led = LED(13)  # 设置LED引脚

sensor.when_in_range = led.on  # 当障碍物进入检测范围时,LED点亮
sensor.when_out_of_range = led.off  # 当障碍物不在检测范围时,LED熄灭
pause()  # 暂停状态,状态发生变化时才会动作,并一直维持着

##2020.8.20
写在最后——若有不足之处还请各位大佬提出,谢谢!

  • 5
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
树莓派4B的内核开发可以按照以下步骤进行: 1. 首先,下载内核源码。可以使用以下命令克隆树莓派的Linux内核源码库: ``` git clone --depth=1 https://github.com/raspberrypi/linux --branch rpi-5.4.y ``` 这将下载最新的树莓派Linux内核源码。 2. 安装所需的依赖项。使用以下命令安装所需的软件包: ``` sudo apt install raspberrypi-kernel-headers sudo apt install git bc bison flex libssl-dev make ``` 这将安装所需的内核头文件和其他开发工具。 3. 进入内核源码目录并进行配置。使用以下命令进入内核源码目录: ``` cd linux ``` 然后,使用以下命令配置内核: ``` KERNEL=kernel7l make bcm2711_defconfig ``` 这将使用默认配置文件进行内核配置。 4. 编译内核并安装。使用以下命令编译内核和模块: ``` make -j4 zImage modules dtbs ``` 然后,使用以下命令安装内核模块: ``` sudo make modules_install ``` 接下来,将设备树二进制文件复制到/boot/目录: ``` sudo cp arch/arm/boot/dts/*.dtb /boot/ sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/ sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/ ``` 最后,将编译生成的内核映像复制到/boot/目录: ``` sudo cp arch/arm/boot/zImage /boot/$KERNEL.img ``` 5. 重新启动树莓派使用以下命令重新启动树莓派: ``` sudo reboot -f ``` 这样,你就完成了树莓派4B的内核开发过程。请注意,这只是一个简单的概述,具体的步骤可能会因为不同的环境和需求而有所不同。建议在进行内核开发之前仔细阅读相关文档和指南。 #### 引用[.reference_title] - *1* [树莓派4B内核驱动开发(二)本地编译内核](https://blog.csdn.net/wuspeng/article/details/114040075)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [树莓派 4B 本地编译内核](https://blog.csdn.net/zhoutaopower/article/details/119416771)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值