# Crazyflie 2.1

警告

PX4 不生产这种(或任何)自动驾驶仪。请联系 生产商 (打开新窗口) 硬件支持或合规问题。

警告

该飞行控制器支持 PX4 试验性.

警告

Crazyflie 2.1 只能在以下环境中飞行 手动/稳定模式.

Crazyflie 系列微型四驱车由 Bitcraze AB 生产。Crazyflie 2.1 的概览如下 在这里找到 (打开新窗口).

Crazyflie2 图像

# 快速总结

备注

主要硬件文件如下 这里 (打开新窗口)

  • 主片上系统: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)

实用的外围硬件包括

# 组装 Crazyflie 2.1

# 闪光 PX4

备注

这些说明仅在 Ubuntu 上进行过测试。

设置好 PX4 开发环境后,请按照以下步骤在 Crazyflie 2.1 上安装 PX4 自动驾驶仪:

  1. 下载 PX4 引导加载程序的源代码:

    git clone https://github.com/PX4/Bootloader.git --recurse-submodules
    
  2. 导航至源代码的顶层目录,然后使用

    使 crazyflie21_bl
    
  3. 按照以下步骤将 Crazyflie 2.1 进入 DFU 模式:

    • 确保最初未接通电源。
    • 确保电池已断开。
    • 按住重置按钮(见下图......)。 Crazyflie2 重置按钮
    • 插入电脑的 USB 端口。
    • 一秒钟后,蓝色 LED 灯开始闪烁,5 秒钟后闪烁速度加快。
    • 释放按钮。
  4. 安装 dfu-util:

    sudo apt-get update sudo apt-get install dfu-util
    
  5. 使用 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 灯应闪烁。

  6. 下载 PX4 自动驾驶仪的源代码:

    git clone https://github.com/PX4/PX4-Autopilot.git
    
  7. 导航至源代码的顶层目录,然后使用

    cd PX4-Autopilot/ make bitcraze_crazyflie21_default upload
    
  8. 当提示插入设备时,插入 Crazyflie 2.1。黄色 LED 灯应开始闪烁,表示启动加载器模式。然后红色 LED 灯会亮起,表明闪烁过程已经开始。

  9. 等待完成。

  10. 完成!使用 QGroundControl (打开新窗口).

# 刷新原始 Bitcraze 固件

  1. 下载最新版本 Crazyflie 2.1 启动程序 (打开新窗口)
  2. 按照以下步骤将 Crazyflie 2.1 进入 DFU 模式:
    • 确保最初未接通电源。
    • 确保电池已断开。
    • 按住重置按钮。
    • 插入电脑的 USB 端口。
    • 一秒钟后,蓝色 LED 灯开始闪烁,5 秒钟后闪烁速度加快。
    • 释放按钮。
  3. 使用 dfu-util 完成后拔下 Crazyflie 2.1 的电源插头:
    sudo dfu-util -d 0483:df11 -a 0 -s 0x08000000 -D cf2loader-1.0.bin
    
    打开 Crazyflie 2.1 电源时,黄色 LED 灯应闪烁。
  4. 使用以下命令安装最新的 Bitcraze Crazyflie 2.1 固件 (打开新窗口) 教程。

# 无线设置说明

板载 nRF 模块可通过蓝牙或专有的 2.4GHz Nordic ESB 协议与电路板连接。

通过 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 中的操纵杆菜单才会出现。

QGC 操纵杆菜单

# 硬件设置

Crazyflie 2.1 只能在以下环境中飞行 稳定模式.

为了记录飞行详情,您可以将 SD 卡甲板安装在 crazyflie 的顶部,如下图所示:

Crazyflie SDCard

# 将 FrSky Taranis 遥控发射器用作操纵杆

如果您已经拥有 Taranis 遥控发射器,并希望将其用作控制器,则可将其配置为 USB 操纵杆:

  • 在 Taranis 中创建一个新模型。

    Taranis - 新型号

  • 型号设置 菜单页面,关闭内部和外部 TX 模块。

    Taranis - 模型设置

  • 输出 在菜单页面(在某些 Taranis 发送机中也称为 "SERVOS "页面),反转油门(CH1)和副翼(CH3)。

    Taranis - 产出

使用 Taranis 开关上膛/撤膛并切换到不同的飞行模式:

  • 在 Taranis UI 中 混音器 在 Taranis UI 的菜单页面中,您可以将开关分配到通道 9-16 范围内的任意通道,这些通道映射到 QGroundControl 操纵杆设置中的按钮 0-7。例如,Taranis "SD "开关可设置为 Taranis UI 中的通道 9:

    Taranis 开关设置

  • 用 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。

# 飞行