- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ARDUINIO开发板与ANDROID手机蓝牙通信设计与实现
ARDUINIO开发板与ANDROID手机蓝牙通信设计与实现
摘要:随着嵌入式的应用与发展,越来越多的计算机爱好者参与其中。但是硬件开发板作为下位机,ANDROID手机移动端作为上位机,如何实现二者连接一直是越来越多的软硬件开发者感兴趣的话题。该文针对当前非常流行的ARDUINO UNO R3开发板,提供一种新的思路和方法,设计简单易行的方案,用手机自动搜索开发板上蓝牙设备实现软硬件的连接并进行相互通信。
关键词:嵌入式;移动端;蓝牙
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)21-0065-02
当前在信息化快速发展的大潮中,计算机不仅在科学研究、军事和工业领域大量应用,而且也越来越多的应用到我们每个人的日常生活当中。随着嵌入式产品的大力发展和进一步推广,嵌入式设备影响到我们生活的方方面面,小到遥控器、PDA等数字化产品,大到数字机床、车载电子设备,都离不开嵌入式产品的应用。
1 硬件设备介绍
1.1 Arduino UNO R3开发板
本次研究平台基于开源Arduino UNO R3开发板。Arduino UNO R3是2012年最新推出的一款易用型开源控制器,硬件上与之前Arduino UNO相比并没有大的变动,最大不同在于USB转串口电路部分,改用的是一块ATMega16U2单片机。除了之前所有的特点外,这块板可以使用ATmega16U2替代了8U2。这允许更快的转换速度和更大内存,Linux或者Mac不需要驱动程序,并且有能力外接键盘、鼠标、摇杆等。
Arduino是一个基于开源的、有简单的I/O接口的物理计算平台。Arduino可以用于独立做项目开发的控制核心,也可以与PC进行直接的 USB连接完成与电脑间的互动。Arduino开源IDE开发环境可以通过相关文档的链接直接免费下载(支持Window,Linux以及Max系统)。
1.2 HC-05蓝牙模块
本次研究使用HC-05主从一体蓝牙串口模块作为Arduino UNO R3开发板和ANDROID手机进行无线通信的设备。
HC-05是一款主从一体可以设置的蓝牙芯片,具有传统蓝牙技术的功能,模块的接口有串口、spi接口和usb接口。HC-05经过测试在室内可达10m以内的通信距离。在实际使用的过程中,当蓝牙设备与蓝牙设备配对连接成功后,我们可以忽视蓝牙内部的通信协议,直接将蓝牙当做串口用。当建立连接,两设备共同使用一通道也就是同一个串口,一个设备发送数据到通道中,另外一个设备便可以接收通道中的数据。
2 ANDUINO开发板C语言代码原理
本次研究是利用开发板串口连接蓝牙接口,当接上到ANDROID上位机发来指令为1时让LED1变换状态(如果原来是亮状态则切换为灭状态,反之为亮状态),发送的指令为2时让LED2变换状态。
首先是LED灯宏定义,让LED1和LED2分别连接开发板第4和第5引脚。
#define LED1 4
#define LED2 5
其次是开发板串口宏定义,使用开发板的串口10作为发送端口,串口11作为接收端口。
#define TX 10
#define RX 11
通过给定的函数库来定义蓝牙模块,NewSoftSerial bluetooth(TX,RX);
使用setup函数对LED1、 LED2和蓝牙模块进行初始化。
pinMode(LED1, OUTPUT); //将LED1设置为输出模式
pinMode(LED2, OUTPUT); //将LED2设置为输出模式
bluetooth.begin(9600); //设置蓝牙接收数据波特率
最后编写loop函数,接收ANDROID上位机的指令,通过判断接收的指令来让改变LED1状态还是LED2状态。
if (bluetooth.available()) {
int LED = bluetooth.read();
switch (LED) {
case 1: //如果接收的指令为1,则让LED1变换状态
led1 = !led1;
digitalWrite(LED1, led1);
break;
case 2: //如果接收的指令为2,则让LED2变换状态
led2 = !led2;
digitalWrite(LED2, led2);
break;
}
3 ANDROID移动端代码原理
ANDROID移动端代码主要分三个部分,一个部分设计ANDROID界面,其次是是寻找到ARDUINO开发板的蓝牙并连接,最后一个部分是向
文档评论(0)