【问题标题】:Pi 3 + Microstack GPS communicationPi 3 + 微栈 GPS 通信
【发布时间】:2016-04-08 06:35:53
【问题描述】:

我买了一个 Raspberry Pi 3 Model B、一个微堆栈基板和一个微堆栈 GPS。

我按照官方文档中的说明进行操作,但无法连接到 GPS。

基本上,GPS 指示灯会闪烁,这意味着它找到了 GPS 修复,但我看不到来自 PI 的任何数据。

例如,如果我尝试

cat /dev/ttyAMA0

我总是一无所获。我已经使用 raspi-config 禁用内核串行并启用 i2c 和 spi。

如果我尝试一下

stty -F /dev/ttyAMA0 ispeed 4800 && cat </dev/ttyAMA0"

我收到一个错误。

请问大家有什么建议吗?

或者这些模块可能与 Pi 3 不兼容?

非常感谢!

【问题讨论】:

  • 如果 gpsd 正在运行并且设备位于 /dev/ttyAMA0,您将被告知 cat: /dev/ttyAMA0: Device or resource busy这似乎需要调查一种或两种情况。
  • 抱歉我没听懂

标签: raspberry-pi raspbian gpsd raspberry-pi3


【解决方案1】:

很难说做了什么,什么没做。 'official' documentation from Microstack 提供了两种设置串口的方法。然后继续

自动启动 gpsd 要在 Raspberry Pi® 启动时自动启动 gps 服务,请重新配置 GPS 通过在终端输入守护进程
sudo dpkg-­reconfigure gpsd

● 当系统询问您是否要自动启动 gpsd 时选择&lt;yes&gt;
● 当被问到“gpsd 是否应该处理连接的 USB GPS”时选择&lt;no&gt; 自动接收”。
● 当询问“GPS 接收器连接到哪个设备”时,输入 /dev/ttyAMA0 .
● 接受其他选项的默认值。

如果您按照说明配置了串行端口并且配置了 gpsd 以自动启动并拾取您刚刚设置的设备,...那么,由于 gpsd 正在处理设备(对?),设备将处于忙碌状态,并且命令 cat /dev/ttyAMA0应该返回 cat: /dev/ttyAMA0: Device or resource busy...但是,它没有。

序列号没有按照说明配置,或者 gpsd 没有运行并拾取设备,或者两者兼而有之。

目标不是 cat 你的 GPS 数据,但 cat 没有返回 错误 表明有问题。

通常,这只是一个错字。但这可能是由于跳过了流程中的一个步骤,或者混合了各种来源的指令,以致左手不知道右手做了什么。

尝试: sudo killall gpsd 如果它返回 gpsd: no process found 则回答一个问题。

如果返回没有错误,请使用cat /dev/ttyAMA0 跟进。如果它什么都不返回,你应该看的方向是你的串口配置。

如果sudo dpkg-reconfigure gpsd 不允许您重新配置(我以为只是我),您可以使用您喜欢的编辑器修改 gpsd 的配置,例如sudo nano /etc/default/gpsd 并输入如下内容:

# Default settings for the gpsd init script and the hotplug wrapper.

# Start the gpsd daemon automatically at boot time
START_DAEMON="true"

# Use USB hotplugging to add new USB devices automatically to the daemon
USBAUTO="false"

# Devices gpsd should collect to at boot time.
# They need to be read/writeable, either by user gpsd or the group dialout.
DEVICES="/dev/ttyAMA0"

# Other options you want to pass to gpsd
GPSD_OPTIONS="-n -G"

您可能会发现-n 和 -G 很有用。保存并重新启动。

【讨论】:

  • 非常感谢。问题是,如果我尝试 sudo dpkg-reconfigure gpsd,它不会询问我任何选项,只需打印一些有关 gpsd 帐户的信息并再次启动服务
  • 如果我尝试 sudo-reconfigure gpsd 我得到:警告:正在停止 gpsd.service,但它仍然可以通过以下方式激活:gpsd.socket 创建/更新 gpsd 用户帐户...
  • @GavynSykes 我已将 gpsd 配置添加到答案中
【解决方案2】:

我终于找到了解决办法:

在 Pi 3 上,使用串口的步骤比较多,你必须禁用 BT。

编辑配置文件:

sudo nano /boot/config.txt

在底部添加:

dtoverlay=pi3-disable-bt-overlay

然后运行这个:

sudo systemctl disable hciuart

【讨论】:

    【解决方案3】:

    这篇文章对我很有用

    http://spellfoundry.com/2016/05/29/configuring-gpio-serial-port-raspbian-jessie-including-pi-3/#comment-67160

    我建议你阅读它

    现在在 RPI3 上串行端口

    ttyAMA0 被蓝牙使用 ttySO 指的是 GPIO Alias Serial0 指的是 RPI2 和 RPI3 上的 GPIO。 所以:

    使用最新版本重新安装 Jessie 以确保一切正常

    像往常一样

    $ sudo apt-get update 
    $ sudo apt-get upgrade
    
    $ sudo  raspi-config
    

    转到高级选项:您希望通过串行方式访问登录外壳吗?响应“是”(不像微堆栈数据表中的那样)

    $ sudo apt-­get install python3-­microstacknode
    

    安装 gpsd 标准工具

    $ sudo apt­-get install gpsd gpsd-­clients python­-gps
    

    编辑 GPSD

    $ sudo nano /etc/default/gpsd
    

    并输入选项:

    START_DAEMON="true"
    USBAUTO="false"
    DEVICES="/dev/serial0"
    GPSD_OPTIONS="-n -G"
    

    同样

    $ sudo nano /boot/cmdline.txt
    

    删除

    控制台=serial0,115200 并保存

    $ sudo nano /boot/config.txt
    

    你必须在最后

    enable_uart=1
    

    通过

    禁用控制台
    $ sudo systemctl stop serial-getty@ttyS0.service
    $ sudo systemctl disable serial-getty@ttyS0.service
    

    我也做过$ sudo chmod 775 ../../dev/ttySO(我不知道是否真的有必要)

    显然是重新启动

    和 gps 一起工作的奇迹

    cgps -s
    

    注意:您必须修复 GPS(红色 LED 闪烁)

    jpherrenknecht

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多