United Statesからアクセスのようです。言語設定をEnglishに切り替えますか?
Switch to English site
Skip to main content

手洗い促進システム「てあらいさん」

1. 概要

蛇口前を監視し、正しく手洗いができたことを検出したら飴を排出するシステム「てあらいさん」を開発しました。正しい手洗いに報酬を与えることで、子供の自主的な手洗いを促進します。

2. 背景

新型コロナウイルス感染症(Covid-19)の世界的な流行により、手洗いの重要性が増しています。しかし、子供とは手を自分から洗いたがらないもので、洗ったとしても適当であったり、時間が短かったりする可能性が高いです。そこで、子供が正しく手を洗うことを補助できるようなシステムを製作しました。

3. 実装

3.1 概要

本システムは主に3種類の部分から構成されています。1つ目は飴を排出する「飴だし機構」、2つ目は子供の検知や手洗いの判定を行う「システム制御」、3つ目はAndroid端末からシステムの動作管理・ログ取得するための「システム管理」です。

シェルスクリプト、Python, phpプログラムはRaspberry Pi 内部に配置してあることにご注意ください。

本システムの構成は以下の図のようになっています。

設計

3.2 キャンディボックス

飴の排出を行う機構の概要は次の図のようになっています。 ベルトコンベアに取り付けられた箱が下にたまった飴を掬い上げ、一回転するうちに排出口に飴を1〜3個排出することが可能です。

外観

「てあらいさん」を教育機関等に導入することを想定すると、手洗い場に馴染みやすく子供たちがワクワクしながら飴を待てるようなデザイン・動作であることが求められます。

このような背景から、優れた利用体験を子供たちに提供できるよう、デザインや動作については妥協せず丁寧に作りこみました。

phpGnjiOg_5615fec5d78a4f021273edf7fe910dffb89bf9ca.jpg

3.3 Raspberry Pi

距離センサ

ユーザーが手洗いをしているか?を判定するために超音波距離センサ(型番)を使いました。

実装に当たっては、参考にした記事を参考にしました。

なお、距離の取得はシステム起動中は0.5秒間隔で常に行うようにし、過去7回取得した値の中央値を利用することで、

ユーザーが短時間体を動かしてセンサーから外れても、距離を捕捉し続けるようにしました。

また、システム制御部には「手洗いをしている」か「手洗いをしていない」という判定だけ与えればよいので、

ユーザーが一定距離内にいれば「手洗いをしている」、そうでなければ「手洗いをしていない」と判定するロジックはこの部分で実装しています。

音楽プレーヤー

手洗い中の音楽(約20秒間)および、手洗いの結果(成功or失敗)のサウンドはRaspberry Piのイヤホンジャックから出力します。

mpg321というコマンドベースの音楽プレーヤーがあるので、これを利用しました。

音楽を流すタイミングで、pythonから"mpg321を実行するシェルスクリプト"を実行することで実装しました。

システム制御

ユーザーの手洗い状況を監視し、システムの挙動を制御する部分です。

具体的には、「スタンバイ」「手洗い中」「手洗い終了(成功)」「手洗い終了(失敗)」の4つのステートから成るステートマシンとなっています。

  • 「スタンバイ」

システム起動直後および手洗い終了後のステートです。

この状態で距離センサから「手洗いをしている」という判定が与えられると、

手洗い時間を計測するタイマーを開始・手洗い中の音楽を再生し、「手洗い中」ステートに移行します。

  • 「手洗い中」

手洗い中のステートです。

この状態で距離センサから「手洗いをしていない」という判定が与えられると、

手洗い時間を計測するタイマーを停止・手洗い中の音楽を停止し、手洗い時間の長さに応じて「手洗い終了(成功)」もしくは「手洗い終了(失敗)」ステートに移行します。

  • 「手洗い終了(成功)」

手洗い時間が約20秒以上であった場合に遷移するステートです。

ベルトコンベアを動かすスクリプトを実行・手洗い成功サウンドを再生し、ただちに「スタンバイ」ステートに移行します。

  • 「手洗い終了(失敗)」

手洗い時間が約20秒未満だった場合に遷移するステートです。

手洗い成功サウンドを再生し、ただちに「スタンバイ」ステートに移行します。

3.4 Androidアプリケーション

システム管理部分は、上述したRaspberry Piのプログラムを実行するためのAndroidアプリ「Handwash Obeserver」から構成されています。「てあらいさん」を教育機関等に導入することを想定すると、Linux等の知識が無いユーザでもシステムを制御できなければいけません。このような背景から、管理用Androidアプリ「Handwash Observer」を作成しました。Handwash Observer では、http通信によりphpファイルを実行することで、Androidアプリ上での遠隔制御を可能としております。このアプリには、「 Power ON/OFF 」、「 GIVE CANDY 」、「 CHANGE THRESHOLD 」、「 GET LOG 」の4つの機能があります。以下に一つずつ解説していきます。

  • Power ON/OFF

手洗いさんシステム全体のON、OFFを切り替えます。

  • GIVE CANDY

手洗いに成功あしたにもかかわらず、あめが排出されなかったときのために、あめを強制的に出します。

  • CHANGE THRESHOLD

設置する環境によって手を洗う人と装置との距離が異なることを考慮して、手洗いの検出精度を変更するための閾値の設定を行います。

  • GET LOG

動作履歴を取得します。失敗回数と成功回数をそれぞれ表示します。

4.まとめと展望

私たちは子供たちが自分たちから手を洗わない問題を解決する為に、手洗いを支援するシステムをRaspberry PiとAndroidを用いて開発しました。

今後の展望としては、

  • より高い精度での手洗いの検出
  • あめを正確に1つ排出する機構の開発

などが挙げられます。

Ssk1 さんはまだ自己紹介を入力されていません...

コメント