3190162 青野 航大 (お手軽学習サポーター 「ふでばこ先生!」)

お手軽学習サポーター 「ふでばこ先生!」

機械工学科3年 03190162

青野 航大

  1. コンセプト

IoT製品の多くは、「自分では直接知り得ないものを、センサーを使って知覚し、フィードバックするもの」ではないかと思った。そう捉えて何を作るか考えたときに、自分では直接知覚できない身近なものの例として、1つのことに集中したり、いつの間にか寝落ちしたりする、勉強中の自分自身をセンシングするのはどうかと思いついた。そこで学生がいつも持ち歩く筆箱に、勉強中の使用者の状態を判断し、それに応じて何かしらのフィードバックを与える機能をつけようと考えた。

 

  1. 実装の内容と方法

実装はRaspberry Pi 3 B+で行った。筆箱に外部電源を差し、蓋を開きっぱなしにした状態で横のスイッチを押すと、以下の処理が順番に、繰り返し行われるようにした。

① 使用者の方向の写真を撮影・人の有無を確認

Raspberry Pi 3 B+に接続されたRaspberry Pi Camera Module V2で顔の画像を撮影した。カメラは筆箱下方から顔を覗き込む角度で設置し、一定の時間間隔で起動、そこから数秒間連続して撮影し、逐次ラズパイで処理を行った。また蓋の裏の赤外線センサーで、そこに人がいるかをセンシングした。

② 画像認識結果、センサー情報を組み合わせて状態を推定

ラズパイ内にビルドされたOpenCVでの顔、目認識により、使用者が「勉強している(=顔と開いた目が認識できる)」、「うたたねをしている(=顔は認識できるが目は閉じていて認識できない)」状態を区別した。また、筆箱の蓋の内側に焦電型赤外線センサーをつけ、そこに人がいるかどうか判断することで、「うつぶせに寝ている(=顔は認識できないが人はいる)」、「離席(=人がいない)」状態も区別した。

③ 使用者の現在の状態を総合的に判断

今使用者が「うたた寝」状態だと思っても、一時的に瞬きをしただけであったり、画像処理で誤認識したりする可能性も否定できない。そこで過去3状態を記録し、その変化から、推定された使用者の状態を修正するプログラムを通した。

④ 判断内容に応じて使用者にフィードバック

確定した状態に応じて、自動的にLINEでメッセージを送るようにした。その実現にあたり、LINEの公式リファレンスやネット記事などを参照してLINE Messaging APIとHerokuを用いた。送る内容は使用者の状態ごとにあらかじめ決めており、筆箱が「勉強中」と判断すれば何も送らないが、「うたた寝中」と判断すれば「起きて!」などのメッセージを送り、その通知で起こすようにした。一方的に通知するだけならLINE Notifyの方が簡単そうだが、会話機能も考えていたため、相互にやり取りできるMessaging APIを使った。

⑤ 終了処理

筆箱の蓋を閉じると、その回のトータルの “ 勉強時間 ”、そのうち本当に勉強していた時間、うたた寝していた時間、うつぶせで寝ていた時間、離席していた時間をLINEで通知するようにした。蓋を閉じることで、カメラが蓋でおおわれて映る画像が真っ暗になるように設計し、画像のピクセルごとの明度の総和、分散から蓋が閉じた判定を行った。その後、そのままクリーンシャットダウン処理に入る。

上記の処理以外にも、筆箱と疑似的にメッセージをやりとりする機能も付けた。筆箱のトークルームにメッセージを送ると、Heroku上に登録しておいた辞書が参照され、適切なメッセージを返すようにした。

  1. 作ったもの

内部にラズパイ、カメラ、その他モジュールを全て収めつつ、筆記用具が入るスペースを確保できるように筆箱を設計した。各モジュールの寸法を測り、CADに起こして配置を決め、それにぴったりな筆箱をモデリングし、3Dプリントした。蝶番部分も自作し、カメラケースははめ込みで取り外せるように細部までこだわった。

 

  1. 感想

使いたいものは基本的になんでも貸したり買ったりして頂けるという恵まれた環境だったが、まずアイデアが浮かばないと何もできないし、思い浮かんでもそれをどう実現するか具体的に検討しないとモノにしようがないという難しさを感じた。構想から製品化まで一人で作り上げるのには苦労した点も多かったが、少しでも時間があれば気づけばIoTのアイデアを考えたり、モノにする作業をしたりと、制作に没頭するほどモノづくりの楽しさを味わうことができた。

最後になりましたが、このような環境を提供し、相談にも乗ってくださったメディアラボの方々、先生方、誠にありがとうございました。