スマホから戦車を動かす!準備編/WobIOpiセットアップ

2019年10月15日

bluetoothを使用した戦車のリモートコントロールに成功した60爺の次の挑戦は、スマホから直接指示を与えて戦車をコントロールすることです。

単純に、スマホから ssh を使用して行えば、先ほどのもので実行すれば、スマホから動かしたように見えますが、それでは面白くありません。

スマホ上に、ボタン等を配置して、それを押すことで戦車を動かしてみることを目標にします。

スポンサーリンク

何を使用して実現するか

さて、それでは、上述したことを実現する方法はあるのでしょうか?少し、調べてみたんですが、webiopi というソフトで実現できるようです。

このページです。こんなことが書いてあります。

WebIOPi を利用すると、Webブラウザから Raspberry Pi をリモート操作することができます。

WebIOPiのインストール

先ほどのページを忠実に実施することで、何の問題もなく WebIOPi のインストールが完了できます。


WebIOPiダウンロード

2019/9/末現在、最新バージョンは 0.7.1 なので、WebIOPi-0.7.1.tar.gz をダウンロードします。

pi@raspberrypi:~ $ wget https://sourceforge.net/projects/webiopi/files/WebIOPi-0.7.1.tar.gz
--2019-10-02 13:55:43-- https://sourceforge.net/projects/webiopi/files/WebIOPi-0.7.1.tar.gz
sourceforge.net (sourceforge.net) をDNSに問いあわせています… 216.105.38.13
・
・
・`WebIOPi-0.7.1.tar.gz' に保存中
WebIOPi-0.7.1.tar.g 100%[=====================>] 208.88K --.-KB/s 時間 0.1s
2019-10-02 13:55:47 (1.96 MB/s) - `WebIOPi-0.7.1.tar.gz' へ保存完了 [213894/213894]

ダウンロードファイル解凍

pi@raspberrypi:~ $ tar xvzf WebIOPi-0.7.1.tar.gz
WebIOPi-0.7.1/
・
・
WebIOPi-0.7.1/setup.sh

修正プログラムダウンロード

解凍したWebIOPiのディレクトリに移動します。

pi@raspberrypi:~ $ cd WebIOPi-0.7.1

修正プログラム(WebIOPi-0.7.1 Patch for Raspberry B+ and Pi 2)をダウンロードします。

その理由は、最初ダウンロードした WebIOPi-0.7.1 では、26PIN のラズパイにしか対応していないので、40PIN 用のラズパイ向けのパッチを充てるためです。

pi@raspberrypi:~/WebIOPi-0.7.1 $ wget https://raw.githubusercontent.com/doublebind/raspi/master/webiopi-pi2bplus.patch
--2019-10-02 13:57:35-- https://raw.githubusercontent.com/doublebind/raspi/master/webiopi-pi2bplus.patch
・
・
・
webiopi-pi2bplus.pa 100%[=====================>] 6.16K --.-KB/s 時間 0.001s
2019-10-02 13:57:36 (5.31 MB/s) - `webiopi-pi2bplus.patch' へ保存完了 [6308/6308]

ダウンロードプログラム適用

ダウンロードした修正プログラムでパッチを当てます。

pi@raspberrypi:~/WebIOPi-0.7.1 $ patch -p1 -i webiopi-pi2bplus.patch
patching file htdocs/webiopi.js
patching file python/native/cpuinfo.c
patching file python/native/gpio.c
patching file python/webiopi/utils/version.py
patching file python/webiopi/protocols/http.py

セットアップ実施

セットアップスクリプトを実行します。

pi@raspberrypi:~/WebIOPi-0.7.1 $ ./setup.sh
Installing WebIOPi…
・
・
・
Installing startup script…
Installing webiopi command…
Installing webiopi-passwd command…

このスクリプト実行には、そこそこの時間がかかります。

ほっておくと、以下の質問でセットアップ画面が中断しますので、「n」を入力します。

Do you want to access WebIOPi over Internet ? [y/n]
n
WebIOPi successfully installed
* To start WebIOPi foreground : sudo webiopi [-h] [-c config] [-l log] [-s script] [-d] [port]
* To start WebIOPi background : sudo /etc/init.d/webiopi start
* To start WebIOPi at boot : sudo update-rc.d webiopi defaults
* Run ./weaved-setup.bin to install the Weaved IoT Kit and access your device over Internet
* Look in /home/pi/WebIOPi-0.7.1/examples for Python library usage examples

以上で、WebIOPiのインストールは完了です。

WebIOPi をサービスとして開始

WebIOPi をサービスとして開始するために必要なファイルをダウンロードします。

ディレクトリのセットが必要なので忘れないようにしましょう。

pi@raspberrypi:~ $ cd /etc/systemd/system/
pi@raspberrypi:/etc/systemd/system $ sudo wget https://raw.githubusercontent.com/doublebind/raspi/master/webiopi.service
raw.githubusercontent.com (raw.githubusercontent.com) をDNSに問いあわせています… 151.101.228.133
raw.githubusercontent.com (raw.githubusercontent.com)|151.101.228.133|:443 に接 続しています… 接続しました。
HTTP による接続要求を送信しました、応答を待っています… 200 OK
長さ: 259 [text/plain]
`webiopi.service' に保存中
webiopi.service 100%[=====================>] 259 --.-KB/s 時間 0s
2019-10-02 19:07:23 (992 KB/s) - `webiopi.service' へ保存完了 [259/259]

ホームディレクトリに戻ります。

pi@raspberrypi:/etc/systemd/system $ cd

これで、WebIOPi を動かす準備ができました。

動作確認

さて、それでは、WebIOPi の動作確認を行いましょう。

WebIOPi をサービスとして開始

まずは、WebIOPi をサービスとして開始します。

pi@raspberrypi:~ $ sudo systemctl start webiopi

ブラウザ起動ポート8000にアクセス

パソコンやスマートフォンのWebブラウザを起動し、WebIOpiをインストールしたRaspberry Pi のIPアドレスのポート8000にアクセスします。

IPアドレス:8000と指定してクリックします!

すると、認証ダイアログが表示されるので、以下入力をします。

  • ユーザー名:webiopi
  • パスワード:raspberry
これは、スマホでの入力画面です

すると、次のようなページが表示されます。

「GPIO Header」を選択すると、GPIOピンの設定(入力/出力)、状態(HIGH/LOW)を確認・変更できる画面が表示されます。

左右のグレー背景白抜き文字のボタンは、それぞれのGPIOピンの入力/出力の設定を表します。

INが入力、OUTが出力を示しますが、最初は全てが、INになっています。クリックすると、IN/OUTの設定が変わります。

IN をクリックすると!
OUT に変わります!

中央の白抜き数字のボタンは、それぞれのGPIOピンのHIGH/LOWの状態を表します。

グレーがLOW、オレンジがHIGHを表しています。こちらもクリックすることで、HIGH/LOWの状態が変わります。

これで、12番ピンがHIGHとなりました

Lチカをやってみた

それでは、動作検証するため、上記のピン12にLEDをつないで、Lチカをやってみました。

回路は、簡単なので写真しか載せません。

実行結果を動画で見てください。

画面上のグレーの 12 をクリックすると、背景がオレンジに変わると共に、LEDが点灯します。

次に、オレンジの 12 をクリックすると、背景がグレーに戻り、LEDが消灯するのがわかります。

これで準備が出来ました。

スポンサーリンク

モーター制御からリモコン操作に至る過程の記事です。他の記事もぜひ、ご覧ください。

スポンサーリンク
この記事を書いた人

60爺

60路を越え、RaspberryPi と出会い、その関係でブログ開設(2017/2~)となりました。始めてみると、コツコツやるのが性に合ってしまい、漢字の記事から家の補修・将棋・windows10関係・別名・言い方などジャンルを拡大して今に至ってます。まだまだ、元気なので新たな話題を見つけて皆様に提供できればと思っています。「プロフィールはこちら