自動操縦が可能な自宅監視システム
この記事を購読
- 開発の背景
現在、空き巣や万引きなどの犯罪に対応する策として監視カメラを設置している家や施設が多い。しかし、設置型監視カメラでは全方位把握することが難しく、死角が存在している。この死角を消すことでより高度な防犯が可能なのではないかと考えた。その一案として設置型ではく移動型監視カメラがあげられる。死角となる部分に移動型監視カメラを置くことで死角をカバーできる。このことからより強固な防犯が可能になるだろうと考え、開発に至った。
- 設計
図1は今回の開発のイメージ図である。移動型監視カメラをRaspberryPiで実現し、それをAndroid端末によって無線で操作する。Android端末で指示を送るとインターネット経由でRaspberryPiへと伝わり、指示通りに移動する。RaspberryPiは指示を受け取るほか、センサを積むことで物体検知をできるようにする。これにより衝突回避が可能となり、小さな自動運転ができるようになる。
- 実装
今回移動式であるため、モーターとタイヤを用いてRaspberryPi搭載のラジコンを作成した(図2)。また、そのモーターを動かすためにI2Cモータードライバ(DRV8830)を用いた。また、そのモーターはインターネット経由で動かされるため、WebIOPiを使うこととした。物体検知のためのセンサとして、物体との距離がわかる超音波距離センサ(HC-SR04)を用いる。カメラはRaspberryPiに直接接続可能なUSBカメラを用いた。
Andrioid側はラジコンを動かすコントローラの役割を担う。PHPを用いることでAndroidとRaspberryPiの接続を可能とする。図3はAndroidの画面である。前進・後進・停止の3ボタンあり前進ボタンが押されるとPHPが呼ばれる。RaspberryPiの動きはpythonによって記述されており、PHPによって呼ばれる。図4-7はそれぞれのコードを示す。
MainActivity.javaにはボタンが押された時の動作が書かれている。前進・後進・停止の各ボタンにはadressという番号が割り振られていて、この番号がRaspberryPiRadi.javaへと流れる。RaspberryPiRadi.javaではsampy.phpを呼び出しURLを書き換えている。MainActivityから渡されたadressを用いて、http://192.168.11.40/~pi/sampy.php?num=adressというURLを作成する。Sampy.phpは作成されたURLのnumの部分を読み込み、RaspberryPi内のsample1.pyを実行する。Sample1.pyではnumを読み込み対応する動作を行う。例えば前進ボタンが押されたらadressとして1が割り振られる。この1がphp経由でsample1.pyへと伝わる。そして1が0x35と変換されi2c.write_byte_dataにより実際に前進する。
図1:イメージ図
図2:RaspberryPi搭載のラジコン
図3:アプリ画面
図4:MainActivity.java
図5:RaspberryPiRadi.java
図6:sampy.php
図7:sample.py
コメント
ログインしてコメント