日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在树莓派上使用GPS模块

發布時間:2023/12/29 编程问答 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在树莓派上使用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

#!/usr/bin/env python3 # coding=utf-8from gps3 import agps3 #GPSDSocket creates a GPSD socket connection & request/retrieve GPSD output. gps_socket = agps3.GPSDSocket() #DataStream unpacks the streamed gpsd data into python dictionaries. data_stream = agps3.DataStream() gps_socket.connect() gps_socket.watch() for new_data in gps_socket:if new_data:data_stream.unpack(new_data)print('Altitude = ', data_stream.alt)print('Lat = ', data_stream.lat) print('Lon = ', data_stream.lon)print('Speed = ', data_stream.speed)

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測試代碼

import gpsd# Connect to the local gpsd gpsd.connect()# Connect somewhere else gpsd.connect(host="127.0.0.1", port=2947)# Get gps position packet = gpsd.get_current()# See the inline docs for GpsResponse for the available data print(packet.position())

總結

以上是生活随笔為你收集整理的在树莓派上使用GPS模块的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。