红外线对白色反射强烈;阳光下会有干扰!!!

原理:

白色为发射管,黑色为接收管,3个针脚,一个输入输出引脚;有障碍物低电平2亮灯;没有障碍物,一个灯亮(小蓝色的方块调节灵敏度)

发射管一直在发射红外光,当前面的障碍物越近,反射回来的红外光越强,红外接收管的EC电压越接近0V,那么就会小于LM393的2脚的电压,LM393输出低电平,绿色指示灯亮。

  在实际使用中红外接收管工作在放大区,也就是说C点的电压在不断的变化。所以我们调节LM393的2脚的电压来改变灵敏度。

代码:

#!/usr/bin/python
# coding=utf-8
#本段代码实现树莓派智能小车的红外避障效果
#代码使用的树莓派GPIO是用的BOARD编码方式。
import RPi.GPIO as GPIO
import time
import sys SensorRight = 16    #右边的红外避障模块接口
SensorLeft  = 12    #左边的红外避障接口PWMA   = 18
AIN1   = 22
AIN2   = 27PWMB   = 23
BIN1   = 25
BIN2   = 24BtnPin  = 19
Gpin    = 5
Rpin    = 6
#基本运动函数
def t_up(speed,t_time):L_Motor.ChangeDutyCycle(speed)GPIO.output(AIN2,False)#AIN2GPIO.output(AIN1,True) #AIN1R_Motor.ChangeDutyCycle(speed)GPIO.output(BIN2,False)#BIN2GPIO.output(BIN1,True) #BIN1time.sleep(t_time)def t_stop(t_time):L_Motor.ChangeDutyCycle(0)GPIO.output(AIN2,False)#AIN2GPIO.output(AIN1,False) #AIN1R_Motor.ChangeDutyCycle(0)GPIO.output(BIN2,False)#BIN2GPIO.output(BIN1,False) #BIN1time.sleep(t_time)def t_down(speed,t_time):L_Motor.ChangeDutyCycle(speed)GPIO.output(AIN2,True)#AIN2GPIO.output(AIN1,False) #AIN1R_Motor.ChangeDutyCycle(speed)GPIO.output(BIN2,True)#BIN2GPIO.output(BIN1,False) #BIN1time.sleep(t_time)def t_left(speed,t_time):L_Motor.ChangeDutyCycle(speed)GPIO.output(AIN2,True)#AIN2GPIO.output(AIN1,False) #AIN1R_Motor.ChangeDutyCycle(speed)GPIO.output(BIN2,False)#BIN2GPIO.output(BIN1,True) #BIN1time.sleep(t_time)def t_right(speed,t_time):L_Motor.ChangeDutyCycle(speed)GPIO.output(AIN2,False)#AIN2GPIO.output(AIN1,True) #AIN1R_Motor.ChangeDutyCycle(speed)GPIO.output(BIN2,True)#BIN2GPIO.output(BIN1,False) #BIN1time.sleep(t_time)def keysacn():#?????按钮??val = GPIO.input(BtnPin)while GPIO.input(BtnPin) == False:val = GPIO.input(BtnPin)while GPIO.input(BtnPin) == True:time.sleep(0.01)val = GPIO.input(BtnPin)if val == True:GPIO.output(Rpin,1)while GPIO.input(BtnPin) == False:GPIO.output(Rpin,0)else:GPIO.output(Rpin,0)def setup():#设置输出输入接口GPIO.setwarnings(False)GPIO.setmode(GPIO.BCM)       # Numbers GPIOs by physical locationGPIO.setup(Gpin, GPIO.OUT)     # Set Green Led Pin mode to outputGPIO.setup(Rpin, GPIO.OUT)     # Set Red Led Pin mode to outputGPIO.setup(BtnPin, GPIO.IN, pull_up_down=GPIO.PUD_UP)    # Set BtnPin's mode is input, and pull up to high level(3.3V) GPIO.setup(SensorRight,GPIO.IN)GPIO.setup(SensorLeft,GPIO.IN)GPIO.setup(AIN2,GPIO.OUT)GPIO.setup(AIN1,GPIO.OUT)GPIO.setup(PWMA,GPIO.OUT)GPIO.setup(BIN1,GPIO.OUT)GPIO.setup(BIN2,GPIO.OUT)GPIO.setup(PWMB,GPIO.OUT)if __name__ == '__main__':setup()keysacn()L_Motor= GPIO.PWM(PWMA,100)#左右使能L_Motor.start(0)R_Motor = GPIO.PWM(PWMB,100)R_Motor.start(0)try:while True:#SR_2和SL_2分别读取左右两边----红外避障模块的状态;低电平有障碍物SR_2 = GPIO.input(SensorRight)#高低电平判断!SL_2 = GPIO.input(SensorLeft)if SL_2 == True and SR_2 == True:#当碰到障碍物时候——红外模块输入低电平print("t_up")t_up(50,0)elif SL_2 == True and SR_2 ==False:#右边有障碍物向左print("Left")t_left(50,0)elif SL_2==False and SR_2 ==True:print("Right")t_right(50,0)else:#左右两边都有障碍物!t_stop(0.3)t_down(50,0.4)t_left(50,0.5)except KeyboardInterrupt:  # When 'Ctrl+C' is pressed, the child program destroy() will be  executed.GPIO.cleanup()

树莓派小车——红外避障模块相关推荐

  1. 智能小车红外避障模块----使用教程

    博主本科期间做过两个智能小车,链接如下 b站小车视频分享 今天就给·大家分享一下,何如在你的单片机或者树莓派上调用红外避障模块. 循迹模块介绍 循迹模块和红外避障模块类似.循迹模块的红外发射二极管不断 ...

  2. 智能循迹避障小车C语言程序编写思路,基于单片机的智能小车红外避障循迹系统设计与制作...

    余秀玲 余秀娟 摘 要:随着科技的高速发展,人们对生活质量的要求越来越高,无人驾驶汽车已经被广为研发和试用,由此智能小车的快速发展也是在情理之中.通过对基于单片机的智能小车的硬件及软件设计分析,实现红 ...

  3. ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车红外避障实验(带后退掉头避障)

    在下载到开发板之前要选择好板和端口,具体参见: ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 -- Arduino相关设置 代码 // 智能小车红外避障实验1(基础避障) //======= ...

  4. 九、Arduino 红外避障模块使用

    实验所需材料 Arduino uno 开发板 红外避障模块一个 杜邦线若干 红外模块简介 当模块检测到前方障碍物信号时,电路板上绿色指示灯点亮电平,同时OUT端口持续输出低电平信号,该模块检测距离2- ...

  5. 基于51单片机将红外避障模块(E18-D80NK)与led联动

    最近我在用51板子将E18-D80NK和LED一起联动.想跟大家做一个经验分享. E18-D80NK介绍: 红外避障传感器是一种集发射与接收于一体的光电传感器.检测 距离可以根据要求进行调节.该传感器 ...

  6. 37种传感器(十九)之红外避障模块+Stduino NanoUNO

    37种传感器(十九)之红外避障模块+Stduino Nano&UNO 本文转载自:http://www.stduino.com/forum.php?mod=viewthread&tid ...

  7. 智能小车红外避障原理

    红外避障电路 红外避障电路由电位器R17,R28:发光二极管D8,D9:红外发射管 D2,D4和红外接收管D3,D5和芯片LM324等组成,LM234用于信号的比较,并产生比较结果输出给单片机进行处理 ...

  8. 四路红外避障模块使用

    四路红外避障模块使用 模块介绍 红外传感器:该部分有四对红外发射和接收管,当检测到前方有障碍物时会返回一个低电平(地电平),而没有障碍物时则会返回一个0.6V~2.5V的电平. 主控板:该部分集成了一 ...

  9. Arduino+红外避障模块

    Arduino+红外避障模块 文章目录 Arduino+红外避障模块 前言 一.模块原理 二.使用步骤 1.材料准备 2.线路连接 三.代码 总结 前言 从当前文章开始,我将记录自学Arduino的一 ...

最新文章

  1. 四位先行进位电路逻辑表达式_如何用基本的逻辑门设计32bit的超前进位加法器?...
  2. Node.Js 学习随笔2
  3. 怎样查看rpm安装包的安装路径
  4. 【学习笔记 】sass教程巩固学习
  5. Liferay 部署war包时候的deployDirectory 细节分析
  6. C#接口归纳总结实例详解
  7. JS高级——Proxy、Reflect
  8. 【Python自然语言处理】中文分词技术——规则分词
  9. 是谁的名字缩写_浅谈女枪 or MF之争 盘点LOL中常见的英雄英文名缩写
  10. ubuntu中使用不同版本cuda(转)
  11. 小米推出物联网软件平台Xiaomi Vela;库克被指隐瞒iPhone中国需求下滑;Ubuntu Touch新版发布|极客头条
  12. C# 获取文件路径大全
  13. 【FPGA】 Altera FPGA 入门篇(1)
  14. UNIX编程艺术 UNIX哲学
  15. h3c交换机配置远程管理_H3C交换机配置管理VLAN和配置远程登录
  16. HiCar目前支持的手机型号
  17. 【点宽专栏】研报复现——跨期价差分析与跨期套利研究
  18. [NOIP2017普及组] 棋盘
  19. Data too long for column解决方法
  20. 红外额温枪方案开发技术支持

热门文章

  1. Dubbo的原理和机制
  2. 销售部门如何开早会、午会
  3. 《黑客军团》如何还原黑客真实的一面?
  4. Linux4.4内核构建脚本分析(一)- vmlinux的构建
  5. Dbutil框架简单介绍
  6. 2021山东大学软件学院JAVA高程课设-考试平台的设计与开发(一)
  7. 数据库乐观锁和悲观锁
  8. 潘多拉 IOT 开发板学习(RT-Thread)—— 实验19 MQTT 协议通信实验(学习笔记)
  9. SOLIDWORKS 30个实用小技巧
  10. sqlite databasedisk image is malformed