标签红外避障传感器

KY-032避障红外传感器实验

    最近入手了几个ky-032避障红外传感器,这个传感器不同于以前红外避障传感器,它包含了灵敏度和检测范围的调节以及EN引脚;其中EN引脚要启用需要先拿掉跳线帽。
#接线示例:
接线示例
#其中EN引脚,实验中处于启用状态;移除跳线帽后,NE555芯片定时器的引脚 4 由 22K 下拉电阻 R3 保持低电平(复位)。当高电平条件应用于 EN 引脚时,复位条件解除,555 定时器将开始振荡。由于 IR 接收器中的 AGC 很快饱和,因此 EN 引脚一次不应保持高电平(启用)超过 2 毫秒。EN 必须在短时间内变为低电平,然后再次变为高电平。由此定期关闭38kHz信号并让AGC电路放松,可使设备达到最大灵敏度。
#实验代码:

继续前进
#!/usr/bin/env python
#coding:utf-8

'''
from JiuJiang
树莓酱的操作实例
https:://www.shumeijiang.com
'''

import RPi.GPIO as GPIO  ##引入GPIO模块
import time              ##引入time库

sensePin = 22 #检测引脚
enablePin = 23 #en引脚

GPIO.setmode(GPIO.BCM)   ##此处采用的BCM编码
GPIO.setup(sensePin, GPIO.IN) ##设置为接收模式
GPIO.setup(enablePin, GPIO.OUT) ##设置en为输出模式

try:
    while True:
        #复位条件解除 传感器开始工作
        GPIO.output(enablePin, GPIO.HIGH)
        status = GPIO.input(sensePin) ##检测传感器状态
        if status == GPIO.LOW:  ##低电平触发
            print '有障碍物!!'
        else:
            print '继续前进'

        #复位EN引脚
        GPIO.output(enablePin, GPIO.LOW)
        time.sleep(0.05)  ##检测频率

except KeyboardInterrupt:
    pass

GPIO.cleanup()
#不启用EN引脚常规检测代码:

#!/usr/bin/env python
#coding:utf-8

'''
from JiuJiang
树莓酱的操作实例
https:://www.shumeijiang.com
'''

import RPi.GPIO as GPIO  ##引入GPIO模块
import time              ##引入time库

sensePin = 22

GPIO.setmode(GPIO.BCM)   ##此处采用的BCM编码
GPIO.setup(sensePin, GPIO.IN, pull_up_down=GPIO.PUD_UP) ##设置为接收模式

#添加事件检测
GPIO.add_event_detect(sensePin, GPIO.FALLING, bouncetime=500)

try:
    while True:
        status = GPIO.event_detected(sensePin)
        if status == GPIO.HIGH:
            print '发现障碍物!!'
        else:
            print '继续前进'

        time.sleep(0.05)  ##检测频率

except KeyboardInterrupt:
    pass

GPIO.cleanup()
#参考文章:http://irsensor.wizecode.com/

四路红外避障传感器实验

    最近入手了一个一拖四的红外避障传感器,想用于小车的障碍物检测;以前曾写过单个的红外避障传感器的使用实验,今天来测试一下四路红外避障传感器如何使用。同时这篇文章还会使用边沿检测方法,检测传感器的状态改变事件。
#接线示例
#边沿检测部分可以参考:边沿检测函数

#实验代码:


#!/usr/bin/env python
#coding:utf-8

'''
from JiuJiang
树莓酱的操作实例
https:://www.suhmeijiang.com
'''

import RPi.GPIO as GPIO  ##引入GPIO模块
import time              ##引入time库

pinOne = 22
pinTwo = 23
pinThree = 24
pinFour = 25

GPIO.setmode(GPIO.BCM)   ##此处采用的BCM编码 因为T型扩展板也是BCM编码 方便统一
GPIO.setup(pinOne, GPIO.IN, pull_up_down=GPIO.PUD_UP) ##设置检测引脚我输入状态 并初始化为高电平
GPIO.setup(pinTwo, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(pinThree, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(pinFour, GPIO.IN, pull_up_down=GPIO.PUD_UP)

#注册一个检测电压下降事件 检测间隔时间600毫秒(防抖时间)
GPIO.add_event_detect(pinOne, GPIO.FALLING, bouncetime=600)
GPIO.add_event_detect(pinTwo, GPIO.FALLING, bouncetime=600)
GPIO.add_event_detect(pinThree, GPIO.FALLING, bouncetime=600)
GPIO.add_event_detect(pinFour, GPIO.FALLING, bouncetime=600)

try:
    while True:
        #事件检测
        if (GPIO.event_detected(pinOne)):
            print("右边发现有人!")

        if (GPIO.event_detected(pinTwo)):
            print("上边发现有人!")

        if (GPIO.event_detected(pinThree)):
            print("左边发现有人!")

        if (GPIO.event_detected(pinFour)):
            print("下边发现有人!")

except KeyboardInterrupt:
        pass

GPIO.cleanup()
#试验效果:
1、保存代码为jiujiang.py;
2、执行代码,如果没有触发事件则屏幕无信息打印;
3、当物体或者用手遮挡任一方向的传感器;
4、可见屏幕打印出这个方向的信息,如果发现打印多次,则是因为停留时间大于间隔检测时间,可以按需调试间隔时间;
实验效果

红外避障传感器实验

实验目的:红外避障传感器主要由红外发射器,红外接收器和电位器组成。实验主要利用遇到障碍物时,发射的红外线会被反射回来从而被检测接收;没有遇到障碍物发射的红外线则会逐渐消失的特性,从而检测障碍物的存在与否。进而做出预警反应。
#接线效果如图
接线示例
#实验代码
代码示例

#!/usr/bin/env python
#coding:utf-8

'''
from JiuJiang
树莓酱的操作实例
https:://www.shumeijiang.com
'''

import RPi.GPIO as GPIO  ##引入GPIO模块
import time              ##引入time库

sensePin = 18

GPIO.setmode(GPIO.BCM)   ##此处采用的BCM编码 因为T型扩展板也是BCM编码 方便统一
GPIO.setup(sensePin, GPIO.IN) ##设置为接收模式

try:
    while True
        status = GPIO.input(sensePin) ##检测传感器状态
        if status == 0:  ##低电平触发
            print '有障碍物!!'  ##界面提示 后续会增加触发声光报警实验
        else:
            print '继续倒车'

        time.sleep(0.5)  ##检测频率

except KeyboardInterrupt:
    pass

GPIO.cleanup()
#实验效果
1、执行代码 Python jiujiang.py;
2、当传感器前没有障碍物时,屏幕输出”继续倒车“;当放置障碍物时,屏幕输出”有障碍物!“;
3、Ctrl+C停止检测。
#视频效果如下: