RoboMaster

标题: 【分享帖】基于processing编程的安卓手机蓝牙通信方法 [打印本页]

作者: 三大张    时间: 2015-2-25 15:24
标题: 【分享帖】基于processing编程的安卓手机蓝牙通信方法
    Processing是一种具有革命前瞻性的新兴计算机语言,它的概念是在电子艺术的环境下介绍程序语言,并将电子艺术的概念介绍给程序设计师。谁会去学或是去用Processing呢?大致上是对科学与艺术之间的跨领域表现有兴趣的人。艺术与代码对每个现代人都是时尚而着迷的东西,特别是颇具新思想的青年学生,但原先或许只是作为看客去了解它,而不是近距离去触摸它,而有了Processing语言,就有了亲身实践的手段。为了追求美感,而去熟练编程能力,同时在敲击程序的过程中,去构造优美的画面。
  现在主要介绍的是:Andriod手机蓝牙遥控程序的Processing编程方法,看此文前,希望看看文章:“在安卓手机上运行Processing程序的方法”,该文章网址:
http://bbs.robomasters.com/forum.php?mod=viewthread&tid=156&extra=page%3D1
[attach]328[/attach]

图1 安卓手机的人机界面

一、安卓手机与Arduino蓝牙模块的联机
   图1中手机人机界面上方是一个能“变色”的圆形图形,下方是三条水平的“红色”、“绿色”和“蓝色”滚动条。滚动条上滑块的X坐标位置从左到右,对应着R、G、B颜色值0到255。当手指分别轻触三条滚动条的滑块,并拖动其移动时,R、G、B值也随之变化,然后把RGB三个值通过蓝牙串口无线通信给Arduino UNO控制板,Arduino会把RGB值模拟输出给RGB实物彩盘,如图2所示。与此同时,Arduino又会把下传的RGB值,再回传给Processing程序,并把这三个RGB值反映到手机界面上方那个能“变色”的圆形图形。

[attach]318[/attach]

图2  Arduino控制器、蓝牙模块和RGB彩盘

    要实现安卓手机与Arduino蓝牙模块的联机,需采取以下步骤:
1.1、在你的手机,点击安卓手机界面,设备→应用程序,把“未知来源”的√打上。点击设备→应用程序→开发,把“USB调试”的的√打上。
1.2、在设备→无线与网络,点击蓝牙,进入蓝牙设置界面,打开蓝牙并搜索蓝牙设备,这时如果图2中蓝牙模块Bluetooth_Bee_V2处于上电状态,在“可用设备”下方就会出现这个模块的名称。

[attach]319[/attach]

图3搜索蓝牙设备
1.3 、点击Bluetooth_Bee_V2名称,进行蓝牙配对,输入PIN号为1234,并按下“确定”按钮。

[attach]320[/attach]

图4蓝牙配对过程
1.4、蓝牙配对成功,显示“已配对的设备”有Bluetooth_Bee_V2。

[attach]321[/attach]

图5 蓝牙配对成功
      做了以上设置后,当在Processing的安卓编程环境中下载程序时,会在手机界面中显示已成功配对的蓝牙设备,然后选择Bluetooth_Bee_V2,即可建立安卓手机与Arduino蓝牙模块的联机。

二、 Arduino实物系统
    根据图2所示,受控于安卓手机的Arduino实物系统,包含Arduino UNO控制板、IO传感器扩展板V7.1、蓝牙模块Bluetooth_Bee_V2和RGB彩盘。
     Bluetooth Bee V2蓝牙无线数传模块采用XBEE造型设计,体积尺寸紧凑,可以直接插在IO传感器扩展板的XBEE扩展底座。其说明书网址为:
http://wiki.dfrobot.com.cn/index.php/(SKU:TEL0023)Bluetooh_Bee_V2

[attach]322[/attach]

图6  Bluetooth Bee V2蓝牙无线数传模块
  由于USB版本的Arduino是通过USB转成TTL串口下载程序的,数字接口0和1就是TTL串口RX和TX。同时蓝牙模块Bluetooth_Bee_V2插在XBEE的扩展底座上,也占用了TTL串口,所以下载程序和运行蓝牙通信不能同时进行。老版本扩展板在使用XEEE这类通讯模块的时候,由于串口使用冲突,所以每次下载程序都需要把通讯模块拔下,下载完代码后重新插上模块,比较麻烦。现在新版的扩展板增加了“运行”与“下载代码”的切换键。如图7所示,下载代码时,拨到“PROG”档。运行时,拨到“RUN”档。这样调试程序就无需重复插拔通讯模块了。
IO传感器扩展板V7.1说明书网址:
http://wiki.dfrobot.com.cn/index.php/(SKUFR0265)IO_%E4%BC%A0%E6%84%9F%E5%99%A8%E6%89%A9%E5%B1%95%E6%9D%BF_V7.1  

[attach]323[/attach]

图7  IO传感器扩展板V7.1
   这次在processing编程环境下编写安卓手机蓝牙遥控程序,反复下载测试纠错,次数不会低于40次,多亏新版的扩展板增加了“运行”与“下载代码”的切换键,否则会无端地承受很多劳力和心力,让我能从反复试探中,找出安卓手机蓝牙测控processing编程的正确方法。

三、Processing中具有蓝牙通信功能的ketai库文件安装
     Processing语言之所以强大,其中一个原因就是它有许多第三方库文件的支持,例如openCV、kinect和leap motion等,在这个蓝牙测控程序中,我用了第三方库,ketai库,它有很强的功能,要深入学习它,可以看看英文电子书“Rapid Android Development: Build Rich, Sensor-Based Applications with Processing”。
    在Arduino中如果要新增函式库,您需要将所要新增的函式库手动放到/libraries文件夹下,有点麻烦…在Processing中就不用这样了,只要依照下列步骤操作即可:
3.1、执行翻墙软件,不翻墙就下载不了ketai库文件。
3.2、在Processing安卓编程环境下,点击速写本–>引入库文件…中,选择「添加库文件…」

[attach]324[/attach]

图8 添加ketai库文件
3.3、  然后会跳出Library Manager窗口,您可从中看到所有可下载的函式库
3.4、 找到ketai库,直接按「安装」即可

[attach]325[/attach]

图9 安装ketai库文件
3.5、 安装完毕之后您就可在点击文件->范例文件, 在Andriod范例文件窗口下,看到ketai的范例了,您可以找些范例来学习喔。

[attach]326[/attach]

图10 ketai库的范例程序

四、Processing与Arduino蓝牙通信程序
    看懂下面样例程序(有详细注释),就可了解基于processing编程的安卓手机蓝牙通信的一般方法,由于这个样例程序所展示的是多字节连续双向通信,这应该是串口通信中最困难的一种模式,掌握了此模式,那么对单字节传送或者由事件触发的字符串传送就更容易达成。
Processing与Arduino蓝牙通信程序请下载:[attach]327[/attach]

[attach]327[/attach]



作者: 奇哥很忙~    时间: 2015-2-25 16:57
开源硬件是未来的趋势,之前还把玩过arduino作为Google的ADK,Google 的ADK项目好像停止了更新,无线连接才是未来~
作者: 聪明小可爱pc    时间: 2015-5-9 10:41
这是用蓝牙控制灯吗?
作者: u0uuuu    时间: 2016-11-15 20:17
楼主好人。。。。。




欢迎光临 RoboMaster (https://bbs.robomaster.com/) Powered by Discuz! X3.2