理系的な戯れ

理工学系とくにロボットやドローンに関する計算・プログラミング等の話題を扱って、そのようなことに興味がある人たちのお役に立てればと思っております。

Raspberry Pi Picoで制御するドローン「PicoCopter」の製作ガイド

アイキャッチ

はじめに

 昨今話題のドローンの一種であるマルチコプタは制御しなければ絶対に浮いてられないため制御する対象としては大変面白く、マルチコプタを用いた制御工学の学びは学習のモチベーションの維持に最適だと思います。

 ところが制御工学学習用に適したマルチコプタ機体というのは案外無いもので教材選びが難しく選定できたとしても、長期にわたり入手可能であるかも特に日本においてはマルチコプタの部品を製造している会社がほぼないことを考えると難しい問題です。

 そこで、おそらく入手生や入手可能期間が長いと考えられるRaspberry Pi Picoを用いてフライトコントローラを自作してしまうことを考えました。ジャイロの入手生がやや不安ですが同等品は常に存在するだろうと考え、自作に踏み切ってしまいました。同時に機体のデザインやその他の部品も選定しました。

 このおかげで中身がブラックボックスのところがほぼない学習教材ができあがありました。自分で何でもできます。いや、自分で全部しないとならない茨の道に踏み込んでしまったといえるかもしれません。

 自分で飛行制御プログラムを組んで飛ばす喜びは何者にも変え難いものがあります。将来の組み込みエンジニアの修行、ロボットプログラムの勉強にRaspberry Pi Picoを使うというは選択肢としてあっていいかなと思います。 

 ついにはESC(モータドライバ)まで作りたくなるのですが(私だけか!?)、それは、ちゃんと制御できるようになるまで、そして教材としてテキストや資料などが整ってから、ゆっくりと着手したいと思う次第です。

免責事項・注意事項

 マルチコプタは超高速で回転するプロペラにより飛行します。万一高速回転するプロペラに指等を入れますと最悪の場合は指の切断等の大怪我をすることがあります。また、飛行には高エネルギーを蓄えた電池を使用します。電池の取り扱いによっては火災等を起こす可能性もあり、取り扱いには十分にご注意ください。

 本ガイドに従ってマルチコプタを製作した場合も、飛行には細心の注意を払い、安全手袋や安全メガネを装着した上で飛行実験を行なってください。

 また本ガイドの情報について、できる限り正確な情報を提供するように努めておりますが、正確性や安全性を保証するものではありません。情報が古くなっていることもございます。

 当ガイドの内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。

PicoCopterとは

 PicoCopterとは私が勝手に名付けたマルチコプタの名称です。Raspberry Pi Picoを使って作ったフライトコントローラで飛行するクアッドコプタです。私が作ったものは以下の様な姿をしています。

PicoCopter外観
PicoCopter外観
底面
底面
底面拡大
底面拡大(バッテリーの取付状態)
ESCの取付状態
ESCの取付状態
プロペラとモータの取付状態
プロペラとモータの取付状態
フライトコントローラ
フライトコントローラ

システム構成

PicoCopterのシステム構成は一般的なものです。

飛行制御をするためのコンピュータにRaspberry Pi Picoを用い、角速度の取得や姿勢の推定用に9DOFセンサーのLSM9DS1を用いています。

ラジコンプロポで操縦しますのでフタバ社のS.BUSが使用できる送信機と受信機を用います。

モータの回転数を制御するためのエレクトリックスピードコントローラ(以下ESC)を用いています。

モータにはアウターロータが回転するブラシレスモータを使用します。

バッテリーは3セルで11.1Vのリチウムポリマー電池を使用しています。

制御機器の電源はESCにBEC機能と言われるバッテリー電圧から5Vを生成する機能があるのでそちらを使用しています。 なお、BEC機能は全てのESCにあるわけではなく、ないものもあるので、その様なESCを使用する際は別途制御機器用の電源の用意が必要です。

システム構成を以下に図で示します。

制御システム
制御システム
電源系
電源系

フレームについて

フレームはシナベニヤ板を使用しています。木製ですので墜落したり、壁に激突したりするとすぐに折れて壊れてしまいます。フレーム以外の機器にはフレームが先に壊れてくれるので良いのかもしれません。

私が2次元CAD(JW-CAD)を用いてデザインしたフレームのデータ(DXF形式含む)をGithubに上げています。ご自由にクローンしていただいて、レーザー加工機があれば幾つでもフレームを生産することができます。

材料をABS樹脂などにすると強度が上がり壊れにくい機体となります。

レーザー加工機でベニヤ板を切り抜いた状態が以下の図です。これを瞬間接着剤で接着して作ります。

レーザ加工機で切り抜いたフレーム
レーザ加工機で切り抜いたフレーム
切り抜いたフレームをある程度組み立てた状態
切り抜いたフレームをある程度組み立てた状態

github.com

フライトコントローラ

PicoCopterのメインはフライトコントローラです。

フライトコンローラが数年で廃盤になり中々同じものが手に入らなくなるので、自作しようと思いました。

メインのコンピュータには入手性が大変に良いRaspberry Pi Pico(以下Pico)を使用します。

Picoは簡単にPWM信号を作り出せESCに指令を出してモータの回転を制御することができます。また、SPI通信で9DOFセンサと通信することで、角速度、加速度、地磁気を容易に取得することができます。S.BUS信号もUARTで受信できます。

Picoに元々備わった機能を使えば、9DOFセンサ、ESC、受信機を接続するだけでマルチコプタのフライトコントローラが完成します。 ただし、受信機の信号は反転しなければならず、トランジスタで作る簡単な反転回路を用います。

しかも、Picoは安価で入門用のマイコンという位置付けだと思いますが、マルチコアです。 おそらくマルチコアが一般的なコンピュータ界隈であるのでその面に関しても勉強してもらおうという意図があるのかなと勝手に想像しています。

マルチコアのおかげ重い処理である姿勢推定のアルゴリズムを片方のコアに受け持たせて全体的に高速にマルチコプタの制御を回すことができました。

フライトコントローラの回路

以下の図はフライトコントローラの回路図です。非常に簡単です。

フライトコントローラ回路図
フライトコントローラ回路図

回路図を描くソフトはいろいろあるのですが、上の図はパワーポイントで描きました。 単純な回路なので、パワポでもなんとかなりました。

フライトコントローラの配線

比較的簡単な回路構成になっていますが、初心者の人は回路図を見てから配線を思い浮かべてはんだ付けするのは非常に大変な作業だと思います。

まずは、紙やPC上で回路図を見ながら配線を書いてみるのが一番いい方法だと思います。 回路を描くソフトやアプリがあります。なければ方眼紙に消せるペンでもいいと思います。

私はプリント基板製作用のCAD(KiCAD)のプリント基盤配線ツールを使って、配線図を作ってみました。

フライトコントローラの配線図
フライトコントローラの配線図

基板には表裏がありますから図は赤線が表面の配線(錫メッキ線という銅線に錫がメッキしてある線で配線します。)緑線が裏側の配線です。表同様私は錫メッキ線を用いてます。

この配線図に基づいて、実際に配線した状況が以下となります。

フライトコントローラ部品面(表面)
フライトコントローラ部品面(表面)
フライトコントローラ半田面(裏面)
フライトコントローラ半田面(裏面)

穴あき基板(ユニバーサル基板)は秋月電子で販売している片面基板を宝山の基板カッターで切って大きさを整えたものを使っています。四隅の穴はホームセンターで購入したボール盤であけました。

配線の様子を一部Twitterに投稿しています。

部品・材料

PicoCopterを構成する部品や材料について簡単に触れていこうと思います。 ドローンの部品というのはほとんどが海外製です。海外からの通販が可能であれば、 海外通販サイトから集める方が安く買い揃えることができるかもしれません。ただし、 届かない等の被害の話も聞くので、利用は自己責任ですね。

Raspberry Pi Pico

Raspberry Pi Pico
Raspberry Pi Pico(画像は秋月電子さんから拝借)

飛行制御するためのメインのコンピュータです。マイコンと呼ばれるカテゴリに入ると思います。特筆すべきは550円ぐらいで買えるということでしょうか。 入手はいろいろなところからできます。

Raspberry Pi Pico ラズベリーパイピコ: マイコン関連 秋月電子通商-電子部品・ネット通販

Raspberry Pi Pico - スイッチサイエンス

RPI-PICO Raspberry Pi Pico

ESC

ESC(画像はAmazonさんから拝借)
ESC(赤いやつ)(画像はAmazonさんから拝借)
モータを回すモータドライバであるESCはいろいろ種類があります。ここでは安価に手に入るものを選んでみたのですが、今後長い期間手に入るかどうかわかりません。各所で見られる「赤いやつ」です。ESCには中にコンピュータが入っていてSimonkと呼ばれるソフトウエアで動きます。他に代表的なESC用のソフトにBLHeliと呼ばれているものがあります。赤いやつであれば1000円ぐらいで手に入ります。

Amazonのリンクを貼っておきます。

amzn.to

9DOFセンサ(加速度計・ジャイロ・地磁気計)

LSM9DS1のボード
LSM9DS1のボード

マルチコプタやドローンを飛行させるために必須のセンサです。地磁気計はなくても飛びますが、ジャイロと加速度計は必須です。 今回はSTマイクロシステムのLSM9DS1を使ってます。 マイコンとのインターフェース(接続)はI2CとSPIが主流です。どちらかというとI2Cのものが多い様な感じですが、 通信速度はSPIの方が早いのでロボットに使うのならば用途によりますがSPIでの通信を私は好みます。 LSM9DS1はI2CもSPIも両方使えますが、基板についた状態で売っているものにはI2Cしか配線が出てないものもあるので注意が必要です。 今回はスイッチサイエンスさんで入手できるものを紹介します。

www.switch-science.com

www.st.com

ブラシレスモータ

ブラシレスモータ
ブラシレスモータ

PicoCopterのモータはブラシレスモータと呼ばれ、3本の線が出ているものです。このタイプのモータは電池を接続しただけでは回らず、モータを回すための装置(ESC)が必要です。

ブラシレスモータは日本製が中々なくて海外製しか手に入らず、一度入手しても1年ぐらいすると同じものが手に入らないことが多いです。 Amazonなどでさがしてあるものを入手するか、海外のモータを通販するしか手はないと思います。モータのブランドとしてはTmotorやEMAX等がいいのではと思います。私はHobbyWingのXROTORシリーズのモータをたくさん使用していたのですが、HobbyWingがドローン用のモータをやめてしまった気配があるので今は入手困難です。

大体、2306とか2203などの番号がモータについてることが多いのですが、これは中のコイルが巻いている部分(ステータと呼ばれています)の大きさを表していて、 最初の2桁が直径、最後の2桁が高さを表しているみたいです。

PicoCopterは2306クラスで作っていますが、ひとまわり小さい2203でもギリギリ飛びます。

Amazonで現時点で入手できそうなのはこちらですかね

amzn.to

モータのブランドで有名だと考えられるのはこちら

store.tmotor.com

emaxmodel.com

プロペラ

プロペラ
プロペラ

マルチコプタのプロペラは時計回りに回るものと反時計回りに回るものの2種類が必要です。これらが対になって1機分になります。 時計回りはCW(ClockWise)、反時計回りはCCW(CounterClockWise)と表記されることが多いです。CW用のプロペラを2個、CCW用のプロペラを2個買う必要があります。

5インチでピッチが4.8のプロペラは5048という表記がされています。ピッチと言うのはプロペラのねじれ度合いだと考えてください。 数値が大きいほど捻れ具合が大きいです。ピッチが大きいプロペラは推力が大きいですが、 抵抗も大きくなるため回すためのトルクも必要になります。

PicoCopterの大きさだと5インチで3枚バネが主流と考えられます。 少し前はAmazonでもいろいろ選べて安かったような気がするが今は探すのに苦労しました。

昔からプロペラはAPCというメーカがブランドですがネットではいろいろなものが売られている様です。

以下Amazonで売っている一例です。

amzn.to

amzn.to

リチウムポリマー電池

リチウムポリマー電池
リチウムポリマー電池

マルチコプタのエネルギー源は電池ですが、リチウムポリマー電池を用います。充電が可能です。リチウムポリマー電池は大変エネルギー密度が高く、それだけ危険なものです。使用しているのは1セル3.7Vを直列に3セル繋いだもので11.1Vのものです。

リチウムポリマー電池は大体1セル3.0Vを下回ると電池が使用不能になりそのまま使用するのは危険と言われています。必ず電池チェッカなどを使って電圧を確認しながら使うことが必須です。

誤った取り扱いをすると火災や爆発の危険があります。注意してください。

写真の表記の3300mAhは3300mAつまり3.3Aを1時間流し続けられるという意味です。その様な電池容量だということを示します。

さらに50Cという表記も見られますが、これは3.3Aの50倍の電流(165A)の電流を取り出せますという意味です。ただし50倍の電流を取り出し続けたら、使用可能時間は1/50時間となります。

リチウムポリマー電池はフル充電で保存してはいけません。長期間保存する際は少しだけ使用するか、少しだけ放電して保存してください。そうしないとしばらくすると膨れてきて使用すると危険な状態になります。放電目安は50%〜60%と言われている様です。充電器によってはSTORE(保管)モードがあって適切に充電・放電してくれるものもあるのでそちらを利用してください。

最近Amazonから購入して調子の良かったものを紹介します。 amzn.to

充電器

充電器(画像はAmazonさんから拝借)
充電器(画像はAmazonさんから拝借)
リチウムポリマー電池の充電には各セルの電圧のバランスをとりながら充電できる充電器が必要です。

私はHyperionというメーカの充電器を愛用しているのですが、こちらのメーカの製品も今は入手不能です。

そこで、値段も手頃で必要十分な機能がありそうなものを選んでみました。

amzn.to

送信機

送信機
送信機
多機能で高価なものから、割と安いものまであります。海外製でも技適(日本で使用できるという保証)があるものもあります。 日本製で安価なものを紹介します。

www.rc.futaba.co.jp

受信機

受信機(画像はフタバさんから拝借)
受信機(画像はフタバさんから拝借)
送信機からの指令を受信しマイコンに伝えるのが受信機です。S.BUS信号でやり取りできるものを選びます。

www.rc.futaba.co.jp

スペーサー

スペーサー(画像は廣杉計器さんから拝借)
スペーサー(画像は廣杉計器さんから拝借)
フレームとプロペラガードやフライトコントローラを固定するのにスペーサーと呼ばれる部品を使います。

PicoCopterはプロペラガードの固定に長さ45mm両M3メスねじ、 その他の部品のフレームへの固定に長さ10mmM2オスメスねじ、長さ20mmM2オスメスねじのものを多用しています。(M2のナット必要)

スペーサは廣杉計器さんを愛用しているので、そちらを紹介します。

hirosugi.co.jp

ケーブルタイ(結束バンド・インシュロック)

ケーブルタイ
ケーブルタイ
こちらはESCの固定や、配線の固定に便利なケーブルタイと言われるものです。 大中小、78mm,150mm,288mmぐらいのサイズを用意しておくと便利です。

モノタロウさんで購入できるものを紹介します。

80 ケーブルタイ 標準タイプ 1パック(100本) モノタロウ 【通販モノタロウ】

150 ケーブルタイ 標準タイプ 1パック(100本) モノタロウ 【通販モノタロウ】

290 ケーブルタイ 標準タイプ 1パック(100本) モノタロウ 【通販モノタロウ】

瞬間接着剤

瞬間接着剤(画像はモノタロウさんから拝借)
瞬間接着剤(画像はモノタロウさんから拝借)

フレームの組み立てや修理に大変重宝します。

おすすめを紹介します。

www.monotaro.com

瞬間接着剤の硬化剤

瞬間接着剤の硬化剤(画像はモノタロウさんから拝借)
瞬間接着剤の硬化剤(画像はモノタロウさんから拝借)

瞬間接着剤の使用のお供に硬化剤です。複雑な面など密着させられない場所などで威力を発揮し大変便利です。使用時は換気が必須ですので注意してください。

おすすめを紹介します。

www.monotaro.com

シナベニヤ

PicoCopterのフレームはシナベニヤという外観が綺麗なベニヤ板を使用しています。 シナベニヤにもいくつか種類があり、間の素材もシナのものを共芯合板と言うそうです。

使用しているレーザー加工機が600mm x 450mmぐらいのサイズが限界なので、 そのサイズに合わせてカットしてあるものを使用しています。

私は、こちらから購入しました。

item.rakuten.co.jp

ABS樹脂

現在のPicoCopterはシナベニヤのフレームですが、素材をABS樹脂にしようと計画しています。 私自身はまだ使っていませんが選定して現時点で発注中です。

家庭で、手に入れるには「はざいや」さんが便利の様です。

www.hazaiya.co.jp

ソフトウェア

制御プログラムについてはさらに「製作ガイドソフトウェア編」を用意しようと思います。 Githubに現行のPicoCopterの飛行制御プログラムをアップしていますので参考にしてください。

github.com

マルチコプタを飛行させるためのRaspberry Pi Picoの要素技術については本ブログの記事をご参照ください。

Raspberry Pi Picoの基本的な使い方

rikei-tawamure.com

rikei-tawamure.com

PWM出力について

rikei-tawamure.com

UARTの使い方

rikei-tawamure.com

LSM9DS1を使う

rikei-tawamure.com

送信機からの指令でモータを回す

rikei-tawamure.com

姿勢の推定

rikei-tawamure.com

地磁気の校正

rikei-tawamure.com

rikei-tawamure.com

関連動画

ホバリング動画

野外飛行動画

Raspberry Pi Picoはんだ付け動画

youtu.be

組み立て動画

youtu.be

youtu.be

フライトコントローラはんだ付けスレッド

安全のために

冒頭の注意事項でも述べましたが、マルチコプタは大変危険なものです。

動作中のプロペラで怪我をすると最悪指等を失いますし、何針も縫う怪我をします。

電池は火災を誘発したり爆発をするものです。

直接みなさんの生命や財産の危機を引き起こします。

制御回路等は手作りの場合は大抵の場合は剥き出しです、ねじ等の金属を基板の上にうっかり落とすとショートして回路が破壊したり、最悪の場合は火災を引き起こします。

従って、電池については取扱いの注意事項をしっかり勉強してください。

また、飛ばす際の手順等をしっかり決めて守ること。

安全メガネや安全手袋等の装着は確実に行なってください。

怪我や事故は基本的なことを怠った時に起こるものです。

油断しないで取り扱ってほしいと思います。

飛行試験の手順を示した動画をご参考までに置いておきます。

大袈裟すぎるぐらいが安全のためには良いのです。

youtu.be

おわりに

PicoCopterの製作ガイドをお送りしました。 手順をひとつづつ示す製作マニュアルにはなっていないので これをもとに同じものを作ることは難しいかもしれませんが ご興味があれば頑張って作って頂ければ嬉しい限りです。

本記事のダイジェスト版の資料をGithubに上げてありますのでご活用ください。

では、また!

github.com