I.目的
II.部品とデバイス
III.ハードウェアのインストール
IV.回路接続
V.ソフトウェアのインストール
VI.テスト

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


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

このレッスンでは、Pythonを使ってモバイルアプリからリモートデータ(UDPパケット)を取得する方法を学びます。

C++プログラミングに興味のある方は、以下のリンクにC++バージョンがあります:
https://osoyoo.com/ja/2020/11/08/osoyoo-pie-v2-0-car-lesson-4-use-mobile-app-to-control-car-with-udpc-language/



番号 画像 デバイス 個数 アクセサリー リンク
1 超音波センサー 1 M1.4*8ネジ×4
M1.4ナット×4
ご購入はこちらから
2 サーボモーター 1 M2.2*8セルフタッピングネジ x 2
M2.4セルフタッピングネジ x1
ここをクリックして購入する
3 超音波センサー取り付けホルダー 1 M1.4*8ネジ x 4
M1.4*8ネット x 4
M2*4セルフタッピングネジ x 1
ここをクリックして購入する
4 トラッキングセンサーモジュール 1 M2.5プラスチックネジ x 2
M2.5プラスチックナット x2
M2.5プラスチックピラー x 2
ここをクリックして購入する
5 7ピン25cmメス-メスケーブル 1 ここをクリックして購入する
6 20ピンジャンパーメス-メスワイヤー いくらか
7 プラスドライバー 1 ここをクリックして購入する


ステップ1: レッスン3/a>にしたがって、ㇻズベリカーの基本フレームワークをインストールします。もしトラッキングセンサーモジュールをインストールしない場合は、レッスン2でインストールを完了してください。



OSOYOO WiFi Robot アプリ Google PlayまたはApple Storeで “OSOYOO WiFi UDP Robot APP “と検索してください。

ステップ1) OSOYOO WiFi UDP Robot Car control APPをダウンロードします。
Google PlayまたはApple Storeで「OSOYOO WiFi UDP Robot Car」と検索すると、以下のようなオレンジ色のアイコンのAPPが見つかります。:

ステップ2)レッスン1 でrpi.gpioとadafruit-pca9685ライブラリがインストールされていることを確認します。

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

wget http://osoyoo.com/driver/picar/picar-udp-control.py


ステップ4)以下のコマンドを入力して、サンプルコードを実行します:

python picar-udp-control.py


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

ステップ5) ラズベリーパイが使用しているのと同じルーターのWiFi SSIDに携帯電話を接続します。アプリを開き、「設定」をクリックして、Raspberry PiのIPアドレス……………とポート番号を8888に入力します:

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

Obstacleキーをクリックすると、レッスン3と同様に、車が障害物回避の自動運転を行います。

Trackingキーをクリックすると、車はレッスン2と同様にリンクトラッキングの自動運転を行います。

注:F1~F6は今後の開発機能です。

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

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

high_speed = 4000  # Max pulse length out of 4096
mid_speed = 2000  # Max pulse length out of 4096
low_speed = 1000  # Max pulse length out of 4096

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

ボタン UDPメッセージ
F1 F
F2 G
F3 H
F4 I
F5 J
F6 K
A
B
R
L
四角 E
障害物 O
トラッキング T

Q3)ArduinoはUDPコマンドをどのように処理しているのでしょうか?
290から318行のwhile loopがAPPからUDPデータを受け取り、それを実行可能なcur_statusに与え、266〜280行目の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()

例えば、アプリで▲キーが押されて、cur_statusの値がAになると、ticker()関数はforward(mid_speed,mid_speed)関数を呼び出して、車を前進させます。