月イチM5工作
月イチM5工作—— 「M5Stamp Fly」をドローン初心者が自宅で飛ばしてみた〜ファームウェア更新から宙返りまで〜
液晶ディスプレイを搭載し、ネットワーク接続の容易さが特徴のマイコンボード、「M5Stack」。2017年に中国・深圳でリリースされてからラインアップは増え続け、「1週間に一度は新製品がリリースされる」とまで言われる開発速度も大きな魅力です。電子工作やプロトタイピングの選択肢が増える喜びの一方で、全ての新製品に触れ続けるのはなかなか難しいかもしれません。
この連載ではM5Stackの国内販売をサポートするスイッチサイエンス協力のもと、次々とリリースされるM5Stackシリーズの新製品に触れ、その使い心地を確かめながら、特徴を生かした工作を実践していきます。
話題沸騰の小型ドローン「M5Stamp Fly」と「M5Atom Joystick」
今回扱うアイテムは「M5Stamp Fly (M5StampS3搭載)」と「M5Atom Joystick(M5AtomS3搭載)」。国内では2024年8月に発売され、あっという間に売り切れとなった小型ドローンとそのコントローラーです。この記事を執筆している2024年11月下旬では供給が安定し始めていますが、その人気は衰え知らず。価格はそれぞれ税込8580円と5148円で、セットで購入すると1万5000円弱となります。
※価格は記事執筆時のものです。
M5Stamp Flyは「メインコントローラとしてStampS3を搭載した、プログラマブルなオープンソースドローンキット」(製品ページより)。室内で使うことを想定したコンパクトな作りですが、内蔵した各種センサーによってドローン本体の姿勢と向きを検出し、高度の維持や障害物回避などのコントロールも可能になっています。
M5Atom Joystickは「AtomS3とSTM32マイコンを使用した、汎用性の高いプログラマブルデュアルジョイスティックリモートコントローラ」(製品ページより)。M5Stamp Flyのコントローラーとして使用することが想定され、300mAh 高電圧リチウムポリマーバッテリー「LAVA 1S」も2本まで充電できる仕様になっています。
M5Stamp FlyとM5Atom Joystickはそれぞれ独立した製品であり、他のコントローラーと接続したり、他のプロダクトの操作に使用したりすることも可能です。とはいえ、筆者はドローン経験がほぼない初心者なので、2つをそろえてフライトに挑戦することにしました。
ボードを「書き込みモード」にしてファームウェアを更新
まずはM5Stamp FlyとM5Atom Joystickそれぞれに最新版のファームウェアを書き込みましょう。M5シリーズ用の書き込みツール「M5 Burner」のページにアクセスし、利用するOSに対応したソフトウェアをダウンロードしてください(筆者の環境はMac OS Sonoma 14.4.1)。
M5 Burnerを立ち上げ、左のサイドバーに並ぶ製品群から「STAMP S3」を選択すると、書き込めるファームウェアの候補が表示されます。スクロール、もしくは検索バーで「Stamp Fly Firmware」と「Stamp Fly Controller Firmware」を探しましょう。
各ファームウェアを「Download」で読み込むと、「Burn」で書き込めるようになります。「Burn」をクリックするとCOMポートとBaudRate(書き込み速度)の設定を求められるので、PCとStamp Flyもしくは M5Atom Joystickを接続したCOMポートと任意のBaudRate(筆者の環境では初期設定の「1500000」で問題ありませんでした)を選択してください。
なお、普通にケーブルをつないだだけの状態で書き込もうとすると、「The Chip need to be download mode」といったエラーメッセージが表示され、ファームウェアの更新に失敗します。ファームウェアを書き込む際には、M5Stamp FlyとM5Atom Joystick、それぞれの制御ボードを「書き込みモード」にすることが必要です。
M5Stamp FlyではM5StampS3表面シールの「BTN」と書かれた場所の下、あるいは本体基板に実装されたボタンを押しながら給電することで、書き込みモードで起動します。
M5Atom Joystickでは、M5AtomS3に給電した状態で側面のボタンを2秒以上押すと、書き込みモードに移行します。書き込みモードになったそれぞれのボードに対し、M5 Burnerから該当のファームウェアを書き込みましょう。
バッテリーの接続とデバイスのペアリング
続いて、ファームウェアの更新が済んだM5Stamp FlyとM5Atom Joystickにバッテリーを接続します。M5Stamp Flyへのバッテリー接続は初見だと少し分かりづらいため、誤って本体を破損することのないよう気を付けましょう。
M5Stamp Flyを裏返すと、バッテリー接続用の白い端子が付いた小さな基板が見つかります。8ピンのコネクターで本体基板と接続されているので、そっとつまんで小さな基板ごと取り外しましょう。白い端子にバッテリーを差し込むと、小さな基板のLEDが赤く点灯します。
バッテリーを接続した状態で、小さな基板を元の位置に戻していきます。バッテリーが本体中央の黒い距離センサーの下側をくぐるよう、慎重に押し込んでいきましょう。距離センサーの黒いケーブルが邪魔になりそうな場合は、あらかじめ指でよけて通り道を作っておきます。小さな基板の8ピンのコネクターが元の位置に戻ると、M5Stamp Fly本体のLEDが点灯して起動が完了します。
M5Atom Joystick にはバッテリー接続用の白い端子が2本分ありますが、どちらか1本だけで動作します。バッテリーが差し込まれ、M5AtomS3も基板と接続されていることを確認したら、本体上部のスライドスイッチをOFFからONに変えると起動します。
両方とも問題なく起動することが確認できたら、一度電源を落とし、次の手順に従ってペアリングをしましょう。
- M5Stamp Flyの電源を入れる
- M5Atom Joystickの電源を入れ、M5AtomS3のスクリーンを長押し
- 画面の指示に従い、M5AtomS3のスクリーンを押す
- M5Stamp Flyのボタンを押す
- 完了
一度ペアリングが完了すると、それ以降はM5Atom Joystickを起動するだけで「StampFLY」の文字とカラフルなロゴが表示され、ペアリングしたM5Stamp Flyの操作が可能になります。
初めてのフライトはいかに……!?
M5Atom Joystick の起動ロゴが出た後はモード選択画面となり、コントローラー上部の黄色いLボタンとRボタンで「Mode」と「Altitude」を切り替えられます。まずは初期設定の「STABLE」と「AUTO」にしておきました。
Mode(Lボタンで切り替え) | Altitude(Rボタンで切り替え) |
---|---|
STABLE(安定したコントロール) | AUTO(自動高度制御オン) |
SPORT(自由度が高いが操作が複雑) | MANUAL(自動高度制御オフ) |
モード選択画面でM5AtomS3の液晶を押し込むと、コントロール画面に変わり「Press to Fly」の文字が。いかにも飛びそうな表記に喜び、ポチッと押してみました。
勢いよくプロペラが回り、M5Stamp Flyが飛び立ちました! がしかし、結構な勢いで斜めに前進。しばらく進んで机の反対側で落ちてしまうという悲しい結果に。しかも、カメラで収めることに気を取られ、コントローラーを握ることさえ忘れていました。非常に良くない事例として、恥ずかしながら共有させていただきます。
再びM5Stamp Flyを回収し、何度か「Press to Fly」を押してみるも、少しだけ飛んではプロペラの回転が止まる動きを繰り返します。M5AtomS3の画面には「Press to Land」、つまり押し込んで着地と出ているため、想定している動きではない様子。原因を当たってみましょう。
ドローンの命は長くない。バッテリーの管理が超重要!
M5Stamp Flyはオープンソースなこともあり、インターネットで開発者やユーザーによる情報が多く発信されています。Xのハッシュタグ #StampFly の検索でたどり着いた高須正和さんの投稿によれば「4.3V開始、3.5Vぐらいまでは飛ばせる」とのこと。
もしかしてバッテリー不足が原因かも? と思い、開発に携わった伊藤恒平さんが公開しているドキュメントを確認すると「LEDの色が水色になったら電池切れのサインです。もうしばらくは飛べますが、続けるとリセットがかかり落下します。電池を充電しましょう」とのこと。おぉ、まさにこの条件が合致しそうです。筆者はドローンの操縦がほぼ初体験だったのですが「1本のバッテリーで何十分も飛ぶものではない」という認識は持っておいた方がよさそうです。
充電方法1:M5Atom Joystickを使う
バッテリーを充電するために、M5Atom Joystickを充電器として利用できます。1〜2本のバッテリーを差し込み、黒い基板のType-C端子から給電しましょう(M5AtomS3は差し込んだままでも可)。なお、M5Atom Joystickへの充電電流は5V/500mAで、PCのUSB端子などからの給電が想定されています。
充電方法2:市販の専用充電器を使う
2本以上のバッテリーを管理したいときには、バッテリーの規格に対応した充電器を用意するのも良いでしょう。筆者は「BETAFPV BT2.0 Battery Charger and Voltage Tester V2」を別途購入しました。
なお、バッテリーの保管方法について、スイッチサイエンスは「電池を充電したまま放置しないでください。しばらく使用しない場合は、3.80〜3.85Vほどの電圧にして保管ください」と推奨しています。うーん、ドローンは自力で飛ぶほどパワフルなだけあって、バッテリーの管理が重要なのだと身をもって実感できました。
苦難を乗り越え、いざ再びの空へ!
さて、無念の初フライトを経て、充電をバッチリにして再度挑戦です! 不測の事態が起きないよう、ある程度の広さがあり、邪魔なものが少ない自宅で環境を整えました。もちろん離陸時にはM5Atom Joystickをしっかり握って、いざ再フライトへ。
おー! 飛んだ飛んだ、飛びました! やはりすぐ着陸するのはバッテリー不足が原因だった模様。フル充電したバッテリーでは元気に飛行を続けてくれます。よちよち歩き(よちよち飛行?)ですが「操作している感」がたまりません!
「STABLE」「AUTO」モードでの操作方法は下記の通り。上手なコントロールには慣れが必要なので、あらかじめイメージトレーニングしておくと良いかもしれません。
左ジョイスティック | 右ジョイスティック | ||
---|---|---|---|
左右 | 水平方向に機首を回転 | 上下左右 | 傾けた方向に移動 |
上下 | 高度を上下 | ||
押し込み | 着陸 | 押し込み | 宙返り |
筆者も何度か飛ばし、ようやく操作の感覚がつかめてきました。その場で停止したり、8の字に飛行したりと、少しずつできることが増えていくのが楽しいです。体感5分ほどでバッテリーが尽きるので、充電を繰り返しつつ、1時間ほどで安定した宙返りができるようになりました。これは嬉しい、そして格好良い……!
さらに上級者向けの「SPORT」モードや、高さ制御も完全手動になる「MANUAL」モードなど、操作の幅も多彩。使いこなすにはだいぶ時間がかかりそうなので、これからの楽しみにとっておきます。
ハックや教育、みんなの応用事例
以上、M5Stamp FlyとM5Atom Joystickを使った初めてのフライトを紹介しました。初心者でも飛ばす喜びを味わえる身近さが魅力ですが、「他のM5製品と連携できること」や「オープンソースであること」にも大きな価値があります。広がりを見せるM5Stamp Flyコミュニティの中から、いくつか事例を紹介しましょう。
StampFlyにUnitCamをつけてみました!
— 淳【Jun】 (@GEH00073) August 14, 2024
640x480くらいの解像度にしておけば遅延も比較的少ないので室内でリングをくぐらせるくらいは大丈夫です
(^_^)
UnitCamだとFPVゴーグル、無線免許、無線局開局の必要がないのでお手軽、安価にFPVができます。#StampFly #M5Stack #UnitCam pic.twitter.com/ImcY6yYYxV
淳【Jun】(@GEH00073)さんはM5シリーズの「Unit Cam」をM5Stamp Flyに搭載し、ドローンレースさながら、一人称視点での操作を可能にしました。共通の製品群であるため、接続や制御などのハードルは比較的低そうです。
StampFlyをDualSenseから操作できるようになりました!
— わたこ (@WatakoLab) August 11, 2024
適当なコードですが、少し整理してどこかにアップしようかと思います。 pic.twitter.com/tPFOciaAkb
わたこ(@WatakoLab)さんは、PlayStation5用コントローラー「DualSense」でM5Stamp Flyを操作。品切れだったM5Atom Joystickの代用とのことですが、握りが大きくなった分、操作性の安定なども見込めそうですね。
ArduPilot × StampFly 起動できたー!
— fujihide (@hfujikawa77) November 11, 2024
Wi-Fiで繋いだPC上のMission Planner で姿勢やバッテリーなど各種情報がバッチリ取れてます。
先々週に加賀で見たものがもう手元で経験できるオープンソースのスピード感素晴らしいな#ArduPilot #StampFly #M5stack https://t.co/ZkgxwVy7HN pic.twitter.com/NsPUTLXv4G
fujihide(@hfujikawa77)さんはドローン制御用のオープンソースソフトウェア「ArduPilot(アルジュパイロット)」とM5Stamp Flyを接続。PCから姿勢やバッテリーなどの情報が確認でき、より高度な制御が可能になりそうです。
その他、オープンソースであることを生かして、教育機関でのプログラミングや航空制御の教材としても活用が進んでいるM5Stamp Fly。その開発ストーリーや応用事例はfabcrossの記事でもまとまっているので、ぜひご覧ください。
それでは、また次回!
取材協力:スイッチサイエンス