{"id":1126,"date":"2016-04-21T16:05:34","date_gmt":"2016-04-21T15:05:34","guid":{"rendered":"http:\/\/www.macerobotics.com\/?p=1126"},"modified":"2016-04-21T16:07:07","modified_gmt":"2016-04-21T15:07:07","slug":"mrpi1-course-de-robot-autonome","status":"publish","type":"post","link":"https:\/\/www.macerobotics.com\/?p=1126","title":{"rendered":"MRPi1 &#8211; Course de robot autonome"},"content":{"rendered":"<p>Nouvelle vid\u00e9o, une course de deux robots MRPi1 compl\u00e9tement autonome :<\/p>\n<ul>\n<li>Un robot MRPi1 version Raspberry Pi,<\/li>\n<li>Un robot MRPi1 version Arduino,<\/li>\n<\/ul>\n<p>Les deux robots sont programm\u00e9s pour suivre le chemin tous en \u00e9vitant les obstacles. Le robot MRPi1 version Raspberry Pi est programmer en langage Python et la version arduino en langage arduino.<\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/www.youtube.com\/embed\/VX_n3MKsZd0\" width=\"560\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<p>Voici le programme en langage Python pour le MRPi1 Raspberry Pi :<\/p>\n<pre><strong><span style=\"color: #008000;\"># importez la librairie du robot MRPi1<\/span><span style=\"color: #000000;\">\r\nfrom mrpi1_lib import *\r\nimport time\r\n\r\n<span style=\"color: #008000;\"># initialisation de la vitesse<\/span>\r\nspeedFast=50\r\nspeedSlow=30\r\n\r\n<span style=\"color: #008000;\"># seuil d\u00e9tection obstacle<\/span>\r\nlimit_obs = 300\r\n\r\ntry:\r\n\u00a0 while 1:\r\n\u00a0\u00a0\u00a0 <span style=\"color: #008000;\"># lecture des capteurs de proximit\u00e9<\/span>\r\n\u00a0\u00a0\u00a0 prox1 = proxSensor(1)\r\n\u00a0\u00a0\u00a0 prox2 = proxSensor(2) \r\n\u00a0\u00a0\u00a0 prox3 = proxSensor(3)\r\n\u00a0\u00a0\u00a0 prox4 = proxSensor(4)\r\n\u00a0\u00a0\u00a0 prox5 = proxSensor(5)\r\n\u00a0\u00a0\u00a0 prox6 = proxSensor(6)\r\n\r\n   <span style=\"color: #008000;\"> # si obstacle pr\u00e9sent sur tous les capteurs<\/span>\r\n\u00a0\u00a0\u00a0 if prox1&gt;limit_obs and prox2&gt;limit_obs and prox3&gt;limit_obs and prox4&gt;limit_obs and prox5&gt;limit_obs and prox6&gt;limit_obs:\r\n        <span style=\"color: #008000;\"># tourner \u00e0 droite<\/span>\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 turnRight(speedSlow)\r\n\u00a0\u00a0\u00a0 elif prox4&gt;limit_obs or prox5&gt;limit_obs or prox6&gt;limit_obs:\r\n      <span style=\"color: #008000;\"># si obstacle \u00e0 droite, tourner \u00e0 gauche<\/span>\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 turnLeft(speedSlow)\r\n\u00a0\u00a0\u00a0 elif prox1&gt;limit_obs or\u00a0 prox2&gt;limit_obs or\u00a0 prox3&gt;limit_obs:\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: #008000;\"># si obstacle \u00e0 gauche, tourner \u00e0 droite<\/span>\r\n      turnRight(speedSlow)\r\n\u00a0\u00a0\u00a0 else:\r\n      <span style=\"color: #008000;\"># sinon avancer<\/span>\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 forward(speedFast)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 time.sleep(0.4)\r\nexcept:\r\n\u00a0 stop()\r\n\u00a0 exit()\r\n<\/span><\/strong><\/pre>\n<p>&nbsp;<\/p>\n<p>Le programme en langage arduino pour le MRPi1 version Arduino :<\/p>\n<pre><strong><span style=\"color: #000000;\"><span style=\"color: #008000;\">\/\/ librairies du robot MRPi1<\/span>\r\n#include &lt;mrpi1_arduino.h&gt;\r\n\r\n<span style=\"color: #008000;\">\/\/ variables pour les capteurs de proximit\u00e9<\/span>\r\nint prox1;\r\nint prox2;\r\nint prox3;\r\nint prox4;\r\nint prox5;\r\nint prox6;\r\n\r\n<span style=\"color: #008000;\">\/\/ initialisation de la vitesse<\/span>\r\nint speed = 60;\r\n\r\n<span style=\"color: #008000;\">\/\/ initialisation de seuil des obstacles<\/span>\r\nint limit_obs = 300;\r\n\r\nvoid setup() \r\n{\r\n  <span style=\"color: #008000;\">\/\/ initialisation du port s\u00e9rie<\/span>\r\n\u00a0 Serial.begin(115200);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\r\n\u00a0 \r\n}\r\n\r\nvoid loop()\r\n{\r\n  <span style=\"color: #008000;\">\/\/ lecture des capteurs de proximit\u00e9<\/span>\r\n\u00a0 prox1 = proxSensor(1); \r\n\u00a0 prox2 = proxSensor(2); \r\n\u00a0 prox3 = proxSensor(3); \r\n\u00a0 prox4 = proxSensor(4); \r\n\u00a0 prox5 = proxSensor(5); \r\n\u00a0 prox6 = proxSensor(6); \r\n\r\n  <span style=\"color: #008000;\">\/\/ Si obstacles pr\u00e9sent sur tous les capteurs<\/span>\r\n\u00a0 if((prox1 &gt; limit_obs) and (prox2 &gt; limit_obs)and (prox3 &gt; limit_obs) and (prox4 &gt; limit_obs) and (prox5 &gt; limit_obs)\u00a0 and (prox6 &gt; limit_obs))\r\n\u00a0 {\r\n    <span style=\"color: #008000;\">\/\/ reculer<\/span>\r\n\u00a0\u00a0\u00a0 back(speed);\r\n\u00a0 }\r\n\u00a0 else\r\n\u00a0 {\r\n    <span style=\"color: #008000;\">\/\/ si obstacle \u00e0 gauche<\/span>\r\n\u00a0\u00a0\u00a0 if((prox1 &gt; limit_obs) and (prox2 &gt; limit_obs))\r\n\u00a0\u00a0\u00a0 {\r\n      <span style=\"color: #008000;\">\/\/ tourner \u00e0 droite<\/span>\r\n\u00a0\u00a0\u00a0\u00a0\u00a0 turnRight(speed);\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 else\r\n\u00a0\u00a0\u00a0 {\r\n       <span style=\"color: #008000;\">\/\/ si obstacle \u00e0 droite<\/span>\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 if((prox6 &gt; limit_obs) or (prox5 &gt; limit_obs) or (prox4 &gt; limit_obs))\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 {\r\n         <span style=\"color: #008000;\">\/\/ tourner \u00e0 gauche<\/span>\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 turnLeft(speed);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 else\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 {\r\n          <span style=\"color: #008000;\">\/\/ si obstacle \u00e0 gauche<\/span>\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 if((prox1 &gt; limit_obs) or (prox2 &gt; limit_obs) or (prox3 &gt; limit_obs))\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 {\r\n            <span style=\"color: #008000;\">\/\/ tourner \u00e0 droite<\/span>\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0  turnRight(speed);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 else\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 {\r\n            <span style=\"color: #008000;\">\/\/ sinon avancer<\/span>\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 forward(speed);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\n\u00a0\u00a0\u00a0 }\r\n\u00a0 }\r\n}<\/span><\/strong><\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nouvelle vid\u00e9o, une course de deux robots MRPi1 compl\u00e9tement autonome : Un robot MRPi1 version Raspberry Pi, Un robot MRPi1 version Arduino, Les deux robots sont programm\u00e9s pour suivre le chemin tous en \u00e9vitant les obstacles. Le robot MRPi1 version Raspberry Pi est programmer en langage Python et la version arduino en langage arduino. Voici &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-1126","post","type-post","status-publish","format-standard","hentry","category-mrpi1"],"_links":{"self":[{"href":"https:\/\/www.macerobotics.com\/index.php?rest_route=\/wp\/v2\/posts\/1126","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=1126"}],"version-history":[{"count":7,"href":"https:\/\/www.macerobotics.com\/index.php?rest_route=\/wp\/v2\/posts\/1126\/revisions"}],"predecessor-version":[{"id":1133,"href":"https:\/\/www.macerobotics.com\/index.php?rest_route=\/wp\/v2\/posts\/1126\/revisions\/1133"}],"wp:attachment":[{"href":"https:\/\/www.macerobotics.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1126"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.macerobotics.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1126"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.macerobotics.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1126"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}