嗯,最近一直想弄个出行的导航系统,骑车一族嘛,出去玩肯定要带点设备。 昨天晚上玩QT4突然想研究一下串口,嘿嘿,正好,就利用QT4来做一个电子指南针的上位机。 首先要安装QT4的环境,apt-get install qt4-designer qt4-qmake等,我是安装了这些……大家可以做个参考……
安装好后,就可以在开始菜单的编程工具里找到
嗯,打开QT设计器,就可以看到一个比较眼熟的窗口设计界面了~ 那么我们就来写个窗口吧~有UI设计绘制窗口还是很容易的。当然,对于QT我只是个新手,神马类神马指针我几乎都不懂,唯一记得比较清楚的是信号槽…… 好了不扯淡了,速战速决,我手上有个指南针模块,可以用串口和IIC来通讯,为了方便直接用串口。
这个模块是GY-26的指南针模块,可以在X宝上买到。
连接模块上的TX和RX到香蕉派的串口Rx和Tx上,这里我为了方便用是接了个PL2303的USB转串口模块,所以一会用的串口终端是/dev/ttyUSB0 那QT4怎么用串口呢?对于一个新手来说要自己写出来肯定是不太可能。没关系,百度! 直接百度个QT4串口,拿回来自己看着研究,然后修改……【这里我用的是lincom的开源串口调试助手程序,在此感谢原作者】
开源的好处就是酱紫,程序的一些功能不是自己需要的或者缺少自己需要的就可以随意修改为自己需要的功能。 最后我是改成了这一个样子……中间加了一个Dial组件,用来做指南针的指针盘,以及在最下面放了个角度显示的文本框,以及最后考虑到可能我会在树莓派上用以及为了看着方便添加了个隐藏其他多余内容的选择框。 然后修改代码,在原来的程序里写一些转换的操作和对控件的控制。 主要增加了这些内容:
在接收处理里写一些类型转换,把接收到的信息进行处理最后传递给dial和spinBox两个控件来显示方向信息。
其中,printf大家可以自己删掉,那是我写这段代码时为了方便调试写的,在终端输出一些数据。
最后编译运行。如果一切顺利的话,就可以看到窗口了
然后选好串口,设置好波特率点击绿色的打勾按钮打开串口,然后会有提示框
串口打开后在发送数据那输入1,因为模块的控制是被动的,你发送一个控制指令他才会返回对应的数据,1是控制输出角度信息。 最后点连续发送让程序自动发送控制指令,这样就可以实时的获取传感器的信息了。 为了方便查看我们可以点击右下角的隐藏选择框把串口的其他没必要的东西隐藏起来,需要显示的时候点击菜单的关于里选隐藏其他就可以重新显示。
|