メインコンテンツへスキップ
KatoKyo works

【Raspberry Pi】 コントローラ製作「WebIOPI編」①

| 読了 3 分 | 技術

コントローラ製作

やや難ありな戦車ですが、兼ねてから考えていた、コントローラを作成しようと思います。

現在は、プログラムに記述したソース通りに動くだけとなっていますが、 スマホ等から操作できるよう改良します。

久々に教本に戻り、WebIOPIというフレームワークを利用してみます。 http://webiopi.trouch.com/

これはブラウザからGPIOピンを操作できるようにするものです。 便利なものなのですが、最終更新から1年ほど経過しています。 そのため、40pinに対応したパッチも展開されています。

https://github.com/doublebind/raspi READMEにも手順が記載されていますが、

WebIOPIのダウンロード $wget http://sourceforge.net/projects/webiopi/files/WebIOPi-0.7.1.tar.gz 解凍 $tar xvzf WebIOPi-0.7.1.tar.gz $cd WebIOPi-0.7.1 パッチの取得 $wget https://raw.githubusercontent.com/doublebind/raspi/master/webiopi-pi2bplus.patch パッチの適用 $patch -p1 -i webiopi-pi2bplus.patch WebIOPIのインストール $sudo ./setup.sh

パッチ適用後にrasbian jessie の環境でサービスを起動するために、下記を行います。

システムディレクトリに移動 $ cd /etc/systemd/system/ サービスのダウンロード $ sudo wget https://raw.githubusercontent.com/doublebind/raspi/master/webiopi.service

WebIOPIの起動等については下記のとおりです。

起動 $ sudo systemctl start webiopi 停止 $ sudo systemctl stop webiopi

自動起動 $ sudo systemctl enable webiopi 自動起動解除 $ sudo systemctl disable webiopi

デバッグの際にログを確認しながら作業したい場合には、 sudo webiopi -c /etc/webiopi/config -d とすることで、ログを確認しながら作業できます。

WebIOPIを起動したら、ブラウザから、デフォルトポート番号8000でWebIOPIのトップページが表示されます。

トップページ WebIOPI トップ

GPIO Header WebIOPI GPIO Header

ピンの状態が分かります。 このGPIOのページでは、ピンのIN,OUTの切り替えやON,OFF等が操作でき便利です。

このページのHTMLコンテンツは、初期状態で /usr/share/webiopi/htdocs 配下に配置されています。

WebIOPIの設定ファイルは、 /etc/webiopi/config に配置されており、 これを編集することでコンテンツのパス等も含めて、 設定を変更することが出来ます。 編集の反映にはWebIOPIの再起動が必要です。

WebIOPIは、javascriptからPythonを実行します。 実行するPythonファイルは、configファイルの [SCRIPT] 内、myscriptで指定します。

ポート番号は[HTTP]内、portで。 HTMLのドキュメントルートは、[HTML]内、doc-root で変更できます。


WebIOPIを利用したアプリケーションの開発の流れは以下のような感じです。

  1. 操作用のHTMLページを用意する。
  2. javascriptを用意し、onclick等でイベントを紐づける。
  3. イベントが呼ばれた時の処理をpythonで記述する。(これを/etc/webiopi/configのmyscriptで指定します。)
  4. フレームワークのインタフェースを利用し、2のjavascript内で、3のpythonの関数を呼び出す。(コールバック等も設定できる。)

大まかですが、以上の手順で、ブラウザからラズパイを操作します。

これを利用して、戦車を操作するコントローラを作成することにします。