2

我已经在互联网上搜索了这个问题,但找不到任何答案。这是该项目的要点以及我到目前为止所做的事情

项目:我校参加探空火箭比赛。我负责有效载荷,我们的部分有效载荷包括 GPS。我们的火箭飞行了 2 英里并且没有突破音障

GPS模块:Adafruit ultime GPS breakout

Raspberry Pi 型号:B+ 或 2(我们都可以访问)

问题:由于火箭飞行速度非常快(大约 700-800 英尺/秒),我们需要 GPS 以比每秒一次(默认速率)更快的速度更新。我有 2 个都使用 GPSD 守护进程的树莓派和一个个人 python 脚本。问题出在:使用 debian Wheezy,我可以使用以下命令从 bash 设置更新速率

"echo -e "\$PMTK251,57600*2C\r\n" > /dev/ttyUSB0" - 更新波特率

"echo -e "\$PMTK220,200*2C\r\n" > /dev/ttyUSB0" - 更新 NMEA 语句

“stty -F /dev/ttyUSB0 57600 clocal cread cs8 -cstopb -parenb” - 更新树莓派的波特率

在 debian Wheezy 上,这些命令有效,我以每秒 5 次的速度获取 GPS 坐标。- 没问题。

另一个 pi 使用 Debian Jessie,当我运行确切的命令时它们不起作用,并且 GPS 单元继续以每秒一次的默认速率更新。

我很困惑为什么它会在 Wheezy 上起作用,但在 Jessie 上却拒绝合作。

一些附加信息: - 我们通过 USB0 进行通信,(不是 AMA0) - Jessie 本身不支持 GPS 功能,必须手动更改收听 GPS 芯片的方式(wheezy 本身支持此功能,无需更改), - 我们正在使用完整的杰西(不是精简版)。- 当我更改 Pi Jessie 的波特率时,我跟进查看它的设置(使用:stty -F /dev/ttyUSB0 -a)它告诉我波特率是我给它的新值(即/ 57600)。

所以我认为问题在于设置实际的 GPS 单位波特率/NMEA 量刑

我想我已经包含了所有相关信息,但如果我遗漏了一些内容,我很抱歉,并且可以澄清任何不够清楚的内容。

任何帮助将不胜感激,因为我们想升级到 Jessie(我们在探空火箭上集成的其他芯片和程序与 Jessie 一起运行更顺畅)但 GPS 是不升级的主要原因。

4

1 回答 1

0

我意识到这是一个旧线程,但由于我遇到了同样的问题,我将发布我的解决方案,以便它可能对其他人有所帮助。

我有一个运行 Raspbian Stretch 的 Raspberry 3 B+,连接到 ttyAMA0 的 Adafruit Ultimate GPS。对于 RPi3,需要通过在 /boot/config.txt 中添加以下行来禁用蓝牙模块:

dtoverlay=pi3-禁用-bt

无论如何,我之前已经能够通过 echo 命令对 GPS 模块进行编程,如上所述。然而,这一次没有成功。最后,我设法通过安装终端程序 CuteCom 对其进行了编程。

启动程序,在设置下更改波特率,然后按打开。NMEA 语句随后应出现在窗口的下部。确保行结束符设置为 CR/LF,并直接给出输入命令,不带连字符或行终止符。例如将波特率更改为 57600 写入:

$PMTK251,57600*2C

然后必须关闭连接,波特率相应改变,然后再次打开。我注意到有时需要在更改发生之前重复该命令。如果 GPS 模块上安装了备用电池,则在断电时会保留设置。

于 2019-01-13T22:17:35.810 回答