基于Arduino的遥控PPT播放系统设计-物联网工程创新设计报告.docx

上传人:龙*** 文档编号:1023885 上传时间:2018-11-19 格式:DOCX 页数:24 大小:2.25MB
下载 相关 举报
基于Arduino的遥控PPT播放系统设计-物联网工程创新设计报告.docx_第1页
第1页 / 共24页
基于Arduino的遥控PPT播放系统设计-物联网工程创新设计报告.docx_第2页
第2页 / 共24页
基于Arduino的遥控PPT播放系统设计-物联网工程创新设计报告.docx_第3页
第3页 / 共24页
基于Arduino的遥控PPT播放系统设计-物联网工程创新设计报告.docx_第4页
第4页 / 共24页
基于Arduino的遥控PPT播放系统设计-物联网工程创新设计报告.docx_第5页
第5页 / 共24页
点击查看更多>>
资源描述

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

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

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

4、rocessing, MaxMSP)来实现。Ardunio 平台特点:Arduino 在开发之初,就明确了其应用环境,设计了开源开放的平台,便于对其进行二次开发。Arduino 的主要功能特点如下:1)开放源代码的电路图设计。程序开发接口免费下载,也可依需求自己修改。2)使用低价格的微处理控制器(ATmega8 或 ATmega128)。可以采用 USB 接口供电,不需外接电源,也可以使用外部 9VDC 输入。3)支持 ISP 线上烧入器,将 Bootloader 固件烧入芯片。Arduino 控制器内带 Bootloader 程序,是系统上电后运行的第一段代码,就好比 PC 机 BIOS 中

5、的程序,启动就进行自检,配置端口等等,当然,单片机是靠烧写熔丝位来设定上电从 boot 区启动的,使用这个程序就可以直接把从串口发来的程序存放到flash 区中。所以,使用 Arduino 编译环境下载程序时,就先让单片机复位,启动 Boodoader 程序引导串口发过来的程序顺利写入 flash 区中,flash 可以重复烧写,因此想更新软件非常方便。有了 Bootloader 之后,可以通过串口或者 USB to RS232 线更新固件。4)可依据官方提供的 PCB 和 SCH 电路图,简化 Arduino 模组,完成独立运作的微处理控制。5)可简单地与传感器,各式各样的电子元件连接,如红

6、外线、超音波、热敏电阻、光敏电阻、伺服马达等。6)支持多样的互动程序,如Flash,MaxMSP,VVVV,PureData,C,Processin 等。使用低价格的微处理控制器。7)应用方面,利用 hrduino,突破以往只能使用鼠标、键盘、CCD 等输入的装置的互动内容,可以更简单地达成单人或多人游戏互动。Ard uino 的功能特点,使其得到了越来越广泛的应用。2. 本次实践所选项目要完成的工作1) 根据接线图连接好板子、红外接收模块、响应模块;2)编辑代码,对原红外遥控代码做出相关系统功能的更改;3)编译代码,将板子和电脑连接上,下载程序进板子;4)使用红外遥控器进行遥控,调试相应功能

7、;5)调试之后对代码进行相应改进,最后完成系统;6)理解整个系统的所有代码。二、系统结构分析1.硬件基本组成控制器:ardunio 开发板输入、输出:红外遥控模块(VS1838B 红外接收头、CARmp3遥控器、面包板、线、开发板)、响应模块(蜂鸣器、LED 灯、电阻、PC)VS1838B 红外接收头:VS1838B 内含高速高灵敏度 PIN 光电二极管和低功耗、高增益前置放大 IC,采用环氧树脂封装外加外屏蔽抗干挠设计,该产品已经通过 REACH 和 SGS 认证属于环保产品,在红外遥控系统中作为接收器使用。结构图:原理图:CARmp3 遥控器:遥控器由红外接收及发射电路、信号调理电路、中央

8、控制器 8031.程序及数据 存储器、键盘及状态指示电路组成2.硬件连线图或硬件结构框图三、系统软件设计1.基本功能通过红外遥控模块和响应模块对鼠标和键盘进行控制,实现遥控器控制鼠标移动至一 PPT 文件处并点击它,进入 WPS,再控制鼠标移动至播放按钮处,点击开始播放,PPT 全屏后,再通过遥控器控制 PPT 的翻页,实现 PPT 的播放功能,同时串口监视器显示相应的按键信息(用户码、数据码、数据反码)。由于系统的可靠性不是特别高,遥控器经常需要按好几次才能成功接收到信号,所以增加接收成功反馈功能,即只有在一次按键后系统成功运行后会有 LED 灯闪一下和蜂鸣器响一下。2.模块设计2.1 红外

9、遥控模块:(VS1838B 红外接收头、CARmp3 遥控器、面包板、线、开发板)2.11 实现原理使用者每按下一个控制键,CPU 从指定的存储单元中读取一系列的二进制数据,串行输出给信号保持电路,同时由调制电路将信号调制在一个特定的载波平率上,将调制信号经放大后,由红外线发射二极管进行发射,红外接收装置滤掉其他杂波只接受该特定载波频率上的信号并将其还原成脉冲码。此时开发板端由定时器提供一个时钟频率对脉冲进行检测、解码,这里就需要了解遥控器的编码方式以及数据格式,编码方式:NEC 协议遥控器发出的二进制脉冲码载波频率是 38kHz,采用脉冲宽度调制,每一位的时间为 1.125ms 或 2.25

10、ms ,逻辑 1 和逻辑 0;一个消息是由一个 9ms 的高电平开始,随后有一个 4.5ms 的低电平,之后就是信息码了.数据格式:包括用户码、数据码和数据反码共占 32 位。数据反码可用于对数据的纠错。根据编码原理,系统通过 remote_decode(void)译码函数根据特定时间间隔的高低电平信号(9ms、4.5ms 已在代码中标出)调用 void pulse_deal()接收地址码和命令码脉冲函数进行解码;而 pulse_deal()函数先是调用 logic_value()判断逻辑值 0 和 1 子函数得到脉冲的二进制值,再将二进制数存入之前定义好的变量中;logic_value()函

11、数则又是通过特定的高低电平时间间隔(560us、560us 已在代码中标出)识别出逻辑 0 和 1 传给 pulse_deal()函数。系统通过以上三个函数将系统接收到的脉冲信号进行解码得到 adrL_code 、adrH_code 、ir_code 三个变量分别为用户码、数据码、数据反码,再将变量传给响应模块,最终实现系统功能。2.12、关键代码void timer1_init(void)/定时器初始化函数 TCCR1A = 0X00; TCCR1B = 0X05;/给定时器时钟源 /64us 进行一次计数器累加TCCR1C = 0X00; TCNT1 = 0X00; TIMSK1 = 0X

12、00; /禁止定时器溢出中断 char logic_value()/判断逻辑值“0”和“1”子函数 TCNT1 = 0X00; while(!(digitalRead(IR_IN); /低等待Pulse_Width=TCNT1; TCNT1=0; if(Pulse_Width=7 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 |= (1j);/保存键值

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

当前位置:首页 > 重点行业资料库 > 文艺体娱

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。