0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

合宙Air530Z+STM32,自制GNSS定位器&授时器

合宙LuatOS 2023-09-23 08:05 次阅读

不少新朋友来问,有没有好玩的GNSS定位应用推荐?那么不妨基于小巧易用的合宙Air530Z模组,来简单做一个业余无线电相关的GNSS小玩具。

今天特别分享@W_Linus大佬的开源作品——基于合宙Air530Z的定位器&授时器

1

项目主要准备工作


基于合宙Air530Z的定位器&授时器,使用STM32G030F6P6单片机进行数据处理以及显示,使用0.96寸ST7735屏幕作为显示终端,同时将GNRMC数据通过串口发送到电脑,供上位机处理,使用按键进行交互。

- 主要物料 -

01. GNSS模块:合宙Air530Z

GNSS模块我选用了合宙的Air530Z,原因是这个模块使用较为方便,原生支持有源GPS天线,效果OK。同时支持北斗三号、GPS以及格洛纳斯系统。

02. 单片机:STM32G030F6P6

对我来说方便开发,资源充足是很重要的因素。所以我决定在STM32系列MCU里面进行选择,项目制作前期STM32的价格一直居高不下,不过STM32G0系列却是一股清流。粗略估计了下所需要的资源后,我最终选择了STM32G030F6P6

03. 屏幕:0.96寸 ST7735 LCD

至于信息的显示,肯定需要使用屏幕。不过是使用LCD还是OLED屏幕呢?我最终决定使用LCD屏幕。原因也很简单:它可以显示不同的色彩,制作出来的界面更加漂亮。所以,屏幕最终定型为0.96寸 ST7735 LCD屏幕。

f29a2a5a-59a4-11ee-9788-92fbcf53809c.png

04. 其他元器件参见文末原工程链接BOM表

- 硬件设计 -

大框架定下来了,我便着手进行PCB的绘制。到目前为止,我已经绘制了3个版本的PCB。每一次迭代的原因几乎都是发现了一些之前忽略掉的,而现在发现了能难受半天的小缺陷。不过,每个版本都是可以正常使用的。

f2a23010-59a4-11ee-9788-92fbcf53809c.png

f2b95f56-59a4-11ee-9788-92fbcf53809c.png

- 程序开发 -

至于程序,得益于之前玩GNSS模块的成果,没有费多大功夫就写出了初版基本可用的程序。使用STM32CubeMX工具和MDK工具链进行开发,是大多数像我一样的新手的选择罢:

f2c004a0-59a4-11ee-9788-92fbcf53809c.jpg

一开始我想着是准备上RT-Thread实时系统的,后面又想了想感觉没多大必要,于是就采取了裸机跑程序的方案。事实证明,没有外加存储器的情况下,屏幕所使用的字库非常占用Flash空间。

当前版本下采用O1优化,程序大小已经来到了惊人的31.54KB,距离塞满我这颗32KB ROM的MCU只差一步之遥。

f2cdbf6e-59a4-11ee-9788-92fbcf53809c.jpg

MCU开了两个串口,一个用于和模块通信,另一个与上位机进行通信。与模块之间的数据流是持续不断的,所以我在这里使用了DMA来进行串口的数据接收以减轻CPU的负担,同时避免丢失数据包。

- 硬件制作 -

既然程序准备OK了,那么就等待PCB到货进行焊接制作了。全贴片方案果然还是使用加热台来进行焊接最安逸了 :

f2d49960-59a4-11ee-9788-92fbcf53809c.png

焊接完成并且烧录程序后,我们就得到了这样的成果:

f3052e5e-59a4-11ee-9788-92fbcf53809c.png

2

主要功能及开源交流


合宙Air530Z模块在使用有源天线以及在存在后备电源供电的情况下时,热启动定位非常迅速,几乎可以说是秒定位。不过当模块内存储的历书过期后,使用冷启动就要稍微慢一些了。

f30fa866-59a4-11ee-9788-92fbcf53809c.gif 

- 主要功能 -

根据功能内容的实现和显示差异,我将程序分为了如下几个功能界面:

01.启动界面

上电时,我们会看到一个启动界面(飞机上未录制,此处使用之前的图片素材)。

f3219c74-59a4-11ee-9788-92fbcf53809c.png

02.详细信息首界面

开机后默认会进入详细信息界面:系统将会显示当前时间、速度、经纬度以及梅登海德网格。最上方的状态栏则指示了当前定位情况、系统温度(MCU内置的温度传感器,使用了工厂校准值)和电池剩余电量指示(电压估算,没有使用库仑计,因此并不精准,只能作为参考)。

f329e5f0-59a4-11ee-9788-92fbcf53809c.gif

03.日期与时间专题显示界面

通过PCB顶部的右侧按钮可以进行翻页,进入日期与时间的专题显示。此时还可以通过顶部的左侧按钮,切换UTC时间与CST(即北京时间)。

f34910a6-59a4-11ee-9788-92fbcf53809c.gif

04.速度专题显示界面

接下来的一页是速度的专题显示,一共三组数值:分别是km/h、m/s和节。事实上显示的速度换算关系并不精准,原因是内容刷新时间并不一致。刷新存在先后关系,导致并非展示同一时刻下的数据。

f353db3a-59a4-11ee-9788-92fbcf53809c.png

05.系统信息显示界面

再接下来的一页是系统信息的展示,内容有当前系统温度(对,和状态栏上那个是一样的)、当前系统工作电压(通过使用ADC对内置的Vrefint通道进行采样,再通过内置的通道校准值来计算实际的3.3V供电电压)、当前电池电压以及固件版本。

f3900a24-59a4-11ee-9788-92fbcf53809c.png

06.报文信息显示界面

最后一页是原始的GNSS报文展示,我这里为了解析方便,设定了模块只使用GNRMC报文。GNRMC已经足够使用,缺点则是没有高程信息以及卫星数量的报告。后面如果有时间,我再尝试加上其它报文(如GNGLL、GNGGA等)的解析功能吧。

f39ca54a-59a4-11ee-9788-92fbcf53809c.gif

在屏幕展示这些数据的同时,MCU与上位机通信的串口也不会闲着。它会实时转发模块发来的GNRMC数据包,这样,我们将这个设备插上电脑(它自带了CH340N芯片),便可以同步使用例如BktTimeSync之类的软件,来利用GNSS系统对电脑进行授时了。这对于在野外操作FT8等严格要求时序的通联模式有较大帮助。

现在的固件只包含了以上功能,接下来我会尝试继续完善这个小玩具。比如增加更多报文的解析、自定义启动屏幕的呼号显示等功能,再将现在的GUI美化一下。希望剩余的ROM还能支持我这么干~

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2264

    文章

    10854

    浏览量

    354243
  • 定位器
    +关注

    关注

    2

    文章

    164

    浏览量

    17417
  • GNSS
    +关注

    关注

    9

    文章

    753

    浏览量

    47790
收藏 人收藏

    评论

    相关推荐

    onsemi LV/MV MOSFET 产品介绍 & 行业应用

    01直播介绍直播时间2024/10/281430直播内容1.onsemiLV/MVMOSFET产品优势&市场地位。2.onsemiLV/MVMOSFETRoadmap。3.onsemiT10
    的头像 发表于 10-13 08:06 226次阅读
    onsemi LV/MV MOSFET 产品介绍 &<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>; 行业应用

    你要的录音&amp;amp;播放录音功能,直接用!Air201资产定位模组LuatOS快速入门

    ​ 超低功耗、精准定位、快速量产——迷你小巧的Air201,正给越来越多的行业客户带来高效开发体验。 此前有小伙伴问:是否支持录音、播放录音功能? 高集成化设计的
    的头像 发表于 09-27 07:06 208次阅读
    你要的录音&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;播放录音功能,直接用!<b class='flag-5'>Air</b>201资产<b class='flag-5'>定位</b>模组LuatOS快速入门

    Air201资产定位模组LuatOS课程(六):PWRKEY控制解决关机难问题

    ​ 经过前面5期的课程:从hello world初体验,到点灯、远程控制,再到定位,扩展功能,是不是有点上瘾了?Air201,如同我们一路升级打怪的得力法器,让开发愈发得心应手。
    的头像 发表于 09-18 07:06 322次阅读
    <b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air</b>201资产<b class='flag-5'>定位</b>模组LuatOS课程(六):PWRKEY控制解决关机难问题

    Air201资产定位模组LuatOS快速入门:GPS/LBS/Wi-Fi定位,全安排!​

    ​  经过三期的学习:hello world、点灯、远程控制,小伙伴们是不是收获满满呢?更高阶的应用来啦! 本期,我们将学习Air201的核心功能之一 ——定位功能  
    的头像 发表于 09-14 07:56 330次阅读
    <b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air</b>201资产<b class='flag-5'>定位</b>模组LuatOS快速入门:GPS/LBS/Wi-Fi<b class='flag-5'>定位</b>,全安排!​

    从边缘到云端,DTU&amp;amp;amp;RTU打造无缝物联网解决方案

    DTU(数据传输单元)与RTU(远程终端单元)是连接边缘与云端的桥梁,是实现数据无缝流动的关键。 推出的 DTU&amp;RTU成功推动了众多企业实现了生产设备的远程监控和智能控制。
    的头像 发表于 09-12 15:27 1019次阅读
    从边缘到云端,<b class='flag-5'>合</b><b class='flag-5'>宙</b>DTU&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;RTU打造无缝物联网解决方案

    GPS/LBS/Wi-Fi定位,全安排!—Air201资产定位模组LuatOS快速入门04

    经历了hello world、点灯、远程控制三期基础教程,小伙伴们是不是收获满满,期待更高阶的应用呢? 本期,我们将学习Air201的核心功能之一 ——定位功能! 文末阅读原文,下
    的头像 发表于 09-12 12:04 993次阅读
    GPS/LBS/Wi-Fi<b class='flag-5'>定位</b>,全安排!—<b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air</b>201资产<b class='flag-5'>定位</b>模组LuatOS快速入门04

    测测万用表?功耗分析仪Air9000&;amp;amp;Air9000P齐出动

    测测万用表?功耗分析仪Air9000&;Air9000P齐出动
    的头像 发表于 09-11 18:24 590次阅读
    测测万用表?<b class='flag-5'>合</b><b class='flag-5'>宙</b>功耗分析仪<b class='flag-5'>Air9000&</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>Air</b>9000P齐出动

    Air700ECQ硬件设计手册——应用接口1

    Air700ECQ硬件设计手册——应用接口1
    的头像 发表于 08-21 18:46 297次阅读
    <b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air</b>700ECQ硬件设计手册——应用接口1

    Air201定位模组,千万不要忘记设置这个......

    Air201定位模组,千万不要忘记设置这个:AT+WIFILOC设置wifi定位优先
    的头像 发表于 08-09 18:01 1288次阅读
    <b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air</b>201<b class='flag-5'>定位</b>模组,千万不要忘记设置这个......

    FS201资料(pcb &amp;amp; DEMO &amp;amp; 原理图)

    电子发烧友网站提供《FS201资料(pcb &amp; DEMO &amp; 原理图).zip》资料免费下载
    发表于 07-16 11:24 0次下载

    测测万用表?Air9000&;amp;amp;Air9000P齐出动@老陆测功耗10

    。之前测键盘的文章,就有朋友留言说测一下万用表。安排!一起来看一下万用表的功耗表现吧~万用表功耗测试本次测评工具为功耗分析仪Air9000P、
    的头像 发表于 07-16 08:04 733次阅读
    测测万用表?<b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air9000&</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>Air</b>9000P齐出动@老陆测功耗10

    支持通话、大屏的4G-Cat.1新品——Air780EP Air780EPV来了

    打电话吗?可以支持30万摄像头吗?可以支持大屏应用吗?可以支持电信短信吗?可以支持更低功耗吗?……今天,给出的答案是:满足更多应用需求,Air780EP&;Air
    的头像 发表于 01-26 08:04 5090次阅读
    支持通话、大屏的4G-Cat.1新品——<b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air</b>780EP <b class='flag-5'>Air</b>780EPV来了

    全球最小?“花生米”4G模组——Air700EL&;amp;Air700EY全新上市

    “是花生米太大,还是Air700模组太小?” 深受工程师朋友喜爱的Air700系列迷你小封装4G模组,也被称为“花生米”。 今天,
    的头像 发表于 12-25 12:20 2560次阅读
    全球最小?<b class='flag-5'>合</b><b class='flag-5'>宙</b>“花生米”4G模组——<b class='flag-5'>Air700EL&</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>Air</b>700EY全新上市

    海外模组硬核出击,Air780UA&;amp;amp;Air780UU全新上市

    ,全新推出2款海外模组——Air780UA、Air780UU。1Air780UA/Air78
    的头像 发表于 12-14 08:04 873次阅读
    <b class='flag-5'>合</b><b class='flag-5'>宙</b>海外模组硬核出击,<b class='flag-5'>Air780UA&</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>Air</b>780UU全新上市

    海外模组硬核出击,Air780UA&;amp;Air780UU全新上市

    、欧洲地区,全新推出2款海外模组——Air780UA、Air780UU。 1 Air780UA/Ai
    的头像 发表于 12-13 16:25 1332次阅读
    <b class='flag-5'>合</b><b class='flag-5'>宙</b>海外模组硬核出击,<b class='flag-5'>Air780UA&</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>Air</b>780UU全新上市