基于Arduino的遥控PPT播放系统设计24页

上传人:文库****9 文档编号:173995892 上传时间:2021-03-15 格式:DOCX 页数:24 大小:2.25MB
返回 下载 相关 举报
基于Arduino的遥控PPT播放系统设计24页_第1页
第1页 / 共24页
基于Arduino的遥控PPT播放系统设计24页_第2页
第2页 / 共24页
基于Arduino的遥控PPT播放系统设计24页_第3页
第3页 / 共24页
基于Arduino的遥控PPT播放系统设计24页_第4页
第4页 / 共24页
基于Arduino的遥控PPT播放系统设计24页_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《基于Arduino的遥控PPT播放系统设计24页》由会员分享,可在线阅读,更多相关《基于Arduino的遥控PPT播放系统设计24页(24页珍藏版)》请在金锄头文库上搜索。

1、创新实践课程总结报告 报告名称:基于Arduino的遥控PPT播放系统设计 学 院: 信息工程与自动化学院 专 业: 物联网工程 学 号: 201310410149 学生姓名: 廖成武 指导教师: 江虹 日 期: 2016年6月17日 l 题目:基于Arduino的遥控PPT播放系统设计l 内容:一、绪论1. Arduino简介 Arduino是目前较为流行的电子互动平台,基于单片机系统开发,具有使用简单、功能多样、价格低廉等优点,广泛应用于电子系统设计和互动产品开发方面。 Arduino是2005年1月由米兰交互设计学院的两位教师David Cuartielles和Massimo Banzi

2、联合创建,是一块基于开放原始代码的Simple IO平台,该平台由两部分组成:硬件(包括微处理器、电路板等)和软件(编程接口和语言)。平台的两部分都是开源的,如果需要,可以下载Arduino的图表、购买需要的所有独立部件、切割电路板并制作一个电路板。Arduino具有类似java、C语言的开发环境。可以快速使用Ardu ino语言与Flash或Processing等软件完成互动作品。Arduino能够使用开发完成的电子元件,如Switch、Sensors或其它控制器、LED、步进电机或其它输入输出装置,同时,Arduino也可以成为独立与软件沟通的平台,如flash、Processing、Ma

3、xMSP或其它互动软件。 Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过Arduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是利用 Arduino编程语言 (基于 Wiring)和Arduino开发环境(基于 Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行的软件,他们之间进行通信 (比如 Flash,Processing, MaxMSP)来实现。Ardunio平台特点: Arduino在开发之初,就

4、明确了其应用环境,设计了开源开放的平台,便于对其进行二次开发。Arduino的主要功能特点如下: 1)开放源代码的电路图设计。程序开发接口免费下载,也可依需求自己修改。 2)使用低价格的微处理控制器(ATmega8或ATmega128)。可以采用USB接口供电,不需外接电源,也可以使用外部9VDC输入。 3)支持ISP线上烧入器,将Bootloader固件烧入芯片。Arduino控制器内带Bootloader程序,是系统上电后运行的第一段代码,就好比PC机BIOS中的程序,启动就进行自检,配置端口等等,当然,单片机是靠烧写熔丝位来设定上电从boot区启动的,使用这个程序就可以直接把从串口发来的

5、程序存放到flash区中。所以,使用Arduino编译环境下载程序时,就先让单片机复位,启动Boodoader程序引导串口发过来的程序顺利写入flash区中,flash可以重复烧写,因此想更新软件非常方便。有了Bootloader之后,可以通过串口或者USB to RS232线更新固件。 4)可依据官方提供的PCB和SCH电路图,简化Arduino模组,完成独立运作的微处理控制。 5)可简单地与传感器,各式各样的电子元件连接,如红外线、超音波、热敏电阻、光敏电阻、伺服马达等。 6)支持多样的互动程序,如Flash,MaxMSP,VVVV,PureData,C,Processin等。使用低价格的

6、微处理控制器。 7)应用方面,利用hrduino,突破以往只能使用鼠标、键盘、CCD等输入的装置的互动内容,可以更简单地达成单人或多人游戏互动。Ard uino的功能特点,使其得到了越来越广泛的应用。2. 本次实践所选项目要完成的工作 1) 根据接线图连接好板子、红外接收模块、响应模块; 2)编辑代码,对原红外遥控代码做出相关系统功能的更改; 3)编译代码,将板子和电脑连接上,下载程序进板子; 4)使用红外遥控器进行遥控,调试相应功能; 5)调试之后对代码进行相应改进,最后完成系统; 6)理解整个系统的所有代码。二、系统结构分析1.硬件基本组成控制器:ardunio开发板输入、输出:红外遥控模

7、块(VS1838B红外接收头、CARmp3遥控器、面包板、线、开发板)、响应模块(蜂鸣器、LED灯、电阻、PC) VS1838B红外接收头:VS1838B内含高速高灵敏度PIN光电二极管和低功耗、高增益前置放大IC,采用环氧树脂封装外加外屏蔽抗干挠设计,该产品已经通过REACH和SGS认证属于环保产品,在红外遥控系统中作为接收器使用。结构图:原理图:CARmp3遥控器:遥控器由红外接收及发射电路、信号调理电路、中央控制器8031.程序及数据存储器、键盘及状态指示电路组成2. 硬件连线图或硬件结构框图三、系统软件设计1.基本功能 通过红外遥控模块和响应模块对鼠标和键盘进行控制,实现遥控器控制鼠标

8、移动至一PPT文件处并点击它,进入WPS,再控制鼠标移动至播放按钮处,点击开始播放,PPT全屏后,再通过遥控器控制PPT的翻页,实现PPT的播放功能,同时串口监视器显示相应的按键信息(用户码、数据码、数据反码)。 由于系统的可靠性不是特别高,遥控器经常需要按好几次才能成功接收到信号,所以增加接收成功反馈功能,即只有在一次按键后系统成功运行后会有LED灯闪一下和蜂鸣器响一下。2.模块设计2.1红外遥控模块:(VS1838B红外接收头、CARmp3遥控器、面包板、线、开发板)2.11实现原理使用者每按下一个控制键,CPU从指定的存储单元中读取一系列的二进制数据,串行输出给信号保持电路,同时由调制电

9、路将信号调制在一个特定的载波平率上,将调制信号经放大后,由红外线发射二极管进行发射,红外接收装置滤掉其他杂波只接受该特定载波频率上的信号并将其还原成脉冲码。此时开发板端由定时器提供一个时钟频率对脉冲进行检测、解码,这里就需要了解遥控器的编码方式以及数据格式,编码方式:NEC协议遥控器发出的二进制脉冲码载波频率是38kHz,采用脉冲宽度调制,每一位的时间为1.125ms或2.25ms,逻辑1和逻辑0;一个消息是由一个9ms的高电平开始,随后有一个4.5ms的低电平,之后就是信息码了.数据格式:包括用户码、数据码和数据反码共占32位。数据反码可用于对数据的纠错。根据编码原理,系统通过remote_

10、decode(void)译码函数根据特定时间间隔的高低电平信号(9ms、4.5ms已在代码中标出)调用void pulse_deal()接收地址码和命令码脉冲函数进行解码;而pulse_deal()函数先是调用logic_value()判断逻辑值0和1子函数得到脉冲的二进制值,再将二进制数存入之前定义好的变量中;logic_value()函数则又是通过特定的高低电平时间间隔(560us、560us已在代码中标出)识别出逻辑0和1传给pulse_deal()函数。系统通过以上三个函数将系统接收到的脉冲信号进行解码得到adrL_code 、adrH_code 、ir_code 三个变量分别为用户码

11、、数据码、数据反码,再将变量传给响应模块,最终实现系统功能。2.12、关键代码void timer1_init(void)/定时器初始化函数 TCCR1A = 0X00; TCCR1B = 0X05;/给定时器时钟源/64us进行一次计数器累加TCCR1C = 0X00; TCNT1 = 0X00; TIMSK1 = 0X00; /禁止定时器溢出中断 char logic_value()/判断逻辑值“0”和“1”子函数 TCNT1 = 0X00; while(!(digitalRead(IR_IN); /低等待Pulse_Width=TCNT1; TCNT1=0; if(Pulse_Width

12、=7&Pulse_Width=7&Pulse_Width=25&Pulse_Width=27) /接着高电平1.7ms return 1; return -1; void pulse_deal()/接收地址码和命令码脉冲函数 int i; int j; ir_code=0x00;/ 清零adrL_code=0x00;/ 清零adrH_code=0x00;/ 清零/解析遥控器编码中的用户编码值for(i = 0 ; i 16; i+) if(logic_value() = 1) /是1 ir_code |= (1i);/保存键值 /解析遥控器编码中的命令码for(i = 0 ; i 8; i+) if(logic_value() = 1) /是1 adrL_code |= (1i);/保存键值 /解析遥控器编码中的命令码反码for(j = 0 ; j 8; j+) if(logic_value() = 1) /是1 adrH_code |= (1=140&Pulse_Width=68&Pulse_Width=34&Pulse_Width=36

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

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号