嵌入式课程设计蓝牙无线数据传输.docx
- 文档编号:23901051
- 上传时间:2023-05-22
- 格式:DOCX
- 页数:20
- 大小:569.47KB
嵌入式课程设计蓝牙无线数据传输.docx
《嵌入式课程设计蓝牙无线数据传输.docx》由会员分享,可在线阅读,更多相关《嵌入式课程设计蓝牙无线数据传输.docx(20页珍藏版)》请在冰豆网上搜索。
嵌入式课程设计蓝牙无线数据传输
*
课程设计书
—《嵌入式系统实训》
·
学院
姓名
学号
组别
、
1设计概述
能源是经济发展和社会进步的支柱,能源问题成为当今世界各国尤其是发达国家所要解决的头等大事。
世界各国都在鼓励大力开发可再生能源。
风能和太阳能成为当下最受欢迎的新能源,也是目前可再生能源应用技术中最成熟的。
本设计基于人体运动出来的机械能转化成可利用回收的电能,是新能源的一种体现,具有很好的开发前景和实际用途。
该设计是基于以stm32f030芯片为主芯片的智能发电的PCB主板,再利用开关磁阻电机进行发电,将其电压和电流通过wifi模块发送给手机端,通过手机上的APP可以显示出电流和电压值,并进行后台处理和数据保存。
设计将从芯片器件的选型再到PCB板的设计,之后是PCB板的焊接,再是软件的编写与调试,软件部分还包括手机APP的编写,最终完成本次设计。
1设计方案
该设计方案可以划分为两个部分,第一部分是终端部分,有发电机的驱动模块,电压电流采集模块,WiFi模块以和主控芯片及其外设;第二部分是手机部分,该部分主要是实现一个上位机的功能,包括接收信息,发送指令,主要有登录界面和查询界面。
两部分之间通过WIFI来实现通信。
所以总体设计框图1所示:
图总体设计方案
其中手机端的设计为纯粹的软件设计,而智能发电系统主体的设计方案是方案设计中的重点部分包括硬件部分的设计与软件部分的设计。
该系统的设计方案包括以下几个方面,一是小车主体电路板的设计方案,属于硬件部分的设计;二是软件设计方案,属于软件部分的设计,主要是用于驱动硬件电路和给手机端APP提供操作接口。
该系统主体电路板的设计包括电源模块的设计,主芯片外围电路的设计,WiFi模块的设计,电机驱动模块的设计,各个传感器模块的设计。
软件部分的设计包括主体函数的设计及各个功能模块的设计,在实现了各个功能模块设计的基础上设计出主体程序,以便可以随时中断某一个功能而去实现另外的功能。
外围设计主要是各个传感器的放置位置的选择,以便达到所需的功能。
1.1详细设计方案
电源模块
由于电机的驱动需要15V的电源,而USB及传感器等模块的供电需要5V的电源,主芯片需要及的电源。
所以在电源模块的设计中需要用到外部供电电源为15V的可移动电源,可以是蓄电池也可以是干电池串联而得。
5V的电源通过对15V电源降压而得到,电源分别由XC6206P332MR通过不同的外围电路来获得。
主芯片模块
主芯片在此设计中制定为stm32f030作为主控芯片,stm32f030主控芯片的外围电路包括复位电路,晶振,过芯片中的USB接口烧录到SPIFLASH中,选择的启动方式是USB启动。
当程序烧录好以后,将启动方式转换为SPIFLASH启动。
SDRAM中用于存放程序。
STM32F030内部有RC振荡器,可以为内部的锁相环提供时钟,但同外部晶振相比不够准确,所以本文使用外部时钟源。
外部时钟源主要分为高速外部振荡器和低速外部振荡器,高速外部振荡器主要作为芯片处理器和STM32外设的驱动时钟,低速外部振荡器用于驱动窗口看门狗和实时时钟。
该系统采用8M外部晶振作为高速外部时钟信号的时钟源,外接两个20pF的贴片电容。
低速外部振荡器
是时钟源可以使用外部晶振或用户自己提供,该系统采用频率值为Hz的外部晶振,外接两个10pF的贴片电容。
STM32F030有3种启动方式,分为系统复位、电源复位、备份区域复位。
该系统采用电源复位,NRST引脚与10KΩ电阻串联使引脚处于高电位,当需要复位时,S1开关闭合使NRST引脚接地,产生低电平使微处理器复位。
该微处理器内部也有复位电路,当引脚电压小于,片会处于复位状态,但会有40mA的延迟。
WIFI模块
WIFI模块的作用是实现下位机与上位机的实时通信,并且向上位机传递图像数据。
使用的是HC05模块。
其特性如下:
1、嵌入高性能32位RISC微处理器
2、55nm CMOS 高度集成射频技术
3、集成高性能开关稳压器
4、低功耗
5、支持1/2/3/4/线 PTA WIFI/蓝牙
6、自动校准
7、天线分集
8、控制每个包的功率
9、完全遵守USB v 高速模式
10、直接支持WIFI功能
11、支持保护管理框架
霍尔传感器模块
霍尔传感器是根据霍尔效应制作的一种磁场传感器。
霍尔效应是磁电效应的一种,这一现象是霍尔(,1855—1938)于1879年在研究金属的导电机构时发现的。
后来发现半导体、导电流体等也有这种效应,而半导体的霍尔效应比金属强得多,利用这现象制成的各种霍尔元件,广泛地应用于工业自动化技术、检测技术及信息处理等方面。
霍尔效应是研究半导体材料性能的基本方法。
通过霍尔效应实验测定的霍尔系数,能够判断半导体材料的导电类型、载流子浓度及载流子迁移率等重要参数。
由霍尔效应的原理知,霍尔电势的大小取决于:
Rh为霍尔常数,它与半导体材质有关;I为霍尔元件的偏置电流;B为磁场强度;d为半导体材料的厚度。
对于一个给定的霍尔器件,当偏置电流I固定时,UH将完全取决于被测的磁场强度B。
一个霍尔元件一般有四个引出端子,其中两根是霍尔元件的偏置电流I的输入端,另两根是霍尔电压的输出端。
如果两输出端构成外回路,就会产生霍尔电流。
一般地说,偏置电流的设定通常由外部的基准电压源给出;若精度要求高,则基准电压源均用恒流源取代。
为了达到高的灵敏度,有的霍尔元件的传感面上装有高导磁系数的镀膜合金;这类传感器的霍尔电势较大,但在左右出现饱和,仅适用在低量限、小量程下使用。
在半导体薄片两端通以控制电流I,并在薄片的垂直方向施加磁感应强度为B的匀强磁场,则在垂直于电流和磁场的方向上,将产生电势差为UH的霍尔电压。
图霍尔效应
开关磁阻电机
开关磁阻电动机,调速系统所用的开关磁阻电动机(SRM)是SRD中实现机电能量转换的部件,也是SRD有别于其他电动机驱动系统的主要标志。
SRM系双凸极可变磁阻电动机,其定、转子的凸极均由普通硅钢片叠压而成。
转子既无绕组也无永磁体,定子极上绕有集中绕组,径向相对的两个绕组联接起来,称为“一相”,SR电动机可以设计成多种不同相数结构,且定、转子的极数有多种不同的搭配。
相数多、步距角小,有利于减少转矩脉动,但结构复杂,且主开关器件多,成本高,现今应用较多的是四相(8/6)结构和三相(12/8)结构。
图示出四相(8/6)结构SR电动机原理图。
为简单计,图中只画出A相绕组及其供电电路。
SR电动机的运行原理遵循“磁阻最小原理”—‘磁通总要沿着磁阻最小的路径闭合,而具有一定形状的铁心在移动到最小磁阻位置时,必使自己的主轴线与磁场的轴线重合。
图2中,当定子D-D’极励磁时,1-1'向定子轴线D-D'重合的位置转动,并使D相励磁绕组的电感最大。
若以图中定、转子所处的相对位置作为起始位置,则依次给D→A→B→C相绕组通电,转子即会逆着励磁顺序以逆时针方向连续旋转;反之,若依次给B→A→D→C相通电,则电动机即会沿顺时针方向转动。
可见,SR电动机的转向与相绕组的电流方向无关,而仅取决于相绕组通电的顺序。
另外,从图可以看出,当主开关器件S1、S2导通时,A相绕组从直流电源US吸收电能,而当S1、S2关断时,绕组电流经续流二极管VD1、VD2继续流通,并回馈给电源US。
因此,SR电动机传动的共性特点是具有再生作用,系统效率高。
图
电路板抗干扰设计
电路设计和应用应尽量消除或抑制电子电路的干扰,该监测系统的硬件电路用来接收传感器的数据并对其进行处理,如果不能降低各类干扰的影响,将会增加监测数据误差。
硬件电路设计过程中充分考虑对干扰的抑制,对电路进行了合理的设计以及选择合适的元器件。
在硬件电路设计过程中,充分从抑制干扰源、切断干扰途径以及提高元器件的抗干扰性能等三方面考虑,为降低信号干扰,采取了以下措施。
(1)以核心部件为中心,围绕其进行布线,易受干扰元器件相互远离,输入输出元器件分开放置,电源和高频电路部分尽量远离;
(2)STM32微处理器和大功率器件的地线需要单独接地,以减少相互干扰,大功率元器件放置在电路板边缘;
(3)在电路板布线时避免九十度折线,同时减少回路环面积,选择合适粗细的地线以及电源线;
(4)数字区和模拟区用地线隔离,模拟地和数字地要分离,统一在一点接于电源地。
1.2软件设计方案
软件系统框图如下:
软件系统框图
2手机客户端APP设计
2.1开发环境的搭建
本设计在开发过程中使用Eclipse加ADT插件的开发环境,Eclipse集成开发环境JDK,首先需要安装JDK工具包,本设计中使用的JDK版本是JDK-7-Windows-i586.exe。
安装完成后,配置系统环境变量,将JDK的安装路径添加到系统Path中去。
在Andrioddeveloper官网上下载Eclipse开发环境,其己对Eclipse和ADK插件绑定,开发者直接下载后解压即可使用。
本设计使用的ADT版本是adt-bundle-windows-x86-.zip。
2.2手机APP的主要功能模块
手机APP的设计采用了MVC框架,将Model、View和Controler分开,有效减少开发工作量量和有效减少开发工作查和代码冗余率,有利于代码调试。
本设计将手机端功能主要分为5大功能模块:
登录功能模块、查询功能模块、接收数据模块、蓝牙验证模块。
(1)登录模块
登录模块需要用户输入个人信息,如用户名、密码、手机号码等。
登录界面设计两个EditView输入烂和2个Button,输入烂用来接收用户名,2个按紐分别是登录和取消。
当用户点击确认按钮后,跳转到主页面。
confirm=(ImageButton)findViewById(确认按钮绑定)
cancel=(ImageButton)findViewById(取消按钮绑定)
publicvoidonClick(Viewv){(设定按钮点击事件)
switch()){
caseusername=().toString();
if(""))
{
"用户名为空,请输入!
",.show();
}
else
{
Intentintent=newIntent();
;
("name",username);
startActivity(intent);
}
break;
case();
break;
default:
break;
}
(2)蓝牙搜索模块
进入搜索蓝牙界面后,会搜索附近的蓝牙
a.设置权限
在manifest中配置
name=""/> name=""/> b.启动蓝牙 首先要查看本机是否支持蓝牙,获取BluetoothAdapter蓝牙适配器对象 BluetoothAdapter mBluetoothAdapter = (); if(mBluetoothAdapter == null){ 现蓝牙设备 这里可以细分为几个方面 (I)使本机蓝牙处于可见(即处于易被搜索到状态),便于其他设备发现本机蓝牙 立连接 查找到设备后,则需要建立本机与其他设备之间的连接。 一般用本机搜索其他蓝牙设备时,本机可以作为一个服务端,接收其他设备的连接。 启动一个服务器端的线程,死循环等待客户端的连接,这与ServerSocket极为相似。 这个线程在准备连接之前启动 立数据通信线程,进行读取数据 endToTarget(); } catch (IOException e) { ("app", "Exception during write", e); } } public void cancel() { try { (); } catch (IOException e) { ("app", "close() of connect socket failed", e); } } } (3)数据查询 query=(ImageButton)findViewById(this); listview=(ListView)findViewByIddb=newDataBaseCreat; (); begin_date=(EditText)findViewByIdend_date=(EditText)findViewByIdyue=(Button)findViewByIdzhou=(Button)findViewByIdri=(Button)findViewById (newOnClickListener(){ @Override publicvoidonClick(Viewv){ how(); break; } "查询中,请稍后",.show(); ArrayList temp=(QUERY_METHOD,name,datebegin,dateend); SimpleAdaptermyAdapter=null; switch(QUERY_METHOD){ case0: myAdapter=newSimpleAdapter(this,temp,newString[]{"user_name","year","month","total"}, newint[]{ ); break; case1: myAdapter=newSimpleAdapter(this,temp,newString[]{"user_name","weekofyear","total"}, newint[]{ ); break; case2: myAdapter=newSimpleAdapter(this,temp,newString[]{"user_name","year","month","day","total"}, newint[]{ ); break; default: break; } (myAdapter); Break; default: break; } } 3软件件调试过程和结果 由于我只负责软件部分,硬件部分由终端同学负责,需要将PCB板打出来,这里我们用电脑模仿硬件,用串口调试助手通过蓝牙向外发送数据,然后手机APP端接收,并通过查询按钮查询出来并实时显示电流数据,电压数据,转速数据和总电量,下面是我们的测试示意图: 图 蓝牙搜索界面: 接收数据显示界面: 按天查询界面: 图 按周查询: 图 图 按月查询: 测试结果表明,各功能均能正常实现。 4课程总结 本学期为期一周的嵌入式课程设计在不知不觉中结束了,虽说这次课程设计时间不是很长,但是感觉自己收获颇丰,不仅学习到了一些新知识,回顾了以前的一些快要遗忘的知识点,而且使自己的学习目标更加明确,学习方法更加完善,也体会到软件开发的趣味,更加清楚地认识到了自己在软件开发及学习上的一些不足之处。 感谢这个互联网发达的时代,在网上基本都能找到自己想要的资料,在设计开发过程中遇到很多问题,首先就是安卓开发软件的熟悉和java语言的学习,这个过程,我用了大概两周的时间,在上网查阅相关资料和请教师兄的情况下,基本做到了具有实现基本开发的能力,然后就是蓝牙通信的问题,这个问题也困扰了好长时间,因为我之前没有接触过这方面的东西,所有就问了周围的师兄,最终在师兄的指导下完成了蓝牙通信,剩下的问题就是软件功能的开发了,这个是主要工作量,我大部分都是通过上网找资料,花了大量的时间,最终设计出符合要求的软件,值得一提的是中间数据存储也花了不少时间,数据库的建立并不容易,数据的查询其实是主要问题,这个问题的解决最终标志着我完成了最后的任务。 此次实训最大的收获不是我学习到了多少知识而是这几天实训给我的感悟: 首先是心态。 一定要有一个积极的心态,独立解决问题的意识,培养扎实基础的认识。 不要什么东西都感觉跟简单(很多东西可能是看似简单)就不去做了或者不屑一做,以至于性网上搜搜就可以了,这样很不好。 有自己的东西有自己的付出才会有程序运行成功时的喜悦和小自豪,这样也有助于培养自己的兴趣。 要时刻牢记态度决定一切。 其次是兴趣,感觉学习工作中兴趣很关键,只是一个引发人积极性的问题,有了兴趣就自觉了,效率自然就高了。 再次要敢于尝试和挑战。 不要安于现成的程序,而且不要害怕失败,在程序调试的过程中这点尤为重要,“发现出问题然后解决问题”是一个积累经验的过程,而且很高效。 最后要不懈追求。 对于源代码进行不断的完善,要尽可能的实现课题所要求的功能。 对于初学者或者开发较少的人来说,大量大写程序还是有必要的,但同时要注意思考,理解其实现的内在意义。 还可以自己添加一些有意义的功能来实现。 当看到自己编写的程序正常运行时,兴趣也会随之而来,乐此不疲,形成一个良性循环。 短短一学期的实训课很快结束了,我发现我对微电子这个专业、对嵌入式技术都有了新的认识。 通过这次的实训,我了解到,要真真正正的掌握计算机程序还不是一件简单容易的事儿,但真正掌握后,它带给我们的将是无穷的便捷与科技,我喜欢高端便捷的生活。 我希望我能做计算机这个万能机器人的主人而不是奴隶,我会努力加油的! 感谢学校,感谢老师给我的帮助,让我的思想、技能又上了一个台阶! 感谢! 加油! 《
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 课程设计 蓝牙 无线数据 传输