Développeur>Tutoriels>Contrôle d’un robot avec un smartphone
Un tutoriel pour contrôler un robot avec l’aide d’un smartphone sous Android.
Le Programme la carte Esus
Voici le programme pour le microcontrôleur ESP8266 :
#include <ESP8266WiFi.h> #include <esusBoard.h> const char* ssid = "yout_SSID"; const char* password = "your_PASSWORD"; // serveur WiFiServer server(80); // adresse IP IPAddress ip(192, 168, 1, 13); IPAddress gateway(192,168,1,1); IPAddress subnet(255,255,255,0); void setup() { // initialisation de la carte Esus initEsusBoard(); // initialisation du port serie Serial.begin(115200); delay(10); // Connection au reseau wifi Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); WiFi.config(ip, gateway, subnet); // attendre la connexion while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } // la carte Esus est connecter au reseau wifi Serial.println(""); Serial.println("WiFi connected"); // Démarrage du serveur server.begin(); Serial.println("Server started"); // Affichage de l'adresse IP sur le port serie Serial.print("Use this URL to connect: "); Serial.print("http://"); Serial.print(WiFi.localIP()); Serial.println("/"); } void loop() { // vérification si un client est connecté WiFiClient client = server.available(); // attendre la connexion d'un client while(client != true) { client = server.available(); Serial.println("Attendre client..."); delay(100); } // Un client est connecté Serial.println("new client"); while(!client.available()){ delay(1); } // lecture de la requete du client String request = client.readStringUntil('\r'); Serial.println(request); client.flush(); // commande avancer if (request.indexOf("/CMD=FOR") != -1) { Serial.println("forward"); motors1_set(1023,DIR_BACK); motors2_set(1023, DIR_BACK); } // commande reculer if (request.indexOf("/CMD=BAK") != -1) { Serial.println("back"); motors1_set(1023,DIR_FORWARD); motors2_set(1023, DIR_FORWARD); } // commande tourner a droite if (request.indexOf("/CMD=TR") != -1) { Serial.println("turn right"); motors1_set(1023,DIR_BACK); motors2_set(1023, DIR_FORWARD); } // commande tourner a gauche if (request.indexOf("/CMD=TL") != -1) { Serial.println("turn left"); motors1_set(1023,DIR_FORWARD); motors2_set(1023, DIR_BACK); } // commande tourner stop if (request.indexOf("/CMD=STP") != -1) { Serial.println("turn stop"); motors1_set(0,DIR_FORWARD); motors2_set(0,DIR_BACK); } Serial.println("Client disonnected"); Serial.println(""); }
- Modifier votre SSID et password :
const char* ssid = "your_SSID"; const char* password = "your_PASSWORD";
- Ensuite vous pouvez compiler et télécharger le programme dans la carte Esus.
L’application Android
Maintenant, nous allons réaliser l’application Android grâce à App Inventor développé par Google et basée sur une interface graphique similaire à Scratch.
- Rendez-vous ici : http://appinventor.mit.edu/explore/
- Crée un nouveau projet : robot_control
- Vous devez arriver sur l’interface de votre application :
- Alignement horizontal de l’interface : centrer
- Ajouter un bouton :
- Modifier le texte du bouton : AVANCER
- Ajouter d’autres boutons avec :
- RECULER
- DROITE
- GAUCHE
- Utiliser la disposition en tableau avec 3 colonnes et 3 lignes :
- Ajouter l’Afficheur Web :
- Rendre l’afficheur web non visible
Réalisation des blocs :
- Voici le programme en bloc pour la gestion des boutons :
Construction de l’application
- Construction de l’application sur votre ordinateur :
- Transférer l’application sur votre smartphone.
- Autoriser l’installation de l’application sur votre téléphone.