Rasberry Pi Tank Robot Car Starter Kit Lesson 6: Web Control Camera

Byamber

Rasberry Pi Tank Robot Car Starter Kit Lesson 6: Web Control Camera

2018009100

Authorized Online Retailers

Buy from US Buy from CA Buy from UK Buy from DE Buy from IT Buy from FR Buy from ES
amazon_ca

top目 的

このレッスンでは、ロボットカーに前方の視野を持たせる方法と、ウェブブラウザやモバイルアプリを介してロボットカーを制御する方法を学びます。

この作業を行うには、ラズベリーパイに「mjpストリーマー」と呼ばれるウェブサーバーソフトをインストールする必要があり、このソフトは、ロボットカー上のカメラからビデオキャッチして、ウェブページにビデオ信号を送信します。

また、ラズベリーパイに「WebIOPi」と呼ばれる別のウェブサーバーソフトウェアをインストールする必要があります。このソフトウェアは、ユーザーがリモートでラズベリーパイのGPIO入出力を制御するためにブラウザを使用して、したがって、私たちのロボットモーターの動きを制御することができます。

また、ラズベリーパイに「WebIOPi」と呼ばれる別のウェブサーバーソフトウェアをインストールする必要があります。このソフトウェアは、ユーザーがブラウザを使いリモートでズベリーパイのGPIO入出力を制御すおことで、ロボットモーターの動きを制御することができます

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

次コマンドを入力する前に、I2C を開き、ラズベリーパイの IP アドレスを知る必要があります。

(1)もし IPアドレスが判らない場合は、ターミナルでifconfig wlan0 入力すると、

RASPBERY IPアドレスはinent addrの右側の文字である。

ifconfig wlan0

IP address

(2)I2C関数を開く

I2C関数を使用するためには、ターミナルあら下記コマンドを入力する。

sudo raspi-config

Interfacing Options->I2C->Yes->Okを選択して終了させる。

step5-i2c-1

step5-i2c-2

step5-i2c-3

もしIPアドレスが判っていれば、上記の手順をスキップして、I2C関数を使います。

ステップ1、 下記ターミナルコマンドで入力して、ソフトパッケージをダウンロード、解凍して導入する。
cd ~
sudo apt-get install rpi.gpio -y
mkdir -p osoyoo-robot/cam-robot
cd osoyoo-robot/cam-robot

wget —-no-check-certificate http://osoyoo.com/driver/WebIOPi-0.7.1.tar.gz
wget —-no-check-certificate http://osoyoo.com/driver/mjpg-streamer.tar.gz
wget —-no-check-certificate http://osoyoo.com/driver/robot-tank.tar.gz
tar -xzvf WebIOPi-0.7.1.tar.gz
tar -xzvf mjpg-streamer.tar.gz
tar -xzvf robot-tank.tar.gz

step1-1 step1-2 step1-3 step1-4 step1-5

ステップ2、WebIOPI serverをインストール

(1)Download WebIOPi patch

  1. Download WebIOPi patch
  2. WebIOPi patchのダウンロード

cd ~/osoyoo-robot/cam-robot/WebIOPi-0.7.1/

wget —-no-check-certificate http://osoyoo.com/driver/webiopi-pi2bplus.patch

Step2-1

(2)WebIOPi patchのダウンロード

patch -p1 -i webiopi-pi2bplus.patch

step2-2

(3)Webiopiコンプライ

sudo ./setup.sh

step2-3 step2-3-2

(4).次のコマンドを入力してインストールを確認する。

webiopi -h

step2-4

WebIOPiのインストールが成功していれば、次のメッセージが表示される、それ以外は

ダウンロードとインストールをやり直す。

 sudo webiopi [-h] [-c config] [-l log] [-s script] [-d] [port]

    Options:
      -h, --help           Display this help
      -c, --config  file   Load config from file
      -l, --log     file   Log to file
      -s, --script  file   Load script from file
      -d, --debug          Enable DEBUG

    Arguments:
      port                 Port to bind the HTTP Server

(5)次のコマンド入力でwebiopiを起動する。

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

step2-5

別のコンピュータ(Piの同じLAN内のコンピュータ/PAD/電話)のブラウザを使用して、PiIPアドレスをポート“8000”にアクセスします(つまり、http://192.168.50.7:8000192.168.50.7PiのローカルIPアドレスに置き換える)、ブラウザにWebIOPiログインページが表示されます。サーバーにログインするには、デフオルトの WebIOPi ユーザー名 “webiopi” とデフオルトのパスワード “raspberrs” を使用する必要があります。WebIOPi ページにログインすると、次のような WebIOPI にメイン メニューが表示されます。このページが表示されない場合は、WebIOPI ソフトウェアを再インストールする必要があります。

WebIOPi を終了するには“Ctrl” + “C”を押しから“Ctrl” + “Z”押します。

ステップ3、mjpg―streamerのインストール

CSIカメラを使用している場合は、ステップABに従って以下のアクションを取ってください。あなたは車に付属しているUSBカメラを使用している場合は、これらの2つのステップをスキップしてください。

(A)ラズベリーパイでカメラを有効にする

sudo raspi-config

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

sudo nano /etc/modules

“/etc/modules” ファイルの一番下に次の行を追加してから、“ctrl” + “x” 押してから “y” を押してファイルを保存

“enter” を押して nano エディタを終える。。

bcm2835-v4l2 (l is lowercase letters l,not digital 1)

ステップ4、次のコマンドでmjpg-streamer support library ダウンロード、インストールする

cd ~

sudo apt-get update

sudo apt-get install libv4l-dev libjpeg8-dev -y

sudo apt-get install subversion -y

step4-1 step4-2

ステップ5mjpg-streamerコンパイル

(1) 次のコマンドで “input_uvc.c” を編集する。

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

cd plugins/input_uvc

sudo nano input_uvc.c (if vim installed, you can type: sudo vim input_uvc.c)

step5-1

step5-1(2)

次の行を(NANOエディターで“ctrl” + “W”でサーチできる)見つけて、

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

V4L2_PIX_FMT_MJPEGの文字を V4L2_PIX_FMT_YUYVに替える

step5-1-2

ctrl” + “x” 押してから “y” を押してファイルを保存、 “enter” を押して nano エディタを終える。

2)次のコマンドでソースコードをコンパイルする

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

make all

step5-2

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

ls /dev/video*

次の結果がターミナルに見られ、“/dev/video0”Piの中にインストールされたカメラです。

(4) 次のコマンドの入力でmjpg-streamer Serverを起動させる。

sudo ./start.sh

今、別のコンピュータでブラウザを使用してPI IPポート8899(あなたのPi IPアドレスが192.168.50.7の場合は、

お使いのブラウザではhttp://192.168.50.7:8899にアクセスする)でラズベリーパイIPアドレスにアクセスするために、別のコンピュータでブラウザを使用して、次の画像が表示されます。左メニューのストリームボタンをクリックすると、あなたのラズベリーパイのカメラ映像がリアルタイムでビデオキャプチャー表示されます

mjpg-streamer server

You can use Ctrl C command in terminal to end the mjpg-streamer server

ステップ6、でwebiopimjpg

webiopimjpg-streamerを同じウェブページに組み合わせることで、カメラからビデオを「見る」ことが可能になり、ロボットカーをブラウザで制御するには、WebIOPiMJPG-ストリーマーのデフォルト設定を変更する必要があります。これを行うには、次のコマンドを入力して設定ファイルを編集し、変更 A、変更 B、変更 Cを行う必要があります。

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 default html file パスに次ぎのピンクラインを加える

# 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のアドレスをCONFIGに加える。

[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 = PCA9685 slave:0x40
#PWM1 =PCA9685
#pwm1 = PCA9685 slave:0x41

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

ctrl” + “x” 押してから “y” を押してファイルを保存、 “enter” を押して nano エディタを終える。

テスト

ステップ7 テスト

今、地面にあなたの車を置き、バッテリーボックス内の電源スイッチをオンにすることができます。車を制御するにはSSHを使う必要があるので、、テストする前に、raspi-config コマンドで SSH を有効にする必要があります。 Windowsを使用する場合はPuttyをダウロードしてPIをsshする、、MacBookを使用している場合はPtyをダウンロードしてターミナルの上で

Sshコマンドを直接使用してください。

(1) sshターミナルで mjpg-streamerを起動するには次のコマンドを入力してください。

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

sudo ./start.sh

(2) Webiopiを起動するには、別のsshターミナルを開き、次のコマンドを入力

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

今、あなたのプラウザを使いRASPBERRY IP ポート8000でアクセス出来る(例えばPI IPアドレス192.168.0.115であれば、http://192.168.50.7:8000,に行けば、次のような画像がブラウザにみられる、矢印ボタンをクリックして、

車を望む方向へ動かすことができます。

google browser

如果报错请确认两点:

A.上面配置是否正确

B.PCA9685是否供上电了,如没有电,因为软件读取不到IIC设备,会报错。

top

Android App

無料のAndroid用アプリ、アップル用アプリでプラウザーのかわりのこの車を制御できます。

アップル用アプリはアップルストアからダウンロード

Android用は下記URLかGoogle playよりダウンロードを

行ってください。http://osoyoo.com/driver/osoyoo-robot.apk

アプリの起動して、set up configのページの各項は次の様に設定してください。

IP Address: 192.168.50.7
Your raspberrr pi ip Port: 8000
User Name: webiopi
Password: raspberry
Video Port:8899

セーブボタンをクリックしてconfigページを終了。

android app Apple app

Now you can use the arrow buttons in App to control the car

top

About the Author

amber administrator

You must be logged in to post a comment