嵌入式开发就是指在嵌入式操作系统下进行开发,一般常用的系统有WinCE,Linux,Android等。另外,用c,c++或汇编开发;用高级处理器,arm7,arm9,arm11,powerpc,mips,mipsel等,或加上操作系统也属于嵌入式的开发。Android平台上的嵌入式开发是工程师必备的技术,Android平台上开发最好用的蓝牙控制终端, 支持SMartBar,界面友好美观。
本软件时针对电子信息工程、通信工程、自动化等接触硬件较多的专业开发的一款软件,是一款专业软件
专业方面学习多以硬件为主,安卓开发只是业余爱好。所以软件的问题还请多多包含。
设计初衷
在平常开发过程中,调试什么的很不方便,有时候分析数据不得不使用网上下载的上位机,然后将数据上传到电脑上进行分析处理,但是别人开发的软件,往往功能都不符合使用要求,调试起来很不方便。而移动平台的调试软件更是少之又少,而且基本有广告,没广告的界面也丑陋,并且功能单一,像我这种有点强迫症的人是完全不能忍受的。为什么我们这些专业的孩子们没有个像样的专业软件呢,为啥没人开发,好吧我自己来动手好了。
特色功能
1.支持以帧形式发送,以帧形式接收,确保数据的无误性。
2.支持会话模式,方便数据的观看以及调试。
3.可以自定义帧长,以及帧头和帧尾。
4.一共19个按钮,下位机接收相应指令,控制相应功能。
5.支持按钮名称自定义。
6.一共支持9路数据接收,并绘制曲线图。
7.数据传输稳定,基本没有丢包情况。
8.可自定义图以及曲线名称。
9.支持查看以及存储数据表至SD卡,方便数据分析以及处理,可以将数据导入到电脑用Matlab分析处理。
10.界面友好美观,无广告,无不良权限。
11.支持smartbar
会话功能
这个主要是用来分析调试数据的(当然,还可以聊天)
file:///C:/Users/DanyWork/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif
file:///C:/Users/DanyWork/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif
file:///C:/Users/DanyWork/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif
先看第一个首选项,会有数据格式,你可以自定义帧头、帧尾和数据长度。
这个大家做过数据传输的应该都熟悉吧。我这里规定帧头和帧尾都是2 字节的字符。
注意:大家在发送数据的时候记得以字符串的形式发送。之所以用字符串的形式收发。是因为适用性更强。
比如说:
用户定义定义帧头:#S
帧头:E*
数据长度:6
那么:
如果你要发送数字 123 那么你下位机必须发送#S000123E*
如果你要发送数字 1.23 那么你下位机必须发送#S001.23E*
如果你要发送数字 -1.23 那么你下位机必须发送#S-01.23E*
就是你要保证数据长度是6
你可以用C语言的格式控制吧数据转化成这个形式再发送,
上位机只需直接将接收的数据直接转化成数字就行了。
所以你的帧头帧尾中间的数据不能有 '0'~'9' 和 ‘.’ 和 '-' 之外的字符,这个都会被当错错误数据包给过滤掉
file:///C:/Users/DanyWork/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif
file:///C:/Users/DanyWork/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif
file:///C:/Users/DanyWork/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif
上面的选项可以选择是否以帧形式接收和发送。
可以看上面接收的数据,都是一个相同长度的,加了帧头帧尾后数据根本就不会出错
注意:当你选择为帧接收时,如果下位机不按帧发送数据,安卓将不会有数据显示
选择为帧发送之后,你发送128,程序为自动将其格式化为你定义的数据格式发送。#S000128E*(帧头#S 帧尾:E* 数据长度:6)
控制模式
这个功能说的高大上一点,是可以构建DIY的智能家居
file:///C:/Users/DanyWork/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif
file:///C:/Users/DanyWork/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif
这是控制窗口,每个按钮的指令都是固定的,数据,点击按钮后,上面的窗口会有提示消息,也会有发送的指令,下位机可以按发送的指令对数据进行解析就行了。为了保证数据的无误性,每次发送的数据都是有帧头帧尾的。
上面的11个按钮,每次点击只发送一个指令,而下方的8个按钮,可以用来控制灯的。
大家可以用下位机可以用蓝牙来接收指令,然后再通过24L01来扩展相应的灯,这样就可以构建一个智能家居控制平台了。
当然也可以用来控制小车什么的,这么多组按钮,应该能满足大多数的控制需求。
指令发送格式和上面会话模式一样。
另外
可以长按给每个按键单独命名。
长按消息区,可以清除指令发送消息
file:///C:/Users/DanyWork/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif
数据绘图
这是将接收的数据绘图,这个数据传输有一点不同的是,数据包中去掉帧头的第一位是绘图通道号
假如你定义的:
帧头:#S
帧尾:E*
数据长度:6
比如:
你要发送的数据是123,并需要将它绘制在图1 上,绘制曲线1
那么你需要将发送的数据格式定为:
#S100123E*
或者你需要将它显示到图1曲线2上,那么就是
#S200123E*
对应的:
图1:
曲线1:#S100123E*
曲线2:#S200123E*
曲线3:#S300123E*
图2:
曲线1:#S400123E*
曲线2:#S500123E*
曲线3:#S600123E*
图3:
曲线1:#S700123E*
曲线2:#S800123E*
曲线3:#S900123E*
如果发送: -1.23
图1曲线1的数据格式是
#S1-1.23E*
file:///C:/Users/DanyWork/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif
这是在调试飞控,一定会使用的六轴传感器,
这个是六轴传感器MPU6050传回来的数据,大家在做卡尔曼滤波算法的时候,这个软件将是非常好的,一共可以接收9组数据。
然后你可以给每个图像及曲线命名的,长按每个数据组就可以弹出设置,曲线名称重启后才生效。
file:///C:/Users/DanyWork/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif
然后点击菜单的绘图设置,还可以设置绘图的数据点数
file:///C:/Users/DanyWork/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif
然后点击每个数据显示框,会弹出详细的数据表,而且可以以txt形式保存到SD卡,大家如果有必要,可以将数据保存下来,用Matlab分析数据,这是常用的数据处理方法。
file:///C:/Users/DanyWork/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif
最后整个功能和使用就介绍完了。
可能存在的问题
1.本人专业是学习硬件的,安卓也才自学大半个月,程序很多地方都是边百度边写的。所以很多问题还不明白,如果软件存在什么bug,请反馈给我,不要给差评,您的支持就是我最大的动力。
2.还有安卓布局方面的东西,我感觉真的不好整,网上资料不多,不好学习啊,所以可能排版不佳,请不要见怪。
3.借了同学的MX3,貌似在切换Tab的时候,输入法不会自动隐藏,好多办法也试过了,实在是不知道怎么解决,请大神能指点。
实际使用
file:///C:/Users/DanyWork/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif
这是我连接的MPU6050六轴传感器,然后通过蓝牙将数据发送回来的,然后我找同学借的3个蓝牙模块,
有一个蓝牙4.0的HC10模块,4.0的模块,据我同学说,可以配对但是无法建立连接发送数据,然后我试过用我自己的软件也是这样的,从网上下载的其它类似软件也无法建立连接,可以配对成功但是,无法建立连接,貌似是和手机硬件的有一些不兼容,这个蓝牙4.0模块的芯片是TI的CC2540,由于还是学生狗,没办法验证其它的蓝牙4.0模块是否可用。
另外两个一个是HC05一个是HC06,都是蓝牙2.0模块,都可以建立连接发送数据。然后波特率设置为11520或更高,大多数情况是没有问题的,但是偶尔会出现蓝牙模块数据阻塞的情况,断开重新连接就可以了。淘宝卖家说蓝牙模块串口速度不要调太快。所以这个应该是蓝牙模块的问题。大家不必担心。115200的串口速度基本是可以驾驭大部分的ADC采样数据传输的,再说了数据太快,肯定是不能就只用一个小小的安卓手机的。当然后续会打算继续开发,OTG转串口的调试软件,这个串口速度就可以很快了。
上位机:帧头:#S 帧尾:E* 数据包长度:6
我的下位机数据是这样发送的,将printf直接映射到串口上,按这种就可以发送数据了。
去年这个时候自学过20来天的java,本来想学习JAVA,然后再开发安卓软件的,无奈由于实验室比赛的事情搁浅了。后来又对UCOSII感兴趣了,然后安卓开发有搁着了。前些时间吧,刚刚参加完机械大赛,成绩还不错。正心情好的时候,突如其来的事情,让我整个人都不好了。哎哎哎,于是想起了搁浅很久的安卓开发,这不,说干就开始干。
一开始的时候,说实话很困难,因为和平时的单片机C语言开发,完全不一样,功能太多了,简直不知从何开始,但是自己深知万事开头难嘛,以前学习单片机的时候,也是这么蛋疼过来的,一开始比较困难的是,根本不清楚工程文件结构,比如一开始不知道在Manifest里面注册Activity,甚至为了导入一个开源的包是各种出错,网上各种方法都不行,花了一天时间才搞定这个小问题,这半个月,差不多从早到晚,就为了我写这个软件,反正也好,什么事情都不用想,也就不会心烦了。后来慢慢有了手感之后,就发现开发不是那么难了。
最后的感叹就是啊,这种高级语言简直强大的可怕,开发速度不是一般的快,之前用C#开发了一个简单的上位机,差不多一个星期就搞定了,而我之前在机械大赛的时候,用单片机在彩屏上写了一个简单的操作界面,总共就3个界面,然后却快把我逼疯了,基本每个图形色块我都要计算像素点坐标,当时本来准备在单片机里面跑UCOSII + UCGUI的,但是由于网上资料很少,当时还不熟悉,又不敢使用,所以放弃使用操作系统了,等做起来之后才发现痛苦了。我必须协调整个操作界面的交互,从此,一定要好好学习嵌入式操作系统,现在完全不敢想象在单片机里面写操作界面了,而同时又感叹安卓里面的强大,一个按钮一拖动就出来了,唉唉唉,以后绝不裸跑单片机。
其实一开始设计这个软件是为了DIY一个智能家居的,但是最后做成了调试助手。
这么详细的Android平台嵌入式开发的蓝牙智能控制终端步骤,学习是要多做写笔记,多回来记忆,理解透。
¥179.00
¥398.00
¥199.00
¥98.00