我已经在互联网上搜索了这个问题,但我找不到任何答案。以下是该项目的要点以及迄今为止我所做的工作
项目:我们学校参加了探空火箭比赛。我负责有效载荷,部分有效载荷包括GPS。我们的火箭上升到2英里,并没有打破音障
GPS模块:Adafruit ultime GPS突破
Raspberry Pi模型:B +或2(我们可以访问两者)
问题:由于火箭传播速度非常快(大约700-800英尺/秒),我们需要GPS以比每秒一次更快的速度更新(默认速率)。我有2个覆盆子pi,它们都使用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” - 更新raspberry pi的波特率
关于debian Wheezy这些命令有效,我以每秒5次的速度获得GPS坐标。 - 没问题。
另一个pi使用Debian Jessie,当我运行确切的命令时,它们不起作用,GPS装置继续以每秒一次的默认速率更新。
我很困惑为什么它会对Wheezy起作用,但是在Jessie它拒绝合作。
其他一些信息: - 我们通过USB0进行通信,(不是AMA0) - Jessie本身不支持GPS功能,人们必须手动改变如何收听GPS芯片(Wheezy原生支持这一点,不需要进行任何更改), - 我们正在使用完整的Jessie(不是精简版)。 - 当我改变Pi Jessie的波特率时,我跟进看它的设置(使用:stty -F / dev / ttyUSB0 -a)它告诉我波特率是我给它的新值(即/ 57600)。
所以我认为问题在于设置实际的GPS单位波特率/ NMEA量刑
我想我已经包含了所有相关信息,但如果我遗漏了一些内容,我会道歉并澄清任何不够清楚的内容。
任何帮助都会受到高度赞赏,因为我们想要升级到Jessie(其他芯片和程序,我们在Jessie的声音火箭上运行更顺畅),但GPS是不是的主要原因。
答案 0 :(得分:0)
我意识到这是一个旧线程,但是由于遇到相同的问题,我将发布我的解决方案,以便它可能对其他人有所帮助。
我有一个运行Raspbian Stretch,Adafruit Ultimate GPS的Raspberry 3 B +连接到ttyAMA0。对于RPi3,需要通过在/boot/config.txt中添加以下行来禁用蓝牙模块:
dtoverlay = pi3-disable-bt
无论如何,如上所述,我以前已经能够通过回显命令对GPS模块进行编程。但是,这次没有成功。最后,我设法通过安装终端程序CuteCom对它进行了编程。
启动程序,在设置下更改波特率,然后按Open。然后,NMEA句子应出现在窗口的下部。确保将线路端接设置为CR / LF,并直接给出输入命令,不要使用连字符或线路端接。例如,将波特率更改为57600,请输入:
$ PMTK251,57600 * 2C
然后必须关闭连接,波特率相应更改,然后再次打开。我注意到有时更改之前必须重复执行该命令。如果在GPS模块上安装了备用电池,则断电时将保留设置。