




免费预览已结束,剩余2页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
成绩: 教师: 课程名称:嵌入式Windows程序开发实验名称:实验12-PIR传感器和语音识别实验专业班级: 姓名: 学号: 实验日期: 一、实验目的:(1)熟悉人体红外传感器、语音识别和文本转语音(TTS)。(2)掌握在Windows 10 IoT Core中使用GPIO读取人体红外传感器输出的方法。(3)掌握在Windows 10 IoT Core中使用SpeechRecognition和SpeechSynthesis进行语音识别和语音合成的方法。二、实验内容:(1)将人体红外传感器PIR、LED灯分别连接到树莓派的GPIO5和GPIO6,运行程序12-1后,先点击初始化PIR按钮,若附近有人活动时,即程序检测到上升沿,指示的LED灯亮;没有人活动时,即程序检测到下降沿,LED灯熄灭,与应用程序界面上的状态同步。如下图所示。在实验12-1的基础上,使用树莓派、人体红外传感器PIR、LED灯、电阻、面包板和跳线,实现Security Camera。即检测到附近有人活动时,程序自动拍照,存储到本地。(2)使用树莓派(IoT Core系统烧写版本为14986)、USB声卡、耳机、麦克风、LED灯、电阻、面包板和跳线,实现本地的语音合成和语音识别,从而达到控制LED灯的目的。程序12-2给出了语音控制一个LED的场景,即使用语音turn on bedroom led或者turn off bedroom led来控制GPIO5引脚连接的LED灯。同时,可以在Visual Studio的Output窗口看到语音识别的实时结果。如下图所示。用户可以在应用程序界面输入文字,点击按钮,可以让系统读出该内容,如下图所示。请在此基础上,添加LED灯,修改语音定义文件和程序,从而达到控制两个不同的LED的功能。三、实验结果(注意:所有截图需要加注自己的姓名+学号水印):1. 利用Fritzing软件画出硬件连接图,给出实验内容1对应的所有关键代码,给出测试结果和说明,附调试截图。硬件连接图:硬件连接图如左图所示,将led连接在GPIO5上,将pri的数据输出接口接在GPIO18上关键代码:private void PinPIR_ValueChanged(GpioPin sender, GpioPinValueChangedEventArgs e) / toggle the state of the LED every time the button is pressed if (e.Edge = GpioPinEdge.RisingEdge) ledPin.Write(GpioPinValue.Low); if (e.Edge = GpioPinEdge.FallingEdge) ledPin.Write(GpioPinValue.High); var task = Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () = if (e.Edge = GpioPinEdge.FallingEdge) ledEllipse.Fill = grayBrush; GpioStatus.Text = PIR FallingEdge; if (e.Edge = GpioPinEdge.RisingEdge) ledEllipse.Fill = redBrush; GpioStatus.Text = PIR RisingEdge; takePhoto_Click(takePhoto, new RateChangedRoutedEventArgs(); ); 如上面的代码所示在原来的代码段中调用takePhoto_Click(takePhoto, new RateChangedRoutedEventArgs();函数,在主页面的圆点控制的代码中添加调用拍照功能的代码。当人体红外传感器检测到时输出高电平,GPIO口接受到后检测到上升沿便会进行拍照并且点亮led实验结果:实验结果如图所示,当红外设备检测到有人时就会进行拍照,并且将照片进行保存,于此同时,照片展示框下的指示点便会由灰色变为红色以指示检测到红外信息,同时连接在树莓派GPIO上的led小灯点亮。没有检测到红外信息时,便不会拍照。也不会执行任何操作。2. 利用Fritzing软件画出硬件连接图,给出实验内容2对应的所有关键代码,给出测试结果和说明,附调试截图。硬件连接图:如右图所示,在此次的试验中需要用到两个GPIO引脚,分别为GPOI6和GPIO12。关键代码: private async void LightControl(string command, string target) if (target = Bedroom) /= if (command = ON) if (BedRoomLED_GpioPin != null) await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () = bedRoomTimer.Start(); ); else if (command = OFF) await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () = bedRoomTimer.Stop(); if (BedRoomLED_GpioPinValue = GpioPinValue.Low) BedRoomLED_GpioPinValue = GpioPinValue.High; BedRoomLED_GpioPin.Write(BedRoomLED_GpioPinValue); /LED.Fill = redBrush; ); /= else if (target = kitchen) /= if (command = ON) if (kITCHENLED_GpioPin != null) await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () = kITCHENTimer.Start(); ); else if (command = OFF) await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () = kITCHENTimer.Stop(); if (kITCHENLED_GpioPinValue = GpioPinValue.Low) kITCHENLED_GpioPinValue = GpioPinValue.High; kITCHENLED_GpioPin.Write(kITCHENLED_GpioPinValue); /LED.Fill = redBrush; ); /= SaySomthing($target light, command); private void InitBedRoomGPIO() var gpio = GpioController.GetDefault(); / Show an error if there is no GPIO controller if (gpio = null) BedRoomLED_GpioPin = null; /GpioStatus.Text = There is no GPIO controller on this device.; return; BedRoomLED_GpioPin = gpio.OpenPin(BedRoomLED_PINNumber); BedRoomLED_GpioPinValue = GpioPinValue.High; BedRoomLED_GpioPin.Write(BedRoomLED_GpioPinValue); BedRoomLED_GpioPin.SetDriveMode(GpioPinDriveMode.Output); /GpioStatus.Text = GPIO pin initialized correctly.; private void InitKITCHENGPIO() var gpio = GpioController.GetDefault(); / Show an error if there is no GPIO controller if (gpio = null) kITCHENLED_GpioPin = null; /GpioStatus.Text = There is no GPIO controller on this device.; return; 实验结果:当语音输入“hi jack”时便会启动程序,程序会返回“hi jack what can I do for you”。然后便可以进行命令输入。当语音输入“turn o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年钢铁冶金工程师考试试题及答案
- 初中道德与法治统编版 七年级上册 3.1 做有梦想的少年 教学课件+内嵌视频
- 2025年人力资源开发与助力企业转型考试试卷及答案
- 2025届湖北省襄阳市襄阳五中学实验中学英语八年级第二学期期末复习检测试题含答案
- 血液净化护理查房
- 世界读书日少先队主题活动方案
- 2025年创新与创意产业工作者考试试题及答案
- 贵州省黔南长顺县2025年英语七下期末学业质量监测试题含答案
- 2025年测绘工程专业考试试题及答案
- 绿化公司员工培训
- 2023-2024学年年北京市怀柔区八年级初二(下)期末道德与法治试卷(含答案)
- 2024年广西中考地理+生物试题
- 体育指导员协会筹备
- MOOC 光纤通信-南京邮电大学 中国大学慕课答案
- 军事学:国际战略环境必看考点四
- (高清版)DZT 0212.4-2020 矿产地质勘查规范 盐类 第4部分:深藏卤水盐类
- 粉尘防爆安全操作规程范文
- 《快速原型制造》课件
- 监理抽检表 - 06防护支挡工程
- 南邮组织行为学期末复习题
- 农村医生个人工作简历表
评论
0/150
提交评论