- はじめに
本ドキュメントはMIRS2205のソフトウェア開発報告書である。
- 作成した主なプログラム
- 人の判別
- 概要
カメラユニットで顔が映ったときに画像を30枚撮り、画像の目と口の位置を学習する。それをトレーニングデータとして個人ごとに番号を設定しておく。
カメラユニットに映った人を判別し、実際に本人がその場にいることを確認する。
- 対象プログラム
face.py
dataset.py
training.py
recog.py
- ID認識
- 概要
nfcのカードリーダーに学生証をかざすことで、学生証内にあるicチップを読み取り、IDを取得する。取得したIDを事前に登録した情報と照らし合わせて個人を判別する。
- 対象プログラム
id.py
- 体温測定
- 概要
カメラユニットで画像を撮影して顔の位置を認識し、サーモセンサで読み取ったデータの顔の部分だけの温度の平均をとる。それを超音波センサで取得した顔との距離で距離補正する。
- 対象プログラム
throme.py
- 表示
- 概要
これから行う動作や寮生にしてほしい動作、点呼結果を表示する。カメラユニットを使用するとき写っているものを表示する。
- 対象プログラム
display.py
- 点呼結果書き込み
- 概要
点呼日の名前のcsvファイルを作成し、部屋の番号と体温測定の結果を書き込む。
- 対象プログラム
data.py
- 点呼結果送信
- 概要
点呼が終了した後管理者に向けて点呼結果のcsvファイルを送信する。
- 対象プログラム
send.py
- ライントレース走行
- 概要
フォトリフレクタを用いて黒い線から白い線を検知したら白い線を検知した側のモータのpwm値を大きくし、左に旋回して、黒い線に戻ったら再び直進する。
- 対象プログラム
line.c
- 衝突回避
- 概要
超音波センサで30cm以内に物体があるかや人がいるか調べ、検知したら停止する。タッチセンサで物体や人が衝突したかを調べ、検知したら停止する。
- 対象プログラム
banp.c
uss.c
- Pythonでc言語プログラムの実行
- 概要
ラッパー関数であるpython.cを用意して、pythonのプログラムでラッパー関数経由でc言語の関数を呼び出す。
- 対象プログラム
python.c
- 総括
予定していた機能を全てつけることはできたので良かった。
メインである顔認証の実装はできていたが精度はあまり良くなかった。そのため、深度センサを用いるなどさらにセンサを増やす必要があった。
体温測定は気温などでズレが生じていたので、気温を測り、補正する必要があった。
そのほか、ID認証、点呼結果の書き込み送信機能、走行系は想定したとおりにできていて良かった。
- プログラムのソースコード
RaspberryPi(本体)用ソースコード
Arduino用ソースコード
Pythonソースコード
- リンク
開発完了報告書(全体)
メカニクス開発報告書
エレクトロニクス開発報告書