焊板子、擼代碼、寫(xiě)文章——LuatOS社群工程師們熱火朝天的2022虎年春節(jié)寫(xiě)照。無(wú)論何時(shí)何處,心里總?cè)紕?dòng)著靈魂之舞,沒(méi)有什么能阻擋真正的熱愛(ài)!
今天特別帶來(lái)喬幫主喬工關(guān)于合宙Air551G雙頻定位開(kāi)發(fā)板的試用分享,一篇詳實(shí)易懂的用心之作,尤其適合新上手的朋友們。
1
Air551G開(kāi)發(fā)板試用分享
一、開(kāi)箱
合宙挺給力,節(jié)前就拿到了這塊Air551G開(kāi)發(fā)板,板子制作的不錯(cuò),和我其他的板子對(duì)比起來(lái),感覺(jué)高級(jí)不少。
左邊是Air551G,右邊是我另外其他廠家一個(gè)型號(hào)的。
二、連線
美中不足的是,它的連接線是5針1.25mm的傳感器接口,拿到后,可能沒(méi)有合適的線(年前活動(dòng)未能同步發(fā)出,年后有配套接線)。有的同學(xué),直接把接頭口給取下來(lái),直接焊線了。
我手頭剛好有6針的接頭,剪斷一根,削了一針變5針,剛剛好用。
然后把剪斷的部分,對(duì)接上標(biāo)準(zhǔn)的杜邦線,方便接在其他開(kāi)發(fā)板上使用。當(dāng)然,如果本身就有對(duì)應(yīng)的1.25接口,那更好了。
初次使用,看了說(shuō)明書(shū),可以當(dāng)一個(gè)普通的串口設(shè)備使用,那就先直接用USB2TTL連接,進(jìn)行調(diào)試好了。等弄清楚了,再上開(kāi)發(fā)板也不遲。
Air551G開(kāi)發(fā)板有五個(gè)引腳,其中VCC使用3.3V或者5V電源均可,GND接地,PPS暫時(shí)不用,RX、TX接其他設(shè)備的對(duì)應(yīng)的TX、RX即可。
三、串口連接使用
這個(gè)開(kāi)發(fā)板,串口波特率默認(rèn)情況下,選擇115200即可,打開(kāi)串口,就能看到信息Biu Biu Biu的發(fā)過(guò)來(lái)了。
通過(guò)Air551G的手冊(cè),我們可以知道,它是主動(dòng)上報(bào)信息的。通電后,就會(huì)自動(dòng)通過(guò)串口上報(bào)獲取到的定位相關(guān)信息。
收不到定位信息如何解決?
初次使用,如果簡(jiǎn)單了解過(guò)這些信息的格式,可能會(huì)郁悶:怎么沒(méi)有成功定位啊,定位到的經(jīng)緯度信息,怎么都是0呢?
這是因?yàn)?,一個(gè)單純的GPS定位模塊,需要在室外使用,越開(kāi)闊的地方越好。而我們常用的手機(jī)上使用了基站、WIFi等輔助定位,在室內(nèi)也通??梢远ㄎ?,但是在地下車(chē)庫(kù)或者隧道里面,或者信號(hào)不好的地方,輔助也不給力,也不能定位了。
那就把Air551放到窗外即可:
不一會(huì)兒,串口收到的信息,就發(fā)生了變化,數(shù)字部分,豐富多了。
串口收到的這些信息,就是導(dǎo)航衛(wèi)星發(fā)送的電文信息,也就是NMEA協(xié)議報(bào)文。
通常情況下,會(huì)包含如下的報(bào)文:
定位模塊都會(huì)主動(dòng)獲取衛(wèi)星定位系統(tǒng)的報(bào)文信息,然后通過(guò)串口上報(bào)。
上面的報(bào)文信息,會(huì)分為幾類:
1)定位信息:**GGA,通常使用;
2)當(dāng)前衛(wèi)星信息:**GSA,一般可以忽略,調(diào)試需要;
3)推薦定位信息:**RMC;
4)地面速度信息:**VTG;
5)可見(jiàn)衛(wèi)星信息:**GSV,一般可以忽略,調(diào)試需要。
如果是通過(guò)單一的衛(wèi)星導(dǎo)航系統(tǒng)定位,則上面的**為對(duì)應(yīng)衛(wèi)星導(dǎo)航系統(tǒng)的標(biāo)識(shí),如果是多系統(tǒng)定位的話,那么1-4的**會(huì)是GN,5則為各衛(wèi)星導(dǎo)航系統(tǒng)的標(biāo)識(shí)。
衛(wèi)星導(dǎo)航系統(tǒng)通用標(biāo)識(shí)
-
GN:全球?qū)Ш叫l(wèi)星系統(tǒng)GNSS;
-
GP:美國(guó)全球定位系統(tǒng)GPS;
-
GL:俄羅斯全球軌道導(dǎo)航衛(wèi)星系統(tǒng)格洛納斯GLONAS;
-
BD:中國(guó)的北斗衛(wèi)星導(dǎo)航系統(tǒng)BDS;
-
GA:歐盟伽利略衛(wèi)星導(dǎo)航系統(tǒng)GALILEO,全球覆蓋,問(wèn)題較多;
-
IRN:印度區(qū)域衛(wèi)星導(dǎo)航系統(tǒng)IRNSS,范圍較小,印度本土及周邊、印度洋區(qū)域;
-
QZ:日本準(zhǔn)天頂衛(wèi)星導(dǎo)航系統(tǒng)QZSS,是美國(guó)GPS的輔助系統(tǒng),主要服務(wù)日本,亦覆蓋東亞、澳洲等地。
Air551G支持的衛(wèi)星定位導(dǎo)航系統(tǒng),包括:GPS、BDS、GLONAS、GALILEO、IRNSS等。在北京地區(qū),GPS、BDS、GLONAS、GALILEO都能搜到對(duì)應(yīng)的衛(wèi)星,IRNSS沒(méi)有見(jiàn)到過(guò)。
在上述的報(bào)文信息中,我們可以看到GP、GL、GA、BD等GSV信息,對(duì)應(yīng)的就是當(dāng)前位置,可見(jiàn)的各衛(wèi)星導(dǎo)航系統(tǒng)的衛(wèi)星信息。其中,我們可以看到有BDGSC,5開(kāi)頭的BDGSC,5,1至BDGSC,5,5,這個(gè)就是一組北斗導(dǎo)航衛(wèi)星,當(dāng)前有5顆能為我們提供服務(wù)。
但是,其中還有BDGSV開(kāi)頭的信息,這是因?yàn)樾l(wèi)星導(dǎo)航系統(tǒng)有不同的頻段,提供差異性的服務(wù),也包括系統(tǒng)升級(jí)和增強(qiáng)對(duì)不同接收端系統(tǒng)的兼容。
通過(guò)Air551G提供的資料,我們了解到,支持的北斗導(dǎo)航,包括:BD B1I、BD B1C、BD B2A、BD B2B等。
報(bào)文信息的具體資料,可以查看合宙提供的資料:
《 2_GK9701輸入輸出格式文檔V1.0.pdf 》中關(guān)于NMEA協(xié)議部分的詳細(xì)說(shuō)明。
四、經(jīng)緯度信息到地圖坐標(biāo)轉(zhuǎn)換
以上報(bào)文信息中的GGA部分信息:
$GNGGA,063508.000,??53.35241,N,??638.40280,E,1,13,1.15,36.02,M,-5.15,M,,*58
E/W之前的為經(jīng)度信息,N/S之前的為維度信息,GPS拿到的經(jīng)緯度信息,需要經(jīng)過(guò)轉(zhuǎn)換兩次后,才能在百度地圖或者其他地圖上使用。
地圖坐標(biāo)轉(zhuǎn)換示例
假設(shè)取到的原始坐標(biāo)為:
lng0=11626.27158
lat0=3954.85016
第一次轉(zhuǎn)換為WGS84坐標(biāo)系通用格式:
GPS模塊經(jīng)緯度換算說(shuō)明,可參考網(wǎng)址:
http://www.gnss-module.com/news/47-cn.html
(Math.floor表示取整)
lng1_d=Math.floor(lng0/100) = 116
lng1_m= (lng0-lng1_d*100)/60 = 0.43786
lng1=lng1_d+lng1_m=116.43786
lat1_d=Math.floor(lat0/100) = 39
lat1_m= (lat0-lat1_d*100)/60 = 0.91417
lat1=lat1_d+lat1_m=39.91417
第二次轉(zhuǎn)換為百度地圖坐標(biāo)系:
使用網(wǎng)頁(yè)轉(zhuǎn)換工具地圖坐標(biāo)系轉(zhuǎn)換,參考網(wǎng)址:
https://tool.lu/coordinate/
通過(guò)上述轉(zhuǎn)換工具,可以轉(zhuǎn)換為各地圖軟件的坐標(biāo)系;或者也可以在各地圖開(kāi)發(fā)者服務(wù)中申請(qǐng)對(duì)應(yīng)的API接口。
使用上述網(wǎng)頁(yè)進(jìn)行轉(zhuǎn)換時(shí),記住我們要選擇WGS84坐標(biāo)系:
轉(zhuǎn)換后的百度坐標(biāo)地址為:
經(jīng)度=116.45054049919501
維度=39.921605252645946
然后,我們?nèi)グ俣鹊貓D上,使用經(jīng)緯度進(jìn)行定位,看看是否準(zhǔn)確:
該定位地址,就是我們?cè)嫉慕?jīng)緯度信息對(duì)應(yīng)的實(shí)際百度地圖位置。
五、NaviTrack基本使用
通過(guò)串口工具,能夠正常收到Air551G的信息后,我們就可以使用NaviTrack工具來(lái)更有效的獲取調(diào)試信息了。
先關(guān)閉串口工具,再打開(kāi)NaviTrack,選擇正確的串口和波特率,Connect后,界面如下:
注意:需要運(yùn)行一段時(shí)間,且Air551G在室外,才能獲得豐富的定位信息。
在以上界面中,各子窗口展示功能:
1)Navi CMD:用于給Air551G發(fā)送命令;
2)Track:表示每次輸出經(jīng)緯度坐標(biāo)點(diǎn)在一個(gè)基準(zhǔn)位置的散落情況;
3)Signal:表示各導(dǎo)航衛(wèi)星的信號(hào)情況;
4)NAME info:對(duì)串口中的信息進(jìn)行了整理輸出,更便于查看分析;
5)Fix mode:修正模式;
6)Sky view:當(dāng)前可見(jiàn)衛(wèi)星一覽。
如果Sky view中,沒(méi)有顯示到衛(wèi)星,那么定位就不能進(jìn)行,NAME info部分的經(jīng)緯度信息,就會(huì)不顯示或者顯示為0,同時(shí)Singal部分也會(huì)沒(méi)有信息。
六、指令發(fā)送:
在Navi CMD界面中,我們可以給Air551G發(fā)送指令。
重置設(shè)備指令示例
如果要重置設(shè)備,我們可以發(fā)送指令:
PGKC030,4,2
其中:030表示指令編號(hào);4,2表示硬重啟,也就是恢復(fù)到出廠模式。
在串口工具中,我們也可以發(fā)送該指令,但是其格式為完整格式:
$PGKC030,4,2*2A[CR][LF]
而Navi CMD會(huì)自動(dòng)幫我們處理$和*后面的內(nèi)容,并自動(dòng)添加回車(chē)換行[CR][LF];*后面的2A,表示 $和*中間部分的BCC校驗(yàn)(異或校驗(yàn))結(jié)果。
如果不了解如何進(jìn)行BCC校驗(yàn),可以通過(guò)網(wǎng)頁(yè)進(jìn)行計(jì)算。
BCC校驗(yàn)(異或校驗(yàn))在線計(jì)算參考網(wǎng)址:
http://www.ip33.com/bcc.html
由此我們也可以知道,給Air551G發(fā)送指令,其格式為:
$PGKC指令編號(hào),參數(shù)1,參數(shù)2,...,參數(shù)n*BCC校驗(yàn)碼[CR][LF]
注意,其中的參數(shù)1~n,均為十六進(jìn)制,BCC校驗(yàn)碼,也為16進(jìn)制。(10進(jìn)制的10為16進(jìn)制的A)。
我們還可以再分別嘗試兩條指令,用于查看只使用北斗導(dǎo)航和所有衛(wèi)星導(dǎo)航的區(qū)別。
注意:在串口工具中,需要輸入完整的指令;在Navi CMD中,只用輸入$和*中間的部分即可。
只使用北斗導(dǎo)航示例
先試第一條,設(shè)置只使用北斗導(dǎo)航:
$PGKC121,0,8,0*39
執(zhí)行該指令后,NaviTrack的NMEA info和Sky view界面會(huì)發(fā)生如下變化:
因?yàn)閯偛艌?zhí)行的那一條指令,表示只使用L1的BD導(dǎo)航,所以現(xiàn)在只顯示了北斗導(dǎo)航的衛(wèi)星。
同樣的,如果我們使用串口工具發(fā)送指令后,會(huì)看到如下返回:
可以看到,報(bào)文中,就只有BD的信息了。
注意:使用串口工具,一定要勾選尾部添加CRLF,否則指令無(wú)效。
使用所有衛(wèi)星導(dǎo)航示例
我們?cè)趫?zhí)行使用所有衛(wèi)星導(dǎo)航指令后,上述界面中的衛(wèi)星,又會(huì)變得多了起來(lái)。
$PGKC121,5,3F,3F*34
以上展示了基本的指令使用,在前面的《2_GK9701輸入輸出格式文檔V1.0.pdf》中,有詳細(xì)的指令說(shuō)明,有需要可以仔細(xì)研讀。
另外,出廠情況下,串口上報(bào)的信息會(huì)盡可能豐富,但是我們?cè)趯?shí)際使用中,如前面對(duì)報(bào)文簡(jiǎn)介所說(shuō)的,很多只是調(diào)試使用,實(shí)際使用時(shí)不用。我們可以使用輸出控制指令,設(shè)置需要輸出哪些信息即可。
具體指令格式為:
實(shí)際上,9-21位的0,并不需要輸入,我們只輸入1-8位即可,1表示開(kāi)啟對(duì)應(yīng)的輸出,0表示關(guān)閉對(duì)應(yīng)的輸出。
GGA獲取經(jīng)緯度信息示例
在實(shí)際使用中,我們只需要通過(guò)GGA獲取經(jīng)緯度信息即可,那么發(fā)送的指令如下:
$PGKC242,0,0,0,1,0,0*2A
如果我們要把調(diào)試的信息都發(fā)出來(lái),則使用如下的指令:
$PGKC242,1,1,1,1,1,1*2B
再次提醒:
在串口工具中,需要輸入完整的指令;在Navi CMD中,只需要輸入$和*之間的部分(不包含$和*)即可。
設(shè)置只輸出GGA信息后,我們就可以使用其他開(kāi)發(fā)板的串口來(lái)連接Air551G,通過(guò)串口讀取即可。
到這里,我們了解了如何通過(guò)串口上報(bào)的報(bào)文,獲取經(jīng)緯度信息,以及通過(guò)發(fā)送對(duì)應(yīng)的指令來(lái)控制Air551G的運(yùn)行模式了。
后續(xù)通過(guò)合宙的其他LuatOS開(kāi)發(fā)板,或者M(jìn)icroPython類的開(kāi)發(fā)板,都能非常方便的獲取定位信息。再結(jié)合屏幕,就能夠進(jìn)行實(shí)際的定位展示了。
今天的分享就先到這里了,希望對(duì)大家有幫助,一起多交流~
-
開(kāi)發(fā)板
+關(guān)注
關(guān)注
25文章
5093瀏覽量
97802
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論