「動く肖像画」を作ってみました。
人が来ると動き出す仕掛けです。
WindowsとArduinoで簡単に作れるので、作り方を紹介します。
動いている様子
動作している様子です。
撮影のために手をかざしていますが、人の体が近づいてもちゃんと反応します。
もし実際に作る際は、センサの向きなど工夫してみて下さい。
笑うバッハ
画面下で手をかざすと、表情が変わります。
ドッキリの例
画面下で手をかざすと、デスクトップ画面からドッキリ画像に切り替わります。
効果音付き。
効果音は、びたちー素材館を利用させて頂きました。
システム
簡単です。
一言でいうと、こうなります。
「動画を作り停止状態で待機。人が来たら、再生する」
下記の図をご覧ください。

- Windows PC上で動画を一時停止状態にします。待機。
- 焦電型赤外線人感センサが、人の動きを感知します。
- 信号をArduinoが受け取ります。
- 受け取り次第、動画プレーヤーの再生ショートカットキーをArduinoからPCへ送信します。
なぜVLCプレーヤーを選んだか
▼VLCプレーヤーは、最新版をご利用ください(脆弱性対策)

「動く肖像画」が簡単に実現できるのは、7割はVLCプレーヤーのおかげです。
ポイントは、以下2つ。
- 全画面表示で、再生や停止マークを非表示にできる
- 再生方法が柔軟。
1番目の補足です。
待機中に一時停止マーク や、再生時に再生マーク が出たら興ざめです。
簡単なようで、なかなか消せるプレーヤーはありませんでした。
現行プレーヤーで簡単にできるものは、調べた限りVLCだけでした。
では、次から詳細な作り方を説明していきます。
VLCの設定方法
まずは肝心要のVLCの設定から。
公式サイトからダウンロードして、ソフトを立ち上げて下さい。
そして、「ツール」→「設定」をクリック。

「インターフェース」の設定
その中の「ビデオの最終フレームで一時停止」にチェックを入れます。
この設定により、動画の最後のシーンで一時停止状態になります。
そうすると、ショートカットキーのpの押下で、巻き戻し再生ができます。

次に「字幕/OSD」の設定
「OSDを有効化」「ビデオ開始時にメディアタイトルを表示」のチェックを外します。
こうすることで、再生時に出る再生マーク を、非表示にできます。

回路図
センサーのデジタル出力を、Arduinoの2番pinに入れています。
センサは、プルダウンしておきます。(未反応時は確実に0Vにするため)

つないだ様子はこんな感じです。

Arduinoのスケッチ(プログラム)
- センサ入力が1(High)になったら、「p」のキーを送信します。
なんでpかというと、VLCプレーヤーの「巻き戻し再生」のショートカットキーが p だからです。 - delayの秒数は動画によって調整して下さい。
動画再生中に人が通ったら?
動画再生中に人が動いても、新たにキーコード「p」は送信されません。
以下の実験動画を見て下さい。
プレイヤー下のシークバー(再生目盛り)にご注目。
再生中に手をヒラヒラしていますが、動画は再生されたままです。
(pが送信されると、動画は巻き戻って最初から再生されます)
動画の時間分delayで止まっているので、センサを読み取れないのが幸いしています。
逆に動画再生中も何らかのセンサーを読みたい場合は、割り込みピンに入れるか、delayを使わないなど工夫してみて下さい。
プログラムのミスに注意 焦ります
プログラムをミスると、大変なので注意して下さい。
例えば私の場合、まずいプログラムを書き込んでPCにLEONARDOを繋いだので、
怒涛の勢いでppppppppppppppppppppが連打され大いに焦りました(笑)
対策としては、まずはキーボード機能を使わずにLEDの点灯などで確かめた方がよいと思います。
他のPCでの実現手段
今回PCにWindowsを選んだのは、手持ちの設備で簡単にできるから、でした。
他のPCの検討結果を書いておきます。
ラズベリーパイ
一番スマートにできるのでは、と思います。
Arduinoを通さなくても、1台で完結します。
すでにレポートが公開されているので、興味がある方はご覧ください。
この記事を見た当初、同じものをつくってみよう!と思いました。
しかしラズベリーパイは今FAXとして使っていて塞がっているので、取り外すのが面倒でWindowsで実現させてみました。
用意するもの
最後に、用意するものを紹介しておきます。
Windows PC
普段仕事やプライベートで使っている人が多いでしょうし、手軽に使えるためチョイスしました。
タブレットタイプなら、額縁をつけて壁に設置すると、よりそれらしくなりますね。
ちなみに、Windows以外なら他のPCでの実現手段をご参照ください。
VLC Media Player
有名な動画プレイヤーです。
無料です。
ダウンロードは下記からできます。
▼VLCプレーヤーは、最新版をご利用ください(脆弱性対策)

仕込む動画
これがないと、始まりません。
あなたの腕の見せ所です。
この記事の例では適当にバッハに笑ってもらいましたが、動画次第で面白くなりそうです。
ちなみに、笑うバッハとドッキリ動画は「AviUtl」というソフトで編集しています。
とんでもなく詳しい解説サイトのおかげで、ド素人の私でも動画作成ができました。
Arduino LEONARDO
普段はArduino Unoを使っていますが、今回はArduino LEONARDOです。
理由は、手間なく簡単にPCへキーコードを送信できるからです。
参考リンク: Arduino Leonardo(Pro Micro)のHID(キーボード)機能を使う│ Qiita
初めての方は、ブレッドボードも揃っているセットがおすすめです。
単体でも販売されています。
USBケーブルは別売り。UNOとは共用できないので、注意してください。
(Arduino側がUSB microB仕様です)
ブレッドボード
回路の動作確認に大活躍します。
ただ、イベントなどで本格的に設置するなら、ユニバーサル基板にちゃんと半田付けした方が良いです。
ジャンプワイヤーも多めに揃えておいたほうが良いです。
焦電型赤外線人感センサ
私が今回使ったのは、パナソニックのAMNシリーズ。
AMN31111 | Panasonic 赤外線センサ 検出範囲:5m | Panasonic 【通販RS】
人の検知に必要なものが小型パッケージに詰め込まれているので、出力をもらうだけです。
手軽で簡単。便利です。データシートも日本語で読めますし。
ただ、値段が2000円強と高級です。
予算縛りがある方は、amazonで廉価なモジュールもあります。
探してみて下さい。
抵抗
この回路では、100kを使いました。
データシートを読み、各自の回路によって調整してください。
電気ショップやamazon、どこででも入手できるかと思います。
セットで持っておくと、手軽に回路が検証できて便利です。