![見出し画像](https://assets.st-note.com/production/uploads/images/104581157/rectangle_large_type_2_6160f10ab3f9fbe4fd56debb2e4bcaea.jpeg?width=800)
スタックチャンの顔をM5Stack用ディスプレイモジュールでHDMI出力する話
スタックチャンについて
「スタックチャン」という可愛いコミュニケーションロボットが話題になっている。ジェネレーティブAIのChatGPTを@robo8080さんがスタックチャンに組み込んだことをきっかけに大きな広がりを見せているのである。
今回は、M5Stack用ディスプレイモジュールでスタックチャンの顔をHDMI出力するための手順についてまとめておく。
できること
こんな感じにスタックチャンの顔をHDMIディスプレイに表示することができる(タカオ(Takao)@mongonta555さんのTwitterより)。
スタックチャンは小さいからカワイイのだが、デカくてもやっぱりカワイイのである。
展示の予定はなかったのに急遽スタックチャンテーブルができた(;・∀・)#M5JPTour2023 pic.twitter.com/mIayG8ss9t
— タカオ(Takao) (@mongonta555) May 1, 2023
犬顔 #スタックチャン デカい! pic.twitter.com/OMJ1cUxBmo
— HisashiHoshino@MIEE2017-2023/GlobalMinecraftMentor (@naominix) May 1, 2023
必要なもの
M5Stack用ディスプレイモジュールは以下の製品です。
こうしたモジュールで拡張する際にはスタックして固定するためのM3ネジが必要になるのでこちらもどうぞ。
対象ソースコード
事例として使用するソースコードは@robo8080さんの以下のものをベースに説明する。
なお、Visual Studio CodeにPlatformIOが組み込まれてビルド可能な状態になっている前提で以下に手順をまとめる。
![](https://assets.st-note.com/img/1683086784707-AZm1Hw57ic.png?width=800)
組み込み手順
includeするヘッダ
まずはM5StackにModule Displayを組み込むために関連ヘッダファイルを追加する。
この際に重要なのは
#include <M5Unified.h>
よりも前にヘッダファイルのincludeを追加する点だ。
![](https://assets.st-note.com/img/1683087223461-87jLpqCoIa.png)
#include <M5ModuleDisplay.h>
#include <M5Unified.h>
これについてはM5Unified開発者のらびやん@lovyan03さんの以下のツイートを参照して欲しい。
こんな感じでM5Unified.hより前に外部ディスプレイ系のヘッダをincludeしておくと…M5.Display がそのまま外部ディスプレイを使って動作するという仕掛け。
— らびやん (@lovyan03) November 5, 2021
これ結構いいのでは…? pic.twitter.com/T1oCvE1SwW
setup()関数に追加するコード
次にソースコードの914行以降にあるsetup()関数内に記述するコードだ。
以下のコード(前提:スピーカーの設定はいじらない)を
cfg.module_display.logical_width = 320;
cfg.module_display.logical_height = 240;
cfg.external_display.module_display = true;
以下のようにペーストする。
![](https://assets.st-note.com/img/1683088661184-R610Qk6cYN.png?width=800)
さらに以下のコードを
M5.setPrimaryDisplayType(m5gfx::board_M5ModuleDisplay);
以下のようにペーストする。
![](https://assets.st-note.com/img/1683088980510-pA67gZDrLf.png?width=800)
ビルド
これでビルドしてM5Stackに書き込もう。忘れずにHDMIケーブルをM5StackとHDMIディスプレイに接続して起動を待つ。
すると・・・
実行結果
![](https://assets.st-note.com/img/1683089365007-n7INbeYGBv.png?width=800)
BtnCで自己紹介したり、BtnAでヒトリゴトモードにするとM5Stack側から声が聞こえてきてHDMIディスプレイにはスタックチャンの大きな顔が出るのだ。
![](https://assets.st-note.com/img/1683089536697-mMhqPjCpla.png?width=800)
HDMIディスプレイから音声出力
この場合は出力先を以下のように変更してみて欲しい
cfg.external_spk = true;
↓
cfg.external_speaker.module_display = true;
犬顔に変更
また、犬顔を有効にする場合は、コメントアウトされている行を選択してCTRL+/でコメントを外すだけで顔を切り替えられるので試してみて欲しい。
![](https://assets.st-note.com/img/1683089855976-pox1djiQWb.png)
![](https://assets.st-note.com/img/1683089941183-CEbSwqFZsA.png)
HDMI出力でできること
スタックチャンのお顔をHDMI出力にできることでこんなことができるのではないだろうか。
オンラインミーティングのカメラにスタックチャンの顔を出してスタックチャンカンファレンス(ミーティング参加者全員スタックチャン顔)
ATEM Miniシリーズで複数のM5Stack+ModuleDisplayのHDMI入力を入れてスタックチャンアバター切り替え(誰得?)
デジタルサイネージで「しゃべる」「歌う」「ひとりごと言う」スタックチャン
会社や学校などの玄関口でウェルカムスタックチャンなど
イベント会場や店舗での大型ディスプレイでの製品/商品/サービスの宣伝スタックチャン
アイデア次第でカワイイスタックチャンの活用の幅が広がるだろう。
スタックチャンコミュニティに参加しよう
スタックチャンの情報はTwitterやDiscordにたくさん集まっている。
「スタックチャン的なロボットを作って愛でる人たち」のことを指します。
(スタックチャンにインスパイアされた様々な[派生作品](https://protopedia.net/material/833) も含みます。)
スタックチャンコミュニティの皆さんは本当に優しくて暖かいのでスタックチャンが気になったらコミュニティに参加してみよう。
Discordは以下からどうぞ。
この記事が気に入ったらサポートをしてみませんか?