Robots suiveurs 2 : Différence entre versions
| Ligne 54 : | Ligne 54 : | ||
Le principe de l'application doit donc gérer les actions du robot en envoyant une chaîne de caractères (correspondant aux commandes vues précédemment) et gérer la distance de l'esclave 1 par rapport au robot et celle de l'esclave 2 par rapport à l'esclave 1. Nous devons donc mettre en place autant de boutons que d'actions possibles et 2 zones de texte permettant de récupérer les différentes distances entrées par l'utilisateur.<br /> | Le principe de l'application doit donc gérer les actions du robot en envoyant une chaîne de caractères (correspondant aux commandes vues précédemment) et gérer la distance de l'esclave 1 par rapport au robot et celle de l'esclave 2 par rapport à l'esclave 1. Nous devons donc mettre en place autant de boutons que d'actions possibles et 2 zones de texte permettant de récupérer les différentes distances entrées par l'utilisateur.<br /> | ||
| − | De plus, l'application doit communiquer en Bluetooth avec le robot donc nous ajoutons un boutons permettant de voir et sélectionner les périphériques connectés en Bluetooth disponibles. (cf. photo suivante) | + | De plus, l'application doit communiquer en Bluetooth avec le robot donc nous ajoutons un boutons permettant de voir et sélectionner les périphériques connectés en Bluetooth disponibles. (cf. photo suivante)<br /> |
| + | <br /> | ||
| + | Nous créons l'application à l'aide de App Inventor 2 car ce dernier gère plus facilement le Bluetooth. En effet, après plusieurs essais sous Android Studio, nous n'arrivions toujours pas à gérer le Bluetooth et l'émulateur était vraiment très lent. App Inventor 2, utilise le prince de "Drag & Drope" ce qui permet de créer aisément une interface graphique ainsi que le programme.<br /> | ||
| + | <br /> | ||
| + | Concernant le code, à chaque événement sur un bouton, on envoie la chaîne de caractères correspondante avec un "/" afin que la réception Bluetooth puisse séparer les différentes informations qu'elle reçoit. <br /> | ||
| + | Pour la distance, l'utilisateur la rentre dans une zone de texte et appuie sur valider. Donc, au clic, nous récupérons cette valeur que nous mettons dans une variable et que nous envoyons par la suite. | ||
Version du 5 avril 2018 à 12:15
Projet du module Robots connectés 2016/2017.
1. Application et Communication WiFi et Bluetooth
a) Communication WiFi
Il a été constaté qu'en utilisant une carte Sparkfun ESP32 Thing en tant que point d'accès et une autre en client, la communication ne semble pas fonctionner lorsque les deux cartes se trouvent à moins de 20cm l'une de l'autre.
De plus, les débits disponibles ne semblent pas dépasser 1 mot/s.
Il semblerait possible d'envoyer un mot clé "ok", puis la distance distS1 entre le slave 1 et le master, puis la distance distS2 entre le slave 2 et le slave 1, puis l'action à réaliser (sur deux caractères).
b) Communication Bluetooth
Il a été mis en oeuvre une communication Bluetooth entre un smartphone et l'ESP32 du maître. Les données reçues sont ensuite aiguillées vers un port série de l'ESP32 pour l'envoyer à la Teensy dans le but de piloter le moteur. Il existe 2 types de communication série, HardwareSerial et SoftwareSerial. Nous avons choisi d'utiliser le SoftwareSerial afin de laisser libre l'UART2 pour la communication avec le LIDAR. Remarque: L'accès à l'UART1 n'est pas immédiat, il faut faire une manipulation (simple) mais qui risque de rendre instable le système. En effet, l'UART1 est connecté à la mémoire FLASH de l'ESP32.
Les librairies utilisées proviennent des liens suivants:
c) Application Android
Afin de diriger le robot maître, il est nécessaire de créer une application android qui va donc envoyer les commandes nécessaires. Nous avons dans un premier temps mis en place des commandes correspondant aux différentes actions réalisables par le robot que nous pouvons retrouver dans le tableau suivant :
| Direction | Commande |
|---|---|
| Avancer | av |
| Reculer | ar |
| Droite | dr |
| Gauche | ga |
| Avant-droit | ad |
| Avant-gauche | ag |
| Arrière-droit | bd |
| Arrière-gauche | bg |
| Chorégraphie rotation | cr |
| Chorégraphie crabe | cc |
| Chorégraphie zigzag | cz |
| Stop | st |
Le principe de l'application doit donc gérer les actions du robot en envoyant une chaîne de caractères (correspondant aux commandes vues précédemment) et gérer la distance de l'esclave 1 par rapport au robot et celle de l'esclave 2 par rapport à l'esclave 1. Nous devons donc mettre en place autant de boutons que d'actions possibles et 2 zones de texte permettant de récupérer les différentes distances entrées par l'utilisateur.
De plus, l'application doit communiquer en Bluetooth avec le robot donc nous ajoutons un boutons permettant de voir et sélectionner les périphériques connectés en Bluetooth disponibles. (cf. photo suivante)
Nous créons l'application à l'aide de App Inventor 2 car ce dernier gère plus facilement le Bluetooth. En effet, après plusieurs essais sous Android Studio, nous n'arrivions toujours pas à gérer le Bluetooth et l'émulateur était vraiment très lent. App Inventor 2, utilise le prince de "Drag & Drope" ce qui permet de créer aisément une interface graphique ainsi que le programme.
Concernant le code, à chaque événement sur un bouton, on envoie la chaîne de caractères correspondante avec un "/" afin que la réception Bluetooth puisse séparer les différentes informations qu'elle reçoit.
Pour la distance, l'utilisateur la rentre dans une zone de texte et appuie sur valider. Donc, au clic, nous récupérons cette valeur que nous mettons dans une variable et que nous envoyons par la suite.
Participants : ARNALDO ALVES Lucas, BOUCHIKHI Al mehdi, BRIALON Auriane, CARVALHO FONTÃO Caroline, DALIL Hajar, GALLEY Nicolas, KASZUBIAK Grégory, KRA Kouassi, OKITAUDJI Florian, RAMOS Théo, SANE Baboucar, SILVESTRE Charles, VERGEZ Romain.