A_r*_*i11 2 gps tty gpsd raspberry-pi
我有一个通过USB连接到Raspberry Pi的GPS模块.
出于某种原因,我似乎无法使用以下方法获得修复:
CGPS
它似乎没有得到修复并终止.
我也尝试过:
sudo killall gpsd
sudo gpsd/dev/ttyUSB0 -F /var/run/gpsd.sock
然后再次尝试cgps,但这似乎也不起作用.
我甚至尝试过:
sudo nano/etc/default/gpsd
并改变了这条线:
GPSD_OPTIONS = ""
至:
GPSD_OPTIONS = "的/ dev/ttyACM0"
这显然适用于网络上的其他人,但重启后,这也不起作用.
但出于某种原因我做的时候:
gpsmon/dev/ttyUSB0
我得到了完整的数据读数; lat,lon,Sats,altitude,ext.
有没有办法将gpsmon /dev/ttyUSB0
句子输出到文本文件?
另外,为什么我不能使用cgps或类似的东西获得修复?
gpsd是一个简化gps使用的漂亮应用程序,但它可能有点令人困惑.
如果您使用的是Rasbian或某些apt
基于包的系统,最好配置它sudo dpkg-reconfigure gpsd
以避免并发症(tyqos),但不是必需的.我们有偏好,但您可能没有,
-n
不要等待客户 -G
听所有地址, -b
破坏设备安全模式,和 结果配置文件看起来像
# Default settings for gpsd.
# Please do not edit this file directly - use `dpkg-reconfigure gpsd' to
# change the options.
START_DAEMON="true"
GPSD_OPTIONS="-n -G -b"
DEVICES=""
USBAUTO="true"
GPSD_SOCKET="/var/run/gpsd.sock"
Run Code Online (Sandbox Code Playgroud)
当gpsd以这种方式运行时,使用这种方法的主要障碍是它会在你可以之前抓住gps.尝试独立并直接访问设备/dev/whatever
将因繁忙而失败.
如果您希望在执行任何其他操作之前,无论出于何种原因,请确保gpsd未运行.
sudo killall gpsd
并删除gpsd可能留下的任何套接字,
sudo rm /var/run/gpsd.sock
通过附加gps并跟踪gps的位置来检查gps的位置dmesg | tail
.它看起来像
[67338.935645] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[67338.935650] usb 1-1.2: Product: USB-Serial Controller
[67338.935653] usb 1-1.2: Manufacturer: Prolific Technology Inc.
[67338.936154] pl2303 1-1.2:1.0: pl2303 converter detected
[67338.937953] usb 1-1.2: pl2303 converter now attached to ttyUSB1
[67339.806917] pl2303 ttyUSB1: usb_serial_generic_read_bulk_callback - urb stopped: -32
[67339.807306] pl2303 ttyUSB1: usb_serial_generic_read_bulk_callback - urb stopped: -32
[67340.018016] pps_ldisc: PPS line discipline registered
[67340.018321] pps pps0: new PPS source usbserial1
[67340.018330] pps pps0: source "/dev/ttyUSB1" added
Run Code Online (Sandbox Code Playgroud)
然后你可以检查输出sudo cat /dev/ttyUSB1
...或者其他什么,但是你可以用gpsd运行来做.(您也可以将其转换为文本文件sudo cat /dev/ttyUSB1 > gps_dump.txt
,或者您的gpsmon /dev/ttyUSB0 >gps_dump.txt
,但有更优雅的解决方案.)
困惑的另一面是没有来自gpsd的gps输出,因为它没有运行或"正确"配置.(关闭,未启动或指向错误的设备).一些应用程序会告诉你它没有运行,许多应用程序只是静静地坐着而没有任何数据.我知道没有人会告诉你gpsd被手动设置为错误的设备.
如果你杀了GPSD,或没有它自动神奇地启动,确保其与运行sudo /etc/init.d/gpsd restart
除非你用奇怪的硬件做一些奇怪的事情,否则大多数情况下会在这些设置中用gpsd吐回数据,而不需要诊断设置.
但是,cgps
如果没有修复,请记住会超时.检查你的skyview和Time To First Fix.xgps
另一方面,对于失败更具弹性,并提供数据缺失或质量的线索.如果你有一个X服务器,xgps
实际上我的首选测试是"它是否正常工作".如果你不这样做,但你的Pi在网络上(xgps 192.168.0.6
或者其他什么,因为其他机器安装了gpsd-client).另一种选择是ssh -X user@192.168.0.6
然后执行xgps
)
有趣的是,进入gpsd是另一种层次诊断,与其他人一样.
最后,gpsd(gps3.py)的Python客户端的无耻插件是从gpsd访问数据的手段.它仍然是阿尔法,但它不会导入历史残余.
您可能绑定到错误的序列号。您可以在未插入设备的情况下导航到下面的文件夹,然后在插入设备的情况下刷新,从而找到 GPS 设备的序列号。
cd /dev/
ls
Run Code Online (Sandbox Code Playgroud)
我的设备叫做“ttyACM0”
安装必需的软件包。
sudo apt-get install gpsd gpsd-clients python-gps
Run Code Online (Sandbox Code Playgroud)
停止守护进程
sudo systemctl stop gpsd.socket
sudo systemctl disable gpsd.socket
Run Code Online (Sandbox Code Playgroud)
将服务暴露给公共端口和本地主机
vim /lib/systemd/system/gpsd.socket
Run Code Online (Sandbox Code Playgroud)
将 127.0.0.1 更改为 0.0.0.0
停止 GPSD 服务
sudo killall gpsd
Run Code Online (Sandbox Code Playgroud)
将服务绑定到串口设备
sudo gpsd /dev/ttyACM0 -F /var/run/gpsd.sock
Run Code Online (Sandbox Code Playgroud)
显示 GPS 数据
gpsmon
Run Code Online (Sandbox Code Playgroud)
该视频逐步展示了如何执行您正在寻找的操作。
如何在树莓派上安装 GPS
https://www.youtube.com/watch?v=A1zmhxcUOxw
归档时间: |
|
查看次数: |
10489 次 |
最近记录: |