日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

在树莓派上使用GPS模块

發(fā)布時(shí)間:2023/12/29 81 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在树莓派上使用GPS模块 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

GPSD介紹

GPSD是一個(gè)Linux下的一個(gè)守護(hù)進(jìn)程,用以偵聽來自GPS接收器的位置等信息,并將這些位置信息轉(zhuǎn)換成一種簡化的格式。
GPSD支持二十多種不同GPS輸出格式的GPS接收機(jī),例如NMEA、Ashtech、AIVDM、iTalk Binary、Trimble TSIP、RTCM、uBlox UBX binary等。將收到的packet解析之后,可以通過D-BUS、共享內(nèi)存和socket(默認(rèn)端口為:2947)方式輸出。
GPSD packet中同時(shí)提供了多種客戶端,例如gpsctl、gpsmon、gpspipe等,可以根據(jù)需要進(jìn)行使用。
gpsd 是通過串行或USB端口監(jiān)視連接到主機(jī)的一個(gè)或多個(gè)GPS或AIS接收器的服務(wù)守護(hù)程序,使得可以在主機(jī)的TCP端口2947上查詢傳感器的位置/路線/速度的所有數(shù)據(jù)。
使用gpsd多個(gè)位置感知客戶端應(yīng)用程序可以共享對支持的傳感器的訪問,而無需爭用或丟失數(shù)據(jù)。而且,gpsd響應(yīng)大多數(shù)GPSs發(fā)出的NMEA 0183格式的查詢更容易解析。該gpsd分發(fā)包括可鏈接的C服務(wù)庫,C ++包裝類和一個(gè)Python模塊,開發(fā)者gpsd應(yīng)用程序可以使用它來封裝所有的通信gpsd。
GPSD在移動(dòng)嵌入式系統(tǒng)中無處不在。它是Android手機(jī)上的地圖服務(wù)的基礎(chǔ)。無人機(jī),機(jī)器人潛艇和無人駕駛汽車無處不在。最近幾代載人飛機(jī),海洋導(dǎo)航系統(tǒng)和軍車越來越普遍。
http://www.catb.org/gpsd/

在樹莓派上測試GPS模塊:

1、樹莓派一個(gè),GPS模塊一個(gè),USB轉(zhuǎn)串口TTL模塊一個(gè)。
2、使用ttyUSB0而不是使用樹莓派的板載串口ttyAMA0,因?yàn)閠tyUSB0串口使用起來更方便,可以隨意的插拔,還可以在電腦、手機(jī)等其他設(shè)備上使用。
3、連接好GPS線,樹莓派上插上USB串口,查看設(shè)備名
ls /dev/ttyUSB*
其中”ttyUSB0”就是GPS模塊的設(shè)備名。
注:如果你的串口gps的設(shè)備名不是“ttyUSB0”,就請用你自己設(shè)備名替換。
4、安裝gpsd相關(guān)的軟件和庫
sudo apt-get install gpsd gpsd-clients python-gps
5、使用cat命令查看gps模塊輸出
cat /dev/ttyUSB0
6、設(shè)置gpsd的gps數(shù)據(jù)源是gps模塊的設(shè)備名ttyUSB0”
sudo gpsd /dev/ttyUSB0 -F /var/run/gpsd.sock
7、使用gpsd軟件,顯示gps信息
cgps -s
注:請將gps置于室外,或者窗戶邊,有利于gps定位,如果長時(shí)間顯示“NO FIX”的狀態(tài),請移動(dòng)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
如果不能運(yùn)行,請用下面命令重啟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())

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。