DXH+資料

149 Views

July 17, 26

スライド概要

菅沢工業大学DXH+の「StampFlyで学ぶドローン制御」の資料です

profile-image

■ドローンやロボットを自作することを通じて制御や関連技術の生涯勉強情報を提供■工学博士■防大航空宇宙→筑波大博士■陸自→対戦車誘導弾等の装備品開発→高専教員→大学教員■ロボットランサー優勝→マイクロマウスニューテクノロジー賞受賞■指導者としてつくばチャレンジバンナム賞→飛行ロボコンマルチコプタ部門1位等々■北海道函館出身

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

StampFly で学ぶドローン制御 高校の先生向け体験講座(DXH) 伊藤 恒平 2026 年 7 月 18 日(土)・19 日(日) 伊藤 恒平 StampFly で学ぶドローン制御 1 / 38

2.

講師紹介 伊藤 恒平 — 金沢工業大学 ロボティクス学科 教員 StampFly 開発者 / 専門はドローン制御工学 経歴 趣味 伊藤 恒平 大学で航空宇宙工学を学ぶ 陸上自衛隊に入隊、飛翔体の研究開発に従事 高専教員を経て、金沢工業大学 ロボティクス学科 教員 ロボット作り・読書・映画鑑賞 StampFly で学ぶドローン制御 2 / 38

3.

本日の流れ 時間 内容 13:30 – 13:40(10 分) オープニング 13:40 – 14:05(25 分) ① 操縦体験(シミュレータ→実機) 14:05 – 14:30(25 分) ② 開発環境+書き込み体験 14:30 – 15:15(45 分) ③ プログラム書き換え・モータの制御 15:15 – 15:30(15 分) まとめ 伊藤 恒平 StampFly で学ぶドローン制御 3 / 38

4.

StampFly とは 項目 MCU IMU 気圧 ToF 質量 通信 バッテリ 仕様 ESP32-S3 (M5Stamp S3) BMI270(6 軸 400 Hz) BMP280 VL53L3CX 37 g(バッテリ含む) ESP-NOW + WiFi LiPo 1S 3.7 V StampFly は M5Stack 社 CEO の Jimmy 氏と講師の共同開発です 伊藤 恒平 StampFly で学ぶドローン制御 4 / 38

5.

StampFly の搭載センサ・部品 伊藤 恒平 StampFly で学ぶドローン制御 5 / 38

6.

StampFly と Tello の違い Tello EDU(約 87 g・カメラ搭載) Tello 飛行コマンドを外から送る (Scratch / Python) ソフトの中身 非公開(変更できない) センサのデータ SDK 経由の一部のみ プログラミング StampFly(37 g) StampFly 機体内部の制御プログラム自体 を書き換える 全ソースコード公開 生データに直接アクセス可 今日の③「モータの制御」は、中身を書き換えられる StampFly ならではの体験 伊藤 恒平 StampFly で学ぶドローン制御 6 / 38

7.

StampFly の現在地と、今日の楽しみ方 StampFly はいま、育ちざかりの教材です 位置制御まで飛ぶようになり、教材の土台が整ってきました。 ここから「授業でそのまま使えるパッケージ」へ仕上げていく段階です 今日は、完成すると見えなくなる開発の生の姿(コマンド・ビルド・調整の 途中)まで体験できます ドローンの「中身」に手を入れられるのは、いまの StampFly ならではの楽し みです 目指しているもの 初等教育から高等教育・社会人教育までを見据えた教材群の完成 — 今日はその種 まきに、皆さんをお招きしています 伊藤 恒平 StampFly で学ぶドローン制御 7 / 38

8.

ドローンは「勝手に」飛んでいるのではない Tello はなぜ「言うことを聞く」のか 「前に進め」で前に進み、「回れ」で回る — それは膨大な試行錯誤(制御工学)の 賜物です。 素のドローンは、制御なしでは 1 秒も浮いていられません クアッドコプタは本質的に不安定 — 放っておくと勝手に傾いて墜落する センサで姿勢を測り、4 つのモータを絶えず調整し続けて、はじめて浮いてい られる だから、この教材は「制御」から始まります 飛ばないドローンを、制御で飛ばせるようにする — その中身を生徒と一緒に開け て学べる教材を、StampFly は目指しています 伊藤 恒平 StampFly で学ぶドローン制御 8 / 38

9.

クアッドコプタはどうやって飛ぶのか 推力 ロール 動き 浮く・上下 前 ピッチ CW CCW 作り方 4 つの推力の合計を 増やす/減らす ロール(左右に傾く) 左右の推力の差 ピッチ(前後に傾く) 前後の推力の差 ヨー(機首を回す) CW 組と CCW 組の 回転数の差 (反トルク) ヨー 傾けば、傾いた方向へ進む。この推力配分を 1 秒に 400 回自動調整し続けるのが 「制御」 伊藤 恒平 StampFly で学ぶドローン制御 9 / 38

10.

今日つかう道具一式(StampFly エコシステム) USB で 書き込み ノート PC StampFly 機体 電波で 操縦 コントローラ プログラムを書く プログラムで飛ぶ スティックで操縦 開発環境はインストール済み センサ+小型コンピュータ搭載 Atom JoyStick ソースコード・教材・シミュレータはすべて Web で無料公開 学校でも今日と同じ環境をそのまま用意できる 伊藤 恒平 StampFly で学ぶドローン制御 10 / 38

11.

安全ルール:飛行の安全 飛行前の確認 保護メガネを全員着用 飛行エリアは区画・ネットで分離 プロペラガードの状態を確認 長い髪はまとめる 機体の真上に顔を出さない 緊急停止 DISARM = モータを止める操作。飛行中は自動着陸 → もう一度で即時停止 バッテリー 満充電 4.2 V / 3.4 V で低電圧警告。膨らんだ電池は使用しない。充電中は目を離さない 伊藤 恒平 StampFly で学ぶドローン制御 11 / 38

12.

① 操縦体験(シミュレータ→実機) StampFly DXH ワークショップ

13.

① 操縦のしかた(スティックモード 3) 左スティック 右スティック 前進 上昇 左へ移動 右へ移動 左に旋回 右に旋回 後退 下降 (機体の水平移動) (高度と機首の向き) 押し込み = ARM / DISARM 今日つかう飛行モード ALT_HOLD(高度維持)では高度は自動維持 — 操縦は主 に左スティックを少しずつ倒す 伊藤 恒平 StampFly で学ぶドローン制御 13 / 38

14.

① まずはシミュレータで飛ばしてみる コマンドプロンプト(文字で PC を操作する画面)で実行 sf sim run ← 3D シ ミ ュ レ ー タ が 起 動 ※「←」以降は説明なので入力しません(sf = StampFly 用コマンド) コントローラを USB ケーブルで PC に接続(設定済み) 起動直後の校正が終わるまでス ティックに触らない スティックの割り当ては実機とまっ たく同じ シミュレータ画面 — 画面の StampFly を操縦する 伊藤 恒平 StampFly で学ぶドローン制御 14 / 38

15.

① シミュレータ → 実機への切り替え コントローラを実機用(ESP-NOW)に戻す 1 2 3 コントローラの M5 ボタン(画面下)でメニューを開く 「通信モード」を 1 回選ぶ → USB HID から ESP-NOW(ルーターなしで機体 と直接つながる無線)に切り替わり、自動で再起動する USB ケーブルを外す(実機とは電波でつながる) ※ 通信モードを切り替えても、ペアリングなどの設定はそのまま残ります 伊藤 恒平 StampFly で学ぶドローン制御 15 / 38

16.

① 機体の起動と LED の見方 LED・音 白色点灯 + 起動音 マゼンタ点滅 緑色常灯 + ピッ ×3 状態 起動中 ジャイロ校正中(機体に触らない) 準備完了(約 10 秒) 起動時の注意 平らな床に置いて電源を入れる。校正が終わる(緑常灯)まで機体を 動かさない 伊藤 恒平 StampFly で学ぶドローン制御 16 / 38

17.

① コントローラのボタンとスティック 飛行モード STABILIZE ACRO ALT_HOLD POS_HOLD 機体 LED 色 黄緑 青 オレンジ マゼンタ ALT_HOLD への切り替え Atom JoyStick(左上が L ボタン) 伊藤 恒平 L ボタンを 1 回 押す(OFF → ALT_HOLD) 機体 LED がオレンジになったことを確認する StampFly で学ぶドローン制御 17 / 38

18.

① ALT_HOLD と自動離着陸 自動離着陸と ARM / DISARM ARM(右スティックを押し込む)→ 自動離陸・高度 0.5 m を自動維持 DISARM(もう一度押し込む)→ 自動着陸 → 着陸中にもう一度で緊急停止 低電圧警告 シアン点滅 + 警告音 → 着陸して電池交換(飛行時間 約 4 分) 進め方 1 人 1 セット・全員同時に飛行(交代なし)。ペアリングは 1 対 1 — 隣の機体は反応しません。電池 が切れたら(シアン点滅)交換して再開 伊藤 恒平 StampFly で学ぶドローン制御 18 / 38

19.

② 開発環境 + 書き込み体験 StampFly DXH ワークショップ

20.

② 開発環境の全体像 今日は構築済み 貸出 PC には ESP-IDF(組み込み開発環境)と sf CLI をセットアップ済み。 実習は書き込みからスタートします git clone https :// github .com/M5Fly - kanazawa / stampfly_ecosystem cd stampfly_ecosystem install .bat ← ESP -IDF + sf CLI を 自 動 イ ン ス ト ー ル setup_env .bat ← 開 発 環 境 を ア ク テ ィ ベ ー ト 上記は「自分の PC でも試したい」ときの手順(今日は実施不要) 。 「←」以降は説明なので入力しま せん このあと GUI フラッシャ(デスクトップアプリ)のデモも行います 伊藤 恒平 StampFly で学ぶドローン制御 20 / 38

21.

② 書き込みの仕組み — 3 つの方法 ファームウェアとは 機体を動かすプログラム一式のこと。「書き込み」とは、新しい ファームウェアを StampFly の中に転送する作業を指す Web フラッシャ ブラウザ (Edge/Chrome) 書き込むもの 公開されている完 成版 本日の用途 紹介のみ 起動方法 GUI フラッシャ デスクトップア プリ 公開されている完 成版 デモのみ sf CLI(コマンド) コマンドプロンプト PC 内でビルドした もの ②・③の実習 今日の実習は②・③とも sf CLI で書き込みます。Web / GUI フラッシャは開発環境のない PC でも 使える方法(紹介のみ) 。 ※ ビルド=人が書いたコードを機体が実行できる形式に変換する作業 伊藤 恒平 StampFly で学ぶドローン制御 21 / 38

22.

② 実習:sf flash でファームウェアを書き込む PC 側の操作(コマンドプロンプト) cd stampfly_ecosystem setup_env .bat sf flash vehicle ← 機 体 を USB 接 続 し て か ら 実 行 ※「←」以降は説明なので入力しません 機体の電源を入れ、USB-C ケーブルで PC に接続 2 上のコマンドを実行(PC 内でビルド済みの標準ファームウェアを書き込み) 3 完了後、機体が再起動 — 起動音が終わり LED が緑常灯になるまで水平静置 (ジャイロ校正) 1 伊藤 恒平 StampFly で学ぶドローン制御 22 / 38

23.

② よくある失敗と対処 症状 機体が認識されない/繋がらない 書き込みが進まない/失敗する それでも失敗する 対処 ケーブルを交換(充電専用ケーブ ルは不可) ポートを使う他アプリ(シリアル モニタ等)を閉じる 機体の BOOT ボタンを押しながら USB を挿し直して、もう一度 sf flash ※ sf flash は機体の設定(ペアリング等)には触れません。失敗したら、そのままもう一度実行 するだけです ※ BOOT ボタン=機体上面 M5StampS3 のボタン(③で ARM に使うものと同じ。起動時に押しな がらだと書き込みモード) 伊藤 恒平 StampFly で学ぶドローン制御 23 / 38

24.

③ プログラム書き換え・モータの制御 StampFly DXH ワークショップ

25.

③ モータ実習の安全 プロペラを回す実習ならではの注意 Duty は 0.15 以下(ファームでは強制されないので数値を必ずダブル チェック) プロペラは付けたまま — 機体上部の基板を上から指で押さえて回す バッテリーと USB の同時接続は避ける(動作確認はバッテリー駆動) 止め方 機体本体ボタンをもう一度クリック(DISARM)/完全に切るときはバッテリーを外す 伊藤 恒平 StampFly で学ぶドローン制御 25 / 38

26.

③ モータ配置 FR FL M4 CW Front M1 CCW M2 CW ESP32 CCW M3 RL CW (clockwise) 実機(上から見た写真) RR CCW (counter-clockwise) モータ ID:1 = FR(右前)/ 2 = RR(右後)/ 3 = RL(左後)/ 4 = FL(左前) 対角のモータが同じ方向に回転(トルクバランス) :M1・M3 = CCW / M2・ M4 = CW 伊藤 恒平 StampFly で学ぶドローン制御 26 / 38

27.

③ PWM と Duty / ARM・DISARM とは PWM Duty Cycle 0% T Duty Cycle 25% 50% 100% 伊藤 恒平 PWM とは モータの力加減は、電源を高速で ON/OFF して調整する(PWM) ON の時間の割合が Duty — 0% = 停 止、50% = 半分の力、100% = 全力 身近な例: LED 照明の明るさ調整も同 じ仕組み ARM / DISARM とは ARM = モータ出力を有効化(回転可 能に) DISARM = モータ出力を無効化(強 制停止) StampFly で学ぶドローン制御 27 / 38

28.

③ 実習の手順(1) :ビルドと書き込み PC 側の操作(コマンドプロンプト) cd stampfly_ecosystem setup_env .bat sf lesson edit ← VSCode が 開 く 。 コ ー ド を 編 集 し て 保 存 sf lesson build sf lesson flash ← 書き込み後シリアルモニタが自動起動 ※「←」以降は説明なので入力しません(打ち込むのはコマンドだけ) シリアルモニタの終了は Ctrl+] 伊藤 恒平 StampFly で学ぶドローン制御 28 / 38

29.

③ 実習の手順(2) :機体側の動作確認 # LED 1 白(明滅) バッテリー駆動で確認する 1 2 3 4 5 USB ケーブルを外す バッテリーを接続して機体の電源を入 れる 起動 LED シーケンスを待つ(右表) 機体本体ボタンを 1 回クリック → ARM(設定した Duty で回転) もう一度クリック → DISARM(停止) 状態 置いて待つ(約 3 秒) 2 青(明滅) センサ初期化中 3 マゼンタ(点滅) 安定化待ち(約 3 秒・触らない) 4 緑点灯+ビープ 操作可能 ×3 ※ 実習用ファームの表示です(①の機体とは異なります) 安全 プロペラは付けたまま — 機体上部の基板を上から指で押さえて回す 伊藤 恒平 StampFly で学ぶドローン制御 29 / 38

30.
[beta]
③ 実習コード
user_code.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37

伊藤 恒平

# include "workshop_api.hpp"
//
//
//
//
//
//
//
//
//
//
//
//
//

=========================================================================
Motor duty test ( hardcoded )
各 モ ー タ の Duty を ハ ー ド コ ー ド す る
=========================================================================
Motor IDs / モ ー タ ID:
1 = FR ( 右 前 )
2 = RR ( 右 後 )
3 = RL ( 左 後 )
4 = FL ( 左 前 )
Duty range: 0.0 - 1.0
0.0 = stop / 止 め る
0.10 = spin at 10% / 10% で 回 す
こ の チ ュ ー ト リ ア ル で は 0.15 を 上 限 と す る

void setup ()
{
ws:: print("Motor duty test");

}

// Do NOT auto -arm in code. Arming is controlled by the controller 's
// ARM button or a single click of the vehicle 's onboard button , so
// motors never spin until you intentionally press it.
// コ ー ド で は 自 動 ARM し な い 。 ア ー ム / 解 除 は コ ン ト ロ ー ラ の ARM ボ タ ン
// ま た は 機 体 本 体 ボ タ ン の 単 ク リ ッ ク で 行 う の で 、 意 図 的 に 押 す ま で
// モ ー タ は 絶 対 に 回 ら な い

void loop_400Hz(float dt)
{
// ----- Set each motor 's duty here / 各 モ ー タ の Duty を こ こ で 設 定 ----ws:: motor_set_duty (1, 0.10f);
// FR ( 右 前 )
ws:: motor_set_duty (2, 0.00f);
// RR ( 右 後 )
ws:: motor_set_duty (3, 0.00f);
// RL ( 左 後 )
ws:: motor_set_duty (4, 0.00f);
// FL ( 左 前 )
// ------------------------------------------------------------------}

StampFly で学ぶドローン制御

30 / 38

31.

③ 改造課題:推力の差で「動き」を作る 4 つの Duty に差をつけて ARM してみる 飛行原理のページで見た「推力の差 → ロール・ピッチ・ヨー」を、机の上で手に 感じる実習です 設定(Duty) 右 2 つ(M1・M2)= 0.10、左 2 つ = 0.05 前 2 つ(M1・M4)= 0.10、後 2 つ = 0.05 CW 組(M2・M4)= 0.10、CCW 組 = 0.05 機体が「しようとする」動き 左に傾こうとする(ロール) 後ろに傾こうとする(ピッチ) 機首が回ろうとする(ヨー・反ト ルク) 必ず守る 機体上部の基板を上から指で押さえたまま ARM する。傾く「力」を感じたら DISARM 伊藤 恒平 StampFly で学ぶドローン制御 31 / 38

32.

③ チェックポイント 確認事項  Duty を書き換えてビルド・書き込みができた  機体本体ボタンで ARM → モータ回転 → DISARM → 停止を確 認した  指定したモータが指定の Duty で回ることを確認した 伊藤 恒平 StampFly で学ぶドローン制御 32 / 38

33.

まとめ 授業導入に向けて StampFly DXH ワークショップ

34.

これからの StampFly(1) :Python から操縦 Tello SDK 互換の操縦 API を実装 (開発中・実機検証中) Tello 用の Python ライブラリ (djitellopy)のプログラムがそのま ま動くことを目標 Tello で作った授業教材・生徒の コードを StampFly に載せ替えら れる 伊藤 恒平 tello_compat.py 1 from djitellopy import Tello 2 drone = Tello () drone.connect () 5 drone.takeoff () 6 drone.move_forward (50) 7 drone.rotate_clockwise (90) 8 drone.land () 3 4 StampFly で学ぶドローン制御 34 / 38

35.

これからの StampFly(2) :ブロックプログラミング Google の Blockly — ブロッ クを組み合わせて書くビジュ アルプログラミング言語 ブラウザでブロックを並べて 飛行プログラムを作れる(開 発中・デモ版が動作) キーボード入力なしで、プロ グラミング未経験の生徒でも 扱える sf blocks — ブラウザのブロック編集画面(デモ版) 伊藤 恒平 StampFly で学ぶドローン制御 35 / 38

36.

StampFly の入り口 — Landing ページ StampFly エコシステムの紹介 ページ ドキュメント・教材への入 り口 Web フラッシャもここから — ブラウザだけで最新ファー ムウェアを書き込める(開発 環境不要) 学校の PC に開発環境がなくても、この https://m5fly-kanazawa.github.io/stampfly_ecosystem/ 伊藤 恒平 ページから書き込みを試せます。今日の続 きはここから StampFly で学ぶドローン制御 36 / 38

37.

おわりに — 現在地と、これから StampFly はここまで来ました 位置制御まで飛ぶようになり、「授業でそのまま使えるパッケージ」へ仕上げてい く段階です。 制御の完成度を上げる開発を続けています 種はすでに撒かれています: 全ソース公開・シミュレータ・Tello 互換・ブ ロックプログラミング、そして今日の講座 目指す姿 初等教育から高等教育・社会人教育まで、StampFly を教材にした一貫した教材群 を完成させる — 皆さんの声(アンケート)が、その羅針盤になります 伊藤 恒平 StampFly で学ぶドローン制御 37 / 38

38.

アンケートのお願い(2 種類)/ リンク集 GitHub リポジトリ https://github.com/M5Fly-kanazawa/ 大学アンケート (DXH 事業) QR(当日掲示) 講師アンケート (教材改善用) QR(会場で掲示) 2 種類のアンケートにご協力をお願いします stampfly_ecosystem 本日のスライド資料 (ドクセル) https://www.docswell.com/s/Kouhei_ Ito/ZL3EYL-2026-07-17-161742 本日はありがとうございました 伊藤 恒平 StampFly で学ぶドローン制御 38 / 38