{"id":1599,"date":"2016-11-04T12:30:31","date_gmt":"2016-11-04T11:30:31","guid":{"rendered":"http:\/\/www.macerobotics.com\/?p=1599"},"modified":"2016-12-15T15:33:23","modified_gmt":"2016-12-15T14:33:23","slug":"controle-dun-robot-avec-un-smartphone","status":"publish","type":"post","link":"https:\/\/www.macerobotics.com\/?p=1599","title":{"rendered":"Contr\u00f4le d&#8217;un robot avec un smartphone"},"content":{"rendered":"<p><span style=\"color: #ff9900;\"><em><a href=\"http:\/\/fr.macerobotics.com\/developpeur\/\">D\u00e9veloppeur<\/a><\/em><\/span><em>&gt;<a href=\"http:\/\/fr.macerobotics.com\/tutoriel-pour-la-carte-esus\/\">Tutoriels<\/a>&gt;Contr\u00f4le d&#8217;un robot avec un smartphone<\/em><\/p>\n<p>Un tutoriel pour contr\u00f4ler un robot avec l&#8217;aide d&#8217;un smartphone sous Android.<\/p>\n<p><a href=\"http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/11\/esus_robot_phone.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1643 aligncenter\" src=\"http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/11\/esus_robot_phone.jpg\" alt=\"esus_robot_phone\" width=\"532\" height=\"340\" \/><\/a><\/p>\n<h1>Le Programme la carte Esus<\/h1>\n<p>Voici le programme pour le microcontr\u00f4leur ESP8266 :<\/p>\n<pre><strong>#include &lt;ESP8266WiFi.h&gt;\r\n#include &lt;esusBoard.h&gt;\r\n\u00a0\r\nconst char* ssid = \"yout_SSID\";\r\nconst char* password = \"your_PASSWORD\";\r\n\r\n<span style=\"color: #008000;\">\/\/ serveur<\/span>\r\nWiFiServer server(80);\r\n\r\n<span style=\"color: #008000;\">\/\/ adresse IP<\/span>\r\nIPAddress ip(192, 168, 1, 13); \r\nIPAddress gateway(192,168,1,1);\r\nIPAddress subnet(255,255,255,0); \r\n\u00a0\r\nvoid setup() \r\n{\r\n\r\n\u00a0 <span style=\"color: #008000;\">\/\/ initialisation de la carte Esus<\/span>\r\n\u00a0 initEsusBoard();\r\n\r\n\u00a0 <span style=\"color: #008000;\">\/\/ initialisation du port serie<\/span>\r\n\u00a0 Serial.begin(115200);\r\n\u00a0 delay(10);\r\n\u00a0\r\n\u00a0 <span style=\"color: #008000;\">\/\/ Connection au reseau wifi<\/span>\r\n\u00a0 Serial.println();\r\n\u00a0 Serial.println();\r\n\u00a0 Serial.print(\"Connecting to \");\r\n\u00a0 Serial.println(ssid);\r\n\u00a0\r\n\u00a0 WiFi.begin(ssid, password);\r\n\u00a0 WiFi.config(ip, gateway, subnet);\r\n\r\n\u00a0 <span style=\"color: #008000;\">\/\/ attendre la connexion<\/span>\r\n\u00a0 while (WiFi.status() != WL_CONNECTED) {\r\n\u00a0\u00a0\u00a0 delay(500);\r\n\u00a0\u00a0\u00a0 Serial.print(\".\");\r\n\u00a0 }\r\n\r\n\u00a0 <span style=\"color: #008000;\">\/\/ la carte Esus est connecter au reseau wifi<\/span>\r\n\u00a0 Serial.println(\"\");\r\n\u00a0 Serial.println(\"WiFi connected\");\r\n\u00a0\r\n\u00a0 <span style=\"color: #008000;\">\/\/ D\u00e9marrage du serveur<\/span>\r\n\u00a0 server.begin();\r\n\u00a0 Serial.println(\"Server started\");\r\n\u00a0\r\n\u00a0 <span style=\"color: #008000;\">\/\/ Affichage de l'adresse IP sur le port serie<\/span>\r\n\u00a0 Serial.print(\"Use this URL to connect: \");\r\n\u00a0 Serial.print(\"http:\/\/\");\r\n\u00a0 Serial.print(WiFi.localIP());\r\n\u00a0 Serial.println(\"\/\");\r\n\u00a0\r\n}\r\n\u00a0\r\nvoid loop() \r\n{\r\n\u00a0 \r\n\u00a0 <span style=\"color: #008000;\">\/\/ v\u00e9rification si un client est connect\u00e9<\/span>\r\n\u00a0 WiFiClient client = server.available();\r\n\r\n\u00a0 <span style=\"color: #008000;\">\/\/ attendre la connexion d'un client<\/span>\r\n\u00a0 while(client != true)\r\n\u00a0 {\r\n\u00a0\u00a0\u00a0 client = server.available();\r\n\u00a0\u00a0\u00a0 Serial.println(\"Attendre client...\");\r\n\u00a0\u00a0\u00a0 delay(100);\r\n\u00a0 }\r\n\u00a0\r\n\u00a0<span style=\"color: #008000;\"> \/\/ Un client est connect\u00e9<\/span>\r\n\u00a0 Serial.println(\"new client\");\r\n\u00a0 while(!client.available()){\r\n\u00a0\u00a0\u00a0 delay(1);\r\n\u00a0 }\r\n\r\n\u00a0 <span style=\"color: #008000;\">\/\/ lecture de la requete du client<\/span>\r\n\u00a0 String request = client.readStringUntil('\\r');\r\n\u00a0 \r\n\u00a0 Serial.println(request);\r\n\u00a0 client.flush();\r\n\r\n\u00a0 <span style=\"color: #008000;\">\/\/ commande avancer<\/span>\r\n\u00a0 if (request.indexOf(\"\/CMD=FOR\") != -1) \r\n\u00a0 {\r\n\u00a0\u00a0\u00a0 Serial.println(\"forward\");\r\n\u00a0\u00a0\u00a0 motors1_set(1023,DIR_BACK);\r\n\u00a0\u00a0\u00a0 motors2_set(1023, DIR_BACK);\r\n\u00a0 }\r\n\r\n\u00a0 <span style=\"color: #008000;\">\/\/ commande reculer<\/span>\r\n\u00a0 if (request.indexOf(\"\/CMD=BAK\") != -1) \r\n\u00a0 {\r\n\u00a0\u00a0\u00a0 Serial.println(\"back\");\r\n\u00a0\u00a0\u00a0 motors1_set(1023,DIR_FORWARD);\r\n\u00a0\u00a0\u00a0 motors2_set(1023, DIR_FORWARD);\r\n\u00a0 }\r\n\r\n\u00a0 <span style=\"color: #008000;\">\/\/ commande tourner a droite<\/span>\r\n\u00a0 if (request.indexOf(\"\/CMD=TR\") != -1) \r\n\u00a0 {\r\n\u00a0\u00a0\u00a0 Serial.println(\"turn right\");\r\n\u00a0\u00a0\u00a0 motors1_set(1023,DIR_BACK);\r\n\u00a0\u00a0\u00a0 motors2_set(1023, DIR_FORWARD);\r\n\u00a0 }\r\n\r\n\u00a0 <span style=\"color: #008000;\">\/\/ commande tourner a gauche<\/span>\r\n\u00a0 if (request.indexOf(\"\/CMD=TL\") != -1) \r\n\u00a0 {\r\n\u00a0\u00a0\u00a0 Serial.println(\"turn left\");\r\n\u00a0\u00a0\u00a0 motors1_set(1023,DIR_FORWARD);\r\n\u00a0\u00a0\u00a0 motors2_set(1023, DIR_BACK);\r\n\u00a0 }\r\n\r\n\u00a0 <span style=\"color: #008000;\">\/\/ commande tourner stop<\/span>\r\n\u00a0 if (request.indexOf(\"\/CMD=STP\") != -1) \r\n\u00a0 {\r\n\u00a0\u00a0\u00a0 Serial.println(\"turn left\");\r\n\u00a0\u00a0\u00a0 motors1_set(0,DIR_FORWARD);\r\n\u00a0\u00a0\u00a0 motors2_set(0, DIR_BACK);\r\n\u00a0 }\r\n\r\n\u00a0 Serial.println(\"Client disonnected\");\r\n\u00a0 Serial.println(\"\");\r\n\u00a0\r\n}<\/strong><\/pre>\n<ul>\n<li>Modifier votre SSID et password :<\/li>\n<\/ul>\n<pre>const char* ssid = \"<strong>your_SSID<\/strong>\";\r\nconst char* password = \"<strong>your_PASSWORD<\/strong>\";<\/pre>\n<ul>\n<li>Ensuite vous pouvez compiler et t\u00e9l\u00e9charger le programme dans la carte Esus.<\/li>\n<\/ul>\n<h1>L\u2019application Android<\/h1>\n<p>Maintenant, nous allons r\u00e9aliser l\u2019application Android gr\u00e2ce \u00e0 App Inventor d\u00e9velopp\u00e9 par Google et bas\u00e9e sur une interface graphique similaire \u00e0 Scratch.<\/p>\n<ul>\n<li>Rendez-vous ici : <a href=\"http:\/\/appinventor.mit.edu\/explore\/\">http:\/\/appinventor.mit.edu\/explore\/<\/a><\/li>\n<li>Cr\u00e9e un nouveau projet : robot_control<\/li>\n<\/ul>\n<p><a href=\"http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/11\/CR_1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1630 aligncenter\" src=\"http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/11\/CR_1.png\" alt=\"cr_1\" width=\"435\" height=\"421\" \/><\/a><\/p>\n<ul>\n<li>Vous devez arriver sur l\u2019interface de votre application :<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1374\" src=\"http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/09\/app3.png\" sizes=\"auto, (max-width: 1146px) 100vw, 1146px\" srcset=\"http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/09\/app3.png 1146w, http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/09\/app3-300x126.png 300w, http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/09\/app3-768x322.png 768w, http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/09\/app3-1024x429.png 1024w, http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/09\/app3-600x251.png 600w\" alt=\"app3\" width=\"1146\" height=\"480\" \/><\/p>\n<ul>\n<li>Alignement horizontal de l\u2019interface : centrer<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1375\" src=\"http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/09\/app4.png\" sizes=\"auto, (max-width: 1340px) 100vw, 1340px\" srcset=\"http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/09\/app4.png 1340w, http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/09\/app4-300x74.png 300w, http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/09\/app4-768x190.png 768w, http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/09\/app4-1024x254.png 1024w, http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/09\/app4-600x149.png 600w\" alt=\"app4\" width=\"1340\" height=\"332\" \/><\/p>\n<ul>\n<li>Ajouter un bouton :<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1376\" src=\"http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/09\/app5.png\" sizes=\"auto, (max-width: 1142px) 100vw, 1142px\" srcset=\"http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/09\/app5.png 1142w, http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/09\/app5-300x92.png 300w, http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/09\/app5-768x235.png 768w, http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/09\/app5-1024x313.png 1024w, http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/09\/app5-600x183.png 600w\" alt=\"app5\" width=\"1142\" height=\"349\" \/><\/p>\n<ul>\n<li>Modifier le texte du bouton : <strong>AVANCER<\/strong><\/li>\n<li>Ajouter d&#8217;autres boutons avec : <strong><br \/>\n<\/strong><\/p>\n<ul>\n<li style=\"text-align: left;\"><strong>RECULER<\/strong><\/li>\n<li style=\"text-align: left;\"><strong>DROITE<\/strong><\/li>\n<li style=\"text-align: left;\"><strong>GAUCHE<\/strong><\/li>\n<\/ul>\n<\/li>\n<li>Utiliser la disposition en tableau avec 3 colonnes et 3 lignes :<\/li>\n<\/ul>\n<p><a href=\"http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/11\/CR_2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1633\" src=\"http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/11\/CR_2.png\" alt=\"cr_2\" width=\"1166\" height=\"366\" \/><\/a><\/p>\n<ul>\n<li>Ajouter <strong>l\u2019Afficheur Web :<\/strong><\/li>\n<\/ul>\n<p><a href=\"http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/11\/CR_3-1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1636\" src=\"http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/11\/CR_3-1.png\" alt=\"cr_3\" width=\"1119\" height=\"583\" \/><\/a><\/p>\n<ul>\n<li>Rendre l\u2019afficheur web non visible<strong><br \/>\n<\/strong><\/li>\n<\/ul>\n<h1><strong>R\u00e9alisation des blocs :<\/strong><\/h1>\n<ul>\n<li>Voici le programme en bloc pour la gestion des boutons :<\/li>\n<\/ul>\n<p><a href=\"http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/11\/CR_5.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1640\" src=\"http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/11\/CR_5.png\" alt=\"cr_5\" width=\"555\" height=\"547\" \/><\/a><\/p>\n<h1>Construction de l\u2019application<\/h1>\n<ul>\n<li>Construction de l\u2019application sur votre ordinateur :<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1382\" src=\"http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/09\/app10.png\" sizes=\"auto, (max-width: 682px) 100vw, 682px\" srcset=\"http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/09\/app10.png 682w, http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/09\/app10-300x63.png 300w, http:\/\/fr.macerobotics.com\/wp-content\/uploads\/sites\/4\/2016\/09\/app10-600x127.png 600w\" alt=\"app10\" width=\"682\" height=\"144\" \/><\/p>\n<ul>\n<li>Transf\u00e9rer l\u2019application sur votre smartphone.<\/li>\n<li>Autoriser l\u2019installation de l\u2019application sur votre t\u00e9l\u00e9phone.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>D\u00e9veloppeur&gt;Tutoriels&gt;Contr\u00f4le d&#8217;un robot avec un smartphone Un tutoriel pour contr\u00f4ler un robot avec l&#8217;aide d&#8217;un smartphone sous Android. Le Programme la carte Esus Voici le programme pour le microcontr\u00f4leur ESP8266 : #include &lt;ESP8266WiFi.h&gt; #include &lt;esusBoard.h&gt; \u00a0 const char* ssid = &#8220;yout_SSID&#8221;; const char* password = &#8220;your_PASSWORD&#8221;; \/\/ serveur WiFiServer server(80); \/\/ adresse IP IPAddress ip(192, &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[44],"tags":[32,48,40,7,49],"class_list":["post-1599","post","type-post","status-publish","format-standard","hentry","category-esus","tag-arduino","tag-carte-esus","tag-esp8266","tag-robot","tag-smartphone"],"_links":{"self":[{"href":"https:\/\/www.macerobotics.com\/index.php?rest_route=\/wp\/v2\/posts\/1599","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.macerobotics.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.macerobotics.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.macerobotics.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.macerobotics.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1599"}],"version-history":[{"count":1,"href":"https:\/\/www.macerobotics.com\/index.php?rest_route=\/wp\/v2\/posts\/1599\/revisions"}],"predecessor-version":[{"id":1600,"href":"https:\/\/www.macerobotics.com\/index.php?rest_route=\/wp\/v2\/posts\/1599\/revisions\/1600"}],"wp:attachment":[{"href":"https:\/\/www.macerobotics.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1599"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.macerobotics.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1599"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.macerobotics.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1599"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}