极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 33117|回复: 13

BoxzMini玩起来,自己写个安卓控制软件(更新APK+源码下载+问题讨论)

[复制链接]
发表于 2014-12-27 01:54:20 | 显示全部楼层 |阅读模式
本帖最后由 wing 于 2014-12-28 00:25 编辑

下载安卓APK

下载源代码


视频在二楼

编程思路和存在问题的讨论在四楼

上次已经发过用BLE串口助手在安卓手机上控制boxzmini的视频,
不过串口助手是要手输命令的,就算是复制粘贴也很不方便,玩的不爽。
无奈吊丝玩家不碰ios,官方的android版本又未出,
好在盒子的手册写得非常清晰(这点值得称赞{:soso_e179:}),
参照手册的BOXZ JSON Communication Protocol内容可以自制一个简单的安卓控制软件。
工程基础以串口助手的源码为原型,控制方式为最简单的按键触发,
扩展几个控制方向的按钮,做成一个类似九宫格的控制界面。




当然自己山寨软件,界面是有点简陋,不过还好链接还算稳定。玩起来比串口助手爽的多了
据闻Boxzmini官方版本的安卓控制软件是重力感应器控制方向的,到时候一定有更好的体验,期待一下...

视频放楼下,还在等审核呢...

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1 +3 +1 收起 理由
幻生幻灭 + 3 + 1 楼主威武

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2014-12-27 01:55:08 | 显示全部楼层
本帖最后由 wing 于 2014-12-27 01:57 编辑

必须先爽,不要等

占楼上视频
回复 支持 反对

使用道具 举报

发表于 2014-12-27 07:17:21 | 显示全部楼层
楼主你无敌了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-12-28 00:14:53 | 显示全部楼层
本帖最后由 wing 于 2014-12-28 00:17 编辑

其实写一个安卓软件是很简单的事情,写个程序不会比写个帖子的时间长。
因为安卓的资源实在是太多了,大多数你要做的事情别人已经帮你做了。

为了快速开发要符合以下原则:
1不追求炫耀的视觉效果
2允许一些不致命的问题存在(没错你猜对了有点bug,这个下面会提到)
3不要等快点完成早点爽
除此之外还要一瓶可乐或者咖啡之类的提神饮料

当然这只是作为玩家的标准,做官方软件就另当别论了,所以官方软件通常比较迟。

首先看看盒子的json定义
Action K1 direction control
Go forward {"AT":{"K1":"w"}}     前
Go backward {"AT":{"K1":"s"}}    后
Turn Left {"AT":{"K1":"a"}}      左
Turn Right {"AT":{"K1":"d"}}     右
Go Fwd Left {"AT":{"K1":"q"}}    左前
Go Fwd right {"AT":{"K1":"e"}}   右前
Go Bwd Left {"AT":{"K1":"z"}}    左后
Go Bwd Right {"AT":{"K1":"x"}}   右后
Release key {"AT":{"K1":" "}}    停

基本上就键盘的方向布局,这点描述的很清晰了,也就是说只要发送相应的内容就可以控制盒子的动作。
另外盒子的作者还提供了关于心跳侦的建议:“最好每2~3秒发送一个心跳{"CF":{"ME":2}} 要不然BOXZ 5s内接受不到心跳会停止运动”
当然这个问题是之后才得知的,所以在一楼的代码里没有心跳侦这个功能,有兴趣的同学可以自己发挥下。

另外有一个很值得参考的网站http://www.huamaosoft.cn/index.asp
这是华茂科技公司的网站,串口工具和软件代码都是从这里找到的,另外还有一大堆关于蓝牙的资料。
☆ BLE蓝牙Android助手 http://www.huamaosoft.cn/HMBLEComAssistant.rar
这个是我最初通过手动输入命令控制盒子的工具,
不过这个工具有问题,就是输入框的底色和文字的颜色都是白色的,开始我还以为不能输入。
不知道在其他手机上是不是都这样,反正我的moto g和x 都这这个情况,汗
最重要的事这个基于android4.3(android18) 的源代码  ☆ BLE模块Android源代码 http://www.huamaosoft.cn/BluetoothLeGatt.rar
我的软件就是在这个代码上进行的修改。

要注意的是这个代码是基于android4.3,在ADT上对应的是android18,我的开发环境是4.4 android19,所以在导入工程后要 Target到4.4,
然后jdk也要设置到1.6才能编译通过。
运行过之后你会发现这个例子其实只有两个界面,一个是搜索蓝牙设备,另一个是控制通信。
软件目的只是方便控制盒子,不需要再打字,直接按键,那么就在控制通信的界面加上九个按钮分别固定发送上面的九个json命令。
总结下来只有三个地方需要改动
gatt_services_characteristics.xml 控制通信界面
strings.xml 关于按钮上的文字
DeviceControlActivity.java 程序代码,主要是增加按键事件的相关内容
具体的改动请看一楼的源码,合计修改的地方不超过一百行。


没错只要稍为改下就可以玩的很爽了,那么还有什么问题未解决呢?
初次链接的问题,通常手机刚打开蓝牙的第一次链接是没有响应的,要试几次才连上,
这个问题无论在我制作的程序和原版的BLE蓝牙Android助手都会发生,
但是只要成功链接过一次,之后就算断开也可以马上连上,而且通信也比较稳定。
我测试过android4.4.4的moto g 和 moto x 情况基本上一样,moto x 连通率稍高,关调wifi和3g后好像也有点改善。
另外原版的BLE蓝牙Android助手的首次连通率感觉上稍微高一点,
可以先用BLE蓝牙Android助手连通第一次,然后关掉再开控制软件,这时链接是一定通的。
回复 支持 反对

使用道具 举报

发表于 2014-12-28 10:05:19 | 显示全部楼层
高 实在高,不知安卓软件如何写?
回复 支持 反对

使用道具 举报

发表于 2015-1-29 18:22:41 | 显示全部楼层
帮你上传到Github了,额我们的正式版跳票了,估计要年后了
https://github.com/leolite/BOXZ/ ... 4.0/Android/%40Wing
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-30 12:57:54 | 显示全部楼层

软件粗陋献丑了
回复 支持 反对

使用道具 举报

发表于 2015-1-31 21:46:14 | 显示全部楼层
很不错!正在找相关的资料呢!
另外有个问题请教楼主,我用华茂的那个串口助手APK,长按标题栏,输入AT相关指令,好像都没有返回,使用他们软件中的AT指令要什么条件呢。谢谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-2-1 13:17:51 | 显示全部楼层
flying03 发表于 2015-1-31 21:46
很不错!正在找相关的资料呢!
另外有个问题请教楼主,我用华茂的那个串口助手APK,长按标题栏,输入AT相关 ...

我觉得按标题那个功能只是显示有多少种AT指令,并不会协助你输入。
要输指令还是要自己打字
回复 支持 反对

使用道具 举报

发表于 2015-2-1 20:03:07 | 显示全部楼层
wing 发表于 2015-2-1 13:17
我觉得按标题那个功能只是显示有多少种AT指令,并不会协助你输入。
要输指令还是要自己打字



看我手机切图,长按标题可以输入,点发送后,TX=8
就是没有返回消息。不知道AT指令要怎么用。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-2-1 20:36:35 | 显示全部楼层
呵呵,可能是我手机底色的问题,我一直没看到有输入呢。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-2-1 23:10:46 | 显示全部楼层
flying03 发表于 2015-2-1 20:03
看我手机切图,长按标题可以输入,点发送后,TX=8
就是没有返回消息。不知道AT指令要怎么用。

这个回复的问题需要在主控些程序实现吧
回复 支持 反对

使用道具 举报

发表于 2015-3-28 21:11:08 | 显示全部楼层
蓝牙狂发送乱码到手机上怎么办
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 07:27 , Processed in 0.047602 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表