Photobooth開発に至った経緯
1. はじめに
イベント時に「制御の楽しさ」をPRしつつ、子供に喜ばれるものはないかなと考えていたときに出会ったのが、スタックチャンでした。
そこで思いついたのがフォトブースです。市販のスタックチャンにはカメラも搭載されていますが、自分自身が勉強しながら理解を深めたいという想いがあったこと、そしてラズパイのカメラの方が画質が綺麗なこと、さらにM5Stack1台で完結させると処理が重くなりがちで、イベント本番中に固まったり落ちたりするリスクが高いと感じていたことから、役割を分担する構成にしました。
「スタックチャン」と「ラズパイ」で仕事を分け、とにかくイベント中に途中で落ちない、安定して動くものを作ることを目指しました。
2. フォトブースはどういうもの?
スタックチャンがアナウンス役としてお客さんを呼び込み、ラズパイのカメラで写真を撮影。あらかじめ用意しておいたフォトフレームと撮影した写真を合成して、お客さんに提供する仕組みです。
写真は当初プリントして渡すことを考えていましたが、「今どきスマホがあるんだから、QRコードで読ませた方が早いのでは?」と思い直し、QRコードを読み取ってその場でスマホから写真を確認できる方式にしました。
3.どういう機能があるの?
「」→音声コマンド入力 『』→スタックチャン応答 という形で紹介します。
(1)音声コマンド入力による応答
音声認識モジュール(CI-03T)とM5Stackを接続しており、あらかじめ登録した言葉に対して応答します(応答音声はmicroSDカードに保存)。「こんにちは」「またね」「会えてよかった」など。
※登録できる言葉は最大19ワードまでという制限があります。
(2)サーボモータ1個
本家スタックチャンとは違い1個のみですが、首を振る動作ができます。
※計算上、PCからのUSB電源供給だとピーク時に500mAを超える可能性があったため、1個構成にしました。
(3)写真撮影
ラズパイと連携して写真を撮影します。
「写真撮って」→合成フレーム選択→スタックチャンがカウント開始→写真撮影→QRコード表示→スマホで読み取って写真を確認
※ラズパイとM5StackはローカルなAPモードで接続しているため、写真を読み取るスマホは事前に指定のWiFiへ接続しておく必要があります。
「写真読取用QRコード」「WiFi接続用QRコード」の表示機能を用意しています。
(4)来場者カウンター
来場者数をカウントして表示します。
「こんにちは」→『カメラに向かって手を振って』→カメラで手振りを認識してカウント。
「来場者」→来場者数を表示。
(5)運勢を占う
「きょうの運勢」と話しかけると、大吉・中吉・小吉・吉・末吉・凶・超大凶の中からランダムで運勢を表示します。
(6)音量調整
「おときこえない」→音量上げる。
「おとうるさい」→音量下げる。
(7)定期動作
5分に1回、3パターンの動作からランダムで1つを実行します。
(8)ボタン操作
賑やかなイベント会場では、音声認識モジュールがコマンドをうまく認識できないこともあります。そのため、3種類のボタンに以下の機能を割り当てました。
①来場者表示
②「写真読取用QRコード」「WiFi接続用QRコード」をそれぞれ10秒ずつ表示
③写真撮影(合成フレームはランダムで選択)
4.こだわり
単に楽しんでもらうだけでなく、しっかりPRも行いたいと考え、撮影した写真とあらかじめ用意したフレームを合成して提供する仕様にしました。フレームは9種類まで登録可能です。
音声コマンドは、あえてウェイクアップワードを使わない設計にしています。ウェイクアップワードがあった方が認識精度は上がるのですが、自然な会話のやり取りを重視しました。
また、イベント会場での利用を想定しているため、インターネットに接続しない状態(ローカル環境)でも動作するようにしています。
5.最後に
おおまかな動作確認は終えていますが、まだ細かいバグ取りや仕様が固まっていない部分もあるため、今後も内容を確認しながら記事を順不同で追加していく予定です。

