项目六 安检门检测 - 任务二_第1页
项目六 安检门检测 - 任务二_第2页
项目六 安检门检测 - 任务二_第3页
项目六 安检门检测 - 任务二_第4页
项目六 安检门检测 - 任务二_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《传感器应用》主讲教师:XXX

项目六安检门检测PART06※红外传感器的选型与检测※实现安检门检测06※人体热释电传感器选型和检测※LCD显示屏选型和检测※实现进出人员数量检测认识红外传感器的作用和种类01认识LCD种类和使用方法03认识人体热释电传感器02学习目标objective掌握红外传感器的检测方法04掌握人体热释电传感器的选用方法05TASKTWO任务二实现安检门检测4任务要求储备知识任务实施任务目标231在掌握红外传感器的工作原理后,掌握使用Pyhton语句中多分支语句用法,结合树莓派实现使用红外传感器实现安检门检测功能。任务要求4任务要求储备知识任务实施任务目标231TASKTWO任务二实现安检门检测01.掌握python语言if多分支结构用法02.掌握编写红外传感器的驱动方法任务目标03.掌握规范程序编写风格4任务要求储备知识任务实施任务目标231TASKTWO任务二实现安检门检测01.Python语言if多分支结构储备知识程序逻辑判断的核心语句,被称作条件语句或者分支语句,在前置的学习中我们已经学习了if单分支结构,但在部分特殊的场合需要进行多个条件的判断,这时单分支语句已经无法满足要求,所以需要使用多分支的语句来表示不同的条件来产生不同的结果。多分支判断语句语法如图所示。01.Python语言if多分支结构图:多分支条件判断语句if语句如图所示,在多分支语句中——以此类推理论上可以无限制的写判断条件,如果以上的条件均无法判断则使用else进行结束。1首个条件判断使用if作为关键字语句2第二个条件判断使用elif语句,其全称为elseif表示其他的if3第三个条件判断同样使用elif需要注意的是当多分支语句中满足了其中一个条件后,那么其他的条件均不会被执行。程序会根据编写条件语句的顺序依次判断条件是否为真,如果条件为假则进入下一个elif语句进行判断。为了帮助大家更好的理解if语句的使用,接下来,通过两个案例来演示if多分支语句的作用。这里通过VNCViewer连接到树莓派系统,打开前面提到的mu软件,进行代码的编写。案例“if-多分支语句1”执行后效果如下:temp=35print("机器人:根据温度判断天气情况")if(temp>=35):

print("机器人:温度太热了,请及时避暑!")elif(temp>=25):

print("机器人:温度有点热")elif(temp>=20):

print("机器人:温度有点冷了")elif(temp>=10):

print("机器人:温度冷了,注意保暖")elif(temp>0):

print("机器人:温度已经达到零下了")else:

print("机器人:我没有看懂")在案例中,使用temp作为当前温度数值的变量,使用if语句判断温度的大小。进入下一个条件判断判断温度大于25时输出"机器人:温度有点热"如果数值大于35输出"机器人:温度太热了,请及时避暑!"不满足数值大于35同理依次类推注意的是当其中一个条件满足时。案例“if-多分支语句2”str="你几岁了"if(str=="你几岁了"):

print("机器人:我已经18岁")elif(str=="你叫什么名字"):

print("机器人:我叫小叶")elif(str=="你住在哪"):

print("我住在深圳")在案例中,使用str作为字符串判断变量,使用if语句判断字符串是否相等如果相等则输出对应结果,需要注意的是多分支语句中可以不使用else关键字进行结束。4任务要求储备知识任务实施任务目标231TASKTWO任务二实现安检门检测02.Python程序实现多个安检门检测任务实施03.Python程序实现安检门检测02.Python程序实现多个安检门检测任务所需软件如下所示:VNC-Viewer环境准备任务所需硬件如下所示:树莓派4B红外传感器1红外传感器2红外传感器32.1.根据引脚说明和连线图连接设备步骤1:根据连线图连接线路树莓派T型转接板红外传感器1-G25OUTGNDGNDGNDVCC5VVCC树莓派T型转接板红外传感器2-G23OUTGNDGNDGNDVCC5VVCC树莓派T型转接板红外传感器2-G21OUTGNDGNDGNDVCC5VVCC图:连接图2.2.Python程序实现安检门检测步骤1:打开mu开发环境,新建Python文件(1)开启树莓派电源->打开“VNC-Viewer”软件连接树莓派->输入IP地址->用户名密码。(2)连接成功后,在点击左上方【树莓派】图标->选择【编程】->点击打开【mu】软件,如图所示:图:打开PythonIDE(3)打开“mu”软件,软件界面后如图所示:图:mu软件界面(4)单击“mu”软件界面上的按钮,新建一个名为“Security.py”的Python文件。步骤2:编写和验证代码输入代码,使用if多分支语句实现多个红外传感器的判断。#coding='utf-8'importRPi.GPIOas

GPIOimport

timeGPIO.setmode(GPIO.BCM)GPIO.setwarnings(False)GPIO.setup(25,GPIO.IN,GPIO.PUD_DOWN)#设置输入,上拉GPIO.setup(23,GPIO.IN,GPIO.PUD_DOWN)#设置输入,上拉GPIO.setup(21,GPIO.IN,GPIO.PUD_DOWN)#设置输入,上拉while

True:

#判断是否有人进入闸门范围

if(GPIO.input(25)==1):

print("进入一号闸门")

elif(GPIO.input(23)==1):

print("进入二号闸门")

elif(GPIO.input(21)==1):

print("进入三号闸门")

else:

print("无人进入闸门")

time.sleep(1)代码详解本次案例使用if多分支语句判断多个红外传感器的状态,当有一红外传感器有效时则在系统中打印该红外传感器即闸门的号码。在while循环中为了让系统可以稳定运行,所以必须在循环代码的最后加上函数实现每1秒判断一次闸门状态。time.sleep(1)技能拓展(1)如果不使用elif语句,使用if语句是否可以实现门闸检测,并在下方空白处说明有什么区别。(2)编写代码实现当红外传感器1与红外传感器2同时有效时则表示进入一号闸门,当红外传感器1、2、3三个同时有效时则表示进入二号闸门。03.Python程序实现安检门检测任务所需软件如下所示:VNC-Viewer环境准备任务所需硬件如下所示:树莓派4B红外传感器模块三色灯模块继电器模块电机模块3.1.根据引脚说明和连线图连接设备步骤1:根据连线图连接线路树莓派T型转接板红外传感器-G25OUTGNDGNDGNDVCC5VVCC树莓派T型转接板继电器模块-G18INGNDGNDDC-5V5VDC+5V5VCOM树莓派T型转接板三色灯模块-G23S-G24GGNDGNDGND图:连接图3.2.Python程序实现安检门检测步骤1:打开mu开发环境,新建Python文件(1)开启树莓派电源->打开“VNC-Viewer”软件连接树莓派->输入IP地址->用户名密码。(2)连接成功后,在点击左上方【树莓派】图标->选择【编程】->点击打开【mu】软件,如图所示:图:打开PythonIDE(3)打开“mu”软件,软件界面后如图所示:图:mu软件界面(4)单击“mu”软件界面上的按钮,新建一个名为“Security.py”的Python文件。步骤2:编写和验证代码输入代码,实现安检门的检测效果,模拟当有人进入安检门红外传感器位置时,三色红色灯亮起,位于闸门的电机将转动表示开启闸门(即继电器吸合电机转动)过5秒后关闭闸门即(继电器停止吸合电机停止转动)此时如果人退出闸门则三色灯亮起绿灯,否则将继续判断人是否通过。#coding='utf-8'importRPi.GPIOas

GPIOimport

time#定义三色灯IO口red_pin=23green_pin=24#定义继电器接口in_pin=18#定义红外传感器接口infrared_pin=25#设置IO口初始化def

init():

GPIO.setmode(GPIO.BCM)

GPIO.setwarnings(False)GPIO.setup(infrared_pin,GPIO.IN,GPIO.PUD_DOWN)#设置输入

GPIO.setup(red_pin,GPIO.OUT)

GPIO.setup(green_pin,GPIO.OUT)

GPIO.setup(in_pin,GPIO.OUT)while

True:

#调用初始化函数

init()

#判断是否有人进入闸门范围

if(GPIO.input(infrared_pin)==1):

GPIO.output(red_pin,1)#红灯亮起

GPIO.output(in_pin,1)#电机开始工作

time.sleep(5)#转动5秒

GPIO.output(in_pin,0)#电机不转

while(True):

if(GPIO.input(infrared_pin)==0):

GPIO.output(red_pin,0)#红灯灭

GPIO.output(green_pin,1)#绿灯亮起break

time.sleep(0.1)#每0.1秒判断

代码详解本次案例使用规范定义IO接口方式,每个IO口位置均使用一个变量表示。这样做的好处在于不管IO口如何变化核心代码均不做任何修改,只需改变最初始化的变量即可改变IO接口的定义,之后的代码均采用该方式编写。

01红色灯接口为red_pin

03继电器接口为in_pin

02绿色灯接口为green_pin

04红外传感器接口为infrared_pin 程序使用init()函数作为初始化IO口函数,其中GPIO模式为BCM模式。“0”红外传感器的初始化电平为低电平即0“1”当有人时为高电平即1 使用函数GPIO.setup(infrared_pin,GPIO.IN,GPIO.PUD_DOWN)程序中如果判断有人进入闸门范围即红外传感器为高电平时,执行点亮红色LED之后执行电机转动使用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论