先看看装备,上节就说了,这树莓派的壳子我喜欢

历经九九八十一难,终于把树莓派和Pixhawk4飞控接通了,中间尝试了多种方法,四处碰壁,期间借鉴了微信公众号苍穹四轴中的大部分内容,结合Dronekit官网和Ardupilot官网的内容,还有知乎大佬李德杰的帖子、大佬DarrenChan陈驰的帖子,使得连接成功,记录一下,方便日后查看,也方便日后学习的老弟少走弯路。这里用的是一个相对简单一些的python写成的库dronekit,大家可以了解一下
还是上结果图看下,读取的状态

飞控配置
首先连接地面站,因为调试过程多个地面站也尝试了一遍,MP地面站的话就在配置调试->全部参数树->搜索serial2->baud改成921,PROTOCOL=2(这里我看其他帖子写改成1,但我看官方是改成2,都尝试了一下我这里是2)->写入参数->重启飞控即可

如果用QGC的话,在载具设置->参数->搜索serial2->设置baud=921600,protocol=MAVLINK2->保存重启飞控即可

树莓派配置
树莓派要的东西很多,我这用的是最新的树莓派4,感觉还挺好,但不知道是不是太强大了造成的不稳定,经常崩机,系统重装了好几次,心累的不行。
系统安装的是官方提供的Raspbian Buster with desktop,大约1G左右,也尝试过400MB的Raspbian Buster Lite,但是后来不知道怎么连wifi而告终,不过用不带桌面的是真的快,后来发现,wifi应该可以通过sudo raspi-config 下的wifi来配置,还没尝试,以后有时间试一下。
装好系统后,初步设置我连到自家电视设置的,无屏幕教程网上有不少,有屏幕的远程操作看我上一篇的帖子。
首先进行树莓派系统的设置
sudo raspi-config
进入设置界面,选择5 interface options,选择P6 serial,先no在yes,保存重启。

还有一种方法是在树莓派桌面下run有个raspi设置,选择serial_login-disabled,serial_interface-enabled。
设置完成后进入终端:
配置如下:
sudo apt-get update
sudo apt-get upgrade
python应该是自带,也装一下,万一没有呢
sudo apt-get install python-pip python-dev
这一步要装一下,要不然提示报错
sudo apt-get install libxml2-dev libxslt1-dev zlib1g-dev python-py
安装dronekit
这一步可能会花费较长时间,需要耐心等待一下
sudo pip install dronekit
这样基本就完成了,然后就是连接问题
参照官网给的连接图
在树莓派有供电的情况下,5v不用连接,只需要一个地,一个T,一个R,树莓派引脚如下图,也可以使用ttl转usb进行配置,可以参考苍穹四轴中的内容,我用usb没有配置成功,
基本差不多了,我的连接图给大家参考一下

程序代码
环境配置完成后,基本就是写代码进行通信了,我这里用linux使用ssh进行的控制,也尝试过用windows10的VNs进行控制,结果都是不错的,延时都不高,vns可以看到远程的桌面新手可以尝试一下,相关配置跟前面讲到的ssh一样,开启后,输入ip及密码就可以登录操作。
远程连接树莓派,上一章提到了详细过程
接下来写connect.py程序
cd
touch connect.py
sudo vim connet.py
这里vim是一个编辑器,没安装的话会提示安装即可,操作方法为 输入i开始写入,输入esc退出写入状态,:wq保存并退出,这就够了
复制以下内容进文本,尝试能否连接并输出文本:
from dronekit import connect
vehicle = connect

本文记录了使用树莓派4B与Pixhawk4飞控进行状态读取的过程,涉及飞控配置、树莓派配置、程序代码编写。通过修改地面站参数和树莓派串口设置,使用dronekit库实现了通信,并展示了连接示例。在配置过程中遇到的问题和解决方案也进行了分享。

8151

被折叠的 条评论
为什么被折叠?



