Buy from OSOYOO Buy from UK Buy from DE Buy from IT Buy from FR Buy from ES Buy from JP

このレッスンでは、モバイルAPPを使ってUDPプロトコルでロボットカーを制御する方法を学びます。Raspberry PiでPythonプログラムを実行し、APPからUDPパケットを取得します。

No. 写真 部品 数量 付属品 Link
1 Ultrosonic Sensor 1 M1.4*8 Screw x 4
M1.4 Nut x 4
ここをクリックして購入する
2 Servo Motor 1 M2.2*8 Self Tapping Screw x 2
M2*4 Self Tapping Screw x 1
ここをクリックして購入する
3 Mount Holder for Ultrasonic Sensor 1 M1.4*8 Screw x 4
M1.4 Nut x 4
M2*4 Self Tapping Screw x 1
ここをクリックして購入する
4 Tracking sensor module 1 M2.5 Plastic Screw x 2
M2.5 Plastic Nut x2
M2.5 Plastic Pillar x 2
ここをクリックして購入する
5 7pin 25cm Female to Female Cable 1 ここをクリックして購入する
6 10Pin jumper wire female to female 20cm some
7 Philips screwdriver 1 ここをクリックして購入する

Lesson 3 (Line Tracking ) と Lesson 4 (Obstacle Avoidance)を先に完成してください。

Lesson1~Lesson4で設置した配線はそのままにしてください。

Osoyoo WIFI Robot APP Google Play または Apple Storeで“Osoyoo WIFI UDP Robot APP”を検索してください。(Google Playでこのアプリを見つけられない場合、以下のリンクから直接にアプリをダウンロードできます:https://osoyoo.com/driver/udp-app.apk)

Step 1) OSOYOO WIFI UDP Robot Car control APPをダウンロードします。

Google PlayまたはApple Storeで “OSOYOO WIFI UDP Robot Car “と検索してください(ご注意:Google Playでこのアプリを見つけられない場合、以下のリンクから直接にアプリをダウンロードできます:https://osoyoo.com/driver/udp-app.apk)

Step 2)  lesson 1 でrpi.gpioとadafruit-pca9685ライブラリをインストールしたことを確認してください。

Step 3) 以下のコマンドを入力して、サンプルコードをダウンロードします:

wget http://osoyoo.com/driver/servo-steer-car/picar-udp.py

Step 4)次のコマンドを入力して、サンプルコードを実行します:

python picar-udp.py

Python3を使用する場合は、次のコマンドを入力します:

python3 picar-udp.py

上記のpythonが実行された後、車は携帯電話からのコマンドを待っています。

Step 5) ラズベリーパイと同じルーターの無線LAN SSIDに携帯電話を接続します。APPを開き、Settingsをクリックし、Raspberry PiのIPアドレスとPortを8888に入力します:

これで、< > ^ v方向キーをクリックして車を動かすことができます。車の動きを止めるには|一時停止キーを使います。

Obstacleキーをクリックすると、Lesson 4と同様に障害物回避の自動運転を行います。

トラッキングキーをクリックすると、lesson 3と同様にリンクトラッキング自動運転を行います。

注: F1~F6 は未来の付加的な開発機能です。

WIFI UDP APPとスケッチコードに関するFAQ:

Q 1)ロボットカーのスピードを調整する方法は?
A: ロボットカーの速度性能を変更したい場合、picar-udp-control.py ファイルの 19-21 行目のパラメータを変更してください:

high_speed = 3500  # Max pulse length out of 4096
mid_speed = 1900  # Max pulse length out of 4096
low_speed = 1700  # Max pulse length out of 4096

Q 2)OSOYOO WiFi UDP Robot Car APPのボタンを押すとどうなりますか?
A: APPのボタンを押すと、APPはUDPプロトコルでターゲットデバイスRaspberry Piに1文字のメッセージを送信します。

Button UDP message
F1 F
F2 G
F3 H
F4 I
F5 J
F6 K
A
B
R
L
square E
obstacle O
tracking T

Q 3)Raspberry PiのpythonプログラムはUDPコマンドをどのように処理していますか?
319行目から347行目のwhileループがAPPからUDPデータを受け取り、それを実行可能なcur_statusに渡し、292行目から307行目のticker関数がcur_statusを処理します:

def ticker():	
    if cur_status=='R':
    	turnRight(high_speed,0)
    if cur_status=='L':
    	turnLeft(0,high_speed)
    if cur_status=='A':
    	forward(mid_speed,mid_speed)
    if cur_status=='B':
    	backward(mid_speed,mid_speed)
    if cur_status=='E':
    	stopcar()
    if cur_status=='T':
    	line_tracking()
    if cur_status=='O':
    	obstacle_avoid()

例えば、APP▲キーが押され、cur_statusの値がAであれば、ticker()関数はforward(mid_speed,mid_speed)関数を呼び出し、車を前進させる。