我目前正忙于我的硕士项目,该项目涉及使用 Mavlink 协议在 Raspberry Pi Model 2 B V1.1 和 Pixhawk 飞行控制器之间的 UART 上设置通信。
当然,第一步是设置 UART 并使其正常工作。我不是一个在出现问题的第一个迹象时寻求帮助的人。我已经为此苦苦挣扎了好几天,这迫使我不止一次地怀疑我存在的目的。我感到愚蠢和沮丧。请看看您是否可以提供任何帮助。
我的第一个资源是本教程,它应该相对简单:
http://ardupilot.org/dev/docs/raspberry-pi-via-mavlink.html
本教程只是安装所有必要的包和依赖项,以及设置 UART。我按照步骤通过 raspi-config 禁用操作系统对串行端口的使用,但是在尝试测试连接后出现错误:
[Errno 2] 没有这样的文件或目录:'/dev/ttyAMA0'
这很奇怪。因此,在通过 rasp-config 禁用和启用操作系统对串行端口的使用几次并检查后,每次我禁用它时,/dev/ttyAMA0 文件都会消失。现在,如果禁用 UART 的操作系统使用会删除该文件,那么该死的东西应该如何在 UART 上工作!?尽管如此,我还是通过了。我启用了串行端口的 OS 使用,这将 ttyAMA0 文件留在原处并遵循另一个建议,即更改 /boot/cmdline.txt 并删除对 ttyAMA0 的所有引用,如以下链接所示:
http://www.raspberry-projects.com/pi/pi-operating-systems/raspbian/io-pins-raspbian/uart-pins
这似乎工作正常。我现在可以启动 RPi 和 Pixhawk 飞行控制器之间的通信,并获得一些看起来正确的信息。然后黑魔法开始了。第二天我测试了连接,它总是吐出完整的垃圾。但与前一天相比,一切都没有改变。在某个地方我一定会错过一些东西。我遵循所有相同的教程和步骤,试图获得前一天得到的更积极的结果。然而,这只会导致更不稳定的行为。将串行线连接到我的 Pixhawk 飞行控制器时,键盘/鼠标似乎时不时地被中断。一切都倒退了。我已经重新安装了 Raspbian Jessie,不顾一切地尝试让事情正常进行。
以下是我怀疑可能导致问题的几件事:
波特率不正确(与我的飞行控制器通信的波特率需要为 57600)。我发现设置此波特率的最佳方法是将“init_uart_baud=57600”附加到/boot/config.txt/。我还阅读了其他方法,例如在 /etc/crontab 中附加一行。有什么建议么?
Pixhawk 奇迹般地偶尔拒绝与 RPi 沟通。
任何帮助将不胜感激。谢谢你。