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

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

3天内不再提示

大佬自制GNSS定位器 授时器 基于合宙Air530Z+STM32

合宙LuatOS 来源:@W_Linus 作者:@W_Linus 2023-09-22 12:10 次阅读

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

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

项目主要准备工作

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

- 主要物料 -

01. GNSS模块:合宙Air530Z

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

aaab5f2c-58fd-11ee-939d-92fbcf53809c.png

02. 单片机:STM32G030F6P6

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

03. 屏幕:0.96寸 ST7735 LCD

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

ab68e6c8-58fd-11ee-939d-92fbcf53809c.png

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

- 硬件设计 -

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

abf7f41c-58fd-11ee-939d-92fbcf53809c.png

ac42b54c-58fd-11ee-939d-92fbcf53809c.png

- 程序开发 -

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

ac91aefe-58fd-11ee-939d-92fbcf53809c.jpg

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

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

acc9dbb2-58fd-11ee-939d-92fbcf53809c.jpg

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

- 硬件制作 -

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

ad05ca00-58fd-11ee-939d-92fbcf53809c.png

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

ada228b4-58fd-11ee-939d-92fbcf53809c.png

2

主要功能及开源交流

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

- 主要功能 -

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

01.启动界面

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

ae740c4e-58fd-11ee-939d-92fbcf53809c.png

02.详细信息首界面

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

af24483e-58fd-11ee-939d-92fbcf53809c.gif

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

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

afd0616e-58fd-11ee-939d-92fbcf53809c.gif

04.速度专题显示界面

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

b0cfc956-58fd-11ee-939d-92fbcf53809c.png

05.系统信息显示界面

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

b1954492-58fd-11ee-939d-92fbcf53809c.png

06.报文信息显示界面

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

b254b7a0-58fd-11ee-939d-92fbcf53809c.gif

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

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

- 开源交流 -

同时我也正在学习SolidWorks软件的使用,想给这个小玩具做一个3D打印的外壳。目前本项目已开源,欢迎感兴趣的朋友一起来交流。

特别感谢@W_Linus大佬
期待更多精彩作品

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

    关注

    146

    文章

    16019

    浏览量

    343649
  • STM32
    +关注

    关注

    2240

    文章

    10674

    浏览量

    348788
  • 定位器
    +关注

    关注

    2

    文章

    155

    浏览量

    16498
  • GNSS
    +关注

    关注

    9

    文章

    623

    浏览量

    47257
  • 合宙通信
    +关注

    关注

    0

    文章

    120

    浏览量

    1499

原文标题:开源 | 合宙Air530Z+STM32,自制GNSS定位器&授时器

文章出处:【微信号:HelloLuatOS,微信公众号:合宙LuatOS】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何依托软件引擎高效完成GNSS仿真?#GNSS仿真 #GNSS模拟 #GNSS #GNSS模拟

    模拟GNSS
    虹科卫星与无线电通信
    发布于 :2024年04月11日 18:24:01

    基于软件定义架构的GNSS模拟——GSG-721开箱大揭秘!#GNSS模拟 #GNSS仿真 #导航 #定位

    软件GNSS
    虹科卫星与无线电通信
    发布于 :2024年03月14日 10:24:46

    用3.8元国产芯片合宙Air32自制轮腿机器人,靠谱吗?!

    在漫天飞舞的银杏叶中,为你跳“华尔兹”的可能是——可爱的机器人小伙伴?闪耀的科技之光,让梦想照进现实。今天 特别分享 @维少爷的极客小窝大佬 的最新佳作,愿你也喜欢。 合宙Air32国产芯片自制
    的头像 发表于 12-22 12:20 423次阅读
    用3.8元国产芯片合宙<b class='flag-5'>Air</b>32<b class='flag-5'>自制</b>轮腿机器人,靠谱吗?!

    GNSS定位导航原理详解

    全球卫星导航系统(GNSS)是为全球用户提供全天候、全天时、高精度的定位、导航和授时服务的国家重要时空基础设施。通过接收GNSS卫星播发的信号,进行测时和测距,也就是
    的头像 发表于 12-20 13:37 607次阅读
    <b class='flag-5'>GNSS</b><b class='flag-5'>定位</b>导航原理详解

    除了定位导航,北斗卫星还能授时

    咱们来聊一聊授时。       实际上,导航卫星(如北斗)提供的是授时信息,手机从授时信息中导出位置信息,导航APP再根据位置信息提供日常的定位、导航功能。       大家对导航
    的头像 发表于 11-24 15:04 375次阅读
    除了<b class='flag-5'>定位</b>导航,北斗卫星还能<b class='flag-5'>授时</b>?

    一文解读GNSS信号对网络中授时应用的益处

    涨知识 | 一文解读GNSS信号对网络中授时应用的益处
    的头像 发表于 11-24 14:26 258次阅读
    一文解读<b class='flag-5'>GNSS</b>信号对网络中<b class='flag-5'>授时</b>应用的益处

    模组的python可编程rtu发布了,满足用户的期待##单片机 #RTU #python编程

    编程通信
    苏州煜瑛微电子科技有限公司
    发布于 :2023年10月09日 17:35:22

    对干扰SAY NO!虹科Safran GNSS模拟将提供伽利略OS-NMA功能(一)

    新一代卫星应用程序依赖灵活且准确的GNSS信号作为许多关键项目的重点要素,以确保高精度的定位、导航和授时(PNT)数据。虹科Safran提供了GNSS仿真测试解决方案,旨在确保复杂
    的头像 发表于 09-23 08:07 336次阅读
    对干扰SAY NO!虹科Safran <b class='flag-5'>GNSS</b>模拟将提供伽利略OS-NMA功能(一)

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

    ——基于合宙Air530Z的定位器&授时器,感兴趣的朋友请戳文末“阅读原文”下载最新资料。1项目主要准备工作基于合宙Air530Z的定位器&
    的头像 发表于 09-23 08:05 1509次阅读
    合宙<b class='flag-5'>Air530Z+STM32</b>,<b class='flag-5'>自制</b><b class='flag-5'>GNSS</b><b class='flag-5'>定位器</b>&amp;amp;<b class='flag-5'>授时</b>器

    对干扰SAY NO!GNSS模拟将提供伽利略OS-NMA功能(一)

    新一代卫星应用程序依赖灵活且准确的GNSS信号作为许多关键项目的重点要素,以确保高精度的定位、导航和授时(PNT)数据。虹科Safran提供了GNSS仿真测试解决方案,旨在确保复杂
    的头像 发表于 09-23 08:05 311次阅读
    对干扰SAY NO!<b class='flag-5'>GNSS</b>模拟将提供伽利略OS-NMA功能(一)

    Air001在Arduino下的测试IIC工程

    本帖最后由 大懒猫54 于 2023-8-23 11:57 编辑 测试使用Air001开发板,使用PF0,PF1对应的IIC接口,测试0.96英寸的OLED。下载器使用
    发表于 08-23 11:56

    模拟量模块两个小定位器的使用方法#硬声创作季

    定位器
    或许
    发布于 :2023年06月28日 07:54:14

    北斗授时系统是怎样实现授时功能的?

    授时是卫星导航系统的重要功能,授时精度与定位精度、测速精度被称为导航定位系统的三大指标。
    的头像 发表于 06-14 14:20 1030次阅读

    900g大负载型压电物镜定位器

    什么是压电物镜定位器? 压电物镜定位器是专门为物镜聚焦显微而设计的,采用无回差柔性铰链并联导向机构设计,物镜补偿量较小,具有超高聚焦稳定性,物镜定位器装入显微检测/测量或者观测装置,可带动物镜聚焦
    的头像 发表于 06-08 09:51 435次阅读
    900g大负载型压电物镜<b class='flag-5'>定位器</b>!

    【开源】基于Air32F103CBT6的DAPLink开发板 多功能高速下载烧录

    DAPLink是ARM官方开源的一个调试方案,可以用来调试arm cortex内核的几乎所有单片机,最新出的M33,M85内核也支持调试。 这是一款由官方,基于ARM官方代码将其移植至
    发表于 06-05 17:53