众所周知,业余无线电因为其通联活动的特性,每次QSO之后都需要进行日志记录。但是电波是以光速实时传输的,只需眨眼的工夫便可传遍全球。而全世界不同地区所使用的时间是不一样的,所以,为了统一,我们在业余无线电中通常使用UTC时间。
UTC时间与北京时间有着8小时的时差,计算也比较简单。但实际上每次都口算有点难受,于是我就在想能否做一个时钟来便于查询UTC时间。同时QTH也是比较重要的因素,大家在QSO中往往都会交换QTH信息。随着FT8等digi模式的风靡,梅登海德网格坐标被广泛的使用了。不过梅登海德网格的获取并不是很方便,于是我也想制作一个能够及时获取当前网格的小玩具。但是因为学校有其他事情,这个计划就暂时搁置了。
后来,看到我朋友BG5ABL在玩GNSS模块,于是我也又想起了这个项目,便着手推进。首先就是关键物料的选型:GNSS模块我选用了合宙的Air530Z,原因是这个模块使用较为方便,原生支持有源GPS天线,效果OK并且资料是全中文的方便阅读。
其次是MCU,对我来说方便开发,资源充足是很重要的一个因素。所以我决定就在STM32里面进行选择。前段时间STM32的价格一直居高不下,但STM32G0是一股清流,价格一直维持在5元以下。粗略估计了下所需要的资源后,我最终选择了STM32G030F6P6这款MCU。
大框架定下来了,我便着手进行PCB的绘制。到目前为止,我已经绘制了3个版本的PCB了。每一次迭代的原因都是发现了一些之前忽略掉的,现在发现了能难受半天的小缺陷。不过每个版本都是可以正常使用的。
PCB我使用立创EDA绘制,虽然不能和老牌商业EDA相比,但是对于我这种做小玩具的用户来说已经相当友好了。
至于程序,得益于之前玩GNSS模块的成果,没有费多大功夫就写出了初版基本可用的程序。
一开始我想着是准备上RT-Thread实时系统的,后面又想了想感觉没多大必要,于是就采取了裸机跑程序的方案。事实证明没有外加存储器的情况下,屏幕使用的字库非常占用Flash空间。当前版本下采用O1优化,程序大小已经来到了31.54KB,距离塞满我这颗32KB ROM的MCU只差一步之遥。MCU开了两个串口,一个用于和模块通信,另一个与上位机进行通信。与模块之间的数据流是持续不断的,所以我在这里使用了DMA来进行串口的数据接收以减轻CPU的负担,同时避免丢失数据包。
既然程序准备OK了,那么就等待PCB到货进行焊接制作了。
全贴片方案果然还是使用烧烤台最安逸了焊接完成并且烧录程序后,我们就得到了这样的成果。
Air530Z模块在使用有源天线以及在存在后备电源供电的情况下时,热启动定位非常迅速。几乎可以说是秒定位,不过超过模块内存储的历书的有效期后,使用冷启动就要稍微慢一些了。
我现在将程序分为了几个界面,首先上电时我们会看到欢迎界面。
开机后默认会进入详细信息界面。
在此界面下,系统将会显示当前时间,速度,经纬度以及梅登海德网格。最上方的状态栏则指示了当前定位情况,系统温度(MCU内置的温度传感器,使用了工厂校准值)和电池剩余电量指示(电压估算,没有使用库仑计,因此并不精准,只能作为参考)。
通过上方的右侧按钮可以进行翻页,第二页是日期与时间的专题显示。通过左侧按钮可以切换UTC时间与CST即北京时间。
接下来的一页是速度的专题显示,一共三组数值,分别是km/h,m/s和节,目前没有做英制单位转换,因此左侧按钮此时也没有功能。此时我坐在屋子里,可能因为信号强度不足导致定位偏移,从而产生了速度。
再接下来的一页是系统信息的展示,内容有当前系统温度(对,和状态栏上那个是一样的)、当前系统工作电压、当前电池电压以及固件版本(我这里已经迭代了6个版本,所以显示的是1.5)。
最后一页则是原始的GNSS报文展示,我这里为了解析方便,设定了模块只使用GNRMC信息。GNRMC信息已经足够使用,缺点则是没有高程信息以及卫星数量的报告。后面看有时间加上其它报文的解析功能吧。
在屏幕展示这些数据的同时,MCU与上位机通信的串口也不会闲着。它会实时转发模块发来的GNRMC数据包,这样,我们将这个设备插上电脑(它自带了CH340N芯片),便可以同步使用例如BktTimeSync之类的软件来利用GNSS系统对电脑进行授时了。这对于在野外操作FT8等严格要求时序的通联有较大帮助。
现在我就只做了这些功能,接下来我会尝试继续完善这个小玩具。比如增加更多报文的解析、自定义启动屏幕的呼号显示等功能。再把现在的GUI美化一下。希望剩余的ROM还能支持我这么干,不然我就得换STM32G031F8P6了,它能提供64KB的ROM,比现在大一倍2333.(或者直接摆烂(bushi))
同时我也正在学习SolidWorks软件的使用,想给这个小玩具做一个3D打印的外壳哈哈哈。
感谢您阅读我的流水账,我认为嵌入式与业余无线电有着密不可分的联系。通过嵌入式开发制作出有意思的玩具也能为业余无线电带来方便。
欢迎您提出建议,我们一起为新社区的建设添砖加瓦。
BH8PHG 2022/08/16