学习Crazyflie 2.X平台(1)

本文翻译自https://www.bitcraze.io/documentation/tutorials/getting-started-with-crazyflie-2-x/, 更多Crazyflie相关的tutorial请参见https://www.bitcraze.io/documentation/tutorials/

组装之前的测试

  • Crazyflie 2.X芯片板在生产过程中已经被充分测试过,但是为了确保运输过程没有导致任何损害,还是需要在组装之前做测试
    • 将Crazyflie 2.X芯片板用USB线连上电源。注意观察LED灯M1和M4, 如果M4会快速闪5次绿灯,则测试通过。如果M1灯快速闪5次灯,则测试失败,去Bitcraze论坛解决方法,直到测试通过。

组装

  • 注意drone的头在哪里,以及对应的各个propeller的转向
  • 零件
    • 一个Crazyflie 2.X c芯片板 with all components mounted
    • 5个顺时针桨叶+5个逆时针桨叶
    • 5个空芯直流电机+6个电机固定座
    • 1个锂电池(LiPo, 容量是240mAh) + 1个电池支托板()
    • 2个8mm长的expansion connector pins即headers(10个pin, 2mm spacing)
    • 2个14mm长的expansion connector pin(10个pin, 2mm spacing)
    • 1个USB线(只有Crazyflie 2.1有)
  • 安装步骤和注意事项
    • 扭转电机线(减少电子噪声)
    • 装电机到电机固定座上
    • 将扭转的电机线弄到电机固定座的卡槽上
    • 装上桨叶,注意方向
    • 将橡胶垫放在两个expansion header之间(增加摩擦以便固定电池,同时保护电子器件)
    • 将2个8mm的header插入expansion connector
    • 将电池放在两个header之间,并将电池支托板弄到header上的pin
    • 按下电源开关的push button, 四个propeller会依次转起来。如果没有,检查motor连接

Crazyflie 2.X 的启动

  • Crazyflie 2.X芯片板一旦powered on,它会自动开始进行一系列的事件
    1. 跑self-test: Crazyflie 2.X芯片板自动检查hardware是否okay(如何代表测试通过,请见下方LED指示灯含义的第7条)
    2. 校准传感器:Crazyflie 2.X芯片板读传感器数据,要求Crazyflie 2.X芯片板是绝对静止的,因此需要Crazyflie 2.X芯片板放在一个水平面上,并等待一秒钟
    3. Ready to fly

读懂LED指示灯的含义

  • 450M1灯和M4灯在上面,M1右上,有绿有红;M4左上,有绿有红;
  • M2灯和M3灯在下面,M2右下,蓝;M3左下,蓝;
  1. Crazyflie 2.X如果all good:蓝色LED灯M2和M3(下方的两个灯)会是蓝的(不是闪),并且M1会闪烁[2次/秒]红灯
  2. Crazyflie 2.X如果all good,但是传感器还没被校准:蓝色LED灯M2和M3(下方的两个灯)会是蓝的(不是闪),并且M1闪烁[0.5次/秒]红灯,即每2秒闪烁1次.
  3. 无线电通讯Radio connected:M4闪烁红and/or绿
  4. 电池电量低:M1会是红的(不是闪)
  5. 充电中:M3会闪烁蓝灯,同时M2是蓝灯(不是闪)
  6. Bootloader Mode: M2和M3都闪烁蓝灯,约1次/秒
  7. self-test失败:如果M1灯是快速闪5次红灯,并且停顿一段时间,再次重复短闪快速闪5次红灯,再停顿一段时间,如此重复,说明self-test是失败的。注意self-test与组装之前的测试(M4会快速闪5次绿灯,则测试通过。如果M1灯快速闪5次红灯,则失败)是不一样的

通过Crazyflie client(一个GUI的应用程序)控制Crazyflie 2.X drone

  • 通过A mobile phone控制Crazyflie 2.X drone
    • 该手机需要支持Bluebooth Low Energy(BLE)
    • 手机需要安装Crazyflie client app,启动app并点击 connect按钮, 更多请查看这里
      1. iphone版
      2. 安卓版
  • 通过A computer控制Crazyflie 2.X drone: 除了要安装Crazyflie client app,还需要一个gamepad和一个Crazyradio PA
    • gamepad 用来操作(maneuvering)
    • a Crazyradio PA用来通讯(communication)
    • 安装电脑端Crazyflie client有四个选择:
      1. 虚拟机
      2. Windows
      3. Linux:需要从github repo自己build电脑端Crazyflie client,弄好client之后,将gamepad和Crazyradio PA连到电脑的USB口
      4. OSX:需要从github repo自己build电脑端Crazyflie client,将gamepad和Crazyradio PA连到电脑的USB口

在Ubuntu 20.04跑crazyflie client(一个GUI的应用程序)

在Linux系统上可以直接通过执行crazyflie-client-python源代码来运行crazyflie client,那么我们首先需要获取源代码:

git clone https://github.com/bitcraze/crazyflie-clients-python.git

其次安装python3, pip, pyqt5:

sudo apt-get install python3 python3-pip python3-pyqt5 python3-pyqt5.qtsvg

最后打开刚刚git clone的crazyflie-client-python源代码的路径,安装crazyflie client:

cd crazyflie-clients-python
pip3 install -e .

安装完成之后,继续保持在crazyflie-client-python源代码的路径下,启动crazyflie-client:

python3 bin/cfclient

或者重启之后直接在terminal运行:

cfclient

安装好crazyflie client之后,在usb接口插上crazyradio PA,然后启动crazyflie client

配置Crazyflie PC client

  • 配置controller
  • 下载最新firmware: crazyflie-xxx.zip
  • 更新firmware
    • 关掉你的crazyflie drone
    • 启动drone的bootloader mode(通过按住电源按钮3秒钟)
    • 回到电脑端Crazyflie client,并点击Connect -> Bootloader
    • 点击“Initiate bootloader cold boot”,几秒之后应该显示“Connected to bootloader”
    • 点击“Browse” ,选择刚刚下载的crazyflie-xxx.zip
    • 点击“Program”,进度条会从0%到100%走两边,因为 Crazyflie drone上有两个处理器
    • 点击“Restart in firmware mode”
    • 关掉bootloader的窗口
  • 电脑端Crazyflie client连接到Crazyflie drone
    • 点击“Scan”
    • 从列表中选择你的Crazyflie drone

飞行试验

以上所有完成之后,可以进行飞行试验了。注意一下几点:

  • 让Crazyflie drone飞向远离你的方向,即蓝色的M2和M3灯在你这边。
  • 操作有四个:roll, pitch, yaw和总推力,如下图(注意前向在哪里)
  • 正常飞行:如果只是thrusting,没有其他,Crazyflie drone会沿着某些方向偏着飞行,属于完全正常
  • The ground effect:当Crazyflie drone在很接近地面的时候飞行,会感觉像the air is slippery, almost as if it is gliding on ice. 因此起飞时要加大推力,着陆很接近地面时直接让thrust等于0
  • 如果Crazyflie drone在飞的时候不平衡,需要检查以下几点:
    • 保证电池是在中间位置
    • 检查propellers是不是无阻碍转动。分别一个一个吹propeller,确认他们能被吹转。(有时候一根头发会导致转动有问题,如果是这样,直接将propeller从电机上取下来,弄掉头发,再装上)
    • 检查propellers是balanced,具体参照balancing propellers
  • 给电池充电
    • Just plug in a micro USB cable
    • Make sure the Crazyflie drone is powered on
    • 充电中的状态,请参见LED指示灯的含义第5条

1 Comment

Leave a Comment