私的AI研究会 > WebIOPi演習

ブラウザからGPIO を操作2-WebIOPi演習

 WebIOPi を使うと「Webブラウザから Raspberry Pi をリモート操作する」「Raspberry Pi を操作するプログラムを書く」「Raspberry Pi のGPIOを操作する」ことができる。
MJPG-streamerを使ってカメラの動画を見ながら操作するキャタピラーロボットを作ってみる。

事前準備

WebIOPiのインストール

コンテンツの配置

ハードウェアの変更

● GPIO LED関連・モーター関連
● 回路図 fig.10, fig.11

● LCD追加 (ブレッドボードのモータードライバの位置を1段下げる)
● LCDボード SDA → GPIO 2, SCL → GPIO 3

● モーターへの配線+/- 入れ替え
● モーターの端子間に0.01μFのコンデンサを追加(ノイズ対策)

 

3個のLED をコントロール

使用するハードウェア

● 左記の「Aibot Project」のハードウエアを利用してWebIPOi プログラミングを検証する。
● 3つのLED の点滅をコントロールする。
● 出力ピンは、GPIO 16,17,18
GPIOピン番号に注意。(以前の回路から変更)

プログラムの準備

スクリプトファイルの作成

HTMLファイルの作成

WebIOPi サービスの設定の変更

[SCRIPTS] セクションの「myscript =」に、作成したスクリプトファイルを指定。

[SCRIPTS]
# Load custom scripts syntax :
# name = sourcefile
#   each sourcefile may have setup, loop and destroy functions and macros
#myscript = /home/pi/webiopi/examples/scripts/macros/script.py
myscript = /home/pi/webiopi/callmacro_leds/script.py

[HTTP] セクションの「doc-root =」、「welcome-file =」に、作成したHTMLファイルを指定。

[HTTP]
# HTTP Server configuration
enabled = true
port = 8000

# File containing sha256(base64("user:password"))
# Use webiopi-passwd command to generate it
passwd-file = /etc/webiopi/passwd

# Use doc-root to change default HTML and resource files location
#doc-root = /home/pi/webiopi/examples/scripts/macros
doc-root = /home/pi/webiopi/callmacro_leds/

# Use welcome-file to change the default "Welcome" file
welcome-file = index.html

実行

参考サイト

「WebOPi」 Tips

WebIOPi の起動・停止

WebIOPi の自動起動

WebIOPi サービスの設定

[SCRIPTS] セクションの「myscript =」に、サービスを開始したときに実行するスクリプトファイルを指定。

[SCRIPTS]
# Load custom scripts syntax :
# name = sourcefile
#   each sourcefile may have setup, loop and destroy functions and macros
#myscript = /home/pi/webiopi/examples/scripts/macros/script.py
myscript = /home/pi/work/webiopi/xxxxxxxx/XXXXXXXX.py

[HTTP] セクションの「doc-root =」、「welcome-file =」に、Webブラウザからアクセスしたときに表示作成されるHTMLファイルを指定。

[HTTP]
# HTTP Server configuration
enabled = true
port = 8000

# File containing sha256(base64("user:password"))
# Use webiopi-passwd command to generate it
passwd-file = /etc/webiopi/passwd

# Use doc-root to change default HTML and resource files location
#doc-root = /home/pi/webiopi/examples/scripts/macros
doc-root = /home/pi/webiopi/xxxxxxxx/

# Use welcome-file to change the default "Welcome" file
#welcome-file = index.html
welcome-file = XXXXXXXX.html
 

「RaspberryPiで学ぶ電子工作」演習 (9.3) /bb/01

ブラウザのボタンによるLEDの点灯

使用するハードウェア

サンプルファイルを準備する。

サンプルファイルをハードウェアに合わせて変更する。

実行

※以上で251ページまで完了

 

「RaspberryPiで学ぶ電子工作」演習 (9.6) /bb/04

タッチイベントの利用~DCモーターの速度制御

使用するハードウェア

● 左記の「Aibot Project」のハードウエアを利用してWebIPOi プログラミングを検証する。
● AOUT1,AOUT2に接続したDCモーターをコントロールする。
● 出力ピンは、AIN1→GPIO 25, AIN2→GPIO 24 (本書オリジナルのまま)
モータードライバをMODE0(PWM)でコントロールする。(ハードウェア設定)
DRV8835 取扱説明書

● 別のドライバ基板()Pololu DRV8835 Dual Motor Driver Carrier)を使用する場合。接続ピンに若干の変更あり。
ドライバ基板の説明
モータードライバをMODE0(PWM)でコントロールする。(ハードウェア設定)

サンプルファイルをハードウェアに合わせて変更する。GPIO 24, 25を使用

実行

※以上で 9.6節 271ページまで完了

 

「RaspberryPiで学ぶ電子工作」演習 10章 /bb/05

WebIOPiを用いたキャタピラ模型の製作

使用するハードウェア 前節と同じ。

● 左記の「Aibot Project」のハードウエアを利用してWebIPOi プログラミングを検証する。
● AOUT1,AOUT2,BOUT1,BOUT2に接続したDCモーターをコントロールする。
● 出力ピンは、AIN1→GPIO 25, AIN2→GPIO 24, BIN1→GPIO 23, BIN2→GPIO 22 (本書オリジナルのまま)
モータードライバをMODE0(PWM)でコントロールする。(ハードウェア設定)
DRV8835 取扱説明書

● 別のドライバ基板()Pololu DRV8835 Dual Motor Driver Carrier)を使用する場合。接続ピンに若干の変更あり。
ドライバ基板の説明
モータードライバをMODE0(PWM)でコントロールする。(ハードウェア設定)

サンプルファイルをハードウェアに合わせて変更する。

実行

※以上で 10章 285ページまで完了

 

「RaspberryPiで学ぶ電子工作」(10.3) キャタピラ模型自立への準備

WebIOPiの自動起動の設定

$ sudo systemctl enable webiopi
Synchronizing state of webiopi.service with SysV service script with 
/lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable webiopi
Created symlink /etc/systemd/system/multi-user.target.wants/webiopi.service → 
/etc/systemd/system/webiopi.service.

再起動後、前節のブラウザで操作できれば設定完了。

IPアドレスの自動表示

● Raspberry Pi の「設定」アプリケーションでI2Cを有効にする。

● ネットワーク接続後に実行するように設定用アプリケーションで「システム」タブの「ネットワークブート」の項目の「ネットワークを待つ」にチェックを入れる。

● 再起動後IPアドレスを表示することを確認する。

シャットダウンボタンの追加

 

「RaspberryPiで学ぶ電子工作」(10.4) /bb/06

キャタピラ式模型にカメラを搭載しよう

使用するハードウェア 前節と同じ。

● GPIO出力ピンは、AIN1→GPIO 25, AIN2→GPIO 24, BIN1→GPIO 23, BIN2→GPIO 22 (本書オリジナルのまま)
● Raspberry Pi に搭載されたカメラを使用し、ロボット前面の様子を見ながらコントロールできるようにする。
DRV8835 取扱説明書

● 別のドライバ基板()Pololu DRV8835 Dual Motor Driver Carrier)を使用する場合。接続ピンに若干の変更あり。
ドライバ基板の説明
モータードライバをMODE0(PWM)でコントロールする。(ハードウェア設定)

MJPG-streamer を使って「動画配信」

サンプルファイルの確認

実行

※以上で 10章 288ページまで本書の演習は完了

 

「WebIOPi を用いたキャタピラ式模型の制作」まとめ

シャットダウンの応答

LCD 表示プログラム

MJPG-streamer の起動ファイル

自動起動ファイル


添付ファイル: file20200722_163117_001_m.jpg 127件 [詳細] filei2c-LCD_s.jpg 102件 [詳細] file20200717_053123_001_m.jpg 109件 [詳細] file20200717_052938_001_m.jpg 108件 [詳細] file20200716_000003_020_m.jpg 115件 [詳細] file20200716_000000_010_m.jpg 118件 [詳細] file20200716_000001_020_m.jpg 100件 [詳細] file20200716_000000_020_m.jpg 110件 [詳細] file20200715_000000_020_m.jpg 102件 [詳細] file20200715_000000_010_m.jpg 96件 [詳細] file20200714_000000_020_m.jpg 124件 [詳細] file20200714_000000_010_m.jpg 98件 [詳細] file20200713_000000_010_m.jpg 144件 [詳細]

Last-modified: 2020-11-29 (日) 05:11:53