紙飛行機オンライン
機械工学科3年 03190216 中道浩明
-
制作物の概要
紙飛行機の飛距離と飛行時間をスマホのカメラを使用してはかり、インターネット対戦できるようにした。
-
制作意図
「紙飛行機を飛ばして遊ぶ」というのは、今でも根強い人気があるが、紙飛行機での対戦はローカルなものが大半であり、世界の人と対戦するのは難しい。そこで公正な方法で飛距離、飛行時間を測り世界中の人とオンライン対戦できるような紙飛行機ができれば楽しいだろうとのことで作成した。子供でも使えて、お金もかからないようにスマホアプリという形にした。
-
仕組み
2つに分けて説明する。
3-1. 飛距離と飛行距離を測る
飛行時間を測るのに必要な、飛行機が停止しているかの判断は、OpenCVを使用して飛行機の色を認識し飛行機の位置を確認後、さらに少し違う色で認識を行った。簡単に言えば飛行機の光の当たり方を見ることで動いているかを認識した。飛距離は端末の傾きを地磁気センサと加速度センサから計算し、端末の高さを入力できるようにして測ることができるようにした。基本的に、利用者はその場から移動しないで使用する。
3-2. データをオンライン上にあげる
PHPを使用した。クエリパラメータを使用して飛距離と飛行時間のデータをwebサーバにあげ、Textファイルに保存した。
4. 感想
当初の目標の紙飛行機でオンライン対戦をするという目標は達成できたと思うが、課題も多い。第一にアプリが重い。これは画像処理を全てスマホ上で行ってしまったためであり、Azureなどを使用して、カメラから取得した画像をオンライン上にあげ、その中で画像処理をするような工夫が必要だったと思う。第二に、認識精度が甘い。認識方法自体を変える必要があるかもしれない。第三に、不正を防げない。実は飛距離を測るとき歩いて移動してしまえば、飛距離を自由に変えられる。なので、加速度センサを使用し、使用者が歩いているかどうかを判定できるようにするべきであった。
今回の演習では自分はほとんどソフト面の開発を行ったが、今までやったことのないことばかりで非常に楽しかった。期限を決められて自由な開発を行う体験は貴重であった。