配备 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=on,i2c_arm_baudrate=400000
# 启用 spidev0.0
dtparam=spi=on
# 启用 RC 输入
启用=1
# 启用 I2C-0
dtparam=i2c_vc=on
# 将蓝牙切换为 miniuart
dtoverlay=miniuart-bt
cmdline.txt
苏都 raspi-config
接口选项 > 串行 > 登录外壳 = 否 > 硬件 = 是.启用 UART,但没有登录 shell。
苏都 纳米 /boot/cmdline.txt
附加 isolcpus=2
后。整个文件将是:
游戏机=tty1 根基=PARTUUID=xxxxxxxx-xx 根类型=ext4 升降机=期限 fsck.repair=是 根等待 isolcpus=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 ; 諾 任务集 -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 --递归
信息
您只需这样做,就能构建最新的代码。
针对 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
苏都 任务集 -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 & 指南针
全球定位系统 启动 -d /dev/ttySC0 -i uart -p ubx -s
#hmc5883 start -X
#ist8310 start -X
根据您的情况选择正确的指南针。不确定您的 GPS 模块会显示哪个指南针?执行以下命令并查看输出结果:
苏都 apt-get 更新
苏都 apt-get 安装 i2c 工具
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: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
1e
表示外部 I2C 总线上安装了基于 HMC5883 的罗盘。同样,IST8310 的值为 0e
.
信息
一般情况下,您只有其中一个。如果其他设备连接到外部 I2C 总线,也会在此处显示。/dev/i2c-0
)