不少新朋友來問,有沒有好玩的GNSS定位應(yīng)用推薦?那么不妨基于小巧易用的合宙Air530Z模組,來簡單做一個業(yè)余無線電相關(guān)的GNSS小玩具。
今天特別分享@W_Linus大佬的開源作品——基于合宙Air530Z的定位器&授時器。
1
項(xiàng)目主要準(zhǔn)備工作
基于合宙Air530Z的定位器&授時器,使用STM32G030F6P6單片機(jī)進(jìn)行數(shù)據(jù)處理以及顯示,使用0.96寸ST7735屏幕作為顯示終端,同時將GNRMC數(shù)據(jù)通過串口發(fā)送到電腦,供上位機(jī)處理,使用按鍵進(jìn)行交互。
- 主要物料 -
01. GNSS模塊:合宙Air530Z
GNSS模塊我選用了合宙的Air530Z,原因是這個模塊使用較為方便,原生支持有源GPS天線,效果OK。同時支持北斗三號、GPS以及格洛納斯系統(tǒng)。
02. 單片機(jī):STM32G030F6P6
對我來說方便開發(fā),資源充足是很重要的因素。所以我決定在STM32系列MCU里面進(jìn)行選擇,項(xiàng)目制作前期STM32的價(jià)格一直居高不下,不過STM32G0系列卻是一股清流。粗略估計(jì)了下所需要的資源后,我最終選擇了STM32G030F6P6。
03. 屏幕:0.96寸 ST7735 LCD
至于信息的顯示,肯定需要使用屏幕。不過是使用LCD還是OLED屏幕呢?我最終決定使用LCD屏幕。原因也很簡單:它可以顯示不同的色彩,制作出來的界面更加漂亮。所以,屏幕最終定型為0.96寸 ST7735 LCD屏幕。
04. 其他元器件:參見文末原工程鏈接BOM表
- 硬件設(shè)計(jì) -
大框架定下來了,我便著手進(jìn)行PCB的繪制。到目前為止,我已經(jīng)繪制了3個版本的PCB。每一次迭代的原因幾乎都是發(fā)現(xiàn)了一些之前忽略掉的,而現(xiàn)在發(fā)現(xiàn)了能難受半天的小缺陷。不過,每個版本都是可以正常使用的。
- 程序開發(fā) -
至于程序,得益于之前玩GNSS模塊的成果,沒有費(fèi)多大功夫就寫出了初版基本可用的程序。使用STM32CubeMX工具和MDK工具鏈進(jìn)行開發(fā),是大多數(shù)像我一樣的新手的選擇罷:
一開始我想著是準(zhǔn)備上RT-Thread實(shí)時系統(tǒng)的,后面又想了想感覺沒多大必要,于是就采取了裸機(jī)跑程序的方案。事實(shí)證明,沒有外加存儲器的情況下,屏幕所使用的字庫非常占用Flash空間。
當(dāng)前版本下采用O1優(yōu)化,程序大小已經(jīng)來到了驚人的31.54KB,距離塞滿我這顆32KB ROM的MCU只差一步之遙。
MCU開了兩個串口,一個用于和模塊通信,另一個與上位機(jī)進(jìn)行通信。與模塊之間的數(shù)據(jù)流是持續(xù)不斷的,所以我在這里使用了DMA來進(jìn)行串口的數(shù)據(jù)接收以減輕CPU的負(fù)擔(dān),同時避免丟失數(shù)據(jù)包。
- 硬件制作 -
既然程序準(zhǔn)備OK了,那么就等待PCB到貨進(jìn)行焊接制作了。全貼片方案果然還是使用加熱臺來進(jìn)行焊接最安逸了 :
焊接完成并且燒錄程序后,我們就得到了這樣的成果:
2
主要功能及開源交流
合宙Air530Z模塊在使用有源天線以及在存在后備電源供電的情況下時,熱啟動定位非常迅速,幾乎可以說是秒定位。不過當(dāng)模塊內(nèi)存儲的歷書過期后,使用冷啟動就要稍微慢一些了。
?
- 主要功能 -
根據(jù)功能內(nèi)容的實(shí)現(xiàn)和顯示差異,我將程序分為了如下幾個功能界面:
01.啟動界面
上電時,我們會看到一個啟動界面(飛機(jī)上未錄制,此處使用之前的圖片素材)。
02.詳細(xì)信息首界面
開機(jī)后默認(rèn)會進(jìn)入詳細(xì)信息界面:系統(tǒng)將會顯示當(dāng)前時間、速度、經(jīng)緯度以及梅登海德網(wǎng)格。最上方的狀態(tài)欄則指示了當(dāng)前定位情況、系統(tǒng)溫度(MCU內(nèi)置的溫度傳感器,使用了工廠校準(zhǔn)值)和電池剩余電量指示(電壓估算,沒有使用庫侖計(jì),因此并不精準(zhǔn),只能作為參考)。
03.日期與時間專題顯示界面
通過PCB頂部的右側(cè)按鈕可以進(jìn)行翻頁,進(jìn)入日期與時間的專題顯示。此時還可以通過頂部的左側(cè)按鈕,切換UTC時間與CST(即北京時間)。
04.速度專題顯示界面
接下來的一頁是速度的專題顯示,一共三組數(shù)值:分別是km/h、m/s和節(jié)。事實(shí)上顯示的速度換算關(guān)系并不精準(zhǔn),原因是內(nèi)容刷新時間并不一致。刷新存在先后關(guān)系,導(dǎo)致并非展示同一時刻下的數(shù)據(jù)。
05.系統(tǒng)信息顯示界面
再接下來的一頁是系統(tǒng)信息的展示,內(nèi)容有當(dāng)前系統(tǒng)溫度(對,和狀態(tài)欄上那個是一樣的)、當(dāng)前系統(tǒng)工作電壓(通過使用ADC對內(nèi)置的Vrefint通道進(jìn)行采樣,再通過內(nèi)置的通道校準(zhǔn)值來計(jì)算實(shí)際的3.3V供電電壓)、當(dāng)前電池電壓以及固件版本。
06.報(bào)文信息顯示界面
最后一頁是原始的GNSS報(bào)文展示,我這里為了解析方便,設(shè)定了模塊只使用GNRMC報(bào)文。GNRMC已經(jīng)足夠使用,缺點(diǎn)則是沒有高程信息以及衛(wèi)星數(shù)量的報(bào)告。后面如果有時間,我再嘗試加上其它報(bào)文(如GNGLL、GNGGA等)的解析功能吧。
在屏幕展示這些數(shù)據(jù)的同時,MCU與上位機(jī)通信的串口也不會閑著。它會實(shí)時轉(zhuǎn)發(fā)模塊發(fā)來的GNRMC數(shù)據(jù)包,這樣,我們將這個設(shè)備插上電腦(它自帶了CH340N芯片),便可以同步使用例如BktTimeSync之類的軟件,來利用GNSS系統(tǒng)對電腦進(jìn)行授時了。這對于在野外操作FT8等嚴(yán)格要求時序的通聯(lián)模式有較大幫助。
現(xiàn)在的固件只包含了以上功能,接下來我會嘗試?yán)^續(xù)完善這個小玩具。比如增加更多報(bào)文的解析、自定義啟動屏幕的呼號顯示等功能,再將現(xiàn)在的GUI美化一下。希望剩余的ROM還能支持我這么干~
-
STM32
+關(guān)注
關(guān)注
2272文章
10924瀏覽量
357584 -
定位器
+關(guān)注
關(guān)注
2文章
170瀏覽量
17681 -
GNSS
+關(guān)注
關(guān)注
9文章
789瀏覽量
48141
發(fā)布評論請先 登錄
相關(guān)推薦
onsemi LV/MV MOSFET 產(chǎn)品介紹 & 行業(yè)應(yīng)用
![onsemi LV/MV MOSFET 產(chǎn)品介紹 &<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>; 行業(yè)應(yīng)用](https://file.elecfans.com/web2/M00/92/72/poYBAGPzDF2APvYFAAAbxdHf0so719.png)
你要的錄音&amp;播放錄音功能,直接用!Air201資產(chǎn)定位模組LuatOS快速入門
![你要的錄音&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;播放錄音功能,直接用!<b class='flag-5'>Air</b>201資產(chǎn)<b class='flag-5'>定位</b>模組LuatOS快速入門](https://file1.elecfans.com/web2/M00/06/60/wKgZombkyvaAUaWlABZH07LDusM007.png)
合宙Air201資產(chǎn)定位模組LuatOS課程(六):PWRKEY控制解決關(guān)機(jī)難問題
![<b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air</b>201資產(chǎn)<b class='flag-5'>定位</b>模組LuatOS課程(六):PWRKEY控制解決關(guān)機(jī)難問題](https://file1.elecfans.com/web2/M00/06/60/wKgZombkyvaAUaWlABZH07LDusM007.png)
合宙Air201資產(chǎn)定位模組LuatOS快速入門(五):玩轉(zhuǎn)擴(kuò)展庫,溫濕度傳感器篇!
![<b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air</b>201資產(chǎn)<b class='flag-5'>定位</b>模組LuatOS快速入門(五):玩轉(zhuǎn)擴(kuò)展庫,溫濕度傳感<b class='flag-5'>器</b>篇!](https://file1.elecfans.com/web2/M00/06/B1/wKgZombqCumAF_bEAAGAyYKyrIM20.jpeg)
合宙Air201資產(chǎn)定位模組LuatOS課程:點(diǎn)燈儀式
![<b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air</b>201資產(chǎn)<b class='flag-5'>定位</b>模組LuatOS課程:點(diǎn)燈儀式](https://file1.elecfans.com/web2/M00/06/7A/wKgZomblR5iAPpbuAEGanfTjVEQ763.png)
合宙Air201資產(chǎn)定位模組LuatOS快速入門:GPS/LBS/Wi-Fi定位,全安排!?
![<b class='flag-5'>合</b><b class='flag-5'>宙</b><b class='flag-5'>Air</b>201資產(chǎn)<b class='flag-5'>定位</b>模組LuatOS快速入門:GPS/LBS/Wi-Fi<b class='flag-5'>定位</b>,全安排!?](https://file1.elecfans.com/web2/M00/07/4B/wKgaombkzy-ADn4aACaacZ_3_dU313.png)
從邊緣到云端,合宙DTU&amp;amp;RTU打造無縫物聯(lián)網(wǎng)解決方案
![從邊緣到云端,<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打造無縫物聯(lián)網(wǎng)解決方案](https://file1.elecfans.com/web2/M00/07/17/wKgaombil6eAEUVrAAA-jaLW4lw573.png)
GPS/LBS/Wi-Fi定位,全安排!—合宙Air201資產(chǎn)定位模組LuatOS快速入門04
![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資產(chǎn)<b class='flag-5'>定位</b>模組LuatOS快速入門04](https://file1.elecfans.com/web2/M00/06/23/wKgZombiZu2AapYTAAHolrA5H_4680.png)
FS201資料(pcb &amp; DEMO &amp; 原理圖)
測測萬用表?合宙Air9000&amp;amp;Air9000P齊出動@老陸測功耗10
![測測萬用表?<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](https://file.elecfans.com/web2/M00/43/7B/pYYBAGJ-B6aAHuNPAAAf8J1Ebk4778.jpg)
解讀北美運(yùn)營商,AT&amp;amp;T的認(rèn)證分類與認(rèn)證內(nèi)容分享
![解讀北美運(yùn)營商,AT&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;T的認(rèn)證分類與認(rèn)證內(nèi)容分享](https://file1.elecfans.com/web2/M00/EC/D0/wKgaomZgL2aALNI6AAAvUF2aXLM387.png)
評論