■ブラウザからのサーボモータ制御の現状
相変わらず苦戦している。
*2017/12/10 追記。なんとか無事解決。本文末尾に記載。
どうしてもうまくいかない。
二号機の設定では、とりあえず WebIOPi のインストールまでは成功。
サーボモータを動かす所で失敗している。
http://localhost:8000
にアクセスした際、変更したはずのページが真っ白になってしまうのである。
ということで、一旦 OS のインストールからやり直してみた。
二号機の SD カードに、Raspbian stretch をインストール。
各種 update と日本語化、という最低限の設定だけを実施し、
WebIOPi のインストールを実施。
すると今度は default のページすら空白ページとなってしまった。
むー。
一体何が起こっているのだろう?
とりあえず一つ一つ潰していこうと思うのだが…。
まず一つ分かったこと。
最初に三号機で出ていた、
OSError: [Errno 98] Address already in use
のエラー。
これは、多分普通に webiopi をサービスとして起動しているにも関わらず、
root@raspi-03# webiopi -d
として二重起動してしまっていたため。
超単純なミスだった。
root@raspi-03# /etc/init.d/webiopi stop
としてサービスを止めた上で、再度
root@raspi-03# webiopi -d
で起動すると、該当のエラーはでなくなった。
が、Login 画面までは出るものの、やっぱりページは真っ白。
Debug message をみると、
NameError: name 'GPIO' is not defined
とのこと。
Google 先生に聞いてみると、
https://www.raspberrypi.org/forums/viewtopic.php?t=180997
とかには、
import RPi.GPIO as GPIO
というのをプログラムの先頭に加えろ、とある。
が、これ全部にやるの?ということもあり、現在まだ試していない。
他のページ、
https://github.com/thortex/rpi3-webiopi/issues/12
では、cpuinfo をみて,
./WebIOPi-0.7.1/python/native/cpuinfo.c
を変更しろ、と書いてあるので、
root@raspi-03# cat /proc/cpuinfo
で
Hardware : BCM2835 Revision : a02082
を確認し、これを反映してみたが、やっぱりダメ。
どうも、
・python2 と python3 では互換性がない
・python2(?)で動く RPi.GPIO を使う必要がある?
・なので RPi.GPIO を GPIO としてインポートする必要がある
ということっぽいのだが、正直まだちゃんと分かっていない。
つーか python の ver 違いで動かないとか止めてほしいんだが…。
年内には余裕で出来ていると思っていたが、まさかここまで苦戦するとは。
とりあえず一つ一つ調査・理解して潰していくしかないか。
くっそー。
[2017/12/10 追記]
かなり時間はかかったが、どうにかこうにか、
・ブラウザから操作できるライブ(監視)カメラ化
に成功。
ブラウザからの GPIO 及びサーボモータの制御は WebIOPi で、
専用カメラモジュールの映像表示は RPi_Web_Cam_Interface で、
各々実現。
それぞれ、以下のページにまとめたので、よければ見ていただければと思う。
・『WebIOPi で遠隔操作(インストール編)!』
・『WebIOPi で遠隔操作(サーボモータ制御編)!』
・『ブラウザから操作可能なライブ(監視)カメラを作る!』
Copyright (c) 2017 Webmaster of this site All Rights Reserved.