実物の犬を使った目覚まし時計の製作
今回は、タイトル通り実物の犬を使って目覚まし時計を作るというお話です。単なるネタではなく(ヘッダーの写真はネタだけど)、運用に耐える実用的な作例を目指しています。完成品は現在も自宅で運用中です。
寝過ごし防止アラームの改良
前回紹介した「寝過ごし防止アラーム」では、リビングルームの明るさを光センサーで検知して、部屋が暗く起きていない場合にだけスマホの目覚ましを鳴らす仕組みを実現しました。
寝過ごした場合のみに鳴る、緊急用の目覚まし時計という点で画期的な装置でしたが、スマホではフリーズ、音量不足、電池切れ…と心配が絶えません。もっと信頼性を高くするには…と周囲を見渡すと、そこに犬がいました。
犬と目覚ましの関係!?
犬を飼っている方はご存じと思いますが、犬は来客時のチャイムの音を聞くと、興奮して激しく吠えます。また、たとえ寝ていても、おやつの気配があると飛び起きます(食欲≫睡眠欲らしい)。
これを応用して、寝過ごした際には、犬に起こしてもらうことにします。予定時刻になってもリビングが暗いままの場合には、スピーカーから玄関チャイムの音を鳴らすと同時に、おやつあげ機から大量のおやつを出します。
こうなると、犬が興奮して目覚まし時計のように騒ぎ出します。アラームと化した犬をなだめるためにも、飼い主は起きざるを得ません。
寝ている犬を起こしてしまうのはかわいそうですが、飼い主の活動開始に気づくと犬もすぐに起きて騒ぎ出すので、現実には数秒差。ここは一つ、犬に協力してもらうことにします。
ちなみに、犬のおやつは次の写真のような装置で提供します。キャタピラのおもちゃをベルトコンベアとして使い、おやつ用の皿を取り付けておきます。おやつは、マイコン制御のモーターで犬に届けます。
おやつあげ機の詳細は、こちらの記事をどうぞ。
システム構成
この目覚まし時計を実現するための構成は次のような感じです。
今回はネットワークに接続しないためシンプルです。
Windows PCにはマイコン(Arduino UNO)とスピーカーがUSB経由でつながっています。マイコンには、おやつあげ機のモーターと光センサーがI/Oポート経由でつながっています。
Arduino UNOは内蔵時計(RTC:Real Time Clock)の回路を持っていないため、現在時刻がわかりません。そのため、Windows PCの時計によって起動時刻を判断します。
実際のハードウェアは次の写真のような感じです。上にはみ出している緑と白のケーブルが光センサーで、運用時にはケースに開けた穴からセンサーの先端だけを外に出します。装置には突き板を張ったので木目が美しい!
この写真ではベルトコンベアに犬用のおやつが入っていますが、現在は犬の健康を考え、おやつの代わりにドッグフード(いわゆるカリカリ)をセットしています。
また、ドッグフードは油分が多く、定期的に本体を丸洗いしたくなるため、おやつあげ機のケースを写真にある木(MDF)からアクリルに変更しました。1週間がかかりで何とか仕上がりましたが、ハードウェアの素人にとって、アクリルの加工は難しすぎでした(涙)。
処理の流れ
処理はWindows PCの指示で進みます。
1. Windows PCの制御プログラムは、内蔵時計で設定時刻を待ちます。
2. 設定時刻になったら、Windows PCは、Arduino UNO経由で部屋の明るさを取得します。
3. 部屋が暗い場合、Windows PCは、Arduino UNOで複数のおやつあげコマンドを連続実行すると同時に、スピーカーから玄関チャイムに似た音を数回鳴らします。
普通の目覚ましアプリと違う点は、アラームを止めるためのプログラムが作り込まれていないことです。本システムにおけるアラームの停止とは、現実世界で興奮している犬をなだめることを意味します。
運用は開始したものの…
装置全体が完成し、運用を開始した後、幸運にも(?)寝過ごす機会がありました。設計通りに目覚ましが起動したのですが、実際にはチャイムの音に驚いて飛び起きたのは人間の方でした(そりゃそうだ)。犬は興奮した人間に反応して起きるという、本来の設計意図とは逆の結果に…。
しかし、犬はおやつがいっぱい出てきて騒ぎ出すので、起きなければならない状況になるのは間違いありません。ひとまず、実物の犬を使った目覚まし時計、成功です。たぶん。