树莓派小车——红外避障模块
红外线对白色反射强烈;阳光下会有干扰!!!
原理:
白色为发射管,黑色为接收管,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()
树莓派小车——红外避障模块相关推荐
- 智能小车红外避障模块----使用教程
博主本科期间做过两个智能小车,链接如下 b站小车视频分享 今天就给·大家分享一下,何如在你的单片机或者树莓派上调用红外避障模块. 循迹模块介绍 循迹模块和红外避障模块类似.循迹模块的红外发射二极管不断 ...
- 智能循迹避障小车C语言程序编写思路,基于单片机的智能小车红外避障循迹系统设计与制作...
余秀玲 余秀娟 摘 要:随着科技的高速发展,人们对生活质量的要求越来越高,无人驾驶汽车已经被广为研发和试用,由此智能小车的快速发展也是在情理之中.通过对基于单片机的智能小车的硬件及软件设计分析,实现红 ...
- ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车红外避障实验(带后退掉头避障)
在下载到开发板之前要选择好板和端口,具体参见: ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 -- Arduino相关设置 代码 // 智能小车红外避障实验1(基础避障) //======= ...
- 九、Arduino 红外避障模块使用
实验所需材料 Arduino uno 开发板 红外避障模块一个 杜邦线若干 红外模块简介 当模块检测到前方障碍物信号时,电路板上绿色指示灯点亮电平,同时OUT端口持续输出低电平信号,该模块检测距离2- ...
- 基于51单片机将红外避障模块(E18-D80NK)与led联动
最近我在用51板子将E18-D80NK和LED一起联动.想跟大家做一个经验分享. E18-D80NK介绍: 红外避障传感器是一种集发射与接收于一体的光电传感器.检测 距离可以根据要求进行调节.该传感器 ...
- 37种传感器(十九)之红外避障模块+Stduino NanoUNO
37种传感器(十九)之红外避障模块+Stduino Nano&UNO 本文转载自:http://www.stduino.com/forum.php?mod=viewthread&tid ...
- 智能小车红外避障原理
红外避障电路 红外避障电路由电位器R17,R28:发光二极管D8,D9:红外发射管 D2,D4和红外接收管D3,D5和芯片LM324等组成,LM234用于信号的比较,并产生比较结果输出给单片机进行处理 ...
- 四路红外避障模块使用
四路红外避障模块使用 模块介绍 红外传感器:该部分有四对红外发射和接收管,当检测到前方有障碍物时会返回一个低电平(地电平),而没有障碍物时则会返回一个0.6V~2.5V的电平. 主控板:该部分集成了一 ...
- Arduino+红外避障模块
Arduino+红外避障模块 文章目录 Arduino+红外避障模块 前言 一.模块原理 二.使用步骤 1.材料准备 2.线路连接 三.代码 总结 前言 从当前文章开始,我将记录自学Arduino的一 ...
最新文章
- 四位先行进位电路逻辑表达式_如何用基本的逻辑门设计32bit的超前进位加法器?...
- Node.Js 学习随笔2
- 怎样查看rpm安装包的安装路径
- 【学习笔记 】sass教程巩固学习
- Liferay 部署war包时候的deployDirectory 细节分析
- C#接口归纳总结实例详解
- JS高级——Proxy、Reflect
- 【Python自然语言处理】中文分词技术——规则分词
- 是谁的名字缩写_浅谈女枪 or MF之争 盘点LOL中常见的英雄英文名缩写
- ubuntu中使用不同版本cuda(转)
- 小米推出物联网软件平台Xiaomi Vela;库克被指隐瞒iPhone中国需求下滑;Ubuntu Touch新版发布|极客头条
- C# 获取文件路径大全
- 【FPGA】 Altera FPGA 入门篇(1)
- UNIX编程艺术 UNIX哲学
- h3c交换机配置远程管理_H3C交换机配置管理VLAN和配置远程登录
- HiCar目前支持的手机型号
- 【点宽专栏】研报复现——跨期价差分析与跨期套利研究
- [NOIP2017普及组] 棋盘
- Data too long for column解决方法
- 红外额温枪方案开发技术支持