树莓派基础实验28:红外避障传感器实验
时间:2022-07-25
本文章向大家介绍树莓派基础实验28:红外避障传感器实验,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、介绍
IR障碍物传感器根据红外反射原理来检测障碍物,当没有物体时,红外接收器不接受信号;当前方有物体阻挡并反射红外光时,红外接收器将接收信号。
二、组件
★Raspberry Pi主板*1
★树莓派电源*1
★40P软排线*1
★红外避障传感器模块*1
★面包板*1
★跳线若干
三、实验原理
红外避障传感器
红外避障模块原理图
红外测距都是采用三角测距的原理。红外发射器按照一定角度发射红外光束,遇到物体之后,光会反向回来,检测到反射光之后,通过结构上的几何三角关系,就可以计算出物体距离D。
当物体距离D很大时,L值就会很小,测量精度会变差。因此,常见的红外传感器 测量距离都比较近,小于超声波,同时远距离测量也有最小距离的限制。另外,对于透明的或者近似黑体的物体,红外传感器是无法检测距离的。
该传感器模块对环境光线适应能力强,其具有一对红外线发射与接收管,发射管发射出频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,经过比较器电路处理之后,绿色指示灯会亮起,同时信号输出接口输出数字信号(一个低电平信号),可通过电位器旋钮调节检测距离,有效距离范围2~30cm,工作电压为3.3V-5V。
该传感器的探测距离可以通过电位器调节、具有干扰小、便于装配、使用方便等特点,可以广泛应用于机器人避障、避障小车、流水线计数及黑白线循迹等众多场合。
四、实验步骤
第1步:连接电路。
树莓派 |
T型转接板 |
红外避障传感器 |
---|---|---|
GPIO0 |
G17 |
OUT(SIG) |
5V |
5V |
VCC |
GND |
GND |
GND |
红外避障传感器电路图
红外避障传感器实验接线图
第2步:编写控制程序。当红外避障传感器检测到障碍物,输出低电平,打印"Detected Barrier!";当没有障碍物时输出高电平,打印“Nothing!”。
#!/usr/bin/env python
import RPi.GPIO as GPIO
ObstaclePin = 11
def setup():
GPIO.setmode(GPIO.BOARD) # Numbers GPIOs by physical location
GPIO.setup(ObstaclePin, GPIO.IN, pull_up_down=GPIO.PUD_UP)
def loop():
while True:
if (0 == GPIO.input(ObstaclePin)): #当检测到障碍物时,输出低电平信号
print "Detected Barrier!"
else :
print "****Nothing!******"
def destroy():
GPIO.cleanup() # Release resource
if __name__ == '__main__': # Program start from here
setup()
try:
loop()
except KeyboardInterrupt: # When 'Ctrl+C' is pressed, the child program destroy() will be executed.
destroy()
- Oracle和MySQL竟然可以这么写这样的SQL?(r12笔记第99天)
- Golang语言社区--了解C++ 用libcurl库进行http通讯网络编程
- Golang语言-- 小技巧
- MySQL Shell的简单介绍(r12笔记第95天)
- MYSQL索引条件下推的简单测试
- 教你如何用AST语法树对代码“动手脚”
- Oracle和MySQL中短小精悍的SQL
- Oracle 12cR2中的ADG会话保留特性
- IP地址定位区间的问题分析
- Javascript即将迎来Optional Chaining
- MySQL中需要注意的字段长度问题
- 不停机分库分表迁移
- MySQL中一个文档疏漏的分析测试
- 通过shell脚本模拟MySQL自增列的不一致问题
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法