01. ハードウェアの基礎
「電子工作は初めて」を前提に、スタックちゃんが何でできているかを噛み砕いて説明する。
スタックちゃん K151 の中身(本プロジェクト構成)
スタックちゃん本体は大きく3つの部品でできている。本プロジェクトではさらに Module-LLM(背面モジュール)と Bottom3(GROVE 拡張ベース)を追加し、複数の Unit を Bottom3 経由で接続する。
追加コンポーネントの役割
| パーツ | 役割 | 接続 |
|---|---|---|
| Module-LLM (AX630C) | オンデバイス LLM / STT / TTS | CoreS3 背面の Module バス (UART) |
| Bottom3 | バッテリー+ GROVE 拡張ハブ(Port.A/B/C) | CoreS3 底面に積む |
| FAN V1.1 | Module-LLM 冷却 | Bottom3 経由 |
| TMOS PIR / ToF Ranging | センサー Unit | Bottom3 Port.A (I2C) |
| Unit IR | 家電リモコン送受信 | Bottom3 Port.B |
| Unit MIDI | 効果音・通知音 | Bottom3 Port.C (UART) |
詳しい在庫・接続状況は パーツ資産管理ページ を参照。
ESP32-S3 とは
- CPUチップ の型番。ESP32 シリーズの中で比較的新しい世代
- Wi-Fi と Bluetooth が内蔵されている(別チップ不要)
- メモリは内蔵 SRAM 512KB + 外付け PSRAM 8MB(CoreS3 の場合)
- 我々のコードは最終的にこのチップの上で動く
CoreS3 とは
- M5Stack社の製品名。中身に ESP32-S3 + LCD + マイク + スピーカー + IMU + バッテリーをまとめて、ケースに入れたモジュール
- USB-C を挿すと充電・通信どっちもできる
- LCDサイズは 2インチ・320×240 ピクセル
サーボとは
- 角度指定で動くモーター。0°〜180°のどの位置に向くかを指示できる
- 普通のモーターは「回る/回らない」しか制御できないが、サーボは「45°の位置で止めて」と命令できる
- スタックちゃんでは首を左右に振る/上下に向ける用途で2〜3個使う
Module-LLM (AX630C) とは
- CoreS3 の背面に積む LLM 推論モジュール(M5Stack 純正)
- 中身: AX630C SoC、NPU 3.2 TOPS、LPDDR4X、eMMC を1枚に統合
- Qwen2.5-0.5B / Llama3.2-1B / Whisper クラスのモデルがオンデバイスで動く
- CoreS3 とは UART (Module バス) で通信。CoreS3 から「これ答えて」と投げて結果を受け取る
- Wi-Fi なしでも対話・STT/TTS が完結する のが最大の利点
- 発熱が大きいので FAN V1.1 で冷却するのが推奨
Unit と GROVE コネクタ
- Unit シリーズ = M5Stack 社が出しているモジュール式の周辺機器(センサー・アクチュエータ)
- GROVE 4ピンコネクタ でケーブル1本でつなぐ
- 中身は I2C / UART / GPIO のどれか
- CoreS3 単体だと Port が1つしかないので、Bottom3 を底面に積んで Port.A / B / C に拡張するのが一般的
USB-C ケーブルを Mac に挿すと何が起きるか
物理的には1本のケーブルだが、中では3つの仕事を同時にやっている:
なぜ /dev/cu.usbmodemXXXXX なのか
- macOS は USB-シリアル変換デバイスを「仮想的なシリアルポート」として扱う
/dev/cu.*という名前で生えてくる(cu = call-out, 古い UNIX の慣習)- 末尾の数字(例:
83301)はチップ固有の識別子。複数台繋ぐと別の番号になる /dev/tty.*も同じデバイスを指すが、こちらは「相手からの呼び出し待ち」用なので普通使わない
確認コマンド
bash
# 繋がっているシリアルデバイスを一覧
ls /dev/cu.usbmodem*
# デバイスの正体(メーカー・型番)を見る
ioreg -p IOUSB -l | grep -E "USB Product Name|idVendor"CoreS3 が見つかると以下のように出る:
"USB Product Name" = "USB JTAG_serial debug unit"
"USB Vendor Name" = "Espressif"「Espressif」が出れば認識成功。Espressif は ESP32 を作っている会社。
給電と書き込みの注意
- 充電だけしたいとき: USB-C を挿せば勝手に充電する。Mac じゃなくて USB アダプタでも OK
- 書き込み中は抜かない: 途中で抜くとファームが壊れて起動しなくなる場合がある(復旧はできるが手間)
- 電源ボタン: CoreS3 左側面のボタン。長押しで電源 OFF、短押しで ON
- リセットボタン: 同じく左側面の小さいボタン。短押しで再起動
用語まとめ
| 用語 | 意味 |
|---|---|
| GPIO | General Purpose I/O。マイコンから出ている「自由に使える線」。HIGH/LOW を出したり読んだりできる |
| I2C | アイ・スクエア・シーと読む。マイコンと周辺チップを2本の線で繋ぐ通信規格。サーボボード・センサー類はだいたいこれ |
| UART | ユー・アート。2本の線(送信・受信)でテキストを流す古典的な通信。USBの内側で使われている |
| PSRAM | Pseudo Static RAM。CPU 内蔵 RAM だけでは足りないときに増設する外付けメモリ |
| ファームウェア | マイコンに書き込む「OS兼アプリ」を一体化したもの。電源ONで自動起動する |