ImageVerifierCode 换一换
格式:DOCX , 页数:47 ,大小:480.37KB ,
资源ID:16477933      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16477933.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(WIFI遥控小车论文报告Word下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

WIFI遥控小车论文报告Word下载.docx

1、附录5 手机端软件源代码-27引言: 智能手机现在已经全方位的进入了我们的生活,说到智能手机不得不提及他们操作系统的龙头的Android。由于安卓操作系统的实际性和可操作性使得安卓迅速成为现在主流操作系统的原因,此外安卓的最大优点是开源,这样对于安卓软件的开发就没有了限制,使得用户可以用到广泛的免费软件,这样安卓软件的开发就有了空前的市场,安卓开发迎来了一轮热潮。因为系统的开源性与可操作性,同时系统的流畅性以及大量的亲民化的可选择的设备,使得安卓系统在智能手机市场上占了头把交椅。根据市场研究机构ComScore发布的最新调查显示,Android智能手机在美国的优势进一步扩大,市场份额达到43.

2、7%,因此我们小组的基于安卓手机wifi技术的遥控小车有着广大的潜在用户,2011年11月数据,Android占据中国智能手机操作系统市场58%,其应用领域和市场份额也在急速向平板电脑、消费电子、智能家电领域扩张。目前基于Android手机和WIFI技术开发的娱乐软件较多,而控制机电产品的软件和专利相对较少。我们小组设计的“基于手机WIFI技术的遥控小车”将是以手机作为手持终端,通过WIFI传输指令的新型玩具小车,由于遥控器是手机,因此携带极其方便。基于WIFI的控制系统不仅可以控制小车,稍做改动就可用来控制电脑、家用电器甚至探测、排爆机器人等,同时也可用于地质检测设备的手持终端。因此,该项目

3、的成果将不仅仅局限于一个遥控小车,更具有价值的是手机远程控制系统。1 设计任务及要求1.1 设计任务与设计要求 本课题要求利用基于Android(安卓)手机系统开发一个控制软件,该软件将实现用WIFI技术对玩具小车进行遥控控制,包括小车前进、后退、转弯等功能。(1)实现手机与小车WIFI连接;(2)能够通过手机对小车进行实时控制。1.2 设计时要考虑的问题a、由于该课题的小车端是通过单片机串口通信接收收手机是控制指令,因此需要对单片机定时器初值进行设置,若采用常用12M晶振,初值不一定是整数,通信时便会产生积累误差,进而产生波特率误差,影响通信的同步性。采用11.0592M晶振可以得到非常准确

4、的数值,因此在制作过程中最好采用11.0592M或其整数倍的晶振。 我们采用的波特率为4800。b、小车电机启动时电流较大,可能会将电源的电压瞬间拉低,导致单片机和路由器不能正常工作,因此必须设计一个可靠的供电系统。c、由于Android系统所有源代码都已公开并且可以免费使用,各手机公司在开发自己产品时可以随意改动代码,进而在市场上出现了所谓的“基于Android的改良系统”手机,这些手机对安卓手机软件兼容性有所差异,因此必须选择“安卓原版”的手机开发软件,我们采用了“安卓4.0”版本的操作系统。d、由于单片机IO口电流为mA级,无法直接驱动电机,必须设计专门的电机驱动模块。2 系统总体设计2

5、.1 方案论证要实现手机通过WIFI控制小车,有两种方案可以实现:方案一:通过SIM卡来实现。系统框图如下图所示: 转化为串口指令方案二:通过小型路由器来实现。该方案是在小车端安装一个小型路由器,是小车周围一定范围具有WIFI覆盖,然后将手机连接到路由器IP地址,对其发送指令,路由器接收指令后对单片机串口发送数据指令,实现控制。系统框图如下:通过比较以上两种方案。方案一虽然可以实现小车超远程控制,但开发成本较高,相对于大一学生来说技术难度较大,而且控制过程要消耗上网流量。而方案二则相对简单,开发难度较低,适合制作玩具小车,因此我们选择了方案二。2.2 总体设计框图 遥控小车系统总框图如下所示

6、串口通信3 系统硬件设计系统的硬件框图如图所示,包括六个部分组成。下面将分别介绍该六个单元。3.1 手机端设计3.1.1手机选择由于安卓系统的极速发展,现在安卓智能机的价格已经能降到600元以下,基于安卓的应用软件层出不穷。由于安卓系统所有源代码都已公开并且可以免费使用,各手机公司在开发自己产品时可以随意改动代码,进而在市场上出现了所谓的“基于Android的改良系统”手机,源代码的改动会影响手机对安卓软件的兼容性,增大开发难度,因此必须选择“安卓原版”的手机开发软件,我们采用了“安卓2.3.3”版本的操作系统。3.1.2手机端软件开发环境Google公司提供的Android SDK中包括模拟

7、硬件设备的Emulator,资源打包工具,调试监视服务,DX工具等。Android应用程序使用Java语言编写,而使用Java必须有JDK,需要下载和安装JDK,如IBM公司的Eclipse平台。可以使用AVD在电脑上模拟一个虚拟的真实设备,可以由用户自己配置硬件配置,版本的选择,设备的屏幕尺寸大小等。通过Eclipse插件ADT便可以方便的创建一个Android应用。3.2小型路由器选择目前,专门用于制作WIFI小车的小型无线路由器可以再淘宝网上买到,已经刷有OP系统,安装好摄像头的驱动程序,安装路由与单片机通信的数据包,同时还带有上位机调试软件。此外还带有相应的开发例程,方便用户使用,使用

8、时只要参考他的例程编写单片机程序即可。3.3 单片机电路3.3.1单片机选择在这里,单片机要实现对电机驱动模块的控制,同时还要有路由器进行串口通信,为了能够控制电机转速,可以使用单片机的定时器来实现,利用单片机定时器功能控制IO口产生PWM波,通过调节占空比里调节电机转速。考虑到单片机要实现以上功能,选择使用STC89C52来构成电路。STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8

9、k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。此外,STC89C52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RA

10、M定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。该单片机主要特性: 8031 CPU与MCS-51 兼容 8K字节可编程FLASH存储器(寿命:1000写/擦循环) 全静态工作:0Hz-24KHz 三级程序存储器保密锁定 128*8位内部RAM 32条可编程I/O线 两个16位定时器/计数器 6个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路单片机TXRX与路由器相连,P1.0P1.5与电机驱动模块相连。单片机的P3

11、.4,P3.5口接到液晶屏的控制端,P1口接到液晶屏数据口。设置定时/计数器0工作方式为16位计数器,并对中断做出定义。其电路如下所示:3.3.2晶振选择由于该课题的小车端是通过单片机串口通信接收收手机是控制指令,因此需要对单片机定时器初值进行设置,若采用常用12M晶振,初值不一定是整数,通信时便会产生积累误差,进而产生波特率误差,影响通信的同步性。3.3.3软件设计 单片机应用系统设计与一般电子系统设计的差别在于,它既要构成硬件逻辑电路,也要设计相应的支持软件。Keil C51是美国Keil Software 公司出品的51系列兼容单片机C语言软件开发系统,该系统全WINDOWS界面且库函数

12、丰富,调试功能强大、生成代码率很高。 本程序的主要思路是,利用单片机的计数器计时,控制IO口产生PWM波用于控制电机转速。利用P0口控制1602液晶显示。其控制流程大致如下如所示:否 是 否3.4 显示系统显示系统既可以选择使用LED,也可以选择使用LCD。就本系统的功能来说,使用LED已经可以实现功能,不过考虑到使用LCD,可以输出英文字符,从而使得显示系统能够更加美观,同时也能更好的达到提高自己的目的,所以最后选择使用液晶屏LCD。由于本次设计所要显示的内容不多,并不需要太大的液晶屏来显示。所以选择使用1602来进行显示。1602液晶每次可以显示2行16个字符,总共32个字符,而且可以显示

13、所有的ASCII码,包括标点,数字,英文大小写等,因此,使用该液晶屏可以很好的实现显示功能。1602显示屏的主要技术指标如表3.4所示。表3.4 1602液晶显示屏的主要技术指标LCD1620显示容量:16X2个字符芯片工作电压:4.5-5.5V工作电流:2.0mA(5V)最佳工作电压:5V字符尺寸:2.95X4.35(WXH)mm1602液晶显示屏共有16个引脚,其各个引脚的功能如下表,表3.5中所示。表3.5 1602液晶显示屏的各个引脚功能编号符号引脚说明1VSS电源地9D2DATAI/O2VDD电源正极10D33VL液晶显示偏压信号11D44RS数据命令选择端(H/L)12D55R/W

14、读写数据端(H/L)13D66E使能信号14D77D015BLA背光源正极8D116BLK背光源负极使用1602,所设计的显示电路部分如下图所示:3.5电机驱动模块 由于小车底盘电机额定电压为12V,度电机驱动模块选择了常用12V电机驱动芯片L298N。L298N恒压恒流桥式2A驱动芯片,L298N可接受标准TTL逻辑电平信号VSS,VSS可接457 V电压。4脚VS接电源电压,VS电压范围VIH为2546 V。输出电流可达25 A,可驱动电感性负载。1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间

15、可分别接电动。3.6 电机12V 138rpm直流电机3.7电源设计 小车电机启动时电流较大,可能会将电源的电压瞬间拉低,导致单片机和路由器不能正常工作,因此必须设计一个可靠的供电系统。解决该问题常用以下三种方法:1)、选用性能更好的的电源:2)、采用独立电源供电,即使用两个电源分别给单片机和电机供电;3)、在电源附近并联一个较大值的电容,当电机启动时,电流较大,电容中的电可以补偿一部分电流,保证电压不至于太低。以上三种方案中,方案1)成本过高,方案2)电路繁琐,均不适合小型设备的应用,所以我们选择了方案3)。4 结束语该项目的独特创新之处在于小车的控制是通过手机来实现,而不是遥控手柄或电脑,

16、从而使用更加方便,实现用WIFI技术对玩具小车进行遥控控制,包括小车前进、后退、转弯等功能。该项目开发的Android软件和基于WIFI的控制系统不仅可以控制小车,稍做改动就可用来控制电脑、家用电器甚至探测、排爆机器人等,同时也可用于地质检测设备的手持终端。如今国外的几家公司推出了基于苹果手机控制航模和玩具赛车的产品。 2011年11月数据,Android占据中国智能手机操作系统市场58%,其应用领域和市场份额也在急速向平板电脑、消费电子、智能家电领域扩张。WIFI具有较强的数据传输能力,普通智能手机完全能达到1M/S以上的速度。因此,今后在此方面的的研究一定会大大增加,具有很好的实用价值。参

17、考文献1.郭天祥 51单片机c语言教程 2009.12.张勇 夏家莉等人 Goolge Android开发技术 2011.103郭宏志 Android应用开发详解 2011.84(美)昊斯特曼 著,叶乃文,邝劲筠,杜永萍译 java核心技术卷1-基础知识 2008.6 附 录附录1 部分电路原理图 1602液晶显示 单片机最想系统 电机驱动模块 电源模块附录2 液晶驱动程序#define uchar unsigned char#define uint unsigned intsbit lcden=P34;sbit lcdrs=P35;sbit wela=P27;sbit dula=P26;ui

18、nt num;uchar code table1=I AM WIFI CAR;uchar code table2=RX 00 00 0void init();void delay(z);void write_com(com);void write_date(date);void write_com(uchar com) lcdrs=0; P0=com; delay(5); lcden=1; lcden=0;void lcd_init() char num; wela=0; dula=0; write_com(0x38); write_com(0x0e); write_com(0x06); wr

19、ite_com(0x01); write_com(0x80); for(num=0;num0;x-) for(y=110;yy-);void print(uchar add,uchar date) write_com(0x80+0x40+add); write_date(date); 附录3 电机驱动程序/* L298N */sbit LEFT_IN1 = P13; /左边电机sbit LEFT_EN = P14;sbit LEFT_IN2 = P15; sbit RIGHT_IN1 = P10; /右边电机sbit RIGHT_EN = P11;sbit RIGHT_IN2 = P12;/*

20、PWM定义产生*/#define PWM_PERIOD 100uchar PWM_COUNTER = 0; /pwm产生周期 100*100usuchar LEFT_PWM_DUTY = 50; /左边电机占空比uchar RIGHT_PWM_DUTY = 50; /右边电机占空比/*延时 10us 级*/void Delay_10Us(uint us) while( us- );/*延时 ms 级*/void DelayMs(uint ms) unsigned int i,j; for( i = 0; i 0; j -);/* 内部资源初始化*/void motor_init() TMOD

21、= 0x22; /设定T1的工作模式为1:16bit计数模式,设定T0的工作模式为2:8bit重装初值模式 TH0 = 0x9c; /100us定时 28-100=156=9cH TL0 = 0x9c; IP = 0x03; / 中断优先级:定时器0,外部中断0优先 EA = 1; / 开总中断 EX1 = 1; / 打开外部中断1 ET0 = 1; / 定时器0允许中断 TR0 = 1; / 启动定时器0 /*定时器0中断服务函数*函数功能: 输出PWM波*/void Timer0(void) interrupt 1 PWM_COUNTER +; if(PWM_COUNTER LEFT_PWM_DUTY) LEFT_EN = 0; RIGHT_PWM_DUTY) RIGHT_EN = 0; else PWM_COUNTER = 0; LEFT_EN = 1; RIGHT_EN = 1;/*前进*/void GoHead(uchar speed_left,uchar speed_right) LEFT_IN1 = 1; LEFT_IN2 = 0; RIGHT_IN1 = 1; RIGHT_IN2 = 0; LEFT_PWM_DUTY = speed_left; RIGHT_PWM_DUTY = speed_right;/走直线占空比校正

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1