树莓派实验报告(共7页).docx

上传人:飞****2 文档编号:13562252 上传时间:2022-04-30 格式:DOCX 页数:7 大小:922.47KB
返回 下载 相关 举报
树莓派实验报告(共7页).docx_第1页
第1页 / 共7页
树莓派实验报告(共7页).docx_第2页
第2页 / 共7页
点击查看更多>>
资源描述

《树莓派实验报告(共7页).docx》由会员分享,可在线阅读,更多相关《树莓派实验报告(共7页).docx(7页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、精选优质文档-倾情为你奉上成绩: 教师: 课程名称:嵌入式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后,先

2、点击初始化PIR按钮,若附近有人活动时,即程序检测到上升沿,指示的LED灯亮;没有人活动时,即程序检测到下降沿,LED灯熄灭,与应用程序界面上的状态同步。如下图所示。在实验12-1的基础上,使用树莓派、人体红外传感器PIR、LED灯、电阻、面包板和跳线,实现Security Camera。即检测到附近有人活动时,程序自动拍照,存储到本地。(2)使用树莓派(IoT Core系统烧写版本为14986)、USB声卡、耳机、麦克风、LED灯、电阻、面包板和跳线,实现本地的语音合成和语音识别,从而达到控制LED灯的目的。程序12-2给出了语音控制一个LED的场景,即使用语音turn on bedroom

3、 led或者turn off bedroom led来控制GPIO5引脚连接的LED灯。同时,可以在Visual Studio的Output窗口看到语音识别的实时结果。如下图所示。用户可以在应用程序界面输入文字,点击按钮,可以让系统读出该内容,如下图所示。请在此基础上,添加LED灯,修改语音定义文件和程序,从而达到控制两个不同的LED的功能。三、实验结果(注意:所有截图需要加注自己的姓名+学号水印):1. 利用Fritzing软件画出硬件连接图,给出实验内容1对应的所有关键代码,给出测试结果和说明,附调试截图。硬件连接图:硬件连接图如左图所示,将led连接在GPIO5上,将pri的数据输出接口

4、接在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); va

5、r 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 Rat

6、eChangedRoutedEventArgs(); ); 如上面的代码所示在原来的代码段中调用takePhoto_Click(takePhoto, new RateChangedRoutedEventArgs();函数,在主页面的圆点控制的代码中添加调用拍照功能的代码。当人体红外传感器检测到时输出高电平,GPIO口接受到后检测到上升沿便会进行拍照并且点亮led实验结果:实验结果如图所示,当红外设备检测到有人时就会进行拍照,并且将照片进行保存,于此同时,照片展示框下的指示点便会由灰色变为红色以指示检测到红外信息,同时连接在树莓派GPIO上的led小灯点亮。没有检测到红外信息时,便不会拍照。也不

7、会执行任何操作。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.CoreAppl

8、ication.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, () = bedRoom

9、Timer.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.Cor

10、e.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, ()

11、 = 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

12、(); / 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(BedRoo

13、mLED_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; /GpioSta

14、tus.Text = There is no GPIO controller on this device.; return; 实验结果:当语音输入“hi jack”时便会启动程序,程序会返回“hi jack what can I do for you”。然后便可以进行命令输入。当语音输入“turn on the ”便可以进行用语音输入控制小灯的亮灭。实验结果如左图所示,当声音输入开灯的命令之后便会将灯打开途中两个灯分别代表卧室和厨房的灯,从中可以看出实验成功将两个地方的灯分别点亮。四、实验总结(请列出实验过程中遇到的问题和解决方法):由于此次的实验比较简单基本上没有遇到什么很难的问题,主要出现的问题还是之前出现过的那些,由于takephoto_Click为前台的事件,因此需要将该调用放入UI更改程序中否则无法成功。专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com