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

2019年10月15日

zero WHからラズパイ戦車を動かすイメージの画像

前回の記事(⇒こちらをどうぞ)では、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アドレス設定の画像
IPアドレス:8000と指定してクリックします!

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

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

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

WebIOPiメニューの画像

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

「GPIO Header」の画像

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

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

「GPIO Header」の画像2
IN をクリックすると!
「GPIO Header」の画像3
OUT に変わります!

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

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

GPIOがOUTとなった画像
これで、12番ピンがHIGHとなりました

これで動作確認は終了です。

Lチカをやってみた

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

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

Lチカのイメージ画像

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

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

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

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

スポンサーリンク

最後に

スマホから戦車を動かすにはどうするかを考えました。

WubIOPiというソフトを使用すれば実現可能性がありそうということで、そのセッティングを実施しました。

ダウンロード後修正パッチを当てて、WebIOPiのセッティングは無事完了しました。

LチカでWebIOPiの稼働を確認でき、戦車稼働の準備が整いました。

■思えば「リモコンタンク」の記事も増えてきました。

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

60爺

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