# Crazyflie 2.1
警告
PX4 不生产这种(或任何)自动驾驶仪。请联系 生产商 (打开新窗口) 硬件支持或合规问题。
警告
该飞行控制器支持 PX4 试验性.
警告
Crazyflie 2.1 只能在以下环境中飞行 手动/稳定模式.
Crazyflie 系列微型四驱车由 Bitcraze AB 生产。Crazyflie 2.1 的概览如下 在这里找到 (打开新窗口).
# 快速总结
备注
主要硬件文件如下 这里 (打开新窗口)
- 主片上系统:STM32F405RG
- 中央处理器168 MHz ARM Cortex M4,带单精度 FPU
- 内存:192 kb Sram
- nRF51822 无线电和电源管理 MCU
- BMI088 3 轴加速度计/陀螺仪
- BMP388 高精度压力传感器
- uUSB 连接器
- 板载锂聚合物充电器,提供 100mA、500mA 和 980mA 模式
- 全速 USB 设备接口
- 部分 USB OTG 功能(存在 USB OTG,但无 5V 输出)
- 8KB EEPROM
# 购买地点
该车可在此处购买: Crazyflie 2.1 (打开新窗口) (store.bitcraze.io)
实用的外围硬件包括
- Crazyradio PA 2.4 GHz USB 加密狗 (打开新窗口):之间的无线通信 QGroundControl 和 Crazyflie 2.0
- 突围甲板 (打开新窗口):分线扩展板,用于连接新的外设。
- 流动甲板 v2 (打开新窗口):光学流量传感器和距离传感器,用于高度和位置控制。
- Z 型游侠甲板 v2 (打开新窗口):用于高度控制的距离传感器(与流动甲板的传感器相同)。
- 多游侠甲板 (打开新窗口) 多方位物体检测
- 蜂鸣器甲板 (打开新窗口) 系统事件(如电池电量不足或充电完成)的音频反馈。
- 突围甲板 (打开新窗口):扩展板:无需焊接即可轻松测试新硬件。
- SD 卡甲板 (打开新窗口):将高速机载记录传输至微型 SD 卡
- 罗技操纵杆 (打开新窗口)
# 组装 Crazyflie 2.1
# 闪光 PX4
备注
这些说明仅在 Ubuntu 上进行过测试。
设置好 PX4 开发环境后,请按照以下步骤在 Crazyflie 2.1 上安装 PX4 自动驾驶仪:
下载 PX4 引导加载程序的源代码:
git clone https://github.com/PX4/Bootloader.git --recurse-submodules
导航至源代码的顶层目录,然后使用
使 crazyflie21_bl
按照以下步骤将 Crazyflie 2.1 进入 DFU 模式:
- 确保最初未接通电源。
- 确保电池已断开。
- 按住重置按钮(见下图......)。
- 插入电脑的 USB 端口。
- 一秒钟后,蓝色 LED 灯开始闪烁,5 秒钟后闪烁速度加快。
- 释放按钮。
安装 dfu-util:
sudo apt-get update sudo apt-get install dfu-util
使用 dfu-util 完成后拔下 Crazyflie 2.1 的电源插头:
sudo dfu-util -d 0483:df11 -a 0 -s 0x08000000 -D ./build/crazyflie21_bl/crazyflie21_bl.bin
打开 Crazyflie 2.1 电源时,黄色 LED 灯应闪烁。
下载 PX4 自动驾驶仪的源代码:
git clone https://github.com/PX4/PX4-Autopilot.git
导航至源代码的顶层目录,然后使用
cd PX4-Autopilot/ make bitcraze_crazyflie21_default upload
当提示插入设备时,插入 Crazyflie 2.1。黄色 LED 灯应开始闪烁,表示启动加载器模式。然后红色 LED 灯会亮起,表明闪烁过程已经开始。
等待完成。
完成!使用 QGroundControl (打开新窗口).
# 刷新原始 Bitcraze 固件
- 下载最新版本 Crazyflie 2.1 启动程序 (打开新窗口)
- 按照以下步骤将 Crazyflie 2.1 进入 DFU 模式:
- 确保最初未接通电源。
- 确保电池已断开。
- 按住重置按钮。
- 插入电脑的 USB 端口。
- 一秒钟后,蓝色 LED 灯开始闪烁,5 秒钟后闪烁速度加快。
- 释放按钮。
- 使用 dfu-util 完成后拔下 Crazyflie 2.1 的电源插头:打开 Crazyflie 2.1 电源时,黄色 LED 灯应闪烁。
sudo dfu-util -d 0483:df11 -a 0 -s 0x08000000 -D cf2loader-1.0.bin
- 使用以下命令安装最新的 Bitcraze Crazyflie 2.1 固件 此 (打开新窗口) 教程。
# 无线设置说明
板载 nRF 模块可通过蓝牙或专有的 2.4GHz Nordic ESB 协议与电路板连接。
- A Crazyradio PA (打开新窗口) 建议
- Crazyflie 2.1 可通过蓝牙支持 Crazyflie 手机应用程序,以便立即飞行。
通过 MAVLink:
- 使用 Crazyradio PA 和兼容的 GCS。
- 下载 crazyflie-lib-python 源代码:
git clone https://github.com/bitcraze/crazyflie-lib-python.git
备注
我们将使用 cfbridge.py (打开新窗口) 在 Crazyflie 2.1(已刷新 PX4)和 QGroundControl 之间建立无线 MAVlink 通信链路。 Cfbridge 使 QGroundControl 能够与 crazyradio PA 通信。该 基于 C 语言的 cfbridge (打开新窗口) 目前正在经历数据丢失问题,因此我们选择使用 cfbridge.py.
- 确保设置了使用 USB Radio 的 udev 权限。为此,请按照以下步骤操作 这里 (打开新窗口) 和 重新启动 您的电脑
- 通过 USB 连接 Crazyradio PA。
- 建立一个 虚拟环境 (打开新窗口) 与软件包的依赖关系:
pip install tox --user
- 导航至 crazyflie-lib-python 文件夹并键入
捞钱
- 激活虚拟环境:
源 venv/bin/activate
- 安装所需的依赖项:
pip install cflib pip install -r requirements.txt
将 Crazyflie 2.1 与 crazyradio 连接、 启动 cfbridge 请按照以下步骤操作:
关闭并打开 Crazyflie 2.1,等待开机。
通过 USB 连接 Crazyflie 无线电设备。
导航至 crazyflie-lib-python 文件夹。
激活环境:
源 venv/bin/activate
导航至示例文件夹:
cd 示例
启动 cfbridge:
python cfbridge.py
备注
Cfbridge 默认情况下,会尝试在信道 80 和 crazyflie 地址 0xE7E7E7E7 上启动无线电链路通信。如果使用 多只疯狂的苍蝇和/或疯狂的收音机 (打开新窗口) 如果想在同一个房间里使用不同的通道和/或地址,首先要通过 USB 电缆将 crazyflie 与 QGroundControl 连接起来,然后更改 QGroundControl 中的系统链接参数(通道、地址)。然后,启动 cfbridge,将相同的通道和地址分别作为第一个和第二个参数,例如
python cfbridge.py 90 0x02020202
打开 QGroundControl。
使用后 cfbridge如果激活了 virtualenv,可以通过按
CTRL+z
.大多数情况下,启动 cfbridge 再次从同一终端连接到 crazyflie 无法解决这个问题,关闭终端并重新启动 cfbridge 新航站楼。
TIP
如果您在 crazyflie-lib-python (打开新窗口) 或如果发射 cfbridge 在新终端中找不到 crazyflie,可以尝试导航到 crazyflie-lib-python 文件夹,然后运行下面的脚本重建 cflib。
捞钱
备注
只有将控制器(例如 Playstation 3 控制器)连接到电脑后,QGC 中的操纵杆菜单才会出现。
# 硬件设置
Crazyflie 2.1 只能在以下环境中飞行 稳定模式.
为了记录飞行详情,您可以将 SD 卡甲板安装在 crazyflie 的顶部,如下图所示:
# 将 FrSky Taranis 遥控发射器用作操纵杆
如果您已经拥有 Taranis 遥控发射器,并希望将其用作控制器,则可将其配置为 USB 操纵杆:
在 Taranis 中创建一个新模型。
在 型号设置 菜单页面,关闭内部和外部 TX 模块。
在 输出 在菜单页面(在某些 Taranis 发送机中也称为 "SERVOS "页面),反转油门(CH1)和副翼(CH3)。
使用 Taranis 开关上膛/撤膛并切换到不同的飞行模式:
在 Taranis UI 中 混音器 在 Taranis UI 的菜单页面中,您可以将开关分配到通道 9-16 范围内的任意通道,这些通道映射到 QGroundControl 操纵杆设置中的按钮 0-7。例如,Taranis "SD "开关可设置为 Taranis UI 中的通道 9:
用 USB 电缆将 Taranis 与电脑连接,然后打开 QGroundControl。
在 QGroundControl 操纵杆设置中,您可以看到按钮在打开时变成黄色。例如,Taranis 中的通道 9 映射到 QGroundControl 操纵杆设置中的按钮 0。您可以为该按钮分配任何模式,例如 海拔高度 模式。现在,当您降低开关"SD"时,飞行模式将变为 海拔高度.
# ROS
通过 MAVROS 连接 Crazyflie 2.1:
- 启动 cfbridge 使用上述说明。
- 更改 QGroundControl 监听的 UDP 端口:
- 在 QGroundControl 中,导航至 应用程序设置> 常规 并取消选中 自动连接到以下设备.
- 加入 通信链接 链接类型 UDP检查 启动时自动连接 选项,更改 监听端口 到 14557,添加目标主机:127.0.0.1,然后按 好的.
- 确保您有 马弗罗斯 (打开新窗口) 已安装。
- 用命令启动 MAVROS:
roslaunch mavros px4.launch fcu_url:="udp://:[email protected]:14551" gcs_url:="udp://@127.0.0.1:14557"
- 如果无法连接,请重新启动 QGroundControl。