認定オンライン販売業者

Buy from US Buy from UK Buy from DE Buy from IT Buy from FR Buy from ES 日本

目的

このレッスンでは、ロボットかーの前方に取り付けたWEBカメラの画像を通じて、Webブラウザーまたはモバイルアプリを介してロボットカーを制御する方法を学習いたします。

このタスクには、Raspberry Piに「mjpg-streamer」Webサーバーソフトウェアをインストールして使用いたします、このソフトウェアによりWEBカメラの画像信号をビデオキャッチ処理、ビデオ画像をWebページに表示させます。

また、Raspberry Piに「WebIOPi」Webサーバーソフトウェアをインストール、ブラウザーからRaspberry Pi GPIOの入出力ピンのリモート制御してロボットかーの走行を行います。

top

カメラ取付手順

lesson1でカメラの未装着の場合は、下図参照の上カメラを取り付けしてください。尚カメラ装着済の場合は次の手順をお読みください。


top

ソフトウェアのインストール

繁雑インストール

上中級者様の方々には、GPIOポート番号などの機能をカスタマイズするために、webiopiおよびmjpg-streamerをご自分でインストールすることをお勧めします。この場合、次の手順1〜8を実行してwebiopiをインストールそしてmjpg-streamerを構成します。 初心者様の場合、簡易インストール手順「Raspberry Pi Robot Car Lesson 3:Simple Installation for Web Control Camera」でソフトを書き込み、カメラ画像をお試しください。

注:
1.マイクロSDカードにOsoyoo Robot Imageがプリインストールされている場合は、ステップ1からステップ8をスキップして、実行ステップ9:テストを実行してください。
2. SSHを使用してRaspberry Piをリモート操作する場合のコマンドを送信するときは、Raspberry Piをバッテリー電源に入れたままにしてください。

手順1:ターミナル入力で次のコマンドを実行してWebIOPi / mjpg-streamerインストールパッケージをダウンロードします(マイクロSDカードにOsoyoo Robot Imageがプリインストールされている場合は、この手順をスキップします)

cd ~
sudo  apt-get  install  rpi.gpio  -y
mkdir   osoyoo-robot/cam-robot
cd   osoyoo-robot/cam-robot
wget http://osoyoo.com/driver/WebIOPi-0.7.1.tar.gz
wget http://osoyoo.com/driver/mjpg-streamer.tar.gz
wget http://osoyoo.com/driver/robot.tar.gz
tar  -xzvf  WebIOPi-0.7.1.tar.gz
tar  -xzvf   mjpg-streamer.tar.gz
tar  -xzvf  robot.tar.gz

次のステップ2からステップ4までは、WebIOPIサーバーのインストール用です。

手順2:次の端末コマンドを実行してWebIOPiパッチをダウンロードしてインストールします(マイクロSDカードにOsoyoo Robot Imageがプリインストールされている場合は、この手順をスキップします)

cd  ~/osoyoo-robot/cam-robot/WebIOPi-0.7.1/
wget   https://osoyoo.com/driver/webiopi-pi2bplus.patch
patch    -p1   -i  webiopi-pi2bplus.patch

ステップ3:次の端末コマンドを実行してWebIOPiをインストールします(マイクロSDカードにOsoyoo Robot Imageがプリインストールされている場合はこのステップをスキップします)
sudo  ./setup.sh

次のコマンドを入力して、インストールを確認する必要があります、
webiopi  -h

WebIOPiが正常にインストールされると、ターミナルに次のメッセージが表示されます。そうでない場合は、webiopi デレクトリを削除してから、再度ダウンロードとインストールをやり直す必要があります。

ステップ4:次のコマンドを入力してwebiopiを実行します(マイクロSDカードにOsoyoo Robot Imageがプリインストールされている場合は、このステップをスキップします)

sudo  webiopi  -d  -c  /etc/webiopi/config

別のコンピュータでブラウザを使用してください(あなたのPiと同じLAN内のコンピュータ/パッド/携帯端末)、ポートをRasPi のIPアドレスにポート「8000」すなわち(http://192.168.0.115の場合は192.168.0.115:8000)、ブラウザにWebIOPiログインページが表示されます。サーバーにログインするには、デフォルトのWebIOPiユーザー名「webiopi」とデフォルトのパスワード「raspberry」を入力してください、WebIOPiページにログインすると、WebIOPIメインメニューが次のように表示されます。このページが表示されない場合は、WebIOPIソフトウェアを再インストールする必要があります。

ターミナルで「Ctrl」+「C」を押してから「Ctrl」+「Z」を押して、WebIOPiの実行を終了してください。

もしraspberry pi のIPアドレスがわからない場合は、下記コマンドを入力します

ifconfig wlan0

接続中のraspberry PiのIPアドレスは、inet に表示されています。

ステップ5からステップ7は、mjpg-streamerサーバーのインストール手順です。

ステップ5:CSIカメラを使用している場合は、ステップAおよびBに従って次のアクションを実行してください(車に付属のUSBカメラを使用している場合は、このステップをスキップしてください)(マイクロSDカードが-Osoyoo Robot Imageをインストール)

A.Raspberry Piのカメラを有効にするには下記コマンド入力してCONFIG画面を開き、カメラを有効設定に切り替えます。

sudo  raspi-config

B.次の下記コマンドを入力して「/ etc / modules」ファイルを編集します(それ以外の場合、/ devにはカメラデバイスノードがありません)

sudo   nano  /etc/modules

「modules」ファイルの下部に次の行を追加し、「ctrl」+「x」を押してから「y」を押してファイルを保存し、「enter」を押しますnano editorを閉じます。
bcm2835-v4l2    この一行をくわえる

ステップ6:次のコマンドを入力して、mjpg-streamerサポートライブラリをダウンロードしてインストールします(マイクロSDカードにOsoyoo Robot Imageがプリインストールされている場合は、このステップをスキップします)

cd ~
sudo apt-get update
sudo apt-get install libv4l-dev libjpeg8-dev -y
sudo apt-get install subversion -y

手順7:mjpg-streamerをコンパイルします(マイクロSDカードにOsoyoo Robot Imageがプリインストールされている場合は、この手順をスキップします)

まず、次のコマンドを入力して、構成ファイル「input_uvc.c」を編集します

cd  ~/osoyoo-robot/cam-robot/mjpg-streamer/plugins/input_uvc
sudo  nano  input_uvc.c

次の行を見つける(「ctrl」+「W」を使用して、nanoエディターに入るときに行を検索できます)

 int width=640, height=480, fps=5, format=V4L2_PIX_FMT_MJPEG

文字列に置き換えV4L2_PIX_FMT_MJPEG新しい文字列とをV4L2_PIX_FMT_YUYV

次に、「ctrl」+「x」を押してから「y」を押してファイルを保存し、「enter」を押してエディター閉じます

次に、次のコマンドでソースコードをコンパイルする必要があります

cd  ~/osoyoo-robot/cam-robot/mjpg-streamer
make all

3番目に、カメラのインストールをテストします:カメラをRaspberry Piに接続し、次のコマンドを入力します:

ls   /dev/video*

端末に次の結果が表示されます。「/ dev / video0」はPiにインストールされているカメラです

最後に、ターミナルで次のコマンドを入力してmjpg-streamer Serverを実行します:

cd ~/osoyoo-robot/cam-robot/mjpg-streamer
sudo ./start.sh

別のコンピューターのブラウザーを使用して、ポート8899でRaspberry Pi IPアドレスにアクセスします(Pi IPアドレスが192.168.0.115の場合、ブラウザーでhttp://192.168.0.115:8899にアクセスします)。次の画像が表示されます。左メニューの[ストリーム]ボタンをクリックすると、Raspberry Piのカメラでキャプチャされたリアルタイムビデオが表示されます。

ターミナルでCtrl Cコマンドを使用して、mjpg-streamerサーバーを終了できます。

ステップ8:webiopiとmjpg-streamerを同じWebページに結合して、カメラからのビデオを表示し、ロボットカーをブラウザーで制御できるようにするには、WebIOPiとMJPG-streamerのデフォルト設定を変更する必要があります。これを行うには、次のコマンドを入力して構成ファイルを編集し、このファイルを変更A、変更B、変更Cとして変更する必要があります(マイクロSDカードにOsoyoo Robot Imageがプリインストールされている場合は、この手順をスキップします)

sudo  nano  /etc/webiopi/config

変更A:ブラウザからPiに制御信号を送信できるwebiopiのデフォルトスクリプトpythonファイルを置き換えます。「/ etc / webiopi / config」ファイルに次のピンクの行を追加してください

[SCRIPTS]
# Load custom scripts syntax :
# name = sourcefile
#each sourcefile may have setup, loop and destroy functions and macros
#myscript = /home/pi/WebIOPi-0.7.1/examples/scripts/macros/script.py
myscript = /home/pi/osoyoo-robot/cam-robot/robot/script.py     --この行を加える

変更B:次のピンク色の行を追加して、webiopiのデフォルトのhtmlファイルパスを変更します。

# Use doc-root to change default HTML and resource files location
#doc-root = /home/pi/WebIOPi-0.7.1/examples/servo-control
doc-root = / home / pi / osoyoo-robot / cam-robot / robot   --この行に変更する

修正C:次のピンク色の行を追加して、PCA9685アドレスを構成に追加します

[DEVICES]]
# Device configuration syntax:
# name = device [args...]
# name   : used in the URL mapping
#device : device name
#args   : (optional) see device driver doc
#If enabled, devices configured here are mapped on REST API /device/name
#Devices are also accessible in custom scripts using deviceInstance(name)
#See device driver doc for methods and URI scheme available

# Raspberry native UART on GPIO, uncomment to enable
# Don't forget to remove console on ttyAMA0 in /boot/cmdline.txt
# And also disable getty on ttyAMA0 in /etc/inittab
#serial0 = Serial device:ttyAMA0 baudrate:9600

# USB serial adapters
#usb0 = Serial device:ttyUSB0 baudrate:9600
#usb1 = Serial device:ttyACM0 baudrate:9600

#temp0 = TMP102
#temp1 = TMP102 slave:0x49
#temp2 = DS18B20
#temp3 = DS18B20 slave:28-0000049bc218

#bmp = BMP085

#gpio0 = PCF8574
#gpio1 = PCF8574 slave:0x21

#light0 = TSL2561T
#light1 = TSL2561T slave:0b0101001

#gpio0 = MCP23017
#gpio1 = MCP23017 slave:0x21
#gpio2 = MCP23017 slave:0x22
pwm0 = PCA9685slave:0x40     --この行を加える
#pwm1 = PCA9685 slave:0x41

#adc0 = MCP3008
#adc1 = MCP3008 chip:1 vref:5
#dac1 = MCP4922 chip:1

最後に、「ctrl」+「x」を押してから「y」を押してファイルを保存し、「enter」を押してナノエディターを作成します

top

サーバーインストールのテスト

これで、車を地面に置き、バッテリーボックスの電源スイッチを入れることができます。車を制御するにはSSHを使用する必要があります。そのため、テストする前にraspi-configコマンドでSSHを有効にする必要があります。Windowsを使用している場合は、PuttyをダウンロードしてPiをsshしてください。MacBookを使用している場合は、ターミナルでsshコマンドを直接使用してください。

ステップ1. sshターミナルでmjpg-streamerを開始するには、followinigコマンドを入力してください:

cd ~/osoyoo-robot/cam-robot/mjpg-streamer
sudo ./start.sh

ステップ2. webiopiを開始するには、別のsshウィンドウを開いて次のコマンドを入力してください:

sudo webiopi -d -c /etc/webiopi/config

ブラウザで車を制御する
これで、ポート8000​​でRaspberry IPにアクセスできます(つまり、Pi IPアドレスが192.168.0.115の場合、http://192.168.0.115:8000にアクセスしてください。次の画像が表示されます。ブラウザで矢印ボタンをクリックすると、車を希望の方向に移動させることができます。

top

AndroidおよびiOSアプリ

ブラウザの代わりに無料のAndroidアプリまたはAppleアプリを使用して車を制御することもできます。

https://osoyoo.com/driver/osoyoo-robot.apk からAndroidアプリをダウンロードします

Apple iOSユーザーの場合、Apple APPストアでOsoyoo raspberry Pi Robot Carを検索し、ダウンロードしてインストールしてください。

アプリを実行し、[設定]をクリックし、次のようにフィールドを設定して設定ページに入ります。

Robot IP:

raspberrr pi ip ポート: 8000
ビデオURL: http:// your_raspberry_pi_ip:8899 /?action = stream(your_raspberry_pi_ipを置き換えるには192.168.0.16などのIPを使用してください)
ユーザー名: webiopi
パスワード: raspberry

[保存]ボタンをクリックして、編集を終了します

これで、アプリの矢印ボタンを使用して車を制御できます