{"id":5020,"date":"2026-01-13T17:31:02","date_gmt":"2026-01-13T16:31:02","guid":{"rendered":"http:\/\/www.giamarchi.fr\/?p=5020"},"modified":"2026-01-22T16:44:38","modified_gmt":"2026-01-22T15:44:38","slug":"conception-dun-robot-suiveur-de-ligne-rapide","status":"publish","type":"post","link":"http:\/\/www.giamarchi.fr\/?p=5020","title":{"rendered":"Conception d&rsquo;un robot suiveur de ligne rapide"},"content":{"rendered":"\n<p>De la conception \u00e0 la r\u00e9alisation :<\/p>\n\n\n\n<p>Voici un exemple de conception d&rsquo;un robot suiveur de ligne pour le Tournoi national de Robotique de N\u00eemes, qui a lieu tous les ans, au mois de mai.<\/p>\n\n\n\n<p>Avec l&rsquo;exp\u00e9rience, certains choix technologiques sont privil\u00e9gi\u00e9s en particulier sur le processeur et ses outils de d\u00e9veloppement. Mais la curiosit\u00e9 d&rsquo;exp\u00e9rimenter de nouvelles id\u00e9es pousse \u00e0 tester d&rsquo;autres protocoles, d&rsquo;autres capteurs et \u00e0 essayer de combiner l&rsquo;ensemble sans perte d&rsquo;efficacit\u00e9.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"741\" src=\"http:\/\/www.giamarchi.fr\/wp-content\/uploads\/2026\/01\/RSL_2026_1-1024x741.png\" alt=\"\" class=\"wp-image-5039\" srcset=\"http:\/\/www.giamarchi.fr\/wp-content\/uploads\/2026\/01\/RSL_2026_1-1024x741.png 1024w, http:\/\/www.giamarchi.fr\/wp-content\/uploads\/2026\/01\/RSL_2026_1-300x217.png 300w, http:\/\/www.giamarchi.fr\/wp-content\/uploads\/2026\/01\/RSL_2026_1-768x556.png 768w, http:\/\/www.giamarchi.fr\/wp-content\/uploads\/2026\/01\/RSL_2026_1-1536x1111.png 1536w, http:\/\/www.giamarchi.fr\/wp-content\/uploads\/2026\/01\/RSL_2026_1-2048x1482.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Par ailleurs, outre ces aspects technologiques, il faut r\u00e9aliser un ensemble m\u00e9canique coh\u00e9rent. De nombreux aller-retour sont n\u00e9cessaires entre la m\u00e9canique et l&rsquo;\u00e9lectronique pour avancer vers la r\u00e9alisation finale.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"844\" height=\"631\" src=\"http:\/\/www.giamarchi.fr\/wp-content\/uploads\/2026\/01\/Assemblage_01.png\" alt=\"\" class=\"wp-image-5052\" srcset=\"http:\/\/www.giamarchi.fr\/wp-content\/uploads\/2026\/01\/Assemblage_01.png 844w, http:\/\/www.giamarchi.fr\/wp-content\/uploads\/2026\/01\/Assemblage_01-300x224.png 300w, http:\/\/www.giamarchi.fr\/wp-content\/uploads\/2026\/01\/Assemblage_01-768x574.png 768w\" sizes=\"auto, (max-width: 844px) 100vw, 844px\" \/><\/figure>\n\n\n\n<p>L&rsquo;un des points int\u00e9ressants qui justifient de r\u00e9aliser une nouvelle version d&rsquo;un robot suiveur de ligne efficace, c&rsquo;est la possibilit\u00e9 d&rsquo;utiliser les outils de l&rsquo;IA, comme ChatGPT et Claude AI pour optimiser certains points, \u00e0 l&rsquo;image des calculs math\u00e9matiques. Mais il ne faut pas \u00eatre aveugl\u00e9 par les prouesses de l&rsquo;IA. Dans l&rsquo;\u00e9tat actuel de ses capacit\u00e9s, de nombreuses erreurs apparaissent dans ses calculs et la connaissance approfondie des syst\u00e8mes permet de les d\u00e9busquer. Malgr\u00e9 cela, un peu \u00eatre d&rsquo;un grand secours pour v\u00e9rifier et donc acc\u00e9l\u00e9rer le d\u00e9veloppement d&rsquo;un code. C&rsquo;est beaucoup moins \u00e9vident pour un sch\u00e9ma \u00e9lectronique et un design adapt\u00e9.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Optimisation d&rsquo;un calcul pour PIC18F, utilisation de l&rsquo;IA<\/h2>\n\n\n\n<p>Voici un exemple int\u00e9ressant de l&rsquo;utilisation de l&rsquo;IA pour optimiser un calcul math\u00e9matique. Nous prenons pour exemple le calcul de la distance d&rsquo;un obstacle par un capteur \u00e0 ultrasons de type HC-SR04. La formule consiste \u00e0 multiplier une variable par une constante.<\/p>\n\n\n\n<p>Les donn\u00e9es sont les suivantes : compteur 16 bits \u00e0 1\u00b5s et vitesse du son 340m\/s<\/p>\n\n\n\n<p>Le calcul habituel nous donne : <strong>distance (cm) = dur\u00e9e (\u00b5s) \/ 58<\/strong>) = <strong>dur\u00e9e (\u00b5s) x 0,017<\/strong>. <\/p>\n\n\n\n<p>Sur un microcontr\u00f4leur 8bits, les divisions sont couteuses en temps logicielles et les multiplications par un flottant \u00e0 peine meilleures. L&rsquo;IA nous propose un optimisation graduelle avec un calcul d&rsquo;erreur. Apr\u00e8s diverses demandes de plus en plus pr\u00e9cises, L&rsquo;IA nous propose de remplacer la division par un d\u00e9calage binaire<\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong>0.017 \u2248N\/2<sup>k<\/sup><\/strong><\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong>9\/512 = 0.017578<\/strong> , avec une erreur de 0.17 %<\/p>\n\n\n\n<p>512 = 2\u2079 \u2192 d\u00e9calage de 9 bits. Le calcul consiste \u00e0 multiplier en premier par 9, puis \u00e0 faire 9 d\u00e9calages vers la droite pour diviser par 512.<\/p>\n\n\n\n<p>Code en C pour PIC18F :      distance_cm = (ticks * 9) &gt;&gt; 9;<\/p>\n\n\n\n<p>\u2714 ultra rapide<br>\u2714 pas de division lente<br>\u2714 erreur &lt; 0,2 %<br>\u2714 parfait pour HC-SR04<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"887\" height=\"526\" src=\"http:\/\/www.giamarchi.fr\/wp-content\/uploads\/2026\/01\/Schema_01.png\" alt=\"\" class=\"wp-image-5053\" srcset=\"http:\/\/www.giamarchi.fr\/wp-content\/uploads\/2026\/01\/Schema_01.png 887w, http:\/\/www.giamarchi.fr\/wp-content\/uploads\/2026\/01\/Schema_01-300x178.png 300w, http:\/\/www.giamarchi.fr\/wp-content\/uploads\/2026\/01\/Schema_01-768x455.png 768w\" sizes=\"auto, (max-width: 887px) 100vw, 887px\" \/><\/figure>\n\n\n\n<p>Le sch\u00e9ma \u00e9lectronique utilise un PIC18F46K22. L&rsquo;Interface Homme Machine (IHM) comporte 2 DELs, 3 poussoirs, une liaison UART (PC via Hyperterminal et Bluetooth) et un afficheur OLED. Le reste des \u00e9l\u00e9ments comporte une interface moteurs, le capteur de ligne \u00e0 base de TCRT5000, des encodeurs, un capteur US HC-SR04 et un servomoteur.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">La m\u00e9canique finale<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"http:\/\/www.giamarchi.fr\/wp-content\/uploads\/2026\/01\/20260122_160738-1024x768.jpg\" alt=\"\" class=\"wp-image-5058\" srcset=\"http:\/\/www.giamarchi.fr\/wp-content\/uploads\/2026\/01\/20260122_160738-1024x768.jpg 1024w, http:\/\/www.giamarchi.fr\/wp-content\/uploads\/2026\/01\/20260122_160738-300x225.jpg 300w, http:\/\/www.giamarchi.fr\/wp-content\/uploads\/2026\/01\/20260122_160738-768x576.jpg 768w, http:\/\/www.giamarchi.fr\/wp-content\/uploads\/2026\/01\/20260122_160738-1536x1152.jpg 1536w, http:\/\/www.giamarchi.fr\/wp-content\/uploads\/2026\/01\/20260122_160738-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>R\u00e9alis\u00e9 avec un logiciel de CAO efficace, les fichiers sont imprim\u00e9s en PETG avec une imprimante 3D Prusa. Le r\u00e9sultat obtenu s&rsquo;accorde parfaitement avec les circuits imprim\u00e9s r\u00e9alis\u00e9s sous EAGLE, les moteurs, engrenages, accu et les autres \u00e9l\u00e9ments.<\/p>\n\n\n\n<p>Pour finaliser l&rsquo;ensemble, il faut dessiner et r\u00e9aliser les pi\u00e8ces en relation avec le servomoteur et le capteurs \u00e0 ultrasons fix\u00e9 sur ce dernier. Les pneus de la photo seront chang\u00e9s pour des mod\u00e8les adapt\u00e9s.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>De la conception \u00e0 la r\u00e9alisation : Voici un exemple de conception d&rsquo;un robot suiveur de ligne pour le Tournoi national de Robotique de N\u00eemes, qui a lieu tous les ans, au mois de mai. Avec l&rsquo;exp\u00e9rience, certains choix technologiques &hellip; <a href=\"http:\/\/www.giamarchi.fr\/?p=5020\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[61,26,25,165,12,55],"class_list":["post-5020","post","type-post","status-publish","format-standard","hentry","category-robotique","tag-electronique","tag-giamarchi","tag-robot","tag-robotique","tag-suiveur-ligne","tag-tournoi"],"_links":{"self":[{"href":"http:\/\/www.giamarchi.fr\/index.php?rest_route=\/wp\/v2\/posts\/5020","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.giamarchi.fr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.giamarchi.fr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.giamarchi.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.giamarchi.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5020"}],"version-history":[{"count":23,"href":"http:\/\/www.giamarchi.fr\/index.php?rest_route=\/wp\/v2\/posts\/5020\/revisions"}],"predecessor-version":[{"id":5063,"href":"http:\/\/www.giamarchi.fr\/index.php?rest_route=\/wp\/v2\/posts\/5020\/revisions\/5063"}],"wp:attachment":[{"href":"http:\/\/www.giamarchi.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5020"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.giamarchi.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5020"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.giamarchi.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5020"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}