暂无图形化的传感器数据通用提取方法初探——K10展示
本帖最后由 许培享 于 2024-12-1 20:04 编辑暂无图形化的传感器数据通用提取方法初探——K10展示
https://v.youku.com/v_show/id_XNjQ0MTU1Njg0NA==.html
背景
DF商城有以下两款GPS导航模块:
我们在Mind+软件中选好控制器(如下图Arduino)之后,再通讯模块中很容易发现有上款模块的支持,而下款模块根本没有。
查看K10行空板,两款模块均暂无支持!要在K10中使用它们,怎么办?
最直接的办法就是请技术人员赶快编制图形化模块,然后我们拿来使用,可是这么一来可缺少了更多探索的乐趣呀~
我手头上有第二款GPS-BDS导航模块。先找来资料看看行不行。
GPS+BDS北斗双模卫星导航模块
资料中有Arduino代码:
#include <SoftwareSerial.h>
SoftwareSerial GpsSerial(11, 12); //RX,TX
void setup()
{
Serial.begin(115200); //Debug Serial
GpsSerial.begin(9600); //Gps Serial
}
void loop()
{ while (GpsSerial.available() > 0)
{
byte gpsData = GpsSerial.read();
Serial.write(gpsData);
}串口显示数据类似如下:
结合上面的链接资料,很快就能看懂串口数据的意义了,你一定会发现数据还相当丰富呢~
数据的确丰富,但是我们想提取数据中的感兴趣部分比如经度值,纬度值等,这个就需要编程熟练使用字符串函数。在资料的最后,的确有ArduinoC数据解析程序,但是它并不支持k10(MicroPython程序)。
所以,我们得尝试从K10的积木块中发现提取方法。
实践1
目标:尝试探索从电脑Mind+串口0中显示GPS数据信息
GPS-BDS模块与K10连线图:P1 作为K10接收GPS-BDS模块数据的入口(串口1),再通过K10的USB接口(串口0)连接电脑Mind+,在小黑窗口中显示GPS数据信息
Mind+代码及小黑窗口显示的GPS-BDS模块数据信息(省略前N次不成功的代码哈)
以上在K10图形化编程中实现了GPS数据整体显示。
实践2
目标:尝试探索电脑Mind+下,K10积木块有没有基本的解析GPS数据信息的能力
例:其中GPS数据有一行字符串是“$GPTXT,01,01,01,ANTENNA OK*35”(共29个字符,"OK*35"位于第25~29),指天线状态输出,ok 表示天线已经检测到,open 代表天线断开。
我们想确定"OK*35"在这一行的具体位置,如果能够准确定位,那么提取其它有用数据就不远了。
连线图等不变,只修改图形化编程。(下同)
我们发现,修改后的程序能够捕捉并准确确定"OK*35"的具体位置。
实践3
目标:提取特定行中的有用数据,如:卫星时间UTC,并处理成中国北京时间(时区东八区)显示在K10的第6行上;UTC + 时区差 = 本地时间 ;时区差东为正,西为负。在此,把东八区时区差记为 +08。
例:其中GPS数据有一行字符串是“$GNZDA,120202.000,30,11,2024,00,00*4C”,120202.0000就是UTC,所以北京时间为(12+08):02:02,即北京时间20:02:02。
以上程序合并过长,所以分段展示给读者,运行后K10上可以实时自动更新时间。
小结
至此,我们确定能够实现在K10或者其它控制器下的所有传入传感器数据的任意提取与使用!
页:
[1]