見出し画像

スタックチャンの顔をM5Stack用ディスプレイモジュールでHDMI出力する話

スタックチャンについて

「スタックチャン」という可愛いコミュニケーションロボットが話題になっている。ジェネレーティブAIのChatGPTを@robo8080さんがスタックチャンに組み込んだことをきっかけに大きな広がりを見せているのである。
今回は、M5Stack用ディスプレイモジュールでスタックチャンの顔をHDMI出力するための手順についてまとめておく。

できること

こんな感じにスタックチャンの顔をHDMIディスプレイに表示することができる(タカオ(Takao)@mongonta555さんのTwitterより)。
スタックチャンは小さいからカワイイのだが、デカくてもやっぱりカワイイのである。

必要なもの

M5Stack用ディスプレイモジュールは以下の製品です。

こうしたモジュールで拡張する際にはスタックして固定するためのM3ネジが必要になるのでこちらもどうぞ。

対象ソースコード

事例として使用するソースコードは@robo8080さんの以下のものをベースに説明する。

なお、Visual Studio CodeにPlatformIOが組み込まれてビルド可能な状態になっている前提で以下に手順をまとめる。

変更前の状態

組み込み手順

includeするヘッダ

まずはM5StackにModule Displayを組み込むために関連ヘッダファイルを追加する。
この際に重要なのは

#include <M5Unified.h>

よりも前にヘッダファイルのincludeを追加する点だ。

includeする順番が重要
#include <M5ModuleDisplay.h>
#include <M5Unified.h>

これについてはM5Unified開発者のらびやん@lovyan03さんの以下のツイートを参照して欲しい。

setup()関数に追加するコード

次にソースコードの914行以降にあるsetup()関数内に記述するコードだ。
以下のコード(前提:スピーカーの設定はいじらない)を

cfg.module_display.logical_width = 320;
cfg.module_display.logical_height = 240;
cfg.external_display.module_display = true;

以下のようにペーストする。

解像度指定とモジュール有効化

さらに以下のコードを

M5.setPrimaryDisplayType(m5gfx::board_M5ModuleDisplay);

以下のようにペーストする。

プライマリディスプレイをM5ModuleDisplayにする

ビルド

これでビルドしてM5Stackに書き込もう。忘れずにHDMIケーブルをM5StackとHDMIディスプレイに接続して起動を待つ。

すると・・・

実行結果

HDMIディスプレイにスタックチャンのお顔が!

BtnCで自己紹介したり、BtnAでヒトリゴトモードにするとM5Stack側から声が聞こえてきてHDMIディスプレイにはスタックチャンの大きな顔が出るのだ。

ヒトリゴト考え中のスタックチャン

HDMIディスプレイから音声出力

この場合は出力先を以下のように変更してみて欲しい

cfg.external_spk = true; 

↓

cfg.external_speaker.module_display = true;

犬顔に変更

また、犬顔を有効にする場合は、コメントアウトされている行を選択してCTRL+/でコメントを外すだけで顔を切り替えられるので試してみて欲しい。

コメントアウト行
犬顔有効化

HDMI出力でできること

スタックチャンのお顔をHDMI出力にできることでこんなことができるのではないだろうか。

  • オンラインミーティングのカメラにスタックチャンの顔を出してスタックチャンカンファレンス(ミーティング参加者全員スタックチャン顔)

    • ATEM Miniシリーズで複数のM5Stack+ModuleDisplayのHDMI入力を入れてスタックチャンアバター切り替え(誰得?)

  • デジタルサイネージで「しゃべる」「歌う」「ひとりごと言う」スタックチャン

    • 会社や学校などの玄関口でウェルカムスタックチャンなど

    • イベント会場や店舗での大型ディスプレイでの製品/商品/サービスの宣伝スタックチャン

アイデア次第でカワイイスタックチャンの活用の幅が広がるだろう。

スタックチャンコミュニティに参加しよう

スタックチャンの情報はTwitterやDiscordにたくさん集まっている。

スタックチャン的なロボットを作って愛でる人たち」のことを指します。
(スタックチャンにインスパイアされた様々な[派生作品](https://protopedia.net/material/833) も含みます。)

https://discord.com/channels/1095725099925110847/1097878659966173225/1099681730908143717

スタックチャンコミュニティの皆さんは本当に優しくて暖かいのでスタックチャンが気になったらコミュニティに参加してみよう。

Discordは以下からどうぞ。


この記事が気に入ったらサポートをしてみませんか?