工欲善其事,必先利其器,对MEMS和BLE这对璧人来说那就是需要那就是MEMS需要将自己迷人的曲线展现出来,BLE需要将内心的话说出来。
玩MEMS玩的就是波形,滤波、解算、融合、惯导等,都是需要用波形来体现。
玩BLE就是要玩的明明白白,因为无线传输看不见摸不着,所以需要蓝牙的状态,RSSI,吞吐量等信息进行设置,以便更加高效与节能。
陀螺仪加速度计就是通常说的6轴,陀螺仪输出的是体坐标的角速度值,加速度计输出的是体坐标的加速度加上重力加速度。这些值只有用连续的波形展示才能说明问题,MEMS通常的开发步骤如下:
1. 芯片的配置, MEMS需要配置更新频率、量程、高通低通滤波等,芯片自带的滤波功能可以减少主控的资源消耗,但是有可能导致响应慢或者效果差,需要根据实际情况进行评估与配置。
2. 波形的滤波与融合,姿态解算,高通滤波,低通滤波都有多种算法,且都可以配置参数。需要响应快,效果好,是需要一番功夫的。
3. 功能的验证,得到漂亮的波形不是最终目的,最终目的一定是实现自己的功能,良好的惯性导航,快速的运动方向判断,准确的运动姿势识别等。
波形显示的方法很多,工程师喜欢用的Labview,算法研究者喜欢用Matlab,APP开发者应该会用到AndroidPlot,嵌入式开发者建议用J-Scope,兴趣爱好者用现成的波形显示软件就好。
串口波形显示 在蓝牙平衡小车的帖子中,我介绍了使用NRF24L01无线收发,自己编写上位机实现波形的显示,这本质上是使用串口通信,如果觉得自己编写上位机太麻烦,推荐使用VisualScope或者匿名飞控的上位机。VisualScope是一款古老的软件,可以显示4个通道波形,波形操作起来非常方便,可保存。注意事项:需要使用兼容win98打开,传输协议有Check Sum与CRC16,help中有通信协议的示例代码。在帖子最后有软件下载。
J-Link波形显示 串口波形显示的最大好处就在可以使用无线远距离传输,当没有这样的需求的时候,强烈建议使用J-Link的J-Scope功能。官网链接,支持SWD和JTAG模式,不需要额外的连接线,而且速度可达1Khz,最重要的是不需要写任何代码。“安富莱”写过详细的教程,这里借花献佛,在帖子最后有下载。 使用J-Scope查看的欧拉角与加速度原始值波形。
调试信息显示 我们希望掌握芯片运行的各个状态,以便于调试与寻找Bug,但是又不想占用处理器资源,那么J-Link的RTT(Real Time Transfer)调试就是最好的选择,官网链接,和J-Link波形显示一样,只需要一个J-Link连接MCU,可以多通道,多颜色显示,双向收发,支持printf格式输出,高达2M/s的传输速度,低资源占用,而且在不连接J-Link的时候不占用MCU资源。“安富莱”教程见帖子最后。 其实在NRF的SDK中包含了RTT的组件,可以直接使用。
使用RTT Viwer显示的提示信息。
本帖最后由 lb8820265 于 2018-8-29 17:26 编辑