项目七 智能防盗门 - 任务四_第1页
项目七 智能防盗门 - 任务四_第2页
项目七 智能防盗门 - 任务四_第3页
项目七 智能防盗门 - 任务四_第4页
项目七 智能防盗门 - 任务四_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

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

项目七智能防盗门PART07※霍尔传感器选型与检测※实现霍尔智能门锁07※干簧管传感器选型与检测※实现磁簧开关智能门锁认识霍尔传感器的工作原理和检测方法01掌握Python语言中循环的使用03认识干簧管传感器的工作原理和检测方法02学习目标objective掌握集成应用多个传感器模拟智能门锁04TASKFOUR任务四实现磁簧开关智能门锁4任务要求储备知识任务实施任务目标231通过磁簧开关可以对磁场信号的有无做出反馈。在本次任务中,要求使用树莓派中的GPIO库开发应用程序,实现根据磁簧开关得到的数字量值来模拟控制智能门锁。任务要求4任务要求储备知识任务实施任务目标231TASKFOUR任务四实现磁簧开关智能门锁01.了解Python语言的break语句02.了解Python语言的continue语句任务目标03.了解Python语言的pass语句04.应用Python程序调用GPIO库函数4任务要求储备知识任务实施任务目标231TASKFOUR任务四实现磁簧开关智能门锁01.了解Python语言的break语句储备知识02.了解Python语言的continue语句03.了解Python语言的pass语句01.了解Python语言的break语句在Python语言中,break语句用于结束整个循环。下面是一个简单的循环例如foriinrange(6):print(i)上述循环语句执行后,程序会依次输出0~5的整数,除非循环结束,程序才会停止。这时,如果希望程序只输出从0~3的数字,则需要在指定时刻(执行完第4次循环语句)结束循环。接下来,演示使用break结束循环的过程,案例代码break.py如下:foriinrange(6):ifi==4:break print(i)可以看出,该案例中控制程序执行了4次循环,第5次循环时,使用if语句进行判断,若i的值为4,则使用break语句强制退出循环体,不再执行循环体中剩余的语句。执行效果如下:流程如图所示:图:break在循环体中作用示意图02.了解Python语言的continue语句在Python语言中,continue语句用于结束本次循环,跳过循环体中尚未执行的语句,接着进行终止条件的判断,以决定是否继续循环。接下来,通过案例代码continue.py演示使用continue语句的执行过程,如下:foriinrange(5):i+=1ifi==3:continue print(i)执行效果如下:将i+1赋值给i图:continue在循环体中作用示意图在案例中,使用了for-in语句控制程序执行5次循环。在for-in语句中——continue语句在循环体中的作用如流程图所示:使用if语句进行判断若i的值为3,则终止本次循环,进入下一次循环。满足条件则继续输出i的值直到结束。03.了解Python语言的pass语句Python中的pass是空语句,它的出现是为了保持程序结构的完整性。pass不做任何事情,一般用作占位语句。pass语句的使用如案例pass.py所示:forletterin'Runtest':ifletter=='t':passprint('执行pass块')print('当前字母:',letter)else:print('GoodBye!')执行效果如下:当程序执行pass语句时,由于pass是空语句,程序会忽视该语句,按顺序执行其它语句。当for循环结束,执行else语句里的print,打印输出“GoodBye!”。在案例中思考练习(1)简述break和continue的区别。(2)使用for循环计算100以内的奇数之和。4任务要求储备知识任务实施任务目标231TASKFOUR任务四实现磁簧开关智能门锁04.Python程序实现磁簧开关智能门锁任务实施04.Python程序实现磁簧开关智能门锁任务所需软件如下所示:环境准备任务所需硬件如下所示:VNC-Viewer三色灯模块树莓派4B干簧管模块有源蜂鸣器4.1.模拟场景描述本案例实验能够模拟智能门锁的防盗功能,利用干簧管传感器感应磁场的特点,假设磁场是带有磁性的房卡,根据磁场的有无,给蜂鸣器发送信号,进而控制蜂鸣器的发声,模拟智能门锁的警报功能。4.2.根据引脚说明和连线图连接设备有源蜂鸣器T型转接板干簧管传感器三色灯VCC5VVCC*GNDGNDGNDGNDSignalG17***G18DO**G23*G*G24*R图:连接图4.3.Python程序实现智能门锁防盗步骤1:打开mu开发环境,新建Python文件(1)开启树莓派电源->打开“VNC-Viewer”软件连接树莓派->输入IP地址->用户名密码。(2)连接成功后,在点击左上方【树莓派】图标->选择【编程】->点击打开【mu】软件,如图所示:图:打开PythonIDE(3)打开“mu”软件,软件界面后如图所示:图:mu软件界面(4)单击“mu”软件界面上的按钮,新建一个名为“HallCheck.py”的Python文件,保存在“/home/pi/mu_code”目录下。步骤2:编写和验证代码输入代码,实现读取干簧管传感器的DO口的数字量信号,当读到磁场存在时,向蜂鸣器和三色灯发送信号,要求控制发声和绿灯闪烁的频率,当读到磁场不存在时,控制红灯常量。importRPi.GPIOasGPIOimporttimeiOpen=0#GPIO初始化def

InitGPIO():GPIO.setmode(GPIO.BCM)

#管脚映射,采用BCM编码GPIO.setwarnings(False)#关闭GPIO警告提示GPIO.setup(18,GPIO.IN)

#设置BCM编号为18的引脚为信号输入GPIO.setup(17,GPIO.OUT)#设置BCM编号为17的引脚为蜂鸣器信号输出GPIO.setup(23,GPIO.OUT)#设置BCM编号为23的引脚为绿灯信号输出GPIO.setup(24,GPIO.OUT)#设置BCM编号为24的引脚为红灯信号输出

#设置信号输出口17、23、24初始值为低电平GPIO.output(17,GPIO.LOW)GPIO.output(23,GPIO.LOW)GPIO.output(24,GPIO.LOW)def

Open():

globaliOpeniOpen=1

ifiOpen:

foriin

range(0,3):GPIO.output(23,GPIO.HIGH)#绿灯亮起GPIO.output(17,GPIO.HIGH)#蜂鸣器发声time.sleep(0.5)GPIO.output(23,GPIO.LOW)#绿灯熄灭GPIO.output(17,GPIO.LOW)#蜂鸣器停止发声time.sleep(0.5)

else:iOpen=0def

Close():GPIO.output(24,GPIO.HIGH)#红灯常亮InitGPIO()while

True:signal=GPIO.input(18)

print(signal)

ifsignal:Open()

else:Close()time.sleep(1)代码详解(1)本案例代码使用了模块化编程思维,即将不同的功能归纳为函数的集合,如InitGPIO()实现对各输入输出口的初始化,Open()实现磁场存在的时候的信号处理,而Close()实现磁场消失的时候的信号处理。(2)在Open()函数中,表示允许在函数内对全局变量iOpen进行修改的声明,这个也是Python语言不同于其他编程语言的处理方法。通过for循环实现绿灯闪烁3次,蜂鸣器也发声3次,且频率间隔0.5秒,在循环结束后再去执行else后面的语句。这里iOpen变量的作用是实现在磁场存

温馨提示

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

评论

0/150

提交评论