树莓派-传感器篇
前言
在之前的【树莓派-进阶篇】中已经讲解了最简单的红外避障传感器的使用。主线任务还在更新,传感器篇准备讲解下树莓派的常用传感器,实例代码将放在 github 上供大家交流。
超声波测距模块
工作原理
1. 采用IO口TRIG触发测距,给至少10us的高电平信号
- 模块自动发送8个40khz的方波,自动检测是否有信号返回
- 有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2
- 本模块使用方法简单,一个控制口发一个10US以上的高电平,就可以在接收口等待高电平输出。一有输出就可以开时计时,当此口变为低电平时记录结束时间的值,此时就为此次测距的时间即可算出距离。如此不断的周期测,即可以达到你移动测量的值
接线方式
将GND连接电池的负极,VCC连接电池正极,TRIG连接树莓派物理引脚31,ECHO连接树莓派物理引脚33,配合以下代码即可完成测距。
示例代码
import RPi.GPIO as GPIO
import time
# 设置引脚编码方式
GPIO.setmode(GPIO.BOARD)
# 设置31引脚为输出
GPIO.setup(31, GPIO.OUT)
# 设置31引脚为输入
GPIO.setup(33, GPIO.IN)
# 输出10us的高电平信号
GPIO.output(31, True)
time.sleep(0.00001) # 10us
GPIO.output(31, False)
# 监听ECHO口输出信息,如果是低电平则忽略,反之记录高电平开始的时间
while GPIO.input(33) == 0:
pass
start = time.time()
# 如果是高电平则忽略,反之记录高电平结束的时间
while GPIO.input(33) == 1:
pass
end = time.time()
# 计算距离
distance = round((end - start) * 343 / 2 * 100)
print(distance)
433MHZ/355MHZ 射频数据传输
未完,容我续一杯咖啡~
本作品采用《CC 协议》,转载必须注明作者和本文链接