在树莓派上使用GPS模块
GPSD介紹
GPSD是一個Linux下的一個守護進程,用以偵聽來自GPS接收器的位置等信息,并將這些位置信息轉換成一種簡化的格式。
GPSD支持二十多種不同GPS輸出格式的GPS接收機,例如NMEA、Ashtech、AIVDM、iTalk Binary、Trimble TSIP、RTCM、uBlox UBX binary等。將收到的packet解析之后,可以通過D-BUS、共享內存和socket(默認端口為:2947)方式輸出。
GPSD packet中同時提供了多種客戶端,例如gpsctl、gpsmon、gpspipe等,可以根據需要進行使用。
gpsd 是通過串行或USB端口監視連接到主機的一個或多個GPS或AIS接收器的服務守護程序,使得可以在主機的TCP端口2947上查詢傳感器的位置/路線/速度的所有數據。
使用gpsd多個位置感知客戶端應用程序可以共享對支持的傳感器的訪問,而無需爭用或丟失數據。而且,gpsd響應大多數GPSs發出的NMEA 0183格式的查詢更容易解析。該gpsd分發包括可鏈接的C服務庫,C ++包裝類和一個Python模塊,開發者gpsd應用程序可以使用它來封裝所有的通信gpsd。
GPSD在移動嵌入式系統中無處不在。它是Android手機上的地圖服務的基礎。無人機,機器人潛艇和無人駕駛汽車無處不在。最近幾代載人飛機,海洋導航系統和軍車越來越普遍。
http://www.catb.org/gpsd/
在樹莓派上測試GPS模塊:
1、樹莓派一個,GPS模塊一個,USB轉串口TTL模塊一個。
2、使用ttyUSB0而不是使用樹莓派的板載串口ttyAMA0,因為ttyUSB0串口使用起來更方便,可以隨意的插拔,還可以在電腦、手機等其他設備上使用。
3、連接好GPS線,樹莓派上插上USB串口,查看設備名
ls /dev/ttyUSB*
其中”ttyUSB0”就是GPS模塊的設備名。
注:如果你的串口gps的設備名不是“ttyUSB0”,就請用你自己設備名替換。
4、安裝gpsd相關的軟件和庫
sudo apt-get install gpsd gpsd-clients python-gps
5、使用cat命令查看gps模塊輸出
cat /dev/ttyUSB0
6、設置gpsd的gps數據源是gps模塊的設備名ttyUSB0”
sudo gpsd /dev/ttyUSB0 -F /var/run/gpsd.sock
7、使用gpsd軟件,顯示gps信息
cgps -s
注:請將gps置于室外,或者窗戶邊,有利于gps定位,如果長時間顯示“NO FIX”的狀態,請移動gps的位置,并且使用下面命令重啟gps模塊:
sudo killall gpsd
sudo gpsd /dev/ttyUSB0 -F /var/run/gpsd.sock
8、用python3測試GPS,安裝gps3庫
pip3 install gps3
https://pypi.python.org/pypi/gps3
9、測試代碼gpstest.py
10、python3 gpstest.py
如果不能運行,請用下面命令重啟gps模塊:
sudo killall gpsd
sudo gpsd /dev/ttyUSB0 -F /var/run/gpsd.sock
11、也可以選擇其他python庫測試,比如gpsd-py3
pip3 install gpsd-py3
12、gpsd-py3測試代碼
總結
以上是生活随笔為你收集整理的在树莓派上使用GPS模块的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为mate30 完全卸载google套
- 下一篇: Mysql的连接分类和详解