本人是一名16届智能车比赛单车组的备赛学生,竞速组选择的是单车拉力组,欢迎大佬一起交流讨论
显示屏的使用及弊端
在我们平时调车过程中,经常有一些数据需要我们观测,显示屏可以满足我们的一些需求。但是显示屏往往不能完全满足我们的需求,甚至会出现一些异常的情况,比如:程序跑飞时序混乱或者手指不小心碰到某个引脚导致花屏,屏幕刷新频率太低显示卡顿。另外,一般情况下屏幕只能显示数值,当然也可以通过编写相应函数的方式显示波形,但对单片机来说消耗有些太大,而且其波形效果也并不一定很好。因此我们可以选择使用上位机完成这些任务。
上位机
有句话说得好:最好的上位机是自己写的上位机。这句话非常对,但是对于我们这些能力有限、时间有限的菜鸡来说又怎么可能呢,我们最好的方式就是熟练使用一款相对成熟的上位机。
我一直使用的就是匿名科创的地面站,从15届智能车的K60到16届智能车的STC,我这近一年都使用的是这款上位机,使用目的就是读数据,看波形,调参,等等。
一般来说最新的版本不一定稳定,我使用的是4.34版本,性能比较稳定,对于无人机我不清楚,对于智能车来说,除摄像头外完全满足我们的需求。网上可以找到相关资源,找不到的也可以在我主页资源中下载。
匿名科创地面站(上位机)
与上位机通信的串口
匿名科创地面站一般是用串口进行通信的,串口比较简单,我只简略说一下。
近期有些车友问我波形的问题很多都查到了串口上,龙邱科技STC单片机最初给的例程里串口是有一些bug的,不过听说最近也更新了串口部分,实在不懂就好好看看串口相关东西,无非就是几个寄存器的事,最多半天就学完了。
在此我说一下波形有问题的查bug步骤:
1)波特率是否一致
2)查单个字符发送接收是否有问题
3)查字符串发送接收是否有问题
4)查往上位机发送数据的函数(通信协议)
上位机使用
点击程序设置选项,连接方式选择COM;
选择通信串口对应的串口号,并修改波特率;
我使用的是蓝牙串口,因此,要做到蓝牙、单片机串口、上位机串口波特率都一致,否则数据会出现乱码。
打开连接,点击数据波形,进入设置
根据自己使用的通信协议选择:飞控基本波形 或 用户数据波形
这个窗口其他都是一些无非紧要的设置,可以根据自己需要设定
我现在使用的是通信协议的用户F1类型,因此选择用户数据波形
点击开始显示,即可显示波形,再点击数据显示即可实时显示数据
第一次使用对应功能帧需要在高级收码中进行设置数据类型,使其数据类型与单片机发送数据类型一致
通信协议
进入程序设置,点击通信协议即可查看匿名科创上位机的通信协议
我主要使用的就是这个格式的通信,龙邱用的也是
单片机发送数据函数的编写
根据通信协议编写即可,龙邱科技在新一版STC16例程中是这样写的,不过我并没有使用过
在今年1月份,我根据以为在K60上使用经验及匿名上位机的通信协议我自己完善并新写了发送函数,可根据自己情况设定发送数据的个数,自己控制发送波形的数量,我写的函数可以做到发送 1~20+ 条数据波形同时显示,下面是使用示例(中断20ms执行一次,发送一组数据)
如果觉得我这个函数比较好并想用的话可以去我主页资源中下载
匿名科创地面站波形显示下位机数据发送函数