< WiFi・カメラ付きリモコンカー製作 その3 >
リモコンカーの製作はすでに終了しているのですが、このところ、いろいろすることが多くなり、なかなか更新作業ができない状況になっています。
リモコンカーに使用するSDカードは、今後のことも考えて、新規のものを使うこととし、「Raspbian」をインストースするのですが、新たに最新版をNOOBSからダウンロードしようとすると、えらく長い時間がかかるので、取りあえず以前にダウンロードしたファイルで対応し、WiFi接続を可能とした後に、次のコマンドでアップデートしました。(写真1、2)
sudo apt-get update
sudo apt-get upgrade
次いで、Raspbianの初期設定を済ませ、カメラ、SSH、シリアルを有効にして、次のコマンドでカメラテストを実施。
raspistill -v -0 test.jpg
静止画像の確認は、Menu→「アクセサリ」→「イメージビューワ」で確認しました。
リモコンカメラ部の作業は、基本的には同書の8章と同じで、また当方の「アラカルト20」(トラ技2016年11月号「スマホで縦横無尽! IoTロボット・ムービの製作」)関連とほぼ同じですので参考にしてください。
関係のプログラムは、同書のダウンロードサイトから入手し、次の作業を同書の9章の手順に添って実施しました。
@ ストリーミングアプリ 「mjpg-Streamer」のセットアップ。
A ストリーミングアプリの自動自動起動のための作業。
ただし、P305の「リスト9-2-2 自動起動の設定(/etc/rc.local)」について、本書サイトでの修正情報はありませんが、ディレクトリの指定に見落としてしまうような、次のバグがありました。
誤: sh /home/pi/Rorot1/start_stream.sh
正: sh /home/pi/Rorot/start_stream.sh
ホストPCのブラウザ ChromeでURLを次のように指定しますと、写真3のようにスタート画面が表示されました。
http://ラズパイIPアドレス:8010/
続いて、PCのブラウザからラズパイのGPIOを制御するために、WebIOPiを次のステップでインストールします。
@ WebIOpiのダウンロードと解凍
A パッチの適用
B セットアップスクリプトの実行
C リブート
同書のP97 4-4 「WebIOpiアプリケーションの使い方」に詳細が記載されています。
リモコンカーの操縦用画面は、HTMLファイルで画面を製作し、各ボタンの動作はWebIOpiからPythonスクリプトのマクロ関数を呼び出して実行しています。
同書P307のHTMLファイル 「リスト9-2-3 Robot.html」及び、Pythonスクリプトの「リスト9-2-4 Robot1.py」は、ダウンロードサイトから落として使いました。
落とした「リスト9-2-3 Robot.html」のファイルで1っか所、IPアドレスの部分は、自分のラズパイのIPアドレスに変更することが必要です。
ダウンロードしたHTMLファイルとPythonスクリプトを自動起動するために、コンギュレーションファイルを次のコマンドで開き、
sudo nano /etc/webiopi/config
4か所の追記修正を実施。
@ Robo1.pyをフルパス指定。
myscript P= /home/pi/Robot/Robot1.py
A ポート番号を8020とする。
port = 8020
B HTMLファイル のディレクトリの指定
doc-root = /home/pi/Robot
C ウエブサーバーが呼ばれたときに返すHTMLファイルの指定
welcome-file = Robot1.html
WebIOpiを自動起動するために次のコマンドで起動ファイルにWebIOpを追加して、リブートします。,
sudo update-rc.d webiopi defaults
画面表示等を確認するためにラズパイを起動し、ホストPCのブラウザ ChromeでURLを次のように指定すると、ID,PWを聞かれるので予め設定したID,PWを入れると、写真4のように制御画面が表示されました。
http://ラズパイIPアドレス:8020/
次回はモータ制御基板へプログラムを書き込み走行テストを実施します。
写真4 制御画面