




已阅读5页,还剩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地产项目合作开发与绿色建筑技术应用合同
- 2025年度汽车租赁合同细则-含新能源汽车充电支持
- 2025版实习保密协议书及数据保密条款
- 2025年度新能源电池产品全国代理商合作协议
- 2025年酒店餐厅桌椅升级改造采购合同示范
- 2025年智慧城市照明系统电工施工劳务分包合同
- 海南省乐东黎族自治县2025年上半年事业单位公开遴选试题含答案分析
- 2025版石材地质勘探与矿山开采合作协议
- 2025年度多金融机构联合贷款合同
- 2025年高端别墅及私人住宅保洁服务承包合同
- 中国工笔花鸟画技法课件
- 正面吊安全管理制度
- 台球俱乐部工作管理制度
- 肉毒素中毒的治疗讲课件
- 中医辨证施护课件
- 学校十五五规划(同名11527)
- 高中心理健康测试题及答案大全
- 小学二年级上册《健康成长》全册教学设计
- 蓝色简约风医学生职业生涯规划展示模板
- 土建安全员c类考试试题及答案
- T/SHPTA 031-2022电缆和光缆用复合防护尼龙12护套料
评论
0/150
提交评论