基于ARM-Linux的微惯性单元数据采集与处理
的数据可产生较好的滤波效果。通过计算得出低通滤波器的权系数ak和br,便可根据差分方程编制C语言程序。
2.4 输出数据基于Qt的界面显示
Qt是一个跨平台的C++图形界面库,主要通过汇集C++类的形式来实现应用程序界面开发所需要的一切,包括Qt/X11、Qt Embedded、Qtdesigner和Qt linguist等[4]。Qt是基于面向对象的C++语言,它提供了signal(信号)和slot(槽)的对象通信机制,具有可查询和设计的属性以及强大的事件和事件过滤器。本文主要用到其面向嵌入式开发的Qt Embedded及其设计器Qtdesigner。
Qt界面开发通常有以下步骤:
(1)用Qt生成file.ui和main.cpp;
(2)用uic生成file.h和file.cpp;
(3)用qmake生成file.pro;
(4)通过./setenv命令设置环境变量;
(5)用tmake生成二进制代码。
主函数部分如下:
int main( int argc, char ** argv)
{
QApplication a(argc, argv);
IMU_display w;
QTimer *t = new QTimer(&w );
a.connect(t,SIGNAL(timeout()),&w,SLOT(imu()));
t->start( 10, FALSE);
w.show();
a.connect(&a,SIGNAL(lastWindowClosed()),&a, SLOT(quit()) );
return a.exec();
}
IMU数据输出速率为100 Hz,将Qtimer定时器设置为10 ms刷新一次,保证数据输出的完整性。IMU数据的具体输出可以进行定制。在上位机开发完系统之后,可以利用虚拟帧缓存技术(qvfb)技术在PC机上测试Qt/Embedded 程序。经过反复的测试修改,测试成功之后制作图标和桌面启动器,通过minicom拷贝到ARM-Linux系统下的指定目录,便完成了程序的开发工作,需要注意的是交叉编译前需要将程序中上位机的串口名改为ARM开发板的指定串口名,否则程序将不会正常运行。
本文实现了ARM-Linux环境下对于MEMS IMU的数据采集处理,功耗低、成本低、体积小,可广泛应用到各种惯性测量领域。文中所述IIR数字低通滤波器,设计简单,适合运用于有用信号和噪声的频带不重叠的非高速变化运动的场合。其不足之处在于虽然可以取得较为理想的滤波效果,但同时产生了一定的延迟,所以不适合对于实时性要求很高的惯性测量场合,但可以通过改进滤波算法来实现。
- 一种基FPGA和DSP的高性能PCI数据采集处理卡设计(08-26)
- 基于LabVIEW的USB实时数据采集处理系统的实现(03-26)
- 基于DSP和USB的高速数据采集与处理系统设计(05-01)
- 基于DSP和USB的三维感应测井数据采集系统(06-14)
- 多通道同步数据采集及压缩系统(08-12)
- 基于DSP的高速数据采集系统设计方案(06-25)