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

Dans cette leçon, nous vous apprendrons à utiliser une application mobile pour contrôler une voiture robot via le protocole UDP. Le Raspberry Pi exécutera un programme Python pour recevoir des paquets UDP de l’application.

Non. Image Appareil Qté. Accessories Lien
1 Capteur ultrasonique 1 Vis M1.4*8 x 4
Écrou M1.4 x 4
Acheter
2 Servomoteur 1 Vis autotaraudeuse M2.2 * 8 x 2
Vis autotaraudeuse M2 * 4 x 1
Acheter
3 Support de montage pour capteur à ultrasons 1 Vis M1.4*8 x 4
Écrou M1.4 x 4
Vis autotaraudeuse M2 * 4 x 1
Acheter
4 Module de capteur de suivi 1 Vis en plastique M2.5 x 2
Écrou en plastique M2.5 x2
Pilier en plastique M2.5 x 2
Acheter
5 Câble femelle à femelle 7 broches 25 cm 1 Acheter
6  Fil de raccordement 10 broches femelle à femelle 20 cm quelques
7 Tournevis cruciforme 1 Acheter

Installez d’abord la Leçon 3 (Suivi de ligne )et la Leçon 4 (Évitement d’obstacles ).

Rappelez-vous : Conservez tous les câbles existants installés dans les Leçons 1 à 4.

APPLICATION Robot Wi-Fi Osoyoo recherchez “Osoyoo WIFI UDP Robot APP” dans

Google Play ou Apple Store
(Si vous ne trouvez pas cette APP dans Google Play,
vous pouvez directement télécharger l’APP à partir du lien suivant : https://osoyoo.com/driver/udp-app.apk)

Étape 1) Téléchargez l’application OSOYOO WIFI UDP Robot Car Control
Sur Google Play ou l’App Store, recherchez les mots clés “OSOYOO WIFI UDP Robot Car”. Vous trouverez une application avec une icône orange comme suit (Note : Si vous ne trouvez pas cette APP dans Google Play, vous pouvez directement télécharger l’APP à partir du lien suivant : https://osoyoo.com/driver/udp-app.apk):

Étape 2) Assurez-vous d’avoir installé les bibliothèques rpi.gpio et adafruit-pca9685 dans la Leçon 1.
Étape 3) Tapez la commande suivante pour télécharger le code d’exemple:

wget http://osoyoo.com/driver/servo-steer-car/picar-udp.py

Étape 4) Tapez la commande suivante pour exécuter le code d’exemple:

python picar-udp.py

ou si vous souhaitez utiliser Python3, tapez:

python3 picar-udp.py

Une fois que le code Python ci-dessus est en cours d’exécution, votre voiture attendra les commandes de votre téléphone portable..

Étape 5) Connectez votre téléphone au même réseau Wi-Fi que votre Raspberry Pi. Ouvrez l’application, cliquez sur “Paramètres”, saisissez l’adresse IP de votre Raspberry Pi et le port 8888 dans les paramètres:

Maintenant, vous pouvez cliquer sur les touches de direction < > ^ v pour faire avancer la voiture. Utilisez la touche || pour arrêter le mouvement de la voiture.

Si vous cliquez sur la touche “Obstacle”, la voiture évitera automatiquement les obstacles, comme dans  la Leçon 4.

Si vous cliquez sur la touche “Suivi”, la voiture suivra automatiquement une ligne, comme dans  la Leçon 3.

Remarque : F1~F6 sont des fonctions de développement ultérieur.

FAQ sur l’application WIFI UDP et le code d’exemple:

Q 1) Comment régler la vitesse de la voiture robot ?
R : Si vous souhaitez changer les performances de vitesse de la voiture robot, modifiez les valeurs des paramètres suivants dans les lignes 19 à 21 du fichier picar-udp-control.py:

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) Que se passe-t-il lorsque vous appuyez sur les boutons dans l’application OSOYOO WiFi UDP Robot Car ?
R : Lorsque vous appuyez sur un bouton de l’application, celle-ci envoie un message d’une seule lettre via le protocole UDP à l’appareil cible Raspberry Pi

 

Bouton Message UDP
F1 F
F2 G
F3 H
F4 I
F5 J
F6 K
A
B
R
L
square E
obstacle O
suivi T

Q 3) Comment le programme Python du Raspberry Pi gère-t-il la commande UDP ?
La boucle while des lignes 319 à 347 reçoit des données UDP de l’application et les assigne à la variable cur_status. La fonction ticker des lignes 292 à 307 gère la variable cur_status de la manière suivante
:

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()

Par exemple, lorsque le bouton ▲ est enfoncé dans l’application, la valeur de cur_status est A, puis la fonction ticker() appelle la fonction forward(mid_speed, mid_speed) pour faire avancer la voiture.