#ラズパイでUnityから制御可能なプロポ受信器(的な物)を作る
前回から、なるべくシンプルで汎用性のありそうな方法を検討した。
PCからwi-fiで受信しラジコンを制御するプロポ受信機の替わりを作りたい。
##ラズパイにServoHAT付けてwebiopiをセットアップする
参考にしたサイト
WebIOPiを使ってブラウザからRaspberry PiのGPIOを操作してみる
https://dev.classmethod.jp/articles/webiopi-raspberry-pi-gpio-operation/
###webiopiのインストール手順
WebIOPi をダウンロード(最新ver0.7.1)
$ wget https://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
セットアップスクリプトを実行
「Do you want to access WebIOPi over Internet ? [y/n]」で止まったら、「n」を入力し、エンターキーを押す。
(「y」押すと余計なものダウンロードされる)
$ sudo ./setup.sh
WebIOPiサービスをsystemctlで操作できるようにするため設定ファイルをダウンロード。
$ cd /etc/systemd/system/
$ sudo wget https://raw.githubusercontent.com/doublebind/raspi/master/webiopi.service
###webiopiサービスの開始方法
$ sudo systemctl start webiopi
###自動起動/etc/rc.local
/etc/rc.localを任意のエディタで開く、
$ sudo vim /etc/rc.local
末尾「exit 0」の前の行に、プログラムを実行するコマンドをフルパスで記述、上書き保存。
略
fi
sudo systemctl start webiopi
exit 0
ここまでがwebiopiのセットアップ
とりあえず再起動
$ sudo reboot
#ブラウザで動作確認
再起動後ブラウザからhttp:<ラズパイのIP>:8000にアクセス。
認証ダイアログが表示されるので、
ユーザー名:webiopi
パスワード:raspberry
でログイン
#ラズパイにServoHAT取り付け
自分はこれをAmazonで買った。
PCA9685が乗った基板ならどれでもいい。
接続されてるI2cアドレス表示しラズパイに認識されているか確認
sudo i2cdetect -y 1
アドレス40と70が認識されている。(使用するのは40)
#webiopiのpwmを有効化
参考にしたサイト
Raspberry PiにつないだPCA9685+SG90サーボをブラウザで制御してみた
https://arkouji.cocolog-nifty.com/blog/2014/06/raspberry-pipca.html
PCA9685がつながった状態で、/etc/webiopi/configを開く。
$ sudo vim /etc/webiopi/config
下の方に「#pwm0 = PCA9685」とあるので#を消して有効化。
上書き保存する。
#webiopiのログイン認証を無効化
同様にconfigファイルの上の方「passwd-file = /etc/webiopi/passwd]
行の先頭に「#」を挿入してコメントアウト。
#ブラウザで動作確認
再起動後ブラウザから
http:<ラズパイのIP>:8000/app/devices-monitorにアクセス。
このような画面が表示されれば成功
#追記
###ライブカメラ配信しながら遠隔でラジコン動かしたい場合
→mjpeg-streamerをインストール
参考
5GHz WiFi対応させたPi Zero rev1.3とPi Cameraでミニマムなネットワークカメラを作ってみた(mjpg-streamer版
https://kitto-yakudatsu.com/archives/2338
###シャットダウンに時間が掛かる場合
webiopiインストール後にラズパイシャットダウンすると下記の表示で90秒くらい待たされる。
A stop job is running for ...
/etc/systemd/system.confの設定を書き換えることで短縮可
$ sudo vim /etc/systemd/system.conf