I.Obiettivo
II.Parts and Devices
III. Installazione hardware
IV. Installazione software
VI.Come giocare

Buy from US Buy from UK Besorgen DE Acquistare IT Acheter FR Comprar ES ここでご購入を!


In questo progetto, collegheremo la Robot Car al Wi-Fi e utilizzeremo un’app per controllare l’auto tramite Wi-Fi. Questa è una tipica applicazione Internet delle cose (IoT).

La Lezione 1, Lezione 2, Lezione 3 devono essere completate prima di svolgere questa lezione.

Scarica i tutorial in PDF:https://osoyoo.com/manual/2021006600.pdf

Video di installazione dell’auto robot OSOYOO: https://osoyoo.com/manual/2021006600.html


OSOYOO Telaio per auto robotica a ruote mecanum x1
Ruote e motori OSOYOO x4 (ruote sinistre x2/ruote destre x2)
Scheda OSOYOO Mega2560, completamente compatibile con Arduino UNO/Mega2560 x1
Shield Wi-Fi Uart OSOYOO x1
Scheda driver OSOYOO Model Y x1
Voltmetro OSOYOO x1
Scatola per batterie OSOYOO x1
Cavo jumper femmina-femmina a 3 pin OSOYOO x1
Cavo jumper maschio-femmina a 6 pin OSOYOO x2
Cavo jumper maschio-femmina a 10 pin OSOYOO x1
Cavo XH.25 femmina-femmina a 2 pin OSOYOO x1
Batterie 18650 (3.7V) x2
Caricabatterie x1


Se hai completato tutte le lezioni da 1 a 3 e la lezione 5 (driver di imitazione Bluetooth), ti prego di mantenere tutte le connessioni delle lezioni come sono attualmente. Successivamente, scollega il modulo Bluetooth dallo shield Wi-Fi.

Passaggio 1: Rimuovi la connessione B_TX a D18 e B_RX a D19.
Passaggio 2: Collega E_RX a D18 (TX1) ed E_TX a D19 (RX1). Solo i terminali che iniziano con “B_” devono essere scollegati. L’ordine dei pin TX e RX è invertito rispetto al modulo Bluetooth.


Software Arduino open source (IDE) Scarica l’IDE di Arduino qui:
https://www.arduino.cc/en/Main/Software?setlang=en
7 zip è un’utilità zip gratuita che decomprime i file zip Scarica 7zip qui gratuitamente
https://www.7-zip.org/

Passo 1: Installa l’ultima versione dell’IDE di Arduino (Se hai una versione successiva alla 1.1.16 dell’IDE di Arduino, salta questo passaggio). Scarica l’IDE di Arduino da https://www.arduino.cc/en/Main/Software?setlang=en,quindi installa il software.

Passo 2: Scarica il file zip della libreria WiFiEsp-master.zip. Apri l’IDE di Arduino → clicca su Sketch → Include Libreria → Aggiungi libreria .ZIP, quindi carica il file zip sopra menzionato in Arduino.

Passo 3: Scarica il file https://osoyoo.com/driver/mecanum_acrylic_chassis_v2/mc-lesson6.zip, decomprimi il file zip scaricato mc-lesson6.zip. All’interno vedrai una cartella chiamata mc-lesson6.

Passo 4: Installazione dell’APP – devi cercare “OSOYOO Wi-Fi UDP Robot Car Controller” su Google Play o sull’Apple Store, quindi installa questa APP.

Passo 5: Installazione del codice Arduino Sketch:

Scompatta il file scaricato, entra nella cartella mc-lesson6, vedrai due sottocartelle: mc-lesson6A e mc-lesson6B.

Queste due cartelle contengono il programma per due modalità Wi-Fi: modalità AP e modalità STA. Gli sketch di Arduino per queste due modalità sono diversi. Spieghiamo queste due modalità una per volta.

Quando si lavora in modalità AP, la nostra auto robot diventerà un punto di accesso Wi-Fi. Il nostro telefono cellulare può connettersi all’auto robot come suo cliente Wi-Fi. L’indirizzo IP del robot è fisso a 192.168.4.1. In questo caso, sia l’auto robot che il telefono cellulare non sono collegati a Internet.

(1) Scompatta il file mc-lesson6.zip, vedrai una cartella chiamata mc-lesson6A, carica il codice in Arduino.

(2) Apri il monitor seriale di Arduino e vedrai un risultato simile alla modalità AP. Nella finestra apparirà un nuovo SSID Wi-Fi chiamato “osoyoo_robot” con indirizzo IP 192.168.4.1. Ciò significa che la tua auto robot ha un punto di accesso Wi-Fi chiamato “osoyoo_robot” con indirizzo IP 192.168.4.1

(3)Ora la tua auto robot è diventata un punto di accesso Wi-Fi e ha impostato l’indirizzo IP come “192.168.4.1” nella sezione Impostazioni dell’app.

(4) Collega il tuo telefono cellulare alla rete Wi-Fi “osoyoo_robot” e potrai utilizzare il telefono cellulare per controllare l’auto robot.

(5)Puoi cliccare sui tasti direzionali ◄ ► ▲ ▼ per far muovere l’auto.

Utilizza il tasto di pausa “||” per fermare il movimento dell’auto.

Clicca su “Obstacle” per spostarti sul lato sinistro, clicca su “Tracking” per spostarti sul lato destro.

Clicca su “F1” per un movimento diagonale in alto a sinistra, clicca su “F3” per un movimento diagonale in alto a destra.

Clicca su “F4” per un movimento diagonale all’indietro a sinistra, clicca su “F6” per un movimento diagonale all’indietro a destra.

In modalità STA, l’auto robot non funziona come un punto di accesso Wi-Fi. Invece, diventa un nodo Internet nella tua rete LAN. Devi comunicare allo sketch di Arduino quale SSID e password Wi-Fi sono del tuo router locale, quindi Arduino comunica con il router e ottiene il proprio indirizzo IP LAN dal server DHCP. Puoi utilizzare un’app mobile per accedere all’indirizzo IP dell’auto robot e controllarne il movimento.

(1) Scompatta il file mc-lesson6, vedrai una cartella chiamata mc-lesson6b, quindi carica il codice mc-lesson6b.ino in Arduino.

(2) Devi modificare la riga 180 e la riga 181 del codice :

char ssid[] = “YOUR_ROUTER_SSID”; // sostituiscilo con l’SSID wifi del tuo router
char pass[] = “YOUR_ROUTER_WIFI_PASSWORD”; //sostituisci con la tua password wifi

(3) Carica lo sketch su Arduino. Infine, fai clic sulla finestra del monitor seriale nell’angolo in alto a destra dell’IDE di Arduino e vedrai il seguente risultato:

(4)In questa modalità, vedrai un indirizzo IP, che è il nostro indirizzo IP LAN assegnato dal mio router. Ti prego di annotare questo indirizzo IP 192.168.50.44 e fare clic su “Setting” per impostare l’indirizzo IP del robot e impostare quest’ultimo indirizzo IP 192.168.50.44 nella sezione Impostazioni dell’app (non è necessario modificare la porta predefinita 8888 nell’app).

(5)Ora la tua auto robot è connessa alla tua rete LAN e puoi utilizzare il telefono cellulare nello stesso LAN per controllarla. Se la tua app è in WAN, devi accedere al pannello di controllo del tuo router e inoltrare la porta 80 all’indirizzo IP LAN dell’auto robot, in questo modo potrai utilizzare l’indirizzo IP del router per controllare l’auto. Questa caratteristica rende la nostra auto robot un vero dispositivo Internet delle cose.

(6Puoi cliccare sui tasti direzionali ◄ ► ▲ ▼ per far muovere l’auto. Utilizza il tasto di pausa “||” per fermare il movimento dell’auto.
Clicca su “Obstacle” per spostarti sul lato sinistro, clicca su “Tracking” per spostarti sul lato destro.
Clicca su “F1” per un movimento diagonale in alto a sinistra, clicca su “F3” per un movimento diagonale in alto a destra.
Clicca su “F4” per un movimento diagonale all’indietro a sinistra, clicca su “F6” per un movimento diagonale all’indietro a destra..


FAQ sull’APP WIFI UDP e sul codice dello sketch:

Q1) Come regolare la velocità dell’auto robot?
R: Se desideri modificare le prestazioni di velocità dell’auto robot, segui questi parametri nella riga 11-13:

#define SPEED 85
#define TURN_SPEED 90
#define SHIFT_SPEED 130

Il valore di SPEED determina la velocità di avanzamento
Il valore di TURN_SPEED determina la velocità di svolta
Il valore di SHIFT_SPEED determina la velocità di spostamento parallelo

Q2) Cosa succede quando si preme i pulsanti nell’APP OSOYOO WiFi UDP Robot Car?
R: Quando si preme un pulsante dell’APP, quest’ultima invia un messaggio di un singolo carattere tramite il protocollo UDP al dispositivo di destinazione (in questo caso, il nostro Arduino WIFI Shield)

Q3) Come gestisce Arduino il comando UDP?

Le righe 230-245 nel file mecanum-2560-lesson5A.ino sono il codice che reagisce al comando del telefono cellulare. Ad esempio, quando viene premuto ▲, secondo la tabella Q1, viene inviato un comando di lettera “A” dal telefono cellulare ad Arduino. La dichiarazione della riga 233 case ‘A’ … farà muovere l’auto in avanti.

char c=packetBuffer[0];
switch (c) //serial control instructions
{
case ‘A’:go_advance(SPEED);;break;
case ‘L’:left_turn(TURN_SPEED);break;
case ‘R’:right_turn(TURN_SPEED);break;
case ‘B’:go_back(SPEED);break;
case ‘E’:stop_Stop();break;
case ‘F’:left_shift(0,150,0,150);break; //left ahead
case ‘H’:right_shift(180,0,150,0);break; //right ahead
case ‘I’:left_shift(150,0,150,0); break;//left back
case ‘K’:right_shift(0,130,0,130); break;//right back
case ‘O’:left_shift(200,150,150,200); break;//left shift
case ‘T’:right_shift(200,200,200,200); break;//left shift
default:break;
}