Slide 1

Slide 1 text

AIをリアル世界に解き放つ M5Stack✕AIで あなたのアイディアを手のひらに 製造ビジネステクノロジー部 濱田孝治(ハマコー)

Slide 2

Slide 2 text

濱田孝治(ハマコー)製造ビジネステクノロジー部 スマートファクトリーチーム マネージャー 製造業向けAI・クラウドソリューションの企画 導入支援 コミュニティ運営 • JAWS-UG コンテナ支部運営 • Grafana Meetup Co-organizer, Grafana Champion AWS認定関連 • SAP, DOP, DBS, SOA, SAA, DVA, SCS, CLF, AIF, MLA, MLS • AWS APN Ambassador 2020, AWS Top Engineer 2025, 2026 執筆書籍 • みんなのAWS • SoftwareDesign 2022年11月号 コンテナ特集 2

Slide 3

Slide 3 text

ハッシュタグもあるので、皆さん是非つぶやいてね! #devio2026 @hamako9999 3

Slide 4

Slide 4 text

一緒に働く仲間キボンヌです!! 4

Slide 5

Slide 5 text

5 最初に M5Stack 聞いたことがある人

Slide 6

Slide 6 text

6 最初に M5Stack パソコンとの違いを知っている人

Slide 7

Slide 7 text

7 最初に M5Stack 触って開発したことあるひと

Slide 8

Slide 8 text

今日持ち帰ってほしいこと 慣れないアーキテクチャでも、 生成AIがあれば夢を実現できる AI活用のさらなる可能性に 想いをはせてもらう 8

Slide 9

Slide 9 text

Agenda • M5Stackとは? • StackChanとは? • StackChanのカスタマイズ方法 ← 会場リクエスト求む • ライブデモ • 基本的なソースコードの構造解説 • 追加のミニデモ ← 会場参加型 • 更なる活用のアイディア 9

Slide 10

Slide 10 text

10 M5Stackとは?

Slide 11

Slide 11 text

11 最初に M5Stackを理解するには 最初にマイコンの概念を おさらいしておく必要有り

Slide 12

Slide 12 text

12 そもそも「マイコン」とは 特定用途に最適化された、小さなコンピューター 1つのチップ 電源オンですぐ動く ピンから直接、電気 CPU・メモリ・入出力の回 路が、1つのチップに全部 入っている 書き込んだ1つのプログラ ムだけが動く。 LEDを光らせる、モーター を回す、センサーを読む、 がプログラムから直接でき る(GPIO) OSは無いか、もしくは FreeRTOSなどの軽量のも の。 家電・リモコン・おもちゃ…身の回りのあらゆる機械はマイコン

Slide 13

Slide 13 text

13 マイコンの代表格「ESP32-S3」 一般的なノートPCのCPUと比べて性能は遥かに小さい 一般的なノートPC(目安) ESP32-S3(StackChan・StopWatch) CPU Intel/AMD(x86)、Appleシリコン (Arm) Xtensa LX7(x86でもArmでもない) クロック 数GHz 240MHz コア数 8〜十数コア 2コア メモリ 16GB前後 内蔵512KB(+外付けPSRAM 8MB) ストレージ SSD 数百GB〜 フラッシュ 16MB OS macOS/Windows/Linux なし(またはFreeRTOS) 無線 別チップで搭載 Wi-Fi・Bluetooth LEを内蔵 外とのつながり USBなどの規格越し プログラムできるピン45本

Slide 14

Slide 14 text

14 改めて M5Stackとは何なのか?

Slide 15

Slide 15 text

15 M5Stackとは マイコンを、買ってすぐ使えるようにした開発キット 画面・スピーカー・マイク ESP32-S3 数ミリ角のチップ + センサー・電池・ケース Groveポート マイコン 頭脳のチップ(Espressif) M5Stack ライブラリ・ボードパッケージ USBをつなげばすぐ動く本体

Slide 16

Slide 16 text

16 M5Stackの代表的な製品 同じESP32・同じ開発環境で、様々な機器が提供されている Core Stick Atom Cardputer CoreS3・Core2・Tab5 画面付きの定番 StickC-Plus・StickS3 持ち歩けるスティック型 AtomS3R・Atom Voice 約2.4cm角の極小 Cardputer-Adv キーボード付き Dial E-Paper AIハードウェア 今日の主役 Dial 回すダイヤルのUI PaperS3・CoreInk 電子ペーパー Module LLM・LLM630 デバイス上でLLM StopWatch・StackChan

Slide 17

Slide 17 text

17 StopWatch(2026年5月発売) 丸い有機ELの、手の平デバイス 仕様 画面 1.75インチ丸型 有機EL タッチ( 466×466) SoC ESP32-S3 入っているもの マイク・スピーカー・6軸IMU・振動 ・時計 電源と重さ 450mAh、39g 拡張 Groveポート、背面端子、マグネッ ト

Slide 18

Slide 18 text

さらに素晴らしい機能 Groveポートによる機能拡張 18

Slide 19

Slide 19 text

Groveポート:ケーブルを挿すだけで機能拡張 19 はんだ付けなしで、センサーや部品の機能拡張ができる Port A I2C 温湿度・距離などのセ ンサー Port B GPIO ボタン、アナログ入力 など UART GPSなど(シリアル通 信) Port C

Slide 20

Slide 20 text

20 挿せば使えるUnitが大量にある センサー アクチュエーター 表示・入力 オーディオ 距離・温湿度・CO2 → 近づいたら振り向く ブザー・リレー・モーター → 家電の電源を入れる キーボード・OLED・ボタン → 文字で話しかける シンセ・MIDI → 歌う、演奏する カメラ 無線・通信 拡張 …ほかにも 画像認識付きカメラ → 物や人を見分ける GPS・LoRaWAN・RS485 → 工場の機器とつなぐ I2Cハブ・サーボドライバ → 腕や手を足す まだまだたくさん

Slide 21

Slide 21 text

21 StackChanとは?

Slide 22

Slide 22 text

StackChanとは 顔があって、首が動く、手の平サイズのロボット 22

Slide 23

Slide 23 text

23 コミュニティが育てたロボット 1人のOSSから、みんなのロボットへ 2021 その後 現在 1人のOSS みんなで育てる 公式製品に Shinya Ishikawa(ししか わ)氏が公開 自作キットが広まる AIで会話できるように 2023年 組み立てキット発売 #スタックチャン で共有 M5Stackの公式キット K151 今日のデモの「顔」のライブラリも、作者によるもの(M5Stack_Avatar)

Slide 24

Slide 24 text

24 M5Stackの公式製品に 「The First Co-Created Open-Source AI Desktop Robot」 4,141 Kickstarterの支援者 人 約46 倍 目標額に対して集まった額 コミュニティと共に作った(Co-Created)ロボット。 今日使うのはこの公式キット K151

Slide 25

Slide 25 text

25 StackChanの中身(K151) 光る・喋る・動く・感じる・繋がるが一通りこれだけでできる 動く 光る 喋る フィードバックサーボ2軸 RGB LED 12個 スピーカー・マイク2つ 水平360°・垂直90°。今の角度も 読める 左右6個ずつ 1Wスピーカー 感じる 感じる 繋がる 頭のタッチ・カメラ 9軸IMU・近接・照度 NFC・赤外線・Wi-Fi 3ゾーンのタッチ、0.3MPカメラ 持ち上げた、近づいた、が分かる 赤外線で家電も操作できる 頭脳はCoreS3(ESP32-S3)。画面2.0インチ、バッテリー550mAh

Slide 26

Slide 26 text

StackChanは、箱から出すともうAIロボット これ一つ買うだけで、やりたいことはほとんど出来る 「Hi, StackChan」で会話するAIエージェント スマホアプリで名前・声・性格を設定 Home Assistant経由で家電の操作 アニメーション、リモコン操作、OTA更新 26

Slide 27

Slide 27 text

27 今日は全部消して AIで作ります

Slide 28

Slide 28 text

28 StackChanのカスタマイズ方法

Slide 29

Slide 29 text

29 StackChanのカスタマイズ方法 今日はあえて、「C++で直接」の方法を使っています 方法 何を書くか Webエンジニアから見た距離 ① 工場ファームのまま設定 書かない(スマホアプリ) 一番近い。設定の範囲まで ② UiFlow2 ブロック(MicroPython) 近い。ブラウザで完結 ③ 元祖スタックチャン JavaScript/TypeScript 近い。npmで完結 ④ Arduino(今日) C++ 遠い。C++・ボードパッケージ・ピン ⑤ ESP-IDF/PlatformIO C/C++ 一番遠い。本格的な組み込み C++ ハードを全部触れる ターミナルで完結 ①〜③はWebエンジニアでも入りやす い道。あえて遠いC++で「AIなら書け る」を見せる 公式ライブラリで、首・LED・タッチ・ NFC・赤外線まで直接扱える arduino-cliなので、Claude Codeがビ ルドと書き込みまで自走できる

Slide 30

Slide 30 text

CPUの種類が違うためクロスコンパイルが必要 Macでビルドしたものは、そのままでは動かない Mac クロスコンパイル ESP32-S3 Appleシリコン(Arm) ────── Xtensa LX7 ボードパッケージ ESP32向けの変換の道具一式(コンパイラなど)。 Webで言えば、ランタイムとビルドツールを一緒に入れる感覚 30

Slide 31

Slide 31 text

31 ボードパッケージの中身 ESP32向けの「コンパイラ+ランタイム+デプロイツール」 1 3 クロスコンパイラ ≒ tsc 2 コア ≒ Node.js xtensa-esp-elf-gcc / g++ Arduino.h + ESP-IDF(SDK) Mac上で、ESP32の機械語を出す WiFi・WebServerなども同梱 ボード設定 ≒ 設定ファイル 4 書き込みツール boards.txt / pins_arduino.h esptool SDA=2・SCL=1 → Port A(赤)のピン USBでフラッシュに書き込む $ arduino-cli compile --fqbn m5stack:esp32:m5stack_cores3 ≒ デプロイ パッケージ : チップ系統 : ボード

Slide 32

Slide 32 text

32 Groveポート接続機器の制御もできる 部品の種類は膨大だが、現在はライブラリ選定からコードを書くところまでAIに お願い可能 挿す 頼む 動く CO2センサーのUnitを Groveポートへ 「1000ppmを超えたら 困った顔をして」 ライブラリ探しから コードまでAIが書く M5UnitUnified どのUnitも同じ書き方で扱える共通ライブラリ Units.add(unit, Wire); Units.begin(); Units.update();

Slide 33

Slide 33 text

33 ライブデモ

Slide 34

Slide 34 text

34 デモの進め方 Vibe Codingですすめます。無事完走するかどうかは皆さん次第!! デフォルト ラウンド1 ラウンド2 最初の動き セリフと動きを変える 会場リクエスト 頭をタップすると、うなず いて挨拶する 光る・喋る・動くを組み合 わせる 皆さんの依頼をその場で

Slide 35

Slide 35 text

会場リクエスト:何をさせたいですか? 自由にどうぞ。組み合わせもOK 表情 セリフ 笑顔/怒り/悲しみ/困惑/眠い 何でも喋れます 首の動き LED うなずく/首を振る/見回す/踊る 色・点滅・虹色 35

Slide 36

Slide 36 text

36 基本的なソースコードの構造

Slide 37

Slide 37 text

37 開発の全体像 依頼してから実機が動くまで、約1分 Claude Code arduino-cli USBケーブル StackChan 日本語で依頼 ESP32向けにビルド 書き込み 光る・喋る・動く 項目 値 ボードパッケージ m5stack:esp32 3.3.10(ESP32向けのコンパイラ一式) ライブラリ M5StackChan 1.1.1(首・LED・タッチ)、M5Stack_Avatar 0.10.0(顔) かかる時間 ビルド約10秒+書き込み約9秒。AIの作業込みで1回約1分

Slide 38

Slide 38 text

38 リポジトリの中身 github.com/HamadaKoji/stackchan-demo stackchan-demo/ ├── CLAUDE.md ├── sketches/ │ └── stackchan_base/ │ ├── stackchan_base.ino │ └── voice_*.h └── tools/ ├── make_voice.py └── reset_demo.sh CLAUDE.md AIへの取扱説明書 *.ino 本体のプログラム(C++) voice_*.h セリフの音声データ tools/ 音声づくり・デモのリセット

Slide 39

Slide 39 text

39 スケッチの基本形:setup と loop 「起動時に1回」と「ずっと繰り返す」の2つだけ void setup() { M5StackChan.begin(); avatar.init(); } // 初期化 // 顔を出す void loop() { M5StackChan.update(); if (TouchSensor.wasClicked()) { greet(); // 挨拶する } } setup() Webで言えば 初期化処理 loop() Webで言えば イベントループ

Slide 40

Slide 40 text

40 光る・喋る・動く・顔は、それぞれ数行 面倒な部分は、ライブラリが全部隠してくれる やりたいこと コード メモ 首を動かす Motion.moveYaw(300, 400); 10=1度、速さ0〜1000 首を傾ける Motion.movePitch(500, 300); 上下は5〜85度で LEDを光らせる setRgbColor(0, 168, 0, 0); 12個を番号で指定 表情を変える avatar.setExpression(Happy); 6種類 吹き出し avatar.setSpeechText("…"); 日本語OK 喋る M5.Speaker.playWav(voice, len); WAVを再生 撫でられた? TouchSensor.wasClicked(); スワイプも区別

Slide 41

Slide 41 text

41 喋る仕組み:Macの音声合成を埋め込む クラウドもAPIキーも使わない。オフラインで喋る セリフ say WAV voice_xxx.h ビルド テキスト Macの音声合成 16kHz・16bit C++の配列に ファームに埋め込む 約100KB ネットに左右されない その代わり 2〜3秒のセリフで。フラ ッシュ16MBに十分入る 会場のWi-Fiが不安定でも 喋れる セリフはビルド時に決まる その場で考えるならLLMへ

Slide 42

Slide 42 text

42 AIへの取扱説明書:CLAUDE.md コンテキスト設計は、組み込みでもそのまま効く # Claude向けガイド ## デバイス 首の可動範囲、LEDの数… ## 進め方 ビルドと書き込みまで 自分で実行して終える ## ビルド・書き込みコマンド ## 起点ファームと音声 「セリフを変えて」の一言で… 1 音声データを生成 2 コードを修正 3 ビルド 4 書き込み 書いておけば、首の可動範囲も守ってくれる

Slide 43

Slide 43 text

43 AIが書いたコードの例 「1から10まで数えて、3の倍数でアホになって」 void countUp() { for (int i = 1; i <= 10; i++) { if (i % 3 == 0) { avatar.setExpression(Doubt); setLeds(168, 0, 168); // 紫 Motion.movePitch(450, 300); speak(...); // さ〜ん〜! } else { avatar.setExpression(Happy); setLeds(0, 168, 0); // 緑 speak(...); // いち } } } 自分では 1行も 書いていない 読めば分かる

Slide 44

Slide 44 text

ここまでの流れ ここまで順調に行ってたら 誇っていいぞ!! 44

Slide 45

Slide 45 text

45 追加のミニデモ API

Slide 46

Slide 46 text

46 ミニデモ:curlでロボットを動かす いつものHTTPで、物理世界が動く $ curl http://stackchan.local/alert $ curl http://stackchan.local/ok $ curl "http://stackchan.local/say?text=…" /alert 首を振って赤く光る「アラートだよ!」 /ok 虹色に光って「解決したよ」 /say 吹き出しに好きな文字 これをGitHub ActionsやCloudWatchのアラートにつなげば…

Slide 47

Slide 47 text

47 ミニデモ:GitHubのスターで喜ぶ スターがつくと、ハマコーStackChanが喜びます!! ★ github.com/HamadaKoji/ stackchan-demo 反応まで 数十秒 1 GitHub APIでスター数を定期的に確認 2 増えたら虹色に光って踊る 3 「スターありがとう!嬉しい!!」

Slide 48

Slide 48 text

48 更なる活用のアイディア

Slide 49

Slide 49 text

さらに世界とつながっていくためにできること APIを叩く Webhookを受ける 天気や予定を喋る 何か起きたら首を振る StackChan Wi-Fiでつながる クラウドにつなぐ LLMを呼ぶ センサーの値を貯めて可視化 その場で考えて、話す 49

Slide 50

Slide 50 text

50 個別の機能だけでも様々なアイディアを実現 CIの相棒 アラート係 会議の秘書 話し相手 首・表情・LED 首・スピーカー スピーカー・画面 落ちたらうなだれる アラートで首を振る 次の会議を読み上げ LLMと会話する 受付ロボ スマートリモコン 入退室チェック オフラインAI カメラ・首 人が来たら挨拶 赤外線 エアコンをつける NFC 社員証で名前を呼ぶ マイク・LLM Module LLM デバイス上でLLM

Slide 51

Slide 51 text

51 例:AIエージェントの机上の相棒 Claude Codeの作業を、机の上で知らせてくれる シーン(イメージ) 大きめの修正をClaude Codeに頼んで、席を立つ 戻ると、スタックチャンが困った顔で青く光っている 「ねえ、ファイルの削除していいか聞かれてるよ!」 許可して数分後、虹色に光ってうなずく 「終わったよ!テストも全部通ったって!」 確認待ち 困った顔・青く光る 「確認お願い!」 完了 笑顔・虹色・うなずく 「終わったよ!」 エラー 悲しい顔・赤く光る 「失敗しちゃった…」 Claude Code hooks curl StackChan 作業の終了・確認待ち 決めたコマンドを自動実行 今日のミニデモと同じ 振り向く・光る・喋る hook起点で動かすことで、ITの結果を受け取って動作させることが簡単にできる

Slide 52

Slide 52 text

52 例:部屋の「AI執事」になる ITはLLM、現実世界は赤外線を利用 LLMが、使う道具を自分で選ぶ シーン(イメージ) 帰宅して「ただいま、暑い…」とつぶやく 「おかえり!室温29度だね。冷房を26度でつけるね 」 赤外線で、エアコンが「ピッ」と鳴る 「明日は朝9時から会議だから、早めに寝てね」 室温を読む 温湿度センサー(Groveに挿すだけ) エアコンをつける 赤外線を送る(StackChanに内蔵) 予定を調べる カレンダーAPI 「暑い…」 音声認識 LLM 道具を使う 返事 マイク 言葉を文字に 意図をくみ取る センサー・赤外線・API 喋る・首を振る LLMのtool useそのもの。道具の中身が、Web APIから赤外線やセンサーになっただけ

Slide 53

Slide 53 text

53 例:Unitを足すと腕が生える 首と画面だけだったロボットに身振り手振りが増える 挿すUnit シーン(イメージ) 受付のスタックチャンに、人が近づく くるっと振り向いて、小さな腕で手を振る 「いらっしゃい!セッション会場はあっちだよ」 腕で方向を指し示す 嬉しいときはバンザイ、困ったら頭をかく サーボドライバ I2C 腕・手を最大8個 距離センサー I2C 人が近づくのを知る RGB LED・ブザー GPIO 光と音で気持ちを強める 人が近づく StackChan 首 腕 表情・声 距離センサー 気づく 振り向く 手を振る・指す 気持ちを伝える 腕の身振りも、話す内容に合わせてAIに決めさせられる

Slide 54

Slide 54 text

54 例:Unitを足すと工場の見守りロボを実現 工場現場での一つの利用例として 挿すUnit シーン(イメージ) ラインの横で、制御盤とつながって機械を見守る 3号機の温度が、じわじわ上がり始めると… 「3号機、いつもより温度が高いよ」 「ベアリングの点検、前回から2か月たってるね」 事務所の保全担当のスマホにも通知が飛ぶ RS485 UART 機械(PLC)と話す 温湿度センサー I2C 現場の環境も測る LoRaWAN・PoE 工場でも安定して送る 工場の機械 RS485 StackChan クラウド 保全担当 PLC 産業用の通信 作業者に声で 蓄積・LLMで分析 スマホに通知 ハードの信頼性の問題があるのでそのままは使えないが 概念実証としては検証の余地はある

Slide 55

Slide 55 text

55 まとめ

Slide 56

Slide 56 text

リアル世界への入口 56 StackChan自身やそこから派生する 各種センサーを使うと ITだけではない世界への拡張がみえてくる

Slide 57

Slide 57 text

57 まとめ 慣れないデバイスや言語、ライブラリでも、 生成AIがあればVibe Codingできる ソフトウェア開発の外にでると リアル世界への可能性が見えてくる 是非、AI活用の新しい地平を 切り開いてみて下さい!!

Slide 58

Slide 58 text

アンケートのご回答、よろしくお願いします!! 58

Slide 59

Slide 59 text

59