Authorized Online Retailers

Where to buy the set with 18650 batteriese and USB charger

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

Where to buy the set with 9V and 18650 battery cases

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

Objective:
In this project we will connect Robot Car to Wifi and Use an APP to control the car through Internet. This is a typical Internet of Things(IoT) Application.

You must complete lesson 5 before you continue on with this lesson.


Parts and Devices:

No. Picture Device Qty. Accessories Link
1 Ultrosonic Sensor 1 M1.4*8 Screw x 4
M1.4 Nut x 4
Click here to buy
2 Servo Motor 1 M2.2*8 Self Tapping Screw x 2
M2*4 Self Tapping Screw x 1
Click here to buy
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
Click here to buy
4 Buzzer Sensor Module 1 M3 Plastic Screw x 1
M3 Plastic Nut x 1
M3 Plastic Pillar x 1
Click here to buy
5 Tracking sensor module 1 M3 Plastic Screw x 2
M3 Plastic Nut x2
M3 Plastic Pillar x 2
Click here to buy
6 7pin 25cm Female to Female Cable 1 Click here to buy
7 20Pin jumper wire Male to female 20cm some Click here to buy
8 Philips screwdriver 1 Click here to buy
9 Hex Screwdriver 1 Click here to buy
10 M2*4 self tapping screw 1
11 M2.2*8 self tapping screw 2
12 M1.4*8 screw and nut 4
13 M3 plastic screw 1
14 M3 plastic pillar 1
15 M3 plastic nut 1

Hardware Installation :

Step 1: Install the smart car basic frame work as per lesson 5. If you don’t install tracking sensor module, please completed installation in Lesson 4.

Step 2: Connect E_TX (Esp8266 TX) pin to Arduino D4(UNO soft serial RX) and E_RX(ESP8266_RX) pin to D5(UNO software serial TX) as per following picture

(Note: Our OSOYOO Uart WiFi shield V1.3 are connected BLE URAT TX/RX ports to D4,D5 with jumper caps by default. If you find the BLE URAT TX/RX ports are connected, you need remove these jumper caps and change to connect ESP URAT E-TX to D4 and E-RX to D5)

Step 3: Connect SG90 servo motor, OSOYOO MODEL X motor driver module and OSOYOO Uart WiFi shield V1.3 as following graph (If you complete wires in lesson 5, please skip this step)

Step 4: Connect ultrasonic module, buzzer module with OSOYOO Uart WiFi shield V1.3 as below connection diagram (If you complete wires in lesson 5, please skip this step)

 

Step 5: Connect tracking sensor module with OSOYOO Uart WiFi shield V1.3 as below connection diagram (If you complete wires in lesson 4, please skip this step)

Note:

1)Please remember to adjust the sensitivity of tracking sensor modules as per link lesson 4
2)Please remember to do Ultrasonic sensor direction alignment as per link lesson 5


Software Installation:

Open-source Arduino
Software(IDE)
Download Arduino IDE here:
https://www.arduino.cc/en/Main/Software?setlang=en
7 zip is a free zip
utility that un-zips zip files
Download 7zip here for free
https://www.7-zip.org/
Osoyoo Wifi Robot APP search “Osoyoo Wifi UDP Robot APP” in
Google Play or Apple Store

Step 1) Download OSOYOO Wifi UDP Robot Car control APP
In Google Play or Apple Store, please search key words “OSOYOO Wifi UDP Robot Car”, you will find an orange icon APP as following:

Step 2) Please download the library zip file from WiFiEsp-master .Open Arduino IDE ->click Sketch ->Include Library ->Add .ZIP library , then load above zip file into Arduino.

Step 3) Arduino Sketch code Installation:
Osoyoo V2 Robot Car can work in two Wifi modes: STA mode and AP mode. The Arduino sketches for these two modes are different. Let’s explain these two modes one by one

A)STA mode
In STA mode, V2.1 Robot Car will be a client device of your LAN router. You need save the SSID name and password of your LAN router in Arduino sketch.
Once the sketch is running, your router DHCP service will assign an IP address to your robot car and your APP will use this IP address to access your car.

1) Please download STA mode sketch code from v2smartcar-lesson6A . Unzip the file, you will see a folder “v2smartcar-lesson6A”. Open Arduino IDE -> click file -> click Open -> choose code “v2smartcar-lesson6A.ino” in v2smartcar-lesson6A folder, load the code into Arduino

2) You need change the code Line 96 and Line 98 :

char ssid[] = “YOUR_ROUTER_SSID”; // replace this with your router wifi SSID

char pass[] = “YOUR_ROUTER_WIFI_PASSWORD”; // replace with your wifi password

3) Upload the sketch to Arduino. Finally, click the Serial monitor window in upper right corner of Arduino IDE, you will see following result:

4) In this mode, your will see an IP address which is our LAN IP address assigned by my router. Please write down this IP address and click Setting to set up robot IP address and set this IP address to your APP Setting section and Port to 8888 in settings.

Now your Robot car is connected to your LAN, you can use Mobile phone under same LAN to control the robot car. If your APP is in WAN, you need to go to your Router Control Panel, forward Port 80 to Robot car LAN IP address, then you can use Router IP to control the car. This feature makes our robot car A REAL INTERNET OF THING device

B)AP mode
Sometimes we do not have a LAN or Wifi Router. In order to control the car, we need to use AP mode.
When working in AP mode, our robot car itself will become a Wifi Hot Spot. Our cell phone can connect to Robot Car as its wifi client. The IP address of Robot is fixed as 192.168.4.1 and It is not connected to WAN.
1) Please download sketch from following link: v2smartcar-lesson6B. Unzip the file, you will see a folder “v2smartcar-lesson6B”. Open Arduino IDE -> click file -> click Open -> choose code “v2smartcar-lesson6B.ino” in v2smartcar-lesson6B folder, load the code into Arduino

2) Open your Arduino Serial monitor, and you will see a similar result as STA mode. A new Wifi SSID “osoyoo_robot” with IP address 192.168.4.1 will show up in the window. This means your Robot car has a Wifi Hot Spot name “osoyoo_robot” , its IP address is 192.168.4.1

3) Connect your cell phone to “osoyoo_robot” wifi hot_spot, and set IP address as “192.168.4.1” and port to 8888 to your APP Setting section

Now your Robot car become a Wifi Hot Spot, you can use Mobile phone control the robot car.

Final Testing:

Trun on the car. Now click Setting to set up robot IP address.

A) In STA mode, you need connect cell phone to the same LAN ssid of your robot car and set IP address same as the Robot IP showed in Arduino Serial Monitor.

B) In AP mode , you need contact your cell phone to “osoyoo_robot” wifi hot_spot and set IP address as 192.168.4.1

you can click the ◄ ► ▲ ▼ direction keys to make the car move. Use || pause key to stop the car movement.

If you click Obstacle key, the car will do obstacle avoidance auto driving similar to Lesson 5

If you click Tracking key, the car will do link tracking auto driving similar to lesson 4
Note: F1~F6 are further development functions in the future.

FAQ about the Wifi UDP APP and sketch Code:

Q1)How to tune the robot car speed?
A: If you want change the speed performance of the robot car, please following parameters in line 11 to 13:

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

SPEED value determines forward moving speed
TURN_SPEED value determines turning speed
SHIFT_SPEED value determines parallel shifting speed

Q 2)What happened when you press  buttons in OSOYOO WiFi UDP Robot Car APP ?
A: When you press a button of the APP, APP will send a single-letter message through UDP protocol to target device (in this example, our Arduino  Wifi Shield)

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

Q3)How does Arduino handle the UDP command?
Following switch(c) statements in v2smartcar-lesson6 sketch file are handling the UDP command

            switch (c)    //serial control instructions
            {   
  
               case 'A':Drive_Status=MANUAL_DRIVE; Drive_Num=GO_ADVANCE;  WorkMode="GO_ADVANCE";break;
               case 'L':Drive_Status=MANUAL_DRIVE; Drive_Num=GO_LEFT; WorkMode="GO_LEFT";break;
               case 'R':Drive_Status=MANUAL_DRIVE; Drive_Num=GO_RIGHT;WorkMode="GO_RIGHT";break;
               case 'B':Drive_Status=MANUAL_DRIVE; Drive_Num=GO_BACK;WorkMode="GO_BACK";break;
               case 'E':Drive_Status=MANUAL_DRIVE; Drive_Num=STOP_STOP;WorkMode="STOP_STOP";break;
               case 'O':Drive_Status=AUTO_DRIVE_UO;Serial.println("go OBSTACLE");WorkMode="OBSTACLE";break;
               case 'T':Drive_Status=AUTO_DRIVE_LF;WorkMode="line follow";break;
               case 'G':track_speed=track_speed+10;
                        if(track_speed>200) track_speed=200
                         ;break;
               case 'J':track_speed=track_speed-10;
                        if(track_speed<80) track_speed=80
                         ;break;
               default:break;
              } //END OF ACTION SWITCH

In above code, c in switch() brackets is the UDP data sent from cell phone APP. Once APP ▲ key is pressed, then case ‘A’ line will handle the command and make car move ahead.