# 配备 Raspberry Pi 操作系统的 PilotPi

# 开发人员快速入门

# 操作系统图像

最新的官方 树莓派操作系统精简版 (打开新窗口) 始终建议使用图像。

要进行安装,您必须已经通过 SSH 连接到 RPi。

# 设置访问权限(可选)

# 主机名和 mDNS

mDNS 可以帮助你用主机名而不是 IP 地址连接 RasPi。

苏都 raspi-config

导航至 网络选项 > 主机名.设置并退出。您可能需要设置 无密码授权 (打开新窗口) 也是如此。

# 设置操作系统

# config.txt

苏都 纳米 /boot/config.txt

将文件替换为

# 启用 sc16is752 覆盖
dtoverlay=sc16is752-spi1
# 启用 I2C-1,并将频率设置为 400KHz
dtparam=i2c_arm=开,i2c_arm_波特率=400000
# 启用 spidev0.0
dtparam=脊柱=关于
# 启用 RC 输入
启用=1
# 启用 I2C-0
dtparam=i2c_vc=关于
# 将蓝牙切换为 miniuart
dtoverlay=miniuart-bt

# cmdline.txt

苏都 raspi-config

接口选项 > 串行 > 登录外壳 = 否 > 硬件 = 是.启用 UART,但没有登录 shell。

苏都 纳米 /boot/cmdline.txt

附加 isolcpus=2 后。整个文件将是:

游戏机=tty1 根基=PARTUUID=xxxxxxxx-xxx 根类型=ext4 升降机=deadline fsck.repair=是 rootwait 隔离器=2

这将告诉 Linux 内核不要在 CPU 内核 2 上调度任何进程。我们稍后将在该内核上手动运行 PX4。

重新启动 RasPi 并通过 SSH 登录。

检查 UART 接口:

ls /dev/tty*

应该有 /dev/ttyAMA0, /dev/ttySC0/dev/ttySC1.

检查 I2C 接口:

ls /dev/i2c*

应该有 /dev/i2c-0/dev/i2c-1

检查 SPI 接口

ls /dev/spidev*

应该有 /dev/spidev0.0.

# rc.local

在本节中,我们将在 rc.local.

苏都 纳米 /etc/rc.local

将以下内容添加到上述文件中 退出 0:

回响 "25"; >; /sys/class/gpio/export
回响 "在"; >; /sys/class/gpio/gpio25/direction
如果 [ $( /sys/class/gpio/gpio25/value) -eq 1 ] ; 
        回响 启动 PX4";
        CD /home/pi/px4 ;  taskset -c 2 ./bin/px4 -d -s pilotpi_mc.config 2 &>; 1 >; /home/pi/px4/px4.log 及样品;
fi
回响 "25"; >; /sys/class/gpio/unexport

保存并退出。

备注

不需要时不要忘记关闭开关。

# 犯罪现场调查摄像机

备注

启用 CSI 摄像头后,I2C-0 上的任何工作都将停止。

苏都 raspi-config

接口选项 > 摄像头

# 编写代码

要获得 最新 在终端中输入以下命令:

Git 克隆 https://github.com/PX4/PX4-Autopilot.git --recursive

备注

您只需这样做,就能构建最新的代码。

# 针对 Raspberry Pi 操作系统的交叉构建

设置 RPi 的 IP(或主机名):

出口 AUTOPILOT_HOST=192.168.X.X

出口 AUTOPILOT_HOST=pi_hostname.local

生成可执行文件

CD PX4-自动驾驶仪
生产 scumaker_pilotpi_default

然后用

生产 scumaker_pilotpi_default 上传

通过 ssh 连接并使用

CD px4
苏都 taskset -c 2 ./bin/px4 -s pilotpi_mc.config

现在,PX4 以多旋翼配置启动。

如果您遇到类似问题,请执行 bin/px4 在您的 Pi 上进行如下操作:

bin/px4:/lib/xxxx/xxxx:未找到版本 `GLIBC_2.29'(bin/px4 需要)

那么,你应该改用 docker 进行编译。

在进行下一步之前,首先要清理现有建筑:

rm -rf build/scumaker_pilotpi_default

# 其他构建方法(使用 docker)

下面的方法可以提供在 CI 中部署的相同工具集。

如果你是第一次使用 docker 进行编译,请参考 官方文件.

在 PX4-Autopilot 文件夹中执行命令:

./Tools/docker_run.sh "export AUTOPILOT_HOST=192.168.X.X; export NO_NINJA_BUILD=1; make scumaker_pilotpi_default upload";

备注

docker 不支持 mDNS。每次上传时,你都必须指定正确的 IP 地址。

备注

如果您的集成开发环境不支持忍者构建、 no_ninja_build=1 选项会有帮助。您也可以不上传而直接编译。只需删除 上传 目标:

也可以直接用命令编译代码:

./Tools/docker_run.sh "make scumaker_pilotpi_default";

# 配置后

您需要检查这些额外的项目,以使载具正常工作。

# 执行机构配置

首先设置 CA_AIRFRAME 您载具的参数。

然后,您就可以使用正常的 执行机构配置 配置屏幕(将出现 RasPi PWM 输出驱动器的输出选项卡)。

# 外部指南针

在启动脚本(*.config),你会发现

# 外部 GPS & 指南针
gps start -d /dev/ttySC0 -i uart -p ubx -s
#hmc5883 start -X
#ist8310 start -X

根据您的情况选择正确的指南针。不确定您的 GPS 模块会显示哪个指南针?执行以下命令并查看输出结果:

苏都 apt-get 更新
苏都 apt-get 安装 i2c-tools i2cdetect -y 0

输出示例

     0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 0e -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 1e -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30:-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --

1e 表示外部 I2C 总线上安装了基于 HMC5883 的罗盘。同样,IST8310 的值为 0e.

备注

一般情况下,您只有其中一个。如果其他设备连接到外部 I2C 总线,也会在此处显示。/dev/i2c-0)