社区导航

 
查看: 1154|回复: 4

[设计过程分享] Sensor Tile & Matlab GUI 调试过程

[复制链接]

93

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2017-1-22 14:42:28 | 显示全部楼层 |阅读模式
         昨天经过论坛大神 小虾(@littleshrimp )的指点,终于找到修改源码中修改ODR的大门。原先的ODR是104hz , 我测试了一下,在这个ODR下的 获取数据 及串口发送的时间(只是ACC的,别的我都去掉了):

  1. // RTC_Handler( &RtcHandle );
  2.       
  3.       Accelero_Sensor_Handler( LSM6DSM_X_0_handle );
  4.       
  5.      // Gyro_Sensor_Handler( LSM6DSM_G_0_handle );
  6.       
  7.     //  Magneto_Sensor_Handler( LSM303AGR_M_0_handle );
  8.       
  9.      // Pressure_Sensor_Handler( LPS22HB_P_0_handle );
复制代码


这里我是通过测量LED灯的亮灭 时间来测量的,不太准确,但是对我来说 也只是想知道这段时间是多少而已:
DSX_QuickPrint2.bmp
可以看到这是轮询的10ms (源程序是100ms , 我做了修改/* Data acquisition period [ms] */
#define DATA_PERIOD_MS (10))
上图 的波形 实际上 我还在 Accelero_Sensor_Handler( LSM6DSM_X_0_handle );这个程序里面添加了LED的亮灭 ,来区分接收数据的时间(起始高电平的时间 62us)和USB发送数据的时间(后面低电平的一段时间205us)。
DSX_QuickPrint3.bmp
总共在
if(msTick % DATA_PERIOD_MS == 0 && msTickPrev != msTick)
{
。。。
}
这个里面花的时间是270us 。(注意:我还把USB的虚拟串口波特率改成了921600,原来是115200;把Accelero_Sensor_Handler( LSM6DSM_X_0_handle ); 里面串口发送的数据简化到只传数据结尾\n)。
270us 什么概念,3.7Khz 也就是理论上 最大ODR可以达到3.7Khz 。 当然实际上不需要,而且3.7Khz 也绝对不是最大值。
我最后把 DATA_PERIOD_MS 改成了5ms ; ODR改成了208hz 。串口波特率还是921600bps。 在这个条件下,5ms 的轮询还有4.73ms 可以干别的事呢。(比如姿态解算)。
看下效果吧:
340240215816924288.jpg
流畅运行,MATLAB GUI 不是盖的,动态绘图一点不卡。
文末我把我的MATLAB GUI 源码贴上,感兴趣的可以自己DIY 一下,我自己做的也很粗糙。(PS重要的地方我都注释了)
微信截图_20170122143749.png


DSX_QuickPrint4.bmp

Guiplay.rar

48.89 KB, 下载次数: 5

售价: 1 枚芯币  [记录]

MATLAB GUI for 串口调试

评分

1

查看全部评分



回复

使用道具 举报

2万

TA的帖子

74

TA的资源

管理员

Rank: 13Rank: 13Rank: 13Rank: 13

发表于 2017-1-23 09:14:08 | 显示全部楼层
很好的分享,期待进一步进展
2018,加油!继续为中国电子行业做出小小的贡献吧!
QQ 1206973913


回复

使用道具 举报

6883

TA的帖子

176

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

测评达人

发表于 2017-1-27 16:55:15 | 显示全部楼层
MATLAB GUI 显示的是什么值啊  MATLAB GUI 是串口接收的数据么

点评

可以自己设置,我这里显示的是X Y 两个轴的加速度值。协议是通过串口  详情 回复 发表于 2017-2-4 14:07


回复

使用道具 举报

93

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2017-2-4 14:07:09 | 显示全部楼层
常见泽1 发表于 2017-1-27 16:55
MATLAB GUI 显示的是什么值啊  MATLAB GUI 是串口接收的数据么

可以自己设置,我这里显示的是X Y 两个轴的加速度值。协议是通过串口


回复

使用道具 举报

93

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2017-2-4 17:49:46 | 显示全部楼层
更新一下MTLAB 上位机 可以显示三维图形了,给Pitch Roll Yaw 三个参数可以显示旋转。

MATLAB GUI DIY

MATLAB GUI DIY
Guiplay 0.1.1.rar (51.03 KB, 下载次数: 9)


回复

使用道具 举报

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

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2018-9-23 23:43 , Processed in 0.153124 second(s), 20 queries , Gzip On, Redis On.

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