在 Linux 上为 BeagleBone Black 构建 ArduPilot¶
警告
该项目年代久远,缺乏维护,建议 BBBMini 项目
让 BeagleBone 运行 Debian¶
您需要一张 4GB 或更大容量的 microSD 卡和一个 1A 或更高的 5VDC 电源。您也可以使用供电的 USB 集线器。强烈建议不要使用笔记本电脑上的 USB 端口,因为它有电流限制。
访问 BeagleBoard 网站并获取 最新图片.您可能会在页面上找到多张图片。对于 BeagleBone Black 上的 ArduPilot,您必须下载 Debian(BeagleBone Black - 2GB eMMC) 图像。您可以在 BeagleBone Black(eMMC 闪盘) 头
例如,当前图像是 BBB-eMMC-flasher-debian-7.5-2014-05-14-2gb.日期(此处为 2014-05-14)和版本号(此处为 7.5)可能会更改。请确保您下载的是最新映像。
在 Ubuntu/Mac OS X 上¶
验证图像:
md5sum BBB-eMMC-闪光器-菜鸟-7.5-2014-05-14-2gb.图像.xz
74615fb680af8f252c034d3807c9b4ae BBB-eMMC-闪光器-菜鸟-7.5-2014-05-14-2gb.图像.xz
在将 SD 卡插入电脑之前,键入
df -h
这将列出当前已安装的驱动器。
现在插入 SD 卡并键入
df -h
并查看所添加驱动器的名称。
我的情况是 /dev/sdd1
在这种情况下,在下面的命令中,它被写入 dd of=/dev/sdd 将其替换为 SD 卡的正确地址。
警告
如果您弄错了,可以擦除硬盘
然后将其 xzcat 到 Ubuntu/Mac OS X 机器的 SD 卡中
xzcat BBB-eMMC-闪光器-菜鸟-7.1-2013-10-08.图像.xz | dd 的=/设计/sdd bs=1M
完成后,取出 SD 卡并将其放入 BBB。
在 Windows 上¶
从以下地址下载 Win32 磁盘成像器 这里.插入 SD 卡,然后启动下载的应用程序。
选择下载的图像,然后按 写.
完成后,取出 SD 卡并将其放入 BBB。
将映像闪存到 eMMC¶
将 SD 卡放入 BBB。确保已从 BBB 中移除以太网和所有其他 USB 设备。将它连接到墙壁适配器(5VDC 1A)或供电 USB 集线器。
按下启动按钮,启动时按住不放,直到四个蓝灯全部亮起。
放手,然后等待。大约需要 15 分钟。
在此阶段,指示灯会频繁闪烁,当四个指示灯恢复为纯蓝色(无闪烁)时,您就知道完成了。关闭 BBB 电源并取出 SD 卡。
使用随附的 USB 线缆将 BeagleBone Black 与电脑连接。根据操作系统,安装所需的 司机.
现在 ssh 进入 BeagleBone Black,键入
ssh 根基@192.168.7.2
Debian 映像中的 root 用户没有密码
您也可以通过以太网将 BBB 连接到本地网络,并通过 ssh 连接到它。
PixHawk 火角¶
要在 BeagleBone black 中运行 APM,您需要使用一套合适的传感器。这些传感器大多包含在 PixHawk Fire cape (PXF) 中。 Erle Robotics 商店.
制作 rt 内核¶
摘自 https://wiki.beyondlogic.org/index.php/BeagleBoneBlack_Building_Kernel )
为 RT 版进行了修改,并进行了简化。
编译 BeagleBone Black 内核¶
以下是在装有 Ubuntu 13.04 O.S 的电脑上构建 BeagleBone Black 内核的说明。
为了简单起见,运行¶
苏都 su
您可能需要在此处输入密码...
如果还没有,请创建以下目录
mkdir /首页/您的用户名/出口
mkdir /home/YOUR_USERNAME/export/rootfs
先决条件¶
ARM 交叉编译器¶
要为 BeagleBone Black 编译 Linux 内核,首先必须在 Linux 操作系统上安装 ARM 交叉编译器。我使用的是 Ubuntu 13.04 自带的 gcc-4.7-arm-linux-gnueabi-base。要安装编译器,请运行
适切-获取 安装 gcc-上膛-linux-gnueabi
GIT¶
Beaglebone 补丁和构建脚本存储在 git 仓库中。安装 git:
适切-获取 安装 git
并配置您的身份。
git 配置 --全球 用户.电子邮件 "[email protected]";
lzop 压缩¶
内核使用 lzo 压缩。安装 lzop 并行文件压缩器:
适切-获取 安装 lzop
uBoot mkimage¶
BeagleBone black 使用的引导加载程序是 u-bootu-boot 有一种特殊的映像格式,称为 uImage。它包括描述、机器/架构类型、压缩类型、加载地址、校验和等参数。要制作这些映像,你需要一个 mkimage 工具,它是 u-Boot 发行版的一部分。下载 u-boot,制作并安装 u-boot 工具:
wget ftp://ftp.穴盘.de/酒吧/u-后备箱/u-后备箱-最新.卷烟.bz2
卷烟 -xjf u-后备箱-最新.卷烟.bz2
CD u-后备箱-2013.10 (脸色 至 看看 什么 此 是 人称, 它 可以 有 变了)
生产 工具 (不'无法使用上一版本的 u-boot 需要修订)。
安装 工具/mkimage /我们/当地/箱柜
编译 BeagleBone Black 内核¶
在这里,我们编译 BeagleBone Black 内核,并生成一个 uImage 文件,将 DTB Blob 附加到内核中,以方便使用。
git clone git://github.com/beagleboard/kernel.git cd kernel git checkout 3.8-rt ./patch.sh cp configs/beaglebone kernel/arch/arm/configs/beaglebone_defconfig wget http://arago-project.org/git/projects/?p=am33x-cm3.git\;a=blob_plain\;f=bin/am335x-pm-firmware.bin\;hb=HEAD -O kernel/firmware/am335x-pm-firmware.bin cd kernel make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- beaglebone_defconfig -j4 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- uImage dtbs -j4 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- uImage-dtb.am335x-boneblack -j4
现在,我们构建任何内核模块:
生产 ARCH=上膛 CROSS_COMPILE=上膛-linux-gnueabi- 模块 -j4
如果你已经准备好 rootfs,就可以安装它们了:
生产 ARCH=上膛 CROSS_COMPILE=上膛-linux-gnueabi- 安装路径=/首页/您的用户名/出口/rootfs 安装模块
安装 RT 内核¶
制作好 Linux 内核后...
确保在 Beaglebone 上安装了 Debian,并从 Linux.... ssh 进入 Beaglebone
ssh 根基@192.168.1.3
(我的 IP 地址,请根据你的 beaglebone 进行调整)
转到 /boot/uboot/ 文件夹
CD /后备箱/长根/
确保那里有备份文件夹。如果没有:
mkdir 后援
然后备份您的 zImage
cp z 图像 uInitrd 后援/
则
ls /lib/模块
它应该显示 3.8.13-bone28 或类似版本。
现在,我们需要进入 Ubuntu 计算机终端。进入你创建的导出文件夹:
CD /首页/您的用户名/出口/rootfs/lib/模块
并运行
rsync -avz 3* 根基@192.168.1.3:/lib/模块/
然后运行
rsync /首页/proficnc/u-后备箱-2013.10/内核/内核/拱门/上膛/后备箱/z 图像 192.168.1.3 :/后备箱/长根/
在 Beaglebone 上运行以下程序
ls /lib/模块
现在你应该同时拥有旧文件和新的 rt 文件夹。
现在键入
同步
重新启动
一些有用的提示¶
连接传感器¶
连接传感器电路板时,其连接方式如下(使用短导线)
I2c 调试¶
要检测 i2c 是否正常工作,可以使用以下命令
i2cdetect -r 1
这些数字1e、53、69、77 是 MAG、Gyro、Accel 和 Baro(不按顺序排列)。
连接 GPS¶
待补
连接接收器¶
待补
连接舵机¶
待补
连接空速传感器¶
待补
迄今测试过的设备¶
在 SPI 上回复了 "我是谁 "的请求
MPU6000
MPU9250(由于焊接了跳线,可能会出现指南针问题)
MS5611 (SPI)
SPI 无响应
1 LSM9DS0(焊接问题,没有连接到 I/O
响应 I2C 检测
开普 IDE EEPROM 0x54h AT24CS32
开普 ID COA_OTP 0x5Ch AT24CS32
加密 0x64h ATSHA204
空速 0x28h MS4525DO-DS3AIXXXDS
罗盘扩展 0x1eh HMC5883L
电源管理 0x24 TPS65217C
板载 EEProm 0x50h 未知
HDMI core.... 未使用,请勿启用 0x34
未响应 I2C 测试
MS5611(I2C) 0x76h
2.RGB LED 驱动器 0x55h TCA62724(与不存在的 Cape eeprom 冲突)
调整 BBB 时钟¶
cpufreq-info
显示您当前的频率
编辑 /etc/default/cpufrequtils(如果不存在,可能需要创建)。使用 GOVERNOR 变量指定调速器:
纳米 /等等/默认/cpufrequtils
添加以下内容......
# 有效值:用户空间 保守型 Power Save 按需性能
# 从 cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors 中获取它们
总督=性能";
CTRL-X 退出
Y 保存
重新启动,检查是否成功
在 BBB 上安装和制作 ArduPilot¶
在 BBB 上安装 git、make、gawk、g++ 和 arduino-core
适切-获取 安装 git 生产 瞠目结舌 g++ Arduino-核心
git 复制 --递归-子模块 git://github.网/ArduPilot/ardupilot.git
CD ardupilot
然后打开
CD ArduPlane
或
CD ardupilot/ArduCopter
或
CD ardupilot/APMRover2
或
CD ardupilot/天线跟踪器
则
生产 linux
从该目录运行 tmp/Plane.elf(或 Copter,或 Rover)
文件/固定翼飞行器.小精灵
连接到 GCS¶
待补...............
现状¶
下表汇总了 驱动程序开发状况:
里程碑 |
现状 |
---|---|
在 BBB 中运行 ArduPilot(I2C 连接传感器) |
好的 |
PXF 设备树 |
WIP |
MPU6000 SPI 用户空间驱动程序 |
好的 |
MPU9150 I2C 用户空间驱动程序 |
好的 |
LSM9DS0 SPI 用户空间驱动程序 |
编码 |
MPU9250 SPI 用户空间驱动程序 |
编码 |
MS5611 I2C/SPI 用户空间驱动程序 |
编码 |
GPIO 用户空间驱动程序 |
WIP |
I2CDriver 多总线感知 |
WIP |
AP_InertialSensor_Linux |
待办事项 |
PRU PWM 驱动器 |
好的 (问题 使用 PREEMPT_RT 内核)。 |
MPU6000 SPI 内核驱动程序 |
WIP |
MPU9150 I2C 内核驱动程序 |
待办事项 |
LSM9DS0 SPI 内核驱动程序 |
待办事项 |
MPU9250 SPI 内核驱动程序 |
待办事项 |
MS5611 I2C/SPI 内核驱动程序 |
待办事项 |
状态:OK"、"Coded"(需要测试)、"WIP"(工作进行中)、"Issue"(问题)、"ToDo"(待完成)。