{"id":1842,"date":"2017-06-09T16:28:13","date_gmt":"2017-06-09T15:28:13","guid":{"rendered":"http:\/\/www.macerobotics.com\/?p=1842"},"modified":"2017-06-09T17:56:23","modified_gmt":"2017-06-09T16:56:23","slug":"partie-2-controle-du-robot-mrduino-wireless-par-udp","status":"publish","type":"post","link":"https:\/\/www.macerobotics.com\/?p=1842","title":{"rendered":"Partie 2 : Contr\u00f4le du robot MRduino Wireless par UDP"},"content":{"rendered":"<p>Un tutoriel pour contr\u00f4ler le robot MRduino Wireless par UDP avec un programme python.<\/p>\n<p style=\"text-align: center;\"><strong>UDP = User Datagram Protocol<\/strong><\/p>\n<p><a href=\"http:\/\/www.macerobotics.com\/wp-content\/uploads\/2017\/05\/MRduino-wireless_UDP.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1811\" src=\"http:\/\/www.macerobotics.com\/wp-content\/uploads\/2017\/05\/MRduino-wireless_UDP.png\" alt=\"MRduino-wireless_UDP\" width=\"1458\" height=\"727\" srcset=\"https:\/\/www.macerobotics.com\/wp-content\/uploads\/2017\/05\/MRduino-wireless_UDP.png 1458w, https:\/\/www.macerobotics.com\/wp-content\/uploads\/2017\/05\/MRduino-wireless_UDP-300x150.png 300w, https:\/\/www.macerobotics.com\/wp-content\/uploads\/2017\/05\/MRduino-wireless_UDP-768x383.png 768w, https:\/\/www.macerobotics.com\/wp-content\/uploads\/2017\/05\/MRduino-wireless_UDP-1024x511.png 1024w, https:\/\/www.macerobotics.com\/wp-content\/uploads\/2017\/05\/MRduino-wireless_UDP-600x299.png 600w\" sizes=\"auto, (max-width: 1458px) 100vw, 1458px\" \/><\/a><\/p>\n<p>Le contr\u00f4le du robot est r\u00e9aliser par un programme en langage python.<\/p>\n<h2>Le programme pour le robot<\/h2>\n<p>Ce programme permet au robot MRduino Wireless de<\/p>\n<p>Il faut modifier votre SSID et mot de passe de votre r\u00e9seau Wifi :<\/p>\n<pre><strong>const char* ssid = \"YOUR_SSID\";\u00a0 <\/strong>\r\n<strong>const char* pass = \"YOU_PASSWORD\";\u00a0 \r\n<\/strong><\/pre>\n<p>Le programme complet :<\/p>\n<pre><strong>#include &lt;ESP8266WiFi.h&gt;<\/strong>\r\n<strong>#include &lt;WiFiUDP.h&gt;<\/strong>\r\n<strong>#include &lt;mrduino.h&gt;<\/strong>\r\n\r\n<strong>static void read_receptionCommande(String Commande);<\/strong>\r\n\r\n<strong>int status = WL_IDLE_STATUS;<\/strong>\r\n<strong>const char* ssid = \"YOUR_SSID\";\u00a0 \/\/\u00a0 your network SSID (name)<\/strong>\r\n<strong>const char* pass = \"YOUR_PASS\";\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ your network password<\/strong>\r\n\r\n<strong>unsigned int localPort = 12345; \u00a0<\/strong>\r\n\r\n<strong>WiFiUDP Udp;<\/strong>\r\n<strong>int tries=0;<\/strong>\r\n\r\n<strong>void setup()<\/strong>\r\n<strong>{<\/strong>\r\n<strong>\u00a0 \/\/ Open serial communications and wait for port to open:<\/strong>\r\n<strong>\u00a0 Serial.begin(115200);<\/strong>\r\n\r\n<strong>\u00a0 \/\/ setting up Station AP<\/strong>\r\n<strong>\u00a0 WiFi.begin(ssid, pass);<\/strong>\r\n<strong>\u00a0<\/strong>\r\n<strong>\u00a0 \/\/ Wait for connect to AP<\/strong>\r\n<strong>\u00a0 Serial.print(\"[Connecting]\");<\/strong>\r\n<strong>\u00a0 Serial.print(ssid);<\/strong>\r\n<strong>\u00a0 <\/strong>\r\n<strong>\u00a0 while (WiFi.status() != WL_CONNECTED)<\/strong>\r\n<strong>\u00a0 {<\/strong>\r\n<strong>\u00a0\u00a0\u00a0 delay(500);<\/strong>\r\n<strong>\u00a0\u00a0\u00a0 Serial.print(\".\");<\/strong>\r\n<strong>\u00a0\u00a0\u00a0 tries++;<\/strong>\r\n<strong>\u00a0\u00a0\u00a0 if (tries &gt; 30)<\/strong>\r\n<strong>\u00a0\u00a0\u00a0 {<\/strong>\r\n<strong>\u00a0\u00a0\u00a0\u00a0\u00a0 break;<\/strong>\r\n<strong>\u00a0\u00a0\u00a0 }<\/strong>\r\n<strong>\u00a0 }<\/strong>\r\n<strong>\u00a0 Serial.println();<\/strong>\r\n\r\n<strong>\u00a0 printWifiStatus();<\/strong>\r\n\r\n<strong>\u00a0 Serial.println(\"Connected to wifi\");<\/strong>\r\n<strong>\u00a0 Serial.print(\"Udp server started at port \");<\/strong>\r\n<strong>\u00a0 Serial.println(localPort);<\/strong>\r\n<strong>\u00a0 Udp.begin(localPort);<\/strong>\r\n<strong>}<\/strong>\r\n\r\n<strong>void loop()<\/strong>\r\n<strong>{<\/strong>\r\n<strong>int noBytes = Udp.parsePacket();<\/strong>\r\n<strong>String received_command = \"\";<\/strong>\r\n<strong>byte packetBuffer[512]; <\/strong>\r\n\r\n<strong>\u00a0 if ( noBytes )<\/strong>\r\n<strong>\u00a0 {<\/strong>\r\n\r\n<strong>\u00a0\u00a0\u00a0 Serial.print(\"received a packet\");<\/strong>\r\n\r\n<strong>\u00a0\u00a0\u00a0 \/\/ We've received a packet, read the data from it<\/strong>\r\n<strong>\u00a0\u00a0\u00a0 Udp.read(packetBuffer,noBytes); \/\/ read the packet into the buffer<\/strong>\r\n\r\n<strong>\u00a0\u00a0\u00a0 for (int i=1;i&lt;=noBytes;i++)<\/strong>\r\n<strong>\u00a0\u00a0\u00a0 {<\/strong>\r\n<strong>\u00a0\u00a0\u00a0\u00a0\u00a0 received_command = received_command + char(packetBuffer[i - 1]);<\/strong>\r\n<strong>\u00a0\u00a0\u00a0 } \/\/ end for<\/strong>\r\n<strong>\u00a0 \u00a0<\/strong>\r\n<strong>\u00a0\u00a0\u00a0 Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());<\/strong>\r\n<strong>\u00a0\u00a0\u00a0 Udp.endPacket();<\/strong>\r\n\r\n<strong>\u00a0\u00a0\u00a0 \/\/ execution de la commande<\/strong>\r\n<strong>\u00a0\u00a0\u00a0 Serial.println(received_command);<\/strong>\r\n\r\n<strong>\u00a0 } \/\/ end if<\/strong>\r\n<strong>}<\/strong>\r\n\r\n<strong>void printWifiStatus() <\/strong>\r\n<strong>{<\/strong>\r\n<strong>\u00a0 \/\/ print the SSID of the network you're attached to:<\/strong>\r\n<strong>\u00a0 Serial.print(\"SSID: \");<\/strong>\r\n<strong>\u00a0 Serial.println(WiFi.SSID());<\/strong>\r\n\r\n<strong>\u00a0 \/\/ print your WiFi shield's IP address:<\/strong>\r\n<strong>\u00a0 IPAddress ip = WiFi.localIP();<\/strong>\r\n<strong>\u00a0 Serial.print(\"IP Address: \");<\/strong>\r\n<strong>\u00a0 Serial.println(ip);<\/strong>\r\n<strong>} <\/strong>\r\n\r\n<\/pre>\n<ul>\n<li>Compiler et t\u00e9l\u00e9charger le programme dans le robot MRduino Wireless<\/li>\n<\/ul>\n<h1>Le programme de contr\u00f4le<\/h1>\n<ul>\n<li>Lien pour t\u00e9l\u00e9charger le programme de contr\u00f4le (dossier Zip): <a href=\"http:\/\/macerobotics.com\/Soft\/MRduinoWirelessControler.zip\">MrduinoControler<\/a><\/li>\n<\/ul>\n<p><em>Remarque : programme pour Windows<\/em><\/p>\n<ul>\n<li>D\u00e9zipper le dossier :<\/li>\n<\/ul>\n<p><a href=\"http:\/\/www.macerobotics.com\/wp-content\/uploads\/2017\/06\/dossier.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1846\" src=\"http:\/\/www.macerobotics.com\/wp-content\/uploads\/2017\/06\/dossier.png\" alt=\"dossier\" width=\"363\" height=\"290\" srcset=\"https:\/\/www.macerobotics.com\/wp-content\/uploads\/2017\/06\/dossier.png 363w, https:\/\/www.macerobotics.com\/wp-content\/uploads\/2017\/06\/dossier-300x240.png 300w\" sizes=\"auto, (max-width: 363px) 100vw, 363px\" \/><\/a><\/p>\n<ul>\n<li>Lancer le programme MRduinoControler.exe<\/li>\n<\/ul>\n<p><a href=\"http:\/\/www.macerobotics.com\/wp-content\/uploads\/2017\/06\/Controler.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1852 aligncenter\" src=\"http:\/\/www.macerobotics.com\/wp-content\/uploads\/2017\/06\/Controler.png\" alt=\"Controler\" width=\"502\" height=\"351\" srcset=\"https:\/\/www.macerobotics.com\/wp-content\/uploads\/2017\/06\/Controler.png 502w, https:\/\/www.macerobotics.com\/wp-content\/uploads\/2017\/06\/Controler-300x210.png 300w\" sizes=\"auto, (max-width: 502px) 100vw, 502px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Ce programme permet de contr\u00f4ler les mouvements du robot et les trois leds. Ne pas oublier de saisir l&#8217;adresse IP correct du robot.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Un tutoriel pour contr\u00f4ler le robot MRduino Wireless par UDP avec un programme python. UDP = User Datagram Protocol Le contr\u00f4le du robot est r\u00e9aliser par un programme en langage python. Le programme pour le robot Ce programme permet au robot MRduino Wireless de Il faut modifier votre SSID et mot de passe de votre &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[51,50,44,29,52],"tags":[],"class_list":["post-1842","post","type-post","status-publish","format-standard","hentry","category-arduino","category-esp8266","category-esus","category-mrduino","category-mrduino-wireless"],"_links":{"self":[{"href":"https:\/\/www.macerobotics.com\/index.php?rest_route=\/wp\/v2\/posts\/1842","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=1842"}],"version-history":[{"count":8,"href":"https:\/\/www.macerobotics.com\/index.php?rest_route=\/wp\/v2\/posts\/1842\/revisions"}],"predecessor-version":[{"id":1853,"href":"https:\/\/www.macerobotics.com\/index.php?rest_route=\/wp\/v2\/posts\/1842\/revisions\/1853"}],"wp:attachment":[{"href":"https:\/\/www.macerobotics.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1842"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.macerobotics.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1842"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.macerobotics.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1842"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}