I.Obiettivo
II.Parti e Dispositivi
III.Installazione del Hardware
IV.Collega i circuiti
V.Installazione del Software
VI.Come giocare

Acquista da US Acquista da UK Acquista da DE Acquista da IT Acquista da FR Acquista da ES Acquista da JP

 


In questa lezione, vi insegneremo come usare l’APP mobile per controllare l’auto robot attraverso il protocollo UDP. Il Raspberry Pi eseguirà un programma Python per ottenere pacchetti UDP dall’APP. Imparerete come usare Python per ottenere dati remoti (pacchetti UDP) dall’APP mobile.Se siete interessati alla programmazione C++, questo progetto ha una versione C++ nel seguente link:

https://osoyoo.com/2020/11/08/osoyoo-pie-v2-0-car-lesson-4-use-mobile-app-to-control-car-with-udpc-language/



No. Picture Device Qty. Accessories Link
1 Sensore Ultrasuoni 1 M1.4*8 Vite x 4
M1.4 Dadi x 4
Clicca qui per acquistare
2 Motore Servo 1 Vite autofilettante M2.2*8 x 2
Vite autofilettante M2*4 x 1
Clicca qui per acquistare
3 Supporto di montaggio per sensore a ultrasuoni 1 M1.4*8 Vite x 4
M1.4 Dado x 4
Vite autofilettante M2*4 x 1
Clicca qui per acquistare
4 Modulo sensore Segui Linea 1 M2.5 Vite di plastica x 2
M2.5 Dado di plastica x2
M2.5 Colonna di plastica x 2
Clicca qui per acquistare
5 Cavo 7pin 25cm da femmina a femmina 1 Clicca qui per acquistare
6 20Pin filo di ponticello femmina a femmina 20cm alcuni
7 Cacciavite Philips 1 Clicca qui per acquistare


Step 1:Installare la struttura di base della smart car come da lezione 3. Se non si installa il modulo del sensore di tracciamento, si prega di completare l’installazione in Lezione 2.



Osoyoo Wifi Robot APP cerca “Osoyoo Wifi UDP Robot APP”

in Google Play o Apple Store

Step 1) Scarica OSOYOO Wifi UDP Robot Car control APPIn Google Play o Apple Store, cerca le parole chiave “OSOYOO Wifi UDP Robot Car”, troverai un’icona arancione APP come segue:

Step 2) Assicuratevi di aver installato la libreria rpi.gpio e adafruit-pca9685 in lezione 1 .

Step 3) Digitare il seguente comando per scaricare il codice di esempio:

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


Step 4) Digitare il seguente comando per eseguire il codice di esempio:

python picar-udp-control.py

o se volete usare Python3, digitando:

python3 picar-udp-control.py


Dopo che Python è in esecuzione, la vostra auto è in attesa del comando dal vostro telefono cellulare.

Step 5)Collega il tuo telefono con lo stesso SSID del router wifi che usa il tuo Raspberry Pi. Aprire l’APP, fare clic su Impostazioni, inserire l’indirizzo IP del Raspberry Pi e la porta a 8888 nelle impostazioni:

Ora il tuo può fare clic sui tasti di direzione < > ^ v per far muovere l’auto. Usare il tasto pausa per fermare il movimento dell’auto. se si fa clic sul tasto ostacolo, l’auto farà la guida automatica per evitare gli ostacoli simile a Lezione 3

Se si fa clic su Tracking key, l’auto farà link tracking auto driving simile alla lezione 2

Nota: F1~F6 sono ulteriori funzioni di sviluppo in futuro.

FAQ sull’APP Wifi UDP e sul codice:

D1)Come modificare la velocità della macchina?
R: Se volete cambiare le prestazioni di velocità dell’auto robot, cambiate i valori dei seguenti parametri nella linea 19-21 nel file picar-udp-control.py :

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

D 2) Cosa è successo quando si premono i pulsanti in OSOYOO WiFi UDP Robot Car APP?

R: Quando si preme un pulsante dell’APP, APP invierà un messaggio a lettera singola attraverso il protocollo UDP al dispositivo di destinazione Raspberry Pi

Tasto Messaggio UDP
F1 F
F2 G
F3 H
F4 I
F5 J
F6 K
A
B
R
L
Quadrato E
Ostacolo O
Segui linea T

D3)Come fa il programma python Raspberry Pi a gestire il comando UDP?

R: La linea 290 a 318 mentre il ciclo riceve i dati UDP da APP e li dà al cur_status attuabile, la funzione ticker nella linea 266 – 280 gestisce il 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()

 

Per esempio, quando il tasto APP ▲ è premuto, il valore cur_status è A, quindi la funzione ticker() chiama la funzione forward(mid_speed,mid_speed) per far muovere la macchina in avanti.