Skip to content

01. ハードウェアの基礎

「電子工作は初めて」を前提に、スタックちゃんが何でできているかを噛み砕いて説明する。

スタックちゃん K151 の中身

スタックちゃん本体は大きく3つの部品でできている。

┌─────────────────────────┐
│  M5Stack CoreS3         │ ← 「脳みそ」+ 画面 + マイク・スピーカー
│  ┌───────────────────┐  │
│  │ ESP32-S3 (CPU)    │  │   Wi-Fi/BluetoothもこのCPUに内蔵
│  │ 320x240 LCD       │  │
│  │ マイク・スピーカー │  │
│  │ USB-C             │  │
│  └───────────────────┘  │
└──────────┬──────────────┘
           │ I2C / GPIO で接続

┌─────────────────────────┐
│  サーボ駆動ボード        │ ← 首を振るための小さなボード
│  (パンチルトモジュール)   │
└──────────┬──────────────┘

   ┌───────┴───────┐
   ▼               ▼
 サーボ×2 (左右)  サーボ (上下)

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個使う

USB-C ケーブルを Mac に挿すと何が起きるか

物理的には1本のケーブルだが、中では3つの仕事を同時にやっている:

Mac  ──────  USB-C  ──────  CoreS3

  ① 電力供給(5V)
       Mac の USB ポートから給電。バッテリーがあっても給電優先。

  ② シリアル通信(双方向)
       Mac ↔ CoreS3 でテキストデータをやり取りする。
       printfデバッグの出力もここを流れる。
       Mac 側からは /dev/cu.usbmodemXXXXX という「仮想シリアルポート」として見える。

  ③ フラッシュ書き込みモード切替
       Mac から特定の信号を送ると、CoreS3 を「ファーム書き込みモード」に
       入れることができる。普段は通常起動するが、書き込み時だけこの線で切替。

なぜ /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
  • リセットボタン: 同じく左側面の小さいボタン。短押しで再起動

用語まとめ

用語意味
GPIOGeneral Purpose I/O。マイコンから出ている「自由に使える線」。HIGH/LOW を出したり読んだりできる
I2Cアイ・スクエア・シーと読む。マイコンと周辺チップを2本の線で繋ぐ通信規格。サーボボード・センサー類はだいたいこれ
UARTユー・アート。2本の線(送信・受信)でテキストを流す古典的な通信。USBの内側で使われている
PSRAMPseudo Static RAM。CPU 内蔵 RAM だけでは足りないときに増設する外付けメモリ
ファームウェアマイコンに書き込む「OS兼アプリ」を一体化したもの。電源ONで自動起動する

aieo-product / stack-chan project