2560|6

282

帖子

7

TA的资源

一粒金砂(高级)

楼主
 

【跑步姿势训练鞋】No.008-安卓APP设计 [复制链接]

 

上一篇介绍了自发电功能研究。这一介绍安卓APP设计

由于本人一直从事硬件相关的工作,对PC、手机软件开发不是很擅长。但是现在做东西,经常用到上位机进行调试或结果展示,遇到这种情况,往往是找人帮忙。直到有一次带孩子参加少儿编程课,发现了一款不需要了解太多专业编程知识,只需要有逻辑思维就能设计安卓手机APP的工具,这就是App Inventor,由Google设计的在线开发工具,虽然不能设计处很华丽的界面,但是实现常用的各种功能没有问题。目前常用的是第二版即App Inventor2,国内建议使用WxBit 汉化增强版,扩展了好多功能,提供实例展厅,用起来更方便。链接如下:

https://www.wxbit.com/

我这次APP实现就是基于WxBit汉化增强版进行设计的。

首先,在展厅找了一个BLE设计例程《豌豆派蓝牙测试》,熟悉了一下BLE通讯的几个关键点,通过更改UUID的设置,基本搞清楚了蓝牙通讯的基本设计方法。例程如下图。

1,展厅例程

然后是UI设计,这里我参考了咕咚跑步精灵的APP界面,显示内容展现了每次跑步的各种数据。如下图。跑步精灵APP呈现的是跑步后统计数据,而我这个作品更偏向于实时的跑步数据,所以UI呈现项目稍有不同。

2,跑步精灵界面

我设计了两屏页面,第一屏采用例程的界面,用来配对蓝牙设备和查看是否接收到数据;第二屏用来显示实时跑步数据。在风格上,结合我这个传感器特点,我重点展示了步频,脚掌落地状态,落地均衡度,以及各个传感器的测试值。通过图片、大数字、文字描述、滑条来展示跑步的各个参数;具体的UI设计见下图。左边是第一屏设置蓝牙和查看连接情况。右边是第二屏展示数据。

3,界面

APP设计第一步是组件设计。这个是相对简单但是又很繁琐的过程。需要把屏幕分割成不同的区块,然后填充素材。为了方便后边逻辑设计,要把每个素材取一个对应好记的名称。有的时候设计界面展示的效果和实际有出入,所以设计的时候建议用调试器实时连着手机,可以在手机上显示最终的效果,比较方便。下图是组件设计界面。

4,件设计界面

APP设计第二步是逻辑设计。这个是整个APP的灵魂,需要使用各种逻辑块将素材连接起来,进行功能配置,控制操作,数据处理。下图是逻辑设计界面。下面我针对逻辑设计过程中遇到的问题进行一下分享。

5,逻辑设计界面

第一个遇到的问题就是分屏后,蓝牙连接不能共享问题。两个屏幕是互相独立的,在第一屏连上蓝牙后,切换到第二屏不能操作第一屏的任何变量和设备。我从网上查找解决办法,最后还真找到了。是这样操作的,在第一屏切换为第二屏事件触发时,第一屏里面把蓝牙关掉,并把蓝牙设备信息传数给第二屏。代码块如下。

6,切换屏幕关蓝牙

第二屏进入后第一件事就是读入传过来的蓝牙设备信息,然后扫描,扫描到后进行连接,这样就不用再次选择蓝牙设备了。第一个问题如此解决。

7,第二屏连蓝牙

第二个问题是第二屏连上蓝牙后数据接收不到。收数逻辑设计是完全照搬第一屏的,第一屏接收没问题,到第二屏就没反应了。经过反复对比,最终发现问题,原来第一屏的时候用的字符串格式接收数据,第二屏我设计的是用数组格式接收数据,但是有两处需要更改,我只改了一处,导致接收到的数据类型不符,全部丢掉了,表现为收不到数。为了避免再次出现类似问题,也方便调试,我在界面上加了一行文本框,用来显示每次收到的数据。如下图。

8,接收数据显示框

第三个问题是数据处理问题。最初计划是单片机采集基础数据,由上位机进行分析计算,这样阈值的配置灵活度更高,但是实际用App Inventor2这种代码块形式编程,C语言简单几句话就能实现的算法,要用很多代码块才能拼出来,后来索性我把数据处理部分都挪到单片机进行处理,上位机只接受结果就行了。通讯协议也进行了修改,每个参数用一个字节表达,如下。

9,通讯协议

落地状态检测的数据在第5篇帖子介绍过,是排序状态的4个数拼成的一个16进制变量,再将变量归类,通过查表法得到一个字节,传输给上位机,上位机再转化成文本显示,如下图。

10,落地状态的数据处理

步频数据是单字节的,直接打包里面发上去。

均衡度数据是对内外侧受力情况进行评估,将两侧传感器数据取平均值后,较小值对较大值进行百分比运算,如果两边力度相当,数值越大,则均衡度越好。

协议后面4个字节为各个传感器采集的力度值与最大值的百分比,可以直观的看到每个点的受力情况,方便训练时调整姿态。具体代码见下图。

11,计算代码

APP端一直监视蓝牙收数,收到数据时,执行下图代码块,实现数据接收和状态刷新,达到实时显示的目的。

12,收数代码块

这些代码全部编好后,运行APP,就能实现数据接收显示功能了,最终的运行结果如下图。

13,APP运行成功界面

 

这次作品到本篇文章就全部完成了。基本上做到预期的功能全实现了,设计过程中也遇到不少困难,都想办法解决了,感谢期间帮助过我的各位大神。后续就是整理文档,提交作品相应的文件,不再赘述。

最新回复

cool~~~~这个太强啦~~   详情 回复 发表于 2021-7-1 17:10
点赞 关注
 
 

回复
举报

2万

帖子

71

TA的资源

管理员

沙发
 

辛苦了,真正体现了和娃一起成长啊,从培训班都能收获灵感。

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 
 

回复

122

帖子

12

TA的资源

一粒金砂(中级)

板凳
 

这个牛啊,从上到下全有了,一等奖稳了

个人签名尽吾志也而不能至者,可以无悔矣。——王安石
 
 
 

回复

1239

帖子

68

TA的资源

纯净的硅(中级)

4
 

厉害,编程要从娃娃抓起

 
 
 

回复

828

帖子

216

TA的资源

管理员

5
 

看完的第一感受就是:太牛了!!

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名在路上……

EEworld 有你有我
 
 
 

回复

124

帖子

1

TA的资源

一粒金砂(中级)

6
 

厉害了,scratch都渗透到Android app开发了,,,

抓功夫学下,不能输在孩子的起跑线啊

 
 
 

回复

1万

帖子

2853

TA的资源

管理员

7
 

cool~~~~这个太强啦~~

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名玩板看这里:
https://bbs.eeworld.com.cn/elecplay.html
EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表