学习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,它会自动开始进行一系列的事件
- 跑self-test: Crazyflie 2.X芯片板自动检查hardware是否okay(如何代表测试通过,请见下方LED指示灯含义的第7条)
- 校准传感器:Crazyflie 2.X芯片板读传感器数据,要求Crazyflie 2.X芯片板是绝对静止的,因此需要Crazyflie 2.X芯片板放在一个水平面上,并等待一秒钟
- Ready to fly
读懂LED指示灯的含义
- 450M1灯和M4灯在上面,M1右上,有绿有红;M4左上,有绿有红;
- M2灯和M3灯在下面,M2右下,蓝;M3左下,蓝;
- Crazyflie 2.X如果all good:蓝色LED灯M2和M3(下方的两个灯)会是蓝的(不是闪),并且M1会闪烁[2次/秒]红灯
- Crazyflie 2.X如果all good,但是传感器还没被校准:蓝色LED灯M2和M3(下方的两个灯)会是蓝的(不是闪),并且M1闪烁[0.5次/秒]红灯,即每2秒闪烁1次.
- 无线电通讯Radio connected:M4闪烁红and/or绿
- 电池电量低:M1会是红的(不是闪)
- 充电中:M3会闪烁蓝灯,同时M2是蓝灯(不是闪)
- Bootloader Mode: M2和M3都闪烁蓝灯,约1次/秒
- 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
- 通过A computer控制Crazyflie 2.X drone: 除了要安装Crazyflie client app,还需要一个gamepad和一个Crazyradio PA
- gamepad 用来操作(maneuvering)
- a Crazyradio PA用来通讯(communication)
- 安装电脑端Crazyflie client有四个选择:
- 虚拟机
- Windows
- Linux:需要从github repo自己build电脑端Crazyflie client,弄好client之后,将gamepad和Crazyradio PA连到电脑的USB口
- 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