マイクロドローンcrazyflie2.1を購入～スマホアプリで飛行

# 概要
以下の方向けの記事です。
 - Crazyflie 2.X（以下crazyflie）の組み立てを行いたい
 - crazyflieの購入を検討している

　crazyflieはオープンソース化されており、近年ドローン関連の研究で多く用いられています。そのcrazyflieを購入してから実際にスマートフォンのアプリを用いて飛行させるまでを記事にしました。



# 目次
- [技適に関して](#技適に関して)
- [購入](#購入)
- [開封](#開封)
- [組み立て](#組み立て)
- [アプリインストール](#アプリインストール)
- [接続](#接続)
- [飛行](#飛行)
<br>

# 技適に関して
- crazyflieは技適がないため電波暗室やシールドテント等で電波を遮断して利用する必要があります。[技適未取得機器を用いた実験等の特例制度](https://www.tele.soumu.go.jp/j/sys/others/exp-sp/)による認証を受けた場合は、その規則に従って利用することも可能です。こちらの認証に関しては後日記事にしたいと思います。

# 購入
 - [こちら](https://www.unipos.net/find/product_item.php?id=2760)のリンクから購入可能です。 この記事ではリンク先のCrazyflie 2.1 Open Source Quadcopter Droneを購入して組み立てを行っています。後継モデルのCrazyflie 2.1+ Open Source Quadcopter Droneに関しても同様の組み立て方法です。また、追加のデッキは不要です。

# 開封
 - 入っているもの
     - コントロールボード(マイコンなどが搭載されている基板) × 1
     - CWプロペラ × 5
     - CCWプロペラ × 5
     - モーターマウント × 6
     - LiPoバッテリー × 1
     - モーター × 5
     - 短い拡張コネクタピン × 2（1×10、2mm間隔、8または9mm長）
     - 長い拡張コネクタピン x 2 (1×10、2mm間隔、長さ14または15mm)
     - バッテリーホルダー x 1
     - USBケーブル x 1 


# 組み立て
 [公式ページ](https://www.bitcraze.io/documentation/repository/crazyflie-clients-python/master/installation/install/#debianubuntu)を参考にしながら組み立てました。[ライセンス](https://github.com/bitcraze/bitcraze-website/blob/master/LICENSE.md)に基づき、公式ドキュメントの写真や動画を使用しています。
 1. セルフテスト
     - まずコントロールボードの動作確認を行います。Micro USBを差し込んで電力供給した後、下の動画のようにM4のLEDが緑色に素早く5回光ると正常です。

        <div style="text-align: center;">
          <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3892591/7e51ec4a-4780-41d3-b8ba-00b76d2ec5a5.gif" width=50%">
          </div>



     <br>
     <br>

 2. モータをねじる
     - 以下の写真のようにモーターの配線をねじります。 これを4つ分用意します。

        <div style="text-align: center;">
          <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3892591/f068539e-f7b3-4a53-b37f-cc4339b6fb8d.gif" width=50%">
          </div>

     <br>
     <br>
     
 3. モーターマウントにモーターを取り付ける
      - 下の写真のようにモーターマウントにモーターを取り付けます。
     少し硬いですが、モーターの軸を押して挿入すると損傷する可能性があるので気を付けてください。

        <div style="text-align: center;">
          <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3892591/16d25f02-584a-433b-ad2a-b4e6dc3930e8.gif" width=50%">
          </div>

         <br><br>
      - ねじった配線はモーターマウントの下にあるフックに取り付けます。
     先ほどと同様にこれを4つ分用意します。

        <div style="text-align: center;">
          <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3892591/131fe0a2-b388-4709-9c74-8d7e4b9af39b.gif" width=50%">
          </div>
     <br><br>

 4. モーターをコントロールボードに取り付ける
      - ４つのモーターをコントロールボードに挿入して取り付けます。どのモーターをどこに取り付けても問題ありません。
        <br>
      - モーターのコネクタをコントロールボードの白い差込口に取り付けます。

        <div style="text-align: center;">
          <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3892591/76a6a7e9-d56c-45cc-809a-6ba4849d290f.gif" width=50%">
          </div>

     <br>
 5. プロペラの取り付け
      - CWプロペラに「A」、「A1」、「A2」の刻印が、CCWプロペラには「B」、「B1」、「B2」の刻印があるのを確認します（数字は関係ありません）。
        <br>
      - プロペラを取り付けます。それぞれ適切な場所、向きがあるため注意してください。下の写真のように刻印が上から見えていると大丈夫です。
            <div style="text-align: center;">
          <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3892591/0a4a7e14-c51a-4e5e-a76d-326ab31f9a4f.png" width=50%">
          </div><br><br>

6. ゴムパッドとコネクタピンの取り付け
     - バッテリーの滑り落ち防止のためのゴムパッドを下の写真のように貼り付けます。

        <div style="text-align: center;">
          <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3892591/bad090f4-107b-405d-aaba-7b40113dd5c9.gif" width=50%">
          </div>


       <br>
     - 短い方のコネクタピンをコントロールボードの拡張コネクタに差し込みます。

        <div style="text-align: center;">
          <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3892591/aa75439a-fe9d-4923-a2a8-8a407b3e630d.gif" width=50%">
          </div>

     <br><br>

 7. バッテリー取り付け
    - コネクタピンの間にLipoバッテリーを配置し、バッテリーホルダーを差し込みます。

        <div style="text-align: center;">
          <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3892591/5b924c43-6684-4ded-822d-a0a8b9dc5332.gif" width=50%">
          </div>

     <br><br>

 8. 動作確認
     - 下の写真のようにLipoバッテリーとコントロールボードを接続して電源スイッチをONにすると、すべてのプロペラが回転します。回転しないプロペラがある場合は接続がうまくできているか確認してください。

        <div style="text-align: center;">
          <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3892591/1821ce1a-d17f-4f3b-9b4a-2cff92a9db8f.gif" width=50%">
          </div>


# アプリインストール
crazyflieを飛行させるためのアプリは Android と iOS で利用できます。

 - [Androidの場合はGoogle Playから](https://play.google.com/store/apps/details?id=se.bitcraze.crazyfliecontrol2)

 - [iPhoneの場合はApple iTunesから](https://apps.apple.com/us/app/crazyflie-2/id946151480)

# 接続
 - crazyflieにLipoバッテリーを接続している状態でアプリを起動し、Connectボタンを押します。


    <div style="text-align: center;">
          <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3892591/2bde09e9-1989-4446-8db2-4b820f6cb4b2.gif" width=70%">
          </div>

          
# 飛行
 - 飛行ではRoll、Pitch、Yaw、Thrustの４つのパラメタをアプリ画面上で左右の指を使って操作します。位置測位システムは標準搭載されていないため、ホバリングさせるにはある程度の技量が必要となります。

    <div style="text-align: center;">
          <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3892591/19fb6903-75de-4869-8b25-561ac8b361fa.png" width=50%">
          </div>

     - Roll: crazyflieを後方から前方へ貫く水平軸を中心とした回転です。crazyflieを左右に動かすために使用します。
   <br>

     - Pitch: crazyflieを左から右に貫く水平軸を中心とした回転です。crazyflieを前後に動かすために使用します。
   <br>

     - Yaw: crazyflieを下から上に貫く垂直軸を中心とした回転です。crazyflieの飛行方向を変える際に使用します。車でいうハンドル操作に当たります。
   <br>

     - Thrust: crazyflieの高度の調整にします。離陸時に特に重要な操作がThrustの調節です。
   <br>
- 設定ではどの指でどのパラメタを操作するかや４つのパラメタの最大出力を設定できます。どの操作方法がやりやすいかは個人差があると思いますが、rollとpitchを同じ指で操作するmode2かmode3がやりやすいと思います。最初は低めの感度に設定するのがおすすめですが、Thrustを下げすぎると離陸できなくなります。

    <div style="text-align: center;">
          <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3892591/10e1fdde-1fb4-4f2a-8566-25075cbf9f38.jpeg" width=70%">
          </div>





- それでは飛行させてみましょう。Thrustの調節で勢いよくスライドするとスムーズに離陸することができます。



    ![qitta_stable_take_off_2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3892591/9884a207-bd20-4f9f-9d13-0dd177c2ee77.gif)


- Thrustを少しずつ上げていくと下の動画のように地面すれすれでふらついてしまい、操作が難しくなります。

    ![qiita_unstable_take_off_2.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3892591/a79dd526-7362-4843-a0be-7ebb09b38c7c.gif)

    <br>

 - 知っておくべきポイント
     - 正常に動作しない時、とりあえずcrazyflieの電源を入れなおすと直ることが多いです。墜落等でEmergency Stopがかかると、スマートフォンとの接続ができていても飛行できない状態になります。
     - 操作ミスによる壁への激突でプロペラが飛んでいく、プロペラが折れる、モーターマウントが壊れる等のハプニングはありますが、予備がついているのでビビりすぎる必要はありません。
     - crazyflieは100g以下のため、機体申請をする必要はありません。