UART - 在Ameba上取得 GPS定位
材料準備
- Ameba x 1
- Adafruit Ultimate GPS Breakout x 1 (可參考官方文件)
範例說明
市面上常看到的GPS模組大多都是UART介面,資料格式也大多遵循NMEA sentence。這邊介紹使用Adafruit Ultimate GPS Breakout。它的資料格式是文字介面,所以可以直接接在USB to TTL Adapter上直接看GPS內容:
它的格式使用NMEA sentence, 詳細內容可以參考 http://aprs.gids.nl/nmea/
但在室內不太容易收到GPS訊號,上一張圖尚未收到訊號,稱之為還沒 “fix”。帶GPS模組到室外做測試,等到fix有訊號的內容長的像這樣:
這邊我們目前關心的內容是$GPRMC (Global Positioning Recommended Minimum Coordinates):
每個欄位都用逗號隔開
它的格式使用NMEA sentence, 詳細內容可以參考 http://aprs.gids.nl/nmea/
但在室內不太容易收到GPS訊號,上一張圖尚未收到訊號,稱之為還沒 “fix”。帶GPS模組到室外做測試,等到fix有訊號的內容長的像這樣:
這邊我們目前關心的內容是$GPRMC (Global Positioning Recommended Minimum Coordinates):
$GPRMC,032122.000,A,2446.8181,N,12059.7251,E,0.39,78.89,270116,,,A*53
每個欄位都用逗號隔開
- 第1欄是GMT(Greenwich Mean Time), 這邊的例子是032122.000, 格式為HHmmss.SSS, 也就是03:21:22.000。時區與日光節約需要自行調整
- 第2欄是status code
- V: Void (Invalid)
- A: Active, 這個狀態下GPS可以fix
- 3~6欄是地理位置定位(geolocation)
例子中,2446.8181,N 表示北半球緯度24度 46.8181分,12059.7251,E 表示東半球經度120度59.7251分,
我們可以在google map的搜尋欄輸入 +24 46.8181’, +120 59.7251’
就可以檢查位置是否正確
- 第7欄是相對地面速度, 單位是節(knot), 每節等同於時速1.852公里, 例子中是0.39節
- 第8欄是行進角度, 這是根據之前的軌跡算出來的
- 第9欄是日期, 格式是ddMMyy, 例子中270116為27日, 1月, 2016年
- 最後1欄為checksum, 例子中是*53
這些欄位可以交給Ameba處理, 我們先如圖接線
RTL8710 接線圖如下:
打開範例程式, “Files” -> “Examples” -> “AmebaSoftwareSerial” -> “Adafruit_GPS_parsing”, 編譯並上傳到Ameba, 完成之後按Reset按鈕, 結果會輸出到Serial Monitor上, 所以帶著筆電到戶外試試看:
下圖是拿到fix之後:
Realtek IoT/Wi-Fi MCU Solutions . All Rights Reserved. 使用條款