91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

LuatOS exgnss擴(kuò)展庫(kù)實(shí)戰(zhàn)進(jìn)階:GNSS功能開(kāi)發(fā)全流程!

合宙LuatOS ? 來(lái)源:合宙LuatOS ? 作者:合宙LuatOS ? 2025-11-14 15:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

GNSS功能開(kāi)發(fā)涉及多環(huán)節(jié)協(xié)同,LuatOS exgnss擴(kuò)展庫(kù)是其中的關(guān)鍵樞紐。本文以全流程探秘形式,從硬件準(zhǔn)備、固件燒錄到代碼實(shí)現(xiàn),詳解exgnss庫(kù)的setup配置、模式生命周期管理及定位數(shù)據(jù)處理,融入?yún)f(xié)程調(diào)度與消息機(jī)制,為進(jìn)階開(kāi)發(fā)者提供深度洞察,提升開(kāi)發(fā)效率與系統(tǒng)性能。

一、GNSS 概述

GPS 最先來(lái)自美國(guó),1978 年,美國(guó)發(fā)射了第一顆 GPS 衛(wèi)星,發(fā)明和實(shí)踐了衛(wèi)星定位技術(shù)。衛(wèi)星定位技術(shù)原理是,覆蓋全球的多顆定位衛(wèi)星連續(xù)發(fā)射一定頻率的無(wú)線電信號(hào),移動(dòng)終端上集成便攜式衛(wèi)星信號(hào)接收機(jī),接收機(jī)接收衛(wèi)星信號(hào)并測(cè)量衛(wèi)星到終端接收機(jī)之間的距離,最終由移動(dòng)終端利用多顆衛(wèi)星位置和與這些衛(wèi)星的距離計(jì)算出移動(dòng)終端的具體位置。后來(lái)出現(xiàn)了歐洲的 Galileo、俄羅斯的 GLONASS、中國(guó)的北斗等,所以如今的 GPS 實(shí)質(zhì)上是作為一個(gè)衛(wèi)星定位技術(shù)體系 GNSS 的代名詞,而不是單只美國(guó)的 GPS 系統(tǒng)。

GNSS 提供的服務(wù)包括定位、授時(shí)和導(dǎo)航。定位服務(wù)就是 GNSS 終端獲得其位置的服務(wù),授時(shí)服務(wù)就是 GNSS 終端獲得正確時(shí)間的服務(wù),導(dǎo)航服務(wù)是計(jì)算 GNSS 終端速度和運(yùn)動(dòng)方向的服務(wù)。GNSS 不限制終端數(shù),在 GNSS 衛(wèi)星信號(hào)不被阻擋的情況下,在地球上任何地點(diǎn)、任何時(shí)間,任何 GNSS 終端都可以得到正確的位置和時(shí)間。定位只需要一個(gè)條件,那就是能夠接收到足夠多的衛(wèi)星信號(hào)。因此在室內(nèi)通常無(wú)法定位。

Air8000 作為集成了 4G、Wi-Fi、BLE、GNSS(全球?qū)Ш叫l(wèi)星系統(tǒng))等多功能的高性能工業(yè)引擎,其內(nèi)置的 GNSS 模塊能夠提供穩(wěn)定、準(zhǔn)確的定位服務(wù)。

二、演示功能概述

使用 Air8000 開(kāi)發(fā)板,single 示例主要是展示 exgnss 庫(kù)的三種應(yīng)用模式,

exgnss.DEFAULT 模式

exgnss.TIMERORSUC 模式

exgnss.TIMER 模式

主要操作為:

1、打開(kāi)三種應(yīng)用模式

2、等待 40 秒關(guān)閉操作 TIMER 模式

3、然后查詢(xún)?nèi)N應(yīng)用模式是否處于激活模式

4、等待 10 秒關(guān)閉全部應(yīng)用模式,再次查詢(xún)?nèi)N模式是否處于激活模式

5、然后獲取最后一次的定位經(jīng)緯度數(shù)據(jù)打印

6、定位成功之后使用 exgnss 庫(kù)獲取 gnss 的 rmc 數(shù)據(jù)

combination 示例主要展示幾種不同的應(yīng)用場(chǎng)景:

第一種場(chǎng)景是:正常模式,第一步先是通過(guò) tcp_client_main 文件連接服務(wù)器,然后第二步模塊會(huì)配置 GNSS 參數(shù),開(kāi)啟 GNSS 應(yīng)用,第三步會(huì)開(kāi)啟一個(gè) 60s 的定時(shí)器,定時(shí)器每 60s 會(huì)打開(kāi)一個(gè) 60sTIMERRORSUC 應(yīng)用,第四步定位成功之后關(guān)閉 GNSS,然后獲取 rmc 獲取經(jīng)緯度數(shù)據(jù),發(fā)送經(jīng)緯度數(shù)據(jù)到服務(wù)器上。

第二種場(chǎng)景是:低功耗模式,第一步先是通過(guò) tcp_client_main 文件連接服務(wù)器,然后第二步模塊會(huì)配置 GNSS 參數(shù),開(kāi)啟 GNSS 應(yīng)用,第三步會(huì)開(kāi)啟一個(gè) 60s 的定時(shí)器,定時(shí)器每 60s 會(huì)進(jìn)入正常模式,打開(kāi)一個(gè) 60sTIMERRORSUC 應(yīng)用,第四步定位成功之后關(guān)閉 GNSS,然后獲取 rmc 獲取經(jīng)緯度數(shù)據(jù),發(fā)送經(jīng)緯度數(shù)據(jù)到服務(wù)器上,進(jìn)入低功耗模式。

第三種場(chǎng)景是:PSM+ 模式,喚醒之后第一步是配置 GNSS 參數(shù),開(kāi)啟 GNSS 應(yīng)用,第二步定位成功之后關(guān)閉 GNSS,然后獲取 rmc 獲取經(jīng)緯度數(shù)據(jù),拼接喚醒信息和經(jīng)緯度信息,連接服務(wù)器,然后把數(shù)據(jù)發(fā)送數(shù)據(jù)到服務(wù)器上,配置休眠喚醒定時(shí)器 ,進(jìn)入飛行模式,然后進(jìn)入 PSM+ 模式。

第四種場(chǎng)景是:三軸加速度的應(yīng)用場(chǎng)景,第一步先是通過(guò) tcp_client_main 文件連接服務(wù)器,第二步配置 GNSS 參數(shù),打開(kāi)內(nèi)部加速傳感器,設(shè)置防抖和中斷模式,關(guān)于中斷觸發(fā)提供了兩種方案,有效震動(dòng)模式和持續(xù)震動(dòng)檢測(cè)模式,第三步檢測(cè)到有效震動(dòng)或者持續(xù)震動(dòng)后,打開(kāi) GNSS,每隔 5s 獲取 rmc 獲取經(jīng)緯度數(shù)據(jù),發(fā)送經(jīng)緯度數(shù)據(jù)到服務(wù)器上。

三、準(zhǔn)備硬件環(huán)境

本篇教程用 Air8000 開(kāi)發(fā)板來(lái)開(kāi)發(fā)調(diào)試。

1. Air8000 開(kāi)發(fā)板

2. GNSS 天線

四、準(zhǔn)備軟件環(huán)境

1. 燒錄工具Luatools;

2. 內(nèi)核固件文件(底層 core 固件文件):LuatOS-SoC_V2014_Air8000;此頁(yè)面有新版本固件的話選用最新版本固件,本次操作用的是 101 號(hào)固件,可以根據(jù)自己的需求選擇自己需要的固件。

3. LuatOS 需要的腳本和資源文件:https://gitee.com/openLuat/LuatOS/tree/master/module/Air8000/demo/gnss

4. lib 腳本文件:使用 Luatools 燒錄時(shí),勾選 添加默認(rèn) lib 選項(xiàng),使用默認(rèn) lib 腳本文件,如果沒(méi)有下載最新的 lib,可以在 luatos 庫(kù)里面下載最新的 lib 使用:https://gitee.com/openLuat/LuatOS/tree/master/script/libs;

準(zhǔn)備好軟件環(huán)境之后,接下來(lái)查看如何燒錄項(xiàng)目文件到 Air8000 開(kāi)發(fā)板中,將本篇文章中演示使用的項(xiàng)目文件燒錄到 Air8000 開(kāi)發(fā)板中。

五、GNSS 軟硬件參考

5.1 API 接口介紹

本教程使用 api 接口為:

https://docs.openluat.com/osapi/ext/exgnss/

5.2 GNSS 硬件設(shè)計(jì)

GNSS 在硬件設(shè)計(jì)中天線部分是比較關(guān)鍵的,可以參考這篇文章:Air8000 GNSS 硬件設(shè)計(jì)指導(dǎo);https://docs.openluat.com/air8000/luatos/hardware/design/gnssant/

在開(kāi)發(fā)板上,內(nèi)置了 3.3V LDO, 用于有源天線供電。因此可以使用外部有源天線直接連接 GNSS 連接器。

注意:目前有源天線供電僅支持 3.3V 有源天線,請(qǐng)注意連接的有源天線的供電范圍。

六、代碼示例介紹

本文主要提供 2 個(gè) demo 目錄,single 和 combination,其中 single 只是對(duì) exgnss 庫(kù)的三種 GNSS 應(yīng)用的展示,combination 主要是提供了四種應(yīng)用場(chǎng)景

noraml:正常功耗模式定位

lowpower:低功耗模式

psm:PSM+ 模式

vibration:三軸加速度傳感器觸發(fā)定位

6.1 exgnss 的三種應(yīng)用的用法

6.1.1 exgnss 的應(yīng)用說(shuō)明

關(guān)于 exgnss 庫(kù)的三種應(yīng)用說(shuō)明:

wKgZO2kWxmeAULGyAAU3ON4H0Jk584.png

關(guān)于應(yīng)用需要注意的是:使用 exgnss.close()關(guān)閉的只是對(duì)應(yīng)的應(yīng)用,所有應(yīng)用關(guān)閉,gnss 也會(huì)關(guān)閉,這樣做的好處是可以處理不同場(chǎng)景下的不同邏輯,比如服務(wù)器下發(fā)一條定位指令,定位成功之后關(guān)掉,這個(gè)時(shí)候又下發(fā)了一個(gè)指令需要長(zhǎng)開(kāi)啟定位,這樣兩種指令就會(huì)沖突,需要代碼去處理到底是不是要關(guān)掉 gnss,這個(gè)時(shí)候應(yīng)用的好處就體現(xiàn)出來(lái)了,開(kāi)啟 exgnss.TIMERORSUC 第一個(gè)應(yīng)用,定位成功之后關(guān)掉對(duì)應(yīng)的應(yīng)用,同時(shí)開(kāi)啟 exgnss.DEFAULT 第二個(gè)應(yīng)用,gnss 就會(huì)常開(kāi),在應(yīng)用 1 結(jié)束之后,只會(huì)對(duì)應(yīng)用進(jìn)行自動(dòng)關(guān)閉,不會(huì)影響到第二個(gè)應(yīng)用,gnss 還會(huì)處于常開(kāi)狀態(tài)。

關(guān)于 agps 輔助定位的邏輯:agps 俗稱(chēng)輔助定位,其邏輯是把星歷文件發(fā)送給 gnss 芯片,同時(shí)發(fā)送時(shí)間和用基站定位獲取的大概位置,然后芯片解析處理,達(dá)到快速定位的效果。

exgnss 擴(kuò)展庫(kù)的輔助定位功能,我們處理方式是每個(gè)小時(shí)都會(huì)去更新星歷,原因是北斗是 1h 一更新,gps 是 4h 一更新,所以取最小值,我們選擇了一小時(shí)一更新

對(duì)于輔助定位需要注意的是,因?yàn)檩o助定位屬于強(qiáng)行把星歷文件灌給 gnss 芯片,雖然可以達(dá)到快速定位的效果,但是 gnss 芯片實(shí)際解析星歷需要時(shí)間,exgnss 庫(kù)默認(rèn)開(kāi)啟了一個(gè) 20s 的 gnss 應(yīng)用,做這個(gè)操作是因?yàn)椋僭O(shè)開(kāi)啟輔助定位,定位到之后立馬關(guān)掉 gnss 電源,會(huì)導(dǎo)致 gnss 星歷解析不完全,這樣會(huì)影響下次定位為冷啟動(dòng),冷啟動(dòng)時(shí)間大概需要 35s。如果不需要這個(gè)邏輯,可以接受冷啟動(dòng),或者每次都使用輔助定位,可以通過(guò) exgnss.setup()的 auto_open=false 配置添加到配置表里面。

6.1.2 代碼講解

main.lua

主要是為了加載了 exgnss 擴(kuò)展庫(kù),加載 gnss 代碼

wKgZO2kWxwOAansGAAecWG-PxYI458.png

gnss.lua

主要操作為:

1.開(kāi)啟協(xié)程,運(yùn)行 gnss_fnc 函數(shù),通過(guò) exgnss.setup(gnssotps)配置 gnss 的參數(shù),通過(guò) exgnss.open 開(kāi)啟三種不同的應(yīng)用

2.等待 40 秒使用 exgnss.close 關(guān)閉 TIMER 模式,使用 exgnss.close 需要兩個(gè)參數(shù),第一個(gè)是 exgnss 應(yīng)用模式,第二個(gè)是 tag 標(biāo)簽

3.然后利用 exgnss.is_active 查詢(xún)?nèi)N應(yīng)用模式是否處于激活模式,查詢(xún)應(yīng)用是否處于激活狀態(tài)同樣需要兩個(gè)參數(shù),第一個(gè)是 exgnss 應(yīng)用模式,第二個(gè)是 tag 標(biāo)簽

4.等待 10 秒使用 exgnss.close_all 關(guān)閉全部應(yīng)用模式,再次查詢(xún)?nèi)N模式是否處于激活模式

5.然后使用 xgnss.last_loc 獲取最后一次的定位經(jīng)緯度數(shù)據(jù)打印

6.定位成功之后使用 subscribe 訂閱"GNSS_STATE"消息,根據(jù)獲取到的值判斷是否定位成功,定位成功用 exgnss.rmc 獲取 rmc 數(shù)據(jù)

wKgZPGkWyeaAZi4zABMM_8H7bdM553.png

6.1.3 效果展示

wKgZO2kWykCAVwWdAAYXFx_LEwc955.pngwKgZO2kWylGAAompAARU9Jn_REg361.pngwKgZO2kWymGAdfilAAY2sWDW25o601.pngwKgZPGkWyu-AOyxQAAUXQsyWjZA076.pngwKgZPGkWywSAJaodAAVg1-ezr6E006.png

利用糾偏網(wǎng)站進(jìn)行糾偏:合宙所有的 GNSS 功能的坐標(biāo)系均使用國(guó)際標(biāo)準(zhǔn) WGS-84 坐標(biāo)系,所以開(kāi)發(fā)者在國(guó)內(nèi)常見(jiàn)地圖定位時(shí),會(huì)發(fā)現(xiàn)與實(shí)際情況有幾十米的誤差。這并非模塊問(wèn)題, 而是國(guó)內(nèi)地圖采用了非標(biāo)坐標(biāo)系所致。 國(guó)內(nèi)常見(jiàn)地圖如高德地圖使用 GCJ-02 坐標(biāo)系, 百度地圖使用 BD-09 坐標(biāo)系,故此開(kāi)發(fā)者需要對(duì)模塊輸出的經(jīng)緯度進(jìn)行加偏處理,才能在國(guó)內(nèi)的地圖上實(shí)現(xiàn)精確定位。

以下是糾偏網(wǎng)站:

http://old.openluat.com/GPS-Offset.html

wKgZO2kWyzuAfphSAAVQsV0ckQg215.png

6.2 正常功耗模式下的 GNSS 應(yīng)用

main.lua

主要是支持 4 個(gè)場(chǎng)景的切換,每次只能打開(kāi)一個(gè)用于測(cè)試,選擇對(duì)應(yīng)的功能進(jìn)行測(cè)試

wKgZPGkWy--AQkvUAAoSM1U5XP0536.png


6.2.1 代碼講解

normal.lua

normal 主要操作:

1.開(kāi)啟協(xié)程,運(yùn)行 gnss_fnc 函數(shù),通過(guò) exgnss.setup(gnssotps)配置 gnss 的參數(shù),然后 require tcp_client_main 文件,連接服務(wù)器

2.通過(guò) exgnss.open 開(kāi)啟 exgnss.TIMERORSUC 應(yīng)用模式,設(shè)置的 tag 為 normal,定位時(shí)間為 60s,回調(diào)函數(shù)為 normal_cb,這個(gè)模式定位成功之后會(huì)關(guān)掉 GNSS,然后觸發(fā)回調(diào)函數(shù),回調(diào)函數(shù)的操作為,通過(guò) exgnss.rmc(0)接口獲取 rmc 數(shù)據(jù),然后把經(jīng)緯度拼接成 json 字符串的形式,通過(guò) sys.publish 函數(shù),把數(shù)據(jù)傳給 tcp_client_sender.lua 文件里面處理。

3.用 sys.timerLoopStart()起一個(gè) 60s 觸發(fā)一次的打開(kāi) GNSS 定位的定時(shí)器,回調(diào)函數(shù)為 normal_open,回調(diào)函數(shù)內(nèi)容和上面開(kāi)啟 exgnss.TIMERORSUC 應(yīng)用模式一致


wKgZPGkWzF2AT0YXAAhi776ioOk178.png

6.2.2 效果展示

wKgZPGkWzIyAMGNkAAYctlIFBCY268.pngwKgZO2kWzKCAbQQmAAY-cAQCVmw320.pngwKgZO2kWzLOAFRaDAAZhuYO65h8610.png


測(cè)試服務(wù)器收到消息:

wKgZO2kWzOSAM_bTAAFTkaktIQg987.png

利用糾偏網(wǎng)站進(jìn)行糾偏:所有的 GNSS 功能的坐標(biāo)系均使用國(guó)際標(biāo)準(zhǔn)WGS-84坐標(biāo)系,所以開(kāi)發(fā)者在國(guó)內(nèi)常見(jiàn)地圖定位時(shí),會(huì)發(fā)現(xiàn)與實(shí)際情況有幾十米的誤差。這并非模塊問(wèn)題, 而是國(guó)內(nèi)地圖采用了非標(biāo)坐標(biāo)系所致。 國(guó)內(nèi)常見(jiàn)地圖如高德地圖使用GCJ-02坐標(biāo)系, 百度地圖使用BD-09坐標(biāo)系,故此開(kāi)發(fā)者需要對(duì)模塊輸出的經(jīng)緯度進(jìn)行加偏處理,才能在國(guó)內(nèi)的地圖上實(shí)現(xiàn)精確定位。

以下是糾偏網(wǎng)站:

http://old.openluat.com/GPS-Offset.html

wKgZPGkWzRKAEn-zAASQe7Y9g6Q847.png

6.3 低功耗模式下的 GNSS 應(yīng)用

6.3.1 代碼講解

lowpower.lua

normal 主要操作:

1.開(kāi)啟協(xié)程,運(yùn)行 gnss_fnc 函數(shù),通過(guò) exgnss.setup(gnssotps)配置 gnss 的參數(shù),然后 require tcp_client_main 文件,連接服務(wù)器。

2.通過(guò) exgnss.open 開(kāi)啟 exgnss.TIMERORSUC 應(yīng)用模式,設(shè)置的 tag 為 lowpower,定位時(shí)間為 60s,回調(diào)函數(shù)為 lowpower_cb,這個(gè)模式定位成功之后會(huì)關(guān)掉 GNSS,然后觸發(fā)回調(diào)函數(shù),回調(diào)函數(shù)的操作為,通過(guò) exgnss.rmc(0)接口獲取 rmc 數(shù)據(jù),然后把經(jīng)緯度拼接成 json 字符串的形式,通過(guò) sys.publish 函數(shù),把數(shù)據(jù)傳給 tcp_client_sender.lua 文件里面處理,然后調(diào)用 pm.power(pm.WORK_MODE, 1)--進(jìn)入低功耗模式,pm.power(pm.WORK_MODE,1,1)--wifi 進(jìn)入低功耗模式。這兩個(gè)函數(shù)主要是為了讓模塊和 wifi 模塊進(jìn)入低功耗模式。

3.用 sys.timerLoopStart()起一個(gè) 60s 觸發(fā)一次的打開(kāi) GNSS 定位的定時(shí)器,回調(diào)函數(shù)為 lower_open,回調(diào)函數(shù)內(nèi)容主要是調(diào)用 pm.power(pm.WORK_MODE, 0)進(jìn)入正常模式,然后和上面開(kāi)啟 exgnss.TIMERORSUC 應(yīng)用模式一致,

然后關(guān)閉 USB,節(jié)省功耗

wKgZPGkWzVeAPy-GAAkZUFQ7AwU766.png

6.3.2 效果展示

wKgZPGkWzZuAUodPAAMRNOoTqGU508.png

wKgZO2kWzayASxKjAAFYd49QZys681.png


利用糾偏網(wǎng)站進(jìn)行糾偏:我們所有的 GNSS 功能的坐標(biāo)系均使用國(guó)際標(biāo)準(zhǔn)WGS-84坐標(biāo)系,所以開(kāi)發(fā)者在國(guó)內(nèi)常見(jiàn)地圖定位時(shí),會(huì)發(fā)現(xiàn)與實(shí)際情況有幾十米的誤差。這并非模塊問(wèn)題, 而是國(guó)內(nèi)地圖采用了非標(biāo)坐標(biāo)系所致。 國(guó)內(nèi)常見(jiàn)地圖如高德地圖使用GCJ-02坐標(biāo)系, 百度地圖使用BD-09坐標(biāo)系,故此開(kāi)發(fā)者需要對(duì)模塊輸出的經(jīng)緯度進(jìn)行加偏處理,才能在國(guó)內(nèi)的地圖上實(shí)現(xiàn)精確定位。

以下是糾偏網(wǎng)站:

http://old.openluat.com/GPS-Offset.html

wKgZO2kWzeKAH4JWAAPrAZ91Atk652.png


6.4 PSM+ 模式下的 GNSS 應(yīng)用

6.4.1 代碼講解

psm.lua

psm 主要操作:

1.開(kāi)啟協(xié)程,運(yùn)行 gnss_fnc 函數(shù),通過(guò) exgnss.setup(gnssotps)配置 gnss 的參數(shù)。

2.通過(guò) exgnss.open 開(kāi)啟 exgnss.TIMERORSUC 應(yīng)用模式,設(shè)置的 tag 為 psm,定位時(shí)間為 60s,回調(diào)函數(shù)為 psm_cb,這個(gè)模式定位成功之后會(huì)關(guān)掉 GNSS,然后觸發(fā)回調(diào)函數(shù),回調(diào)函數(shù)的操作為,通過(guò) exgnss.rmc(0)接口獲取 rmc 數(shù)據(jù),獲取經(jīng)緯度并賦值變量,然后使用 sysplus.taskInitEx 開(kāi)啟 TCP 短連接協(xié)程,連接服務(wù)器發(fā)送經(jīng)緯度消息和喚醒消息內(nèi)容。

3.發(fā)送完畢之后設(shè)置定時(shí)器,然后進(jìn)入飛行模式,進(jìn)入 psm+ 模式

wKgZO2kWzhKAKBBcABJEArWkeSs331.png

6.4.2 效果展示

wKgZO2kWzkeAWALJAALrATzgjYc450.png

wKgZPGkWzmaAe-PVAAEXwSm_kjA650.png

利用糾偏網(wǎng)站進(jìn)行糾偏:我們所有的 GNSS 功能的坐標(biāo)系均使用國(guó)際標(biāo)準(zhǔn)WGS-84坐標(biāo)系,所以開(kāi)發(fā)者在國(guó)內(nèi)常見(jiàn)地圖定位時(shí),會(huì)發(fā)現(xiàn)與實(shí)際情況有幾十米的誤差。這并非模塊問(wèn)題, 而是國(guó)內(nèi)地圖采用了非標(biāo)坐標(biāo)系所致。 國(guó)內(nèi)常見(jiàn)地圖如高德地圖使用GCJ-02坐標(biāo)系, 百度地圖使用BD-09坐標(biāo)系,故此開(kāi)發(fā)者需要對(duì)模塊輸出的經(jīng)緯度進(jìn)行加偏處理,才能在國(guó)內(nèi)的地圖上實(shí)現(xiàn)精確定位。

以下是糾偏網(wǎng)站:

http://old.openluat.com/GPS-Offset.html

wKgZPGkWzpCAOYa1AAPr1lR72GI333.png

6.5 運(yùn)動(dòng)檢測(cè)定位模式下的 GNSS 應(yīng)用

6.5.1 代碼講解

vibration.lua

vibration 主要操作:

1.開(kāi)啟協(xié)程,運(yùn)行 gnss_fnc 函數(shù),通過(guò) exgnss.setup(gnssotps)配置 gnss 的參數(shù),然后 require tcp_client_main 文件,連接服務(wù)器,require exvib 擴(kuò)展庫(kù),

2.設(shè)置三軸加速度傳感器為微小震動(dòng)模式 exvib.open(1),關(guān)于 exvib 的三種模式:

wKgZPGkWzsCAKvqMAADaA8IDwNg560.png

3.8000 內(nèi)置的三軸加速度傳感器的中斷觸發(fā)腳為 gpio.WAKEUP2,設(shè)置 gpio 防抖為 100ms,然后設(shè)置中斷觸發(fā)

4.代碼里面提供了兩種觸發(fā)方式:

第一種是持續(xù)震動(dòng)模式:

加速度傳感器震動(dòng)之后觸發(fā)中斷,中斷觸發(fā)之后使用 exgnss.open 打開(kāi)定時(shí)器,設(shè)置 exgnss.DEFAULT 模式,這種模式是一直開(kāi)啟 GNSS,直到調(diào)用關(guān)閉接口關(guān)閉才會(huì)關(guān)掉,定位成功之后每 5s 上傳一次經(jīng)緯度數(shù)據(jù),

假設(shè) 10s 內(nèi)沒(méi)有再觸發(fā)震動(dòng),則關(guān)閉 gnss,等待下一次震動(dòng)觸發(fā)

第二種方式是有效震動(dòng)模式:

震動(dòng)觸發(fā)之后計(jì)算為一次觸發(fā),如果 10s 內(nèi)觸發(fā) 5 次有效震動(dòng),則開(kāi)啟后續(xù)邏輯,如果 10s 內(nèi)沒(méi)有觸發(fā) 5 次,

則判定為無(wú)效震動(dòng),等待下一次觸發(fā),如果是有效震動(dòng)就使用 exgnss.open 打開(kāi)定時(shí)器,設(shè)置 exgnss.DEFAULT 模式,進(jìn)行定位,

定位成功之后每 5s 上傳一次經(jīng)緯度數(shù)據(jù)到服務(wù)器,有效震動(dòng)觸發(fā)之后有 30 分鐘的等待時(shí)間,在此期間,如果觸發(fā)有效震動(dòng)則

不去進(jìn)行后續(xù)邏輯處理,30 分鐘時(shí)間到了之后,等待下一次有效震動(dòng)

這兩種模式通過(guò)打開(kāi)不同的注釋來(lái)執(zhí)行

wKgZO2kWzwWAWwobABbaaCoVnuc614.png

6.5.2 效果展示

有效中斷模式:

wKgZO2kWzyyAQJH3AAQCvnCBUs4767.pngwKgZO2kWzzqAVfRHAAPjU0R0DTY207.pngwKgZPGkWz02AQs55AAH2he2ZQ5o042.png

有效震動(dòng)模式:

wKgZPGkWz3SAHDEZAASxVdJMQ90532.pngwKgZPGkWz4eAB2TIAAOR1bFKj7A446.pngwKgZPGkWz52APjU1AANJ8u_-b8U407.png


利用糾偏網(wǎng)站進(jìn)行糾偏:所有的 GNSS 功能的坐標(biāo)系均使用國(guó)際標(biāo)準(zhǔn)WGS-84坐標(biāo)系,所以開(kāi)發(fā)者在國(guó)內(nèi)常見(jiàn)地圖定位時(shí),會(huì)發(fā)現(xiàn)與實(shí)際情況有幾十米的誤差。這并非模塊問(wèn)題, 而是國(guó)內(nèi)地圖采用了非標(biāo)坐標(biāo)系所致。 國(guó)內(nèi)常見(jiàn)地圖如高德地圖使用GCJ-02坐標(biāo)系, 百度地圖使用BD-09坐標(biāo)系,故此開(kāi)發(fā)者需要對(duì)模塊輸出的經(jīng)緯度進(jìn)行加偏處理,才能在國(guó)內(nèi)的地圖上實(shí)現(xiàn)精確定位。

以下是糾偏網(wǎng)站:

http://old.openluat.com/GPS

wKgZO2kWz8SAIHdAAAPr-EjOrhE358.png

6.6 TCP 部分代碼

TCP 部分代碼為通用格式內(nèi)容,里面有對(duì)注釋的描述,在 GNSS 篇章就不過(guò)多對(duì) TCP 的代碼做講解了,如果有需要可以看 TCP 章節(jié)

tcp_client_main.lua

wKgZPGkWz_WACCZsABGFP_Jcrgs284.png

tcp_client_reveiver.lua

wKgZPGkW0CaABRjZAAm6q27NTJU970.png

tcp_client_sender.lua

wKgZPGkW0F6ANkJwAA_7tdgsqZE495.png

將定位成功后的經(jīng)緯度復(fù)制到https://www.openluat.com/GPS-Offset.html??梢圆榭次恢眯畔⒑妥鴺?biāo)系轉(zhuǎn)換后的經(jīng)緯度。

wKgZO2kW0LiAI4mkAAUI9GmuI_w261.png

七、總結(jié)

本教程詳細(xì)介紹了如何使用 exgnss 擴(kuò)展庫(kù)搭配 Air8000 的 GNSS 功能,包括硬件連接、軟件配置、代碼編寫(xiě)等步驟。通過(guò)本教程的學(xué)習(xí),讀者應(yīng)該能夠掌握 exgnss 擴(kuò)展庫(kù)功能的基本使用方法,并能夠根據(jù)實(shí)際需求進(jìn)行擴(kuò)展和應(yīng)用。

八、注意事項(xiàng)與常見(jiàn)問(wèn)題

8.1、GNSS 定位經(jīng)緯度不準(zhǔn)確

1、坐標(biāo)沒(méi)有糾偏,參考:http://www.openluat.com/GPS-Offset.html進(jìn)行糾偏處理

2、周?chē)斜容^高的障礙物,會(huì)導(dǎo)致定位誤差

3、在開(kāi)闊地帶,正常情況下定位精度只能做到 5 米

4、不能在室內(nèi)測(cè)試,必須到室外測(cè)試;如果只能在室內(nèi)測(cè)試,可以淘寶搜索“GNSS 信號(hào)轉(zhuǎn)發(fā)器”

8.2、Air8000 獲取到的經(jīng)緯度數(shù)據(jù)是基于什么坐標(biāo)系

使用國(guó)際標(biāo)準(zhǔn) WGS-84 坐標(biāo)系,需要自己進(jìn)行坐標(biāo)系轉(zhuǎn)換各 GNSS 坐標(biāo)系說(shuō)明以及轉(zhuǎn)換方法。

8.3、GPS 天線如何設(shè)計(jì)

參考:https://docs.openluat.com/air8000/luatos/hardware/design/gnssant/

8.4、可視衛(wèi)星、可用衛(wèi)星有什么區(qū)別

可視衛(wèi)星是當(dāng)前區(qū)域,接收條件良好情況下,應(yīng)該可以收到衛(wèi)星信號(hào)的衛(wèi)星。

可用衛(wèi)星是當(dāng)前已經(jīng)收到信號(hào)并正在使用參與定位的衛(wèi)星。

8.5、 GGA 和 RMC 應(yīng)該用哪個(gè)

視具體情況而定,建議用 gga,信息相對(duì)更全面。

8.6、如何解讀 NMEA 報(bào)文每個(gè)字段的含義

參考:NMEA-0183 協(xié)議簡(jiǎn)介

8.7、車(chē)載使用時(shí)需要天線引出到車(chē)頂上嗎

1、擋風(fēng)玻璃如果沒(méi)有貼膜或者貼了不含金屬材料的膜,可以放在擋風(fēng)玻璃下,但是 GNSS 信號(hào)會(huì)有一定衰減,在萬(wàn)不得已的情況下,可以放在擋風(fēng)玻璃下,最好再實(shí)際測(cè)試確認(rèn)一下。 2、擋風(fēng)玻璃如果貼了含有金屬材料的膜,則不能放在擋風(fēng)玻璃下,必須將天線到車(chē)頂。

8.8、如何輸出原始 NMEA 數(shù)據(jù)

可以通過(guò) exgnss.setup()接口的 bind 參數(shù)進(jìn)行綁定。

wKgZPGkW0WeABRAfAAOwsKKgbGU632.png

今天的內(nèi)容就分享到這里了~


審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • GNSS
    +關(guān)注

    關(guān)注

    9

    文章

    989

    瀏覽量

    51133
  • LuatOS
    +關(guān)注

    關(guān)注

    0

    文章

    156

    瀏覽量

    2689
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    解鎖LuatOS-log庫(kù)棧工程師的日志管理實(shí)戰(zhàn)課!

    針對(duì)開(kāi)發(fā)者設(shè)計(jì)的實(shí)戰(zhàn)教程,本文聚焦LuatOS平臺(tái)log庫(kù)的高效使用,從基礎(chǔ)配置到高級(jí)調(diào)試策略,手把手教你搭建可
    的頭像 發(fā)表于 05-12 15:23 ?1510次閱讀
    解鎖<b class='flag-5'>LuatOS</b>-log<b class='flag-5'>庫(kù)</b>:<b class='flag-5'>全</b>棧工程師的日志管理<b class='flag-5'>實(shí)戰(zhàn)</b>課!

    開(kāi)發(fā)進(jìn)階指南:LuatOS-log庫(kù)從入門(mén)到實(shí)戰(zhàn)!

    本文將帶你深入探索LuatOS系統(tǒng)中l(wèi)og庫(kù)的核心原理與實(shí)戰(zhàn)技巧,通過(guò)代碼示例解析日志管理、錯(cuò)誤追蹤及性能優(yōu)化的最佳實(shí)踐,助力棧工程師構(gòu)建更穩(wěn)健的物聯(lián)網(wǎng)應(yīng)用。 今天,我們一起來(lái)認(rèn)識(shí)
    的頭像 發(fā)表于 05-15 16:12 ?2853次閱讀
    <b class='flag-5'>全</b>棧<b class='flag-5'>開(kāi)發(fā)進(jìn)階</b>指南:<b class='flag-5'>LuatOS</b>-log<b class='flag-5'>庫(kù)</b>從入門(mén)到<b class='flag-5'>實(shí)戰(zhàn)</b>!

    Air8000 LuatOS exgnss擴(kuò)展庫(kù)應(yīng)用秘籍:定位開(kāi)發(fā)避坑指南!

    LuatOS exgnss擴(kuò)展庫(kù)的使用中,開(kāi)發(fā)者常因坐標(biāo)系誤區(qū)或模式管理不當(dāng)踩坑。本秘籍結(jié)合實(shí)戰(zhàn)
    的頭像 發(fā)表于 11-14 15:26 ?1865次閱讀
    Air8000 <b class='flag-5'>LuatOS</b> <b class='flag-5'>exgnss</b><b class='flag-5'>擴(kuò)展</b><b class='flag-5'>庫(kù)</b>應(yīng)用秘籍:定位<b class='flag-5'>開(kāi)發(fā)</b>避坑指南!

    IN100 MP Tool 擴(kuò)展功能開(kāi)發(fā)

    擴(kuò)展功能
    橙群微電子
    發(fā)布于 :2023年02月21日 12:12:14

    LuatOS開(kāi)發(fā)之4G模組隨機(jī)數(shù)(random)|實(shí)戰(zhàn)指南

    本次學(xué)習(xí)的實(shí)戰(zhàn)是關(guān)于4G模組LuatOS開(kāi)發(fā)的隨機(jī)數(shù)示例指南,希望大家有所收獲。
    的頭像 發(fā)表于 11-30 09:51 ?1469次閱讀
    <b class='flag-5'>LuatOS</b><b class='flag-5'>開(kāi)發(fā)</b>之4G模組隨機(jī)數(shù)(random)|<b class='flag-5'>實(shí)戰(zhàn)</b>指南

    快速入門(mén)——LuatOS:sys庫(kù)多任務(wù)管理實(shí)戰(zhàn)攻略!

    在嵌入式開(kāi)發(fā)中,多任務(wù)管理是提升系統(tǒng)效率的關(guān)鍵。本教程專(zhuān)為快速入門(mén)設(shè)計(jì),聚焦LuatOS的sys庫(kù),通過(guò)實(shí)戰(zhàn)案例帶你快速掌握多任務(wù)創(chuàng)建、調(diào)度與同步技巧。無(wú)論你是零基礎(chǔ)新手還是希望快速提
    的頭像 發(fā)表于 05-29 14:36 ?818次閱讀
    快速入門(mén)——<b class='flag-5'>LuatOS</b>:sys<b class='flag-5'>庫(kù)</b>多任務(wù)管理<b class='flag-5'>實(shí)戰(zhàn)</b>攻略!

    SFUD驅(qū)動(dòng)庫(kù)實(shí)戰(zhàn)手冊(cè):串行SPI Flash開(kāi)發(fā)流程解析

    針對(duì)嵌入式系統(tǒng)中SPI Flash的多樣化需求,SFUD庫(kù)提供了靈活且通用的解決方案。本文將從環(huán)境配置、庫(kù)初始化、基本操作到高級(jí)特性,完整展示SFUD庫(kù)的應(yīng)用流程,并通過(guò)具體示例幫助
    的頭像 發(fā)表于 07-29 13:19 ?722次閱讀
    SFUD驅(qū)動(dòng)<b class='flag-5'>庫(kù)</b><b class='flag-5'>實(shí)戰(zhàn)</b>手冊(cè):串行SPI Flash<b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>全</b><b class='flag-5'>流程</b>解析

    告別代碼迷宮!exgnss擴(kuò)展庫(kù)GNSS定位開(kāi)發(fā)秒變簡(jiǎn)單

    還在為GNSS定位的復(fù)雜代碼頭疼?exgnss擴(kuò)展庫(kù)為你掃清障礙!它提供簡(jiǎn)潔的接口和高效的工具鏈,從信號(hào)捕獲到坐標(biāo)解析一氣呵成,開(kāi)發(fā)效率直線
    的頭像 發(fā)表于 09-10 17:23 ?803次閱讀
    告別代碼迷宮!<b class='flag-5'>exgnss</b><b class='flag-5'>擴(kuò)展</b><b class='flag-5'>庫(kù)</b>讓<b class='flag-5'>GNSS</b>定位<b class='flag-5'>開(kāi)發(fā)</b>秒變簡(jiǎn)單

    簡(jiǎn)化定位,從exgnss擴(kuò)展庫(kù)開(kāi)始:GNSS開(kāi)發(fā)從此“輕裝上陣”

    面對(duì)GNSS定位開(kāi)發(fā)的重重挑戰(zhàn),exgnss擴(kuò)展庫(kù)為你減負(fù)!它整合了核心算法與硬件適配,開(kāi)發(fā)者無(wú)
    的頭像 發(fā)表于 09-16 17:43 ?811次閱讀
    簡(jiǎn)化定位,從<b class='flag-5'>exgnss</b><b class='flag-5'>擴(kuò)展</b><b class='flag-5'>庫(kù)</b>開(kāi)始:<b class='flag-5'>GNSS</b><b class='flag-5'>開(kāi)發(fā)</b>從此“輕裝上陣”

    LuatOS AGPS 輔助定位開(kāi)發(fā)實(shí)戰(zhàn)教程

    為解決傳統(tǒng) GPS 定位慢、功耗高的痛點(diǎn),AGPS 技術(shù)通過(guò)輔助數(shù)據(jù)注入提升效率。本教程以 LuatOS 開(kāi)發(fā)環(huán)境為基礎(chǔ),循序漸進(jìn)地講解 AGPS 輔助定位的開(kāi)發(fā)流程,包括 AGPS
    的頭像 發(fā)表于 10-31 17:34 ?1182次閱讀
    <b class='flag-5'>LuatOS</b> AGPS 輔助定位<b class='flag-5'>開(kāi)發(fā)</b><b class='flag-5'>實(shí)戰(zhàn)</b>教程

    Air8000-LuatOS exvib擴(kuò)展庫(kù)使用流程實(shí)戰(zhàn)驅(qū)動(dòng)的操作解析

    在振動(dòng)傳感領(lǐng)域,Air8000-LuatOS的exvib擴(kuò)展庫(kù)具備顯著優(yōu)勢(shì)。本文以實(shí)戰(zhàn)驅(qū)動(dòng),詳細(xì)解析其
    的頭像 發(fā)表于 11-04 18:28 ?1137次閱讀
    Air8000-<b class='flag-5'>LuatOS</b> exvib<b class='flag-5'>擴(kuò)展</b><b class='flag-5'>庫(kù)</b>使用<b class='flag-5'>全</b><b class='flag-5'>流程</b>:<b class='flag-5'>實(shí)戰(zhàn)</b>驅(qū)動(dòng)的操作解析

    Air8000-LuatOS exvib擴(kuò)展庫(kù)實(shí)操指南:流程技術(shù)細(xì)節(jié)深度解讀

    掌握exvib擴(kuò)展庫(kù)的使用,是提升Air8000-LuatOS項(xiàng)目開(kāi)發(fā)效率的關(guān)鍵。本文以流程實(shí)
    的頭像 發(fā)表于 11-01 20:09 ?283次閱讀
    Air8000-<b class='flag-5'>LuatOS</b> exvib<b class='flag-5'>擴(kuò)展</b><b class='flag-5'>庫(kù)</b>實(shí)操指南:<b class='flag-5'>全</b><b class='flag-5'>流程</b>技術(shù)細(xì)節(jié)深度解讀

    新手必備:LuatOS MCU核心庫(kù)功能測(cè)試與實(shí)踐指南

    新手如何快速掌握MCU芯片級(jí)開(kāi)發(fā)?本文通過(guò)LuatOS的MCU核心庫(kù),全面演示時(shí)鐘頻率獲取、唯一ID讀取、高精度計(jì)時(shí)、IO復(fù)用配置等核心功能的測(cè)試
    的頭像 發(fā)表于 11-12 14:26 ?335次閱讀
    新手必備:<b class='flag-5'>LuatOS</b> MCU核心<b class='flag-5'>庫(kù)</b><b class='flag-5'>功能</b>測(cè)試與實(shí)踐指南

    LuatOS MCU核心庫(kù)全接觸:新手操作與功能測(cè)試攻略!

    開(kāi)啟芯片級(jí)開(kāi)發(fā)實(shí)戰(zhàn)。 一、MCU核心庫(kù)函數(shù)功能 MCU核心庫(kù)LuatOS中封裝MCU一些特殊操作的核心模塊,提供了對(duì)MCU底層
    的頭像 發(fā)表于 11-12 14:30 ?289次閱讀
    <b class='flag-5'>LuatOS</b> MCU核心<b class='flag-5'>庫(kù)</b>全接觸:新手操作與<b class='flag-5'>功能</b>測(cè)試攻略!

    AirCloud平臺(tái)+excloud擴(kuò)展庫(kù):核心功能實(shí)戰(zhàn)應(yīng)用!

    擴(kuò)展庫(kù)的負(fù)載均衡模塊優(yōu)化流量處理,或是利用安全擴(kuò)展功能強(qiáng)化平臺(tái)防護(hù)。所有示例均以實(shí)戰(zhàn)落地為核心,拆解操作細(xì)節(jié)與配置邏輯,讓用戶(hù)直觀感受二者協(xié)
    的頭像 發(fā)表于 12-24 17:17 ?597次閱讀
    AirCloud平臺(tái)+excloud<b class='flag-5'>擴(kuò)展</b><b class='flag-5'>庫(kù)</b>:核心<b class='flag-5'>功能</b><b class='flag-5'>實(shí)戰(zhàn)</b>應(yīng)用!