Buy from US Buy from UK Buy from DE Buy from IT Buy from FR Buy from ES ここでご購入を!

このレッスンでは、モバイル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”を検索してください。

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

Google PlayまたはApple Storeで “OSOYOO WIFI UDP Robot Car “と検索してください:

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)関数を呼び出し、車を前進させる。