<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>Archives des suiveur - La programmation sur le web</title>
	<atom:link href="https://programmation.surleweb-france.fr/tag/suiveur/feed/" rel="self" type="application/rss+xml" />
	<link>https://programmation.surleweb-france.fr/tag/suiveur/</link>
	<description>La programmation gratuite pour tous</description>
	<lastBuildDate>Sun, 03 May 2020 19:37:18 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2023/08/cropped-19518430-icone-de-programmation-pour-votre-site-web-mobile-presentation-et-conception-de-logo-gratuit-vectoriel.jpg?fit=32%2C32&#038;ssl=1</url>
	<title>Archives des suiveur - La programmation sur le web</title>
	<link>https://programmation.surleweb-france.fr/tag/suiveur/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">176210735</site>	<item>
		<title>Raspberry, un robot suiveur de ligne</title>
		<link>https://programmation.surleweb-france.fr/raspberry-robot-suiveur/</link>
					<comments>https://programmation.surleweb-france.fr/raspberry-robot-suiveur/#respond</comments>
		
		<dc:creator><![CDATA[Zigomato]]></dc:creator>
		<pubDate>Sat, 09 May 2020 17:00:00 +0000</pubDate>
				<category><![CDATA[Programmation]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Raspberry]]></category>
		<category><![CDATA[GPIO]]></category>
		<category><![CDATA[pi]]></category>
		<category><![CDATA[projet]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[raspberry]]></category>
		<category><![CDATA[robot]]></category>
		<category><![CDATA[robotique]]></category>
		<category><![CDATA[suiveur]]></category>
		<guid isPermaLink="false">https://programmation.surleweb-france.fr/?p=135</guid>

					<description><![CDATA[<p>La réalisation d'un robot suiveur est éducatif et ludique pour appréhender la programmation et la gestion du port GPIO du Raspberry</p>
<p class="continue-reading-button"> <a class="continue-reading-link" href="https://programmation.surleweb-france.fr/raspberry-robot-suiveur/">Continuer la lecture<i class="crycon-right-dir"></i></a></p>
<p>L’article <a href="https://programmation.surleweb-france.fr/raspberry-robot-suiveur/">Raspberry, un robot suiveur de ligne</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Après avoir vu le robot suiveur de ligne à base d&rsquo;Arduino dans cet <a rel="noreferrer noopener" href="https://programmation.surleweb-france.fr/robot-suiveur-de-ligne-version-arduino/" target="_blank">article</a>, tu vas voir son homologue mais à base de Raspberry. Cet article est accessible pour des néophytes qui souhaitent apprendre et faire un projet plus concret. Cela permettra de voir le contrôle de deux moteurs (comme dans cette <a rel="noreferrer noopener" href="https://programmation.surleweb-france.fr/raspberry-robot-eviteur-obstacles/(ouvre un nouvel onglet)" target="_blank">article</a>), la gestion de photo-résistance ainsi que de led.</p>



<h2 class="wp-block-heading">Rôle du robot suiveur</h2>



<p>Comme vu lors de la réalisation d&rsquo;un robot suiveur de ligne à base d&rsquo;Arduino, le principe est identique, le robot suivra une ligne grâce à des photo-résistances et deux leds. En fonction de la position de la ligne par rapport au Raspberry, celui-corrigera la trajectoire en commandant ou pas les moteurs.</p>



<p>Voici des robots un peu plus évolué que celui que l&rsquo;on va faire mais le principe reste identique :</p>



<figure class="wp-block-embed-youtube aligncenter wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Course de robots suiveurs de ligne - IUT de Cachan." width="900" height="506" src="https://www.youtube.com/embed/1dqmPecnoKk?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">Matériels nécessaires</h2>



<p>Pour réaliser le robot, tu vas avoir besoin :</p>



<ul class="wp-block-list"><li>2 moteurs à courant continu 5V avec un réducteur afin de ne pas faire une sortie de piste, vers le lien <a rel="noreferrer noopener" href="https://amzn.to/2YpwNEt" target="_blank">Amazon</a>.</li><li>1 module L298N pour le contrôle des moteurs et ne pas grillé ton Raspberry, vers le lien <a rel="noreferrer noopener" href="https://amzn.to/2Sslesh" target="_blank">Amazon</a>.</li><li>1 Raspberry Pi 4 (<a rel="noreferrer noopener" href="https://amzn.to/2KUhR9v" target="_blank">Amazon</a>) ou Pi 3 (<a rel="noreferrer noopener" href="https://amzn.to/3c0CSLx" target="_blank">Amazon</a>), voir des modèles en-dessous.</li><li>1 boitier de pile, voir le lien <a rel="noreferrer noopener" href="https://amzn.to/2SrAplA" target="_blank">Amazon</a>.</li><li>2 led blanche, voir le lien <a rel="noreferrer noopener" href="https://amzn.to/2SJJ8zZ" target="_blank">Amazon</a>.</li><li>2 photo résistance, voir le lien <a rel="noreferrer noopener" href="https://amzn.to/3dbLAGS" target="_blank">Amazon</a>.</li><li>des résistances, voir le lien <a rel="noreferrer noopener" href="https://amzn.to/2WiTwj5" target="_blank">Amazon</a>.</li><li>1 carte de prototypage, voir le lien <a rel="noreferrer noopener" href="https://amzn.to/3fbZyKJ" target="_blank">Amazon</a>.</li><li>différents fils pour la connexion, voir le lien <a rel="noreferrer noopener" href="https://amzn.to/2WjwTe7" target="_blank">Amazon</a>.</li><li>1 chassis, le modèle présenté sur le lien possède le boitier pour batterie ainsi que des moteurs, ceux-là risque d&rsquo;être bien trop rapide pour notre projet mais pourront être réutilisés, voir le lien <a rel="noreferrer noopener" href="https://amzn.to/3bY6toR" target="_blank">Amazon</a>.</li></ul>



<p>Avec tout cela, tu devrais avoir ce qu&rsquo;il te faut. Si tu es amené à faire à faire d&rsquo;autres projets, je t&rsquo;invite à éviter les petits lots. Les liens Amazon me permettent de gagner quelques euros dans le mois (pas plus) qui me paie mon nom de domaine et l&rsquo;hébergement du site.</p>



<h2 class="wp-block-heading">Montage du robot</h2>



<p>Afin de réaliser le robot, nous allons voir chaque partie de manière indépendante.</p>



<h3 class="wp-block-heading">Mise au point du capteur</h3>



<p>Le Raspberry, à la différence de l&rsquo;Arduino n&rsquo;accepte pas des tensions supérieurs à 3,3V en entrée. De ce faite, nous allons alimenter la carte capteurs avec deux tensions :</p>



<ul class="wp-block-list"><li>5V pour alimenter les leds</li><li>3,3V pour les photo-résistances</li></ul>



<p>En vue de face, le capteur donne cela :</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="400" height="255" src="https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/capteur-et-ligne-commenté.jpg?resize=400%2C255&#038;ssl=1" alt="" class="wp-image-233" srcset="https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/capteur-et-ligne-commenté.jpg?w=400&amp;ssl=1 400w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/capteur-et-ligne-commenté.jpg?resize=300%2C191&amp;ssl=1 300w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/capteur-et-ligne-commenté.jpg?resize=150%2C96&amp;ssl=1 150w" sizes="(max-width: 400px) 100vw, 400px" /></figure></div>



<p>Le capteur de gauche est connecté à la broche BCM 17 (BOARD 11) du Raspberry Pi et la sortie du capteur de droite à la broche BCM 27 (BOARD 13). Il faut bien sûr alimenter les capteurs (broches GND et 3,3 V). J&rsquo;ai conçu mon capteur pour que les LEDs soient alimentées en 5 V, ce qui n&rsquo;est pas nécessairement le cas si vous utilisez un autre modèle de capteur.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img data-recalc-dims="1" decoding="async" width="400" height="304" src="https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/circuit-Raspi-et-capteur.gif?resize=400%2C304&#038;ssl=1" alt="" class="wp-image-234"/></figure></div>



<h3 class="wp-block-heading">Les moteurs</h3>



<p>Il s&rsquo;agit de la partie la plus importante de cet article. En effet, vous <strong>ne devez surtout pas connecter les moteurs directement sur le Raspberry</strong> au risque de détruire votre jouet favoris. L&rsquo;intensité demandée par les moteurs est bien supérieurs à celle que le Pi peut fournir.</p>



<p>Tu passeras donc par le module L298N dont vous pouvez suivre <a rel="noreferrer noopener" href="https://arduino103.blogspot.com/2014/06/utiliser-un-pont-h-l298-avec-raspberry.html" target="_blank">ce lien</a> pour en apprendre plus.</p>



<p>Pour ce qui est du câblage (le schéma provient de l&rsquo;excellent site dont le lien est en bas de l&rsquo;article) :</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="400" height="231" src="https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/circuit-robot-Raspberry-Pi.png?resize=400%2C231&#038;ssl=1" alt="" class="wp-image-203" srcset="https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/circuit-robot-Raspberry-Pi.png?w=400&amp;ssl=1 400w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/circuit-robot-Raspberry-Pi.png?resize=300%2C173&amp;ssl=1 300w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/circuit-robot-Raspberry-Pi.png?resize=150%2C87&amp;ssl=1 150w" sizes="auto, (max-width: 400px) 100vw, 400px" /></figure></div>



<p>Pour ce qui est du câblage :</p>



<ul class="wp-block-list"><li>Broche +12 du L298N: Borne positive de l&rsquo;alimentation des moteurs (12 V est un maximum).</li><li>Broche GND du L298N: Borne négative de l&rsquo;alimentation des moteurs et une broche GND du Raspberry Pi.</li><li>OUT1 et OUT2 du L298N branchées à un des moteurs.</li><li>OUT3 et OUT4 du L298N branchées à l&rsquo;autre moteur</li><li>ENA du L298N broche BCM 25 (BOARD 22) du Raspberry Pi</li><li>IN1 du L298N  broche BCM 23 (BOARD 16) du Raspberry Pi</li><li>IN2 du L298N broche BCM 12 (BOARD 18) du Raspberry Pi</li><li>IN3 du L298N broche BCM 10 (BOARD 19) du Raspberry Pi</li><li>IN4 du L298N broche BCM 9 (BOARD 21) du Raspberry Pi</li><li>ENB du L298N broche BCM 11 (BOARD 23) du Raspberry Pi</li></ul>



<h3 class="wp-block-heading">Alimentation</h3>



<p>Pour ce qui est l&rsquo;alimentation, différencies bien l&rsquo;alimentation du Raspberry, tu peux choisir une batterie externe comme celle-ci sur <a rel="noreferrer noopener" href="https://amzn.to/2KVGxhP" target="_blank">Amazon</a>. L&rsquo;avantage de celle-ci est que l&rsquo;adaptateur fera qu&rsquo;elle sera compatible pour le Pi 3 et Pi 4.</p>



<p>Pour les moteurs, si tu as opté pour le châssis que je t&rsquo;ai proposé au-dessus, le porte-batterie fera l&rsquo;affaire (en fonction de la tension nécessaire pour les moteurs.</p>



<h2 class="wp-block-heading">Programmation du Raspberry</h2>



<p>La programmation du capteur se fait en langage Python.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="python" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">#!/usr/bin/env python
# -*- coding: latin-1 -*-

'''
Robot suiveur de ligne, version Raspberry Pi.

Pour plus d'informations:

https://electroniqueamateur.blogspot.com/2020/04/robot-suiveur-de-ligne-version_13.html

'''

import RPi.GPIO as GPIO
     
GPIO.setmode(GPIO.BOARD)  #notation board plutôt que BCM
     
Moteur1A = 16      ## premiere sortie du premier moteur, broche 16
Moteur1B = 18      ## deuxieme sortie de premier moteur, broche 18
Moteur1E = 22      ## enable du premier moteur, broche 22

Moteur2A = 19      ## premiere sortie du deuxieme moteur, broche 19
Moteur2B = 21      ## deuxieme sortie de deuxieme moteur, broche 21
Moteur2E = 23      ## enable du deuxieme moteur, broche 23

capteurGauche = 11 # capteur optique du côté gauche, broche 11
capteurDroite = 13 # capteur optique du côté droit, broche 13

## ces 6 broches du Raspberry Pi sont des sorties:
GPIO.setup(Moteur1A,GPIO.OUT)  
GPIO.setup(Moteur1B,GPIO.OUT)
GPIO.setup(Moteur1E,GPIO.OUT)
GPIO.setup(Moteur2A,GPIO.OUT) 
GPIO.setup(Moteur2B,GPIO.OUT)
GPIO.setup(Moteur2E,GPIO.OUT)

# ces 2 broches sont des entrées;
GPIO.setup(capteurGauche,GPIO.IN)  
GPIO.setup(capteurDroite,GPIO.IN)  

# Initialisation des capteurs (on suppose qu'ils sont de part et d'autre de la ligne)
initialGauche = GPIO.input(capteurGauche)
initialDroite = GPIO.input(capteurDroite)
     
while True:
    
    etatGauche = GPIO.input(capteurGauche)
    etatDroite = GPIO.input(capteurDroite)

    # s'il faut avancer en ligne droite
    if etatGauche == initialGauche and etatDroite == initialDroite: 
        GPIO.output(Moteur1A,GPIO.HIGH)
        GPIO.output(Moteur1B,GPIO.LOW)
        GPIO.output(Moteur1E,GPIO.HIGH)
        GPIO.output(Moteur2A,GPIO.HIGH)
        GPIO.output(Moteur2B,GPIO.LOW)
        GPIO.output(Moteur2E,GPIO.HIGH)

    # s'il faut tourner à gauche
    if etatGauche != initialGauche and etatDroite == initialDroite: 
        GPIO.output(Moteur1A,GPIO.HIGH)
        GPIO.output(Moteur1B,GPIO.LOW)
        GPIO.output(Moteur1E,GPIO.HIGH)
        GPIO.output(Moteur2E,GPIO.LOW)

    # s'il faut tourner à droite
    if etatGauche == initialGauche and etatDroite != initialDroite:
        GPIO.output(Moteur1E,GPIO.LOW)
        GPIO.output(Moteur2A,GPIO.HIGH)
        GPIO.output(Moteur2B,GPIO.LOW)
        GPIO.output(Moteur2E,GPIO.HIGH)
    
    # s'il faut arrêter
    if etatGauche != initialGauche and etatDroite != initialDroite: 
        GPIO.output(Moteur1E,GPIO.LOW)
        GPIO.output(Moteur2E,GPIO.LOW)</pre>



<h2 class="wp-block-heading">Conclusion</h2>



<p>Tu obtiens donc un nouveau robot, bien entendu, je te conseille de le démonter pour récupérer les composants. Pour ma part, cet article est écrit pour la seconde fois, la première fois, toutes les images provenait de celui que j&rsquo;avais réalisé mais suite à la perte de mon précédent site et tous les médias qui allait avec, je mets ceux du site originel.</p>



<p class="has-small-font-size">Cet article a été vu en premier sur <a rel="noreferrer noopener" href="http://electroniqueamateur.blogspot.com/2020/04/robot-suiveur-de-ligne-version_13.html" target="_blank">electroniqueamateur.blogspot.com.</a></p>
<p>L’article <a href="https://programmation.surleweb-france.fr/raspberry-robot-suiveur/">Raspberry, un robot suiveur de ligne</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://programmation.surleweb-france.fr/raspberry-robot-suiveur/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">135</post-id>	</item>
		<item>
		<title>Robot suiveur de ligne, version Arduino</title>
		<link>https://programmation.surleweb-france.fr/robot-suiveur-de-ligne-version-arduino/</link>
					<comments>https://programmation.surleweb-france.fr/robot-suiveur-de-ligne-version-arduino/#respond</comments>
		
		<dc:creator><![CDATA[Zigomato]]></dc:creator>
		<pubDate>Tue, 05 May 2020 17:00:00 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Programmation]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[capteur]]></category>
		<category><![CDATA[robot]]></category>
		<category><![CDATA[robotique]]></category>
		<category><![CDATA[suiveur]]></category>
		<guid isPermaLink="false">https://programmation.surleweb-france.fr/?p=133</guid>

					<description><![CDATA[<p>Réalisation complète d'un robot suiveur sous Arduino</p>
<p class="continue-reading-button"> <a class="continue-reading-link" href="https://programmation.surleweb-france.fr/robot-suiveur-de-ligne-version-arduino/">Continuer la lecture<i class="crycon-right-dir"></i></a></p>
<p>L’article <a href="https://programmation.surleweb-france.fr/robot-suiveur-de-ligne-version-arduino/">Robot suiveur de ligne, version Arduino</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Tout bon débutant en programmation Arduino a envie de passer à un projet concret mais attention, tu devras procéder par étapes. Se lancer dans un robot complexe peut être frustrant si l&rsquo;on obtient pas ce que l&rsquo;on souhaite mais même si celui-ci est fonctionnel, l&rsquo;apprentissage peut être incomplet avec des difficultés à comprendre ce qui a été réalisé. </p>



<p>Dans ce sens, la réalisation d&rsquo;un robot suiveur est une première étape et ne nécessitera que peu de connaissance, ce tuto est donc destiné à des novices.</p>



<h2 class="wp-block-heading">Rôle du robot suiveur</h2>



<div class="wp-block-image"><figure class="aligncenter size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="320" height="234" src="https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/robot.jpg?resize=320%2C234&#038;ssl=1" alt="Robot suiveur avec arduino" class="wp-image-163" srcset="https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/robot.jpg?w=320&amp;ssl=1 320w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/robot.jpg?resize=300%2C219&amp;ssl=1 300w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/robot.jpg?resize=150%2C110&amp;ssl=1 150w" sizes="auto, (max-width: 320px) 100vw, 320px" /><figcaption>Robot suiveur sous Arduino</figcaption></figure></div>



<p>Ce robot suit un itinéraire tracé au sol. Le principe est de disposer une ligne noir sur un sol clair. Les capteurs des robots détecte cette ligne et la suive.</p>



<p>Voici un exemple de robot suiveur :</p>



<figure class="wp-block-embed-youtube aligncenter wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="robot suiveur de ligne avec PID" width="900" height="506" src="https://www.youtube.com/embed/fBR65dB8f70?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div></figure>



<p>Ce robot est bien plus pédagogique qu&rsquo;utile quoi que des systèmes similaires dans des hangars peuvent permettre de transporter des cartons d&rsquo;un point A à un point B, voir la seconde vidéo :</p>



<figure class="wp-block-embed-youtube aligncenter wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Les robots convoyeurs suiveurs de ligne" width="900" height="506" src="https://www.youtube.com/embed/T3Ny2D3vV4w?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div></figure>



<h2 class="wp-block-heading">Matériels nécessaires</h2>



<p>Pour la réalisation de ce robot (pas celui des vidéos), tu vas avoir besoin :</p>



<ul class="wp-block-list"><li>2 moteurs à courant continu 5V avec un réducteur afin de ne pas faire une sortie de piste, vers le lien <a rel="noreferrer noopener" href="https://amzn.to/2YpwNEt" target="_blank">Amazon</a>.</li><li>1 module L298N pour le contrôle des moteurs et ne pas grillé ta carte Arduino, vers le lien <a rel="noreferrer noopener" href="https://amzn.to/2Sslesh" target="_blank">Amazon</a>.</li><li>1 carte Arduino UNO, vers le lien <a rel="noreferrer noopener" href="https://amzn.to/2L5I993" target="_blank">Amazon</a>.</li><li>1 boitier de pile, voir le lien <a rel="noreferrer noopener" href="https://amzn.to/2SrAplA" target="_blank">Amazon</a>.</li><li>2 led blanche, voir le lien <a rel="noreferrer noopener" href="https://amzn.to/2SJJ8zZ" target="_blank">Amazon</a>.</li><li>2 photo résistance, voir le lien <a rel="noreferrer noopener" href="https://amzn.to/3dbLAGS" target="_blank">Amazon</a>.</li><li>des résistances, voir le lien <a rel="noreferrer noopener" href="https://amzn.to/2WiTwj5" target="_blank">Amazon</a>.</li><li>1 carte de prototypage, voir le lien <a rel="noreferrer noopener" href="https://amzn.to/3fbZyKJ" target="_blank">Amazon</a>.</li><li>différents fils pour la connexion, voir le lien <a rel="noreferrer noopener" href="https://amzn.to/2WjwTe7" target="_blank">Amazon</a>.</li><li>1 chassis, le modèle présenté sur le lien possède le boitier pour batterie ainsi que des moteurs, ceux-là risque d&rsquo;être bien trop rapide pour notre projet mais pourront être réutilisés, voir le lien <a href="https://amzn.to/3bY6toR" target="_blank" rel="noreferrer noopener">Amazon</a>.</li></ul>



<p>Avec tout cela, tu devrais avoir ce qu&rsquo;il te faut. Si tu es amené à faire à faire d&rsquo;autres projets, je t&rsquo;invite à éviter les petits lots. Les liens Amazon me permettent de gagner quelques euros dans le mois (pas plus) qui me paie mon nom de domaine et l&rsquo;hébergement du site.</p>



<h2 class="wp-block-heading">Montage du robot suiveur</h2>



<p>Afin de réaliser un robot suiveur, nous allons devoir assembler tous les composants.</p>



<h3 class="wp-block-heading">Mise au point du capteur</h3>



<div class="wp-block-image"><figure class="aligncenter size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="400" height="198" src="https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/capteur.jpg?resize=400%2C198&#038;ssl=1" alt="" class="wp-image-176" srcset="https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/capteur.jpg?w=400&amp;ssl=1 400w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/capteur.jpg?resize=300%2C149&amp;ssl=1 300w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/capteur.jpg?resize=150%2C74&amp;ssl=1 150w" sizes="auto, (max-width: 400px) 100vw, 400px" /><figcaption>Photo du dessus de la partie capteur du robot suiveur</figcaption></figure></div>



<p>Le principe du capteur est relativement simple, il est composé de deux éléments.</p>



<h4 class="wp-block-heading">Emission de la lumière</h4>



<p>2 leds émettent une lumière blanche pour bien éclairer le sol, en augmentant ainsi le contraste entre le sol et la ligne blanche.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="163" height="200" src="https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/LED-blanche.png?resize=163%2C200&#038;ssl=1" alt="" class="wp-image-177" srcset="https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/LED-blanche.png?w=163&amp;ssl=1 163w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/LED-blanche.png?resize=122%2C150&amp;ssl=1 122w" sizes="auto, (max-width: 163px) 100vw, 163px" /></figure></div>



<p>La valeur de la résistance est à déterminer en fonction de l&rsquo;alimentation (ici le 5 V de l&rsquo;arduino), pour déterminer facilement quelle valeur est nécessaire, je vous laisse suivre ce lien sur <a rel="noreferrer noopener" href="http://fantaisyland.fr/" target="_blank">http://fantaisyland.fr/</a>. tu prendras une résistance de 140 ohms.</p>



<h4 class="wp-block-heading">La photo-résistance</h4>



<div class="wp-block-image"><figure class="aligncenter size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="197" height="200" src="https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/schéma-photorésistance.png?resize=197%2C200&#038;ssl=1" alt="" class="wp-image-179" srcset="https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/schéma-photorésistance.png?w=197&amp;ssl=1 197w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/schéma-photorésistance.png?resize=148%2C150&amp;ssl=1 148w" sizes="auto, (max-width: 197px) 100vw, 197px" /></figure></div>



<p>Pour la photo-résistance, tu devras déterminer sa valeur en prenant la valeur de la résistance lorsque la surface claire est éclairée et lorsque la bande noire est éclairée. avec les valeurs obtenues : </p>



<p class="has-text-align-center">R<sub>fixe</sub>&nbsp;= (R<sub>min</sub>&nbsp;+ R<sub>max</sub>&nbsp;)<sup>1/2</sup></p>



<p>Attention, la somme des deux résistances doit être divisée par 2. En fonction  des valeurs Rmin et Rmax, ta résistance fixe variera.</p>



<p>Afin de ne pas polluer la valeur de la photo-résistance par l&rsquo;émission de la led, tu as deux possibilités (que tu peux combiner) :</p>



<ul class="wp-block-list"><li>mettre un écran entre la led et la photo-résistance</li><li>faire en sorte que la led soit en arrière de la photo-résistance (pas derrière mais ne retrait)</li></ul>



<p>Pour le câblage sur l&rsquo;Arduino, la photo-résistance de gauche est connecté à l&rsquo;entrée analogique A0 et celle de droite à l&rsquo;entrée A1.</p>



<h3 class="wp-block-heading">Les moteurs</h3>



<p>Afin d&rsquo;éviter que ton robot ne s&#8217;emballe, sa vitesse ne doit pas être trop rapide, d&rsquo;où l&rsquo;utilisation de moteur 5 V avec un réducteur.</p>



<h3 class="wp-block-heading">Le pont L298N</h3>



<p>Le module L298N permet de pouvoir fournir la puissance nécessaire au moteur sans tirer directement sur l&rsquo;Arduino (dont les sorties ne supporterait certainement pas ce choc). L&rsquo;Arduino commandera le pont qui lui fournira la puissance (pour plus de détails, voir sur <a rel="noreferrer noopener" href="https://ardwinner.jimdofree.com/arduino/iv-les-moteurs-continus/3-faire-tourner-un-moteur-dc-bidirectionnel-avec-un-module-l298n/" target="_blank">ardwinner.jimdofree.com</a>.</p>



<p>Concernant le câblage, le voici : </p>



<ul class="wp-block-list"><li>Sorties OUT1 et OUT2 du L298N: premier moteur</li><li>Sorties OUT3 et OUT4 du L298N: deuxième moteur</li><li>Entrées +12 V et GND du L298N: alimentation des moteurs</li><li>Broche ENA du L298N: broche 9 de l&rsquo;Arduino</li><li>Broche IN1 du L298N: broche 3 de l&rsquo;Arduino</li><li>Broche IN2 du L298N: broche 4 de l&rsquo;Arduino</li><li>Broche IN3 du L298N: broche 5 de l&rsquo;Arduino</li><li>Broche IN4 de L298N: broche 6 de l&rsquo;Arduino</li><li>Broche ENB du L298N: broche 10 de l&rsquo;Arduino</li></ul>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1600" height="1328" src="https://i1.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/circuit-suiveur-arduino-1.png?fit=900%2C747&amp;ssl=1" alt="" class="wp-image-182" srcset="https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/circuit-suiveur-arduino-1.png?w=1600&amp;ssl=1 1600w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/circuit-suiveur-arduino-1.png?resize=300%2C249&amp;ssl=1 300w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/circuit-suiveur-arduino-1.png?resize=1024%2C850&amp;ssl=1 1024w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/circuit-suiveur-arduino-1.png?resize=768%2C637&amp;ssl=1 768w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/circuit-suiveur-arduino-1.png?resize=1536%2C1275&amp;ssl=1 1536w, https://i0.wp.com/programmation.surleweb-france.fr/wp-content/uploads/2020/05/circuit-suiveur-arduino-1.png?resize=150%2C125&amp;ssl=1 150w" sizes="auto, (max-width: 900px) 100vw, 900px" /></figure></div>



<h3 class="wp-block-heading">Alimentation</h3>



<p>Comme je l&rsquo;ai dit tout de suite, l&rsquo;Arduino ne peut pas fournir la puissance nécessaire aux moteurs, il faut donc une alimentation externe adaptatée aux caractéristiques de vos moteurs.</p>



<p>Pour alimenter l&rsquo;Arduino, tu peux passer par une alimentation sur le port USB ou te brancher sur l&rsquo;alimentation externe des moteurs, si celle-ci est bien de 5V, attention cependant, la demande en courant des moteurs pourrait ne plus être suffisante.</p>



<h2 class="wp-block-heading">Programme Arduino</h2>



<p>Dans votre Arduino, tu vas saisir :</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">/*
   Robot suiveur de ligne à base d'Arduino Uno.
   
   Pus d'informations:
   https://electroniqueamateur.blogspot.com/2020/04/robot-suiveur-de-ligne-version-arduino.html

*/

// définition des broches

#define capteurGauche A0
#define capteurDroite A1

#define brocheMoteur1a 3 // Premier moteur
#define brocheMoteur1b 4 // Premier moteur
#define brocheEnable1 9 // broche enable du L298N pour le premier moteur
#define brocheMoteur2a 5 // Deuxième moteur
#define brocheMoteur2b 6 // Deuxième moteur
#define brocheEnable2 10 //  broche enable du L298N pour le deuxième moteur

const int sensibilite = 50; // écart admissible par rapport à la valeur initiale

int initialDroite; // état initial du capteur de droite
int initialGauche; // état initial du capteur de gauche

int vitesse = 600; // 0 à 1023 PWM qui contrôle la vitesse des moteurs

void setup() {

  // réglage des sorties
  pinMode(brocheMoteur1a, OUTPUT);
  pinMode(brocheMoteur1b, OUTPUT);
  pinMode(brocheEnable1, OUTPUT);
  pinMode(brocheMoteur2a, OUTPUT);
  pinMode(brocheMoteur2b, OUTPUT);
  pinMode(brocheEnable2, OUTPUT);

  // on demeure immobile pour l'instant
  digitalWrite(brocheEnable1, 0);
  digitalWrite(brocheEnable2, 0);

  // réglage en marche avant
  digitalWrite(brocheMoteur1a, HIGH);
  digitalWrite(brocheMoteur1b, LOW);
  digitalWrite(brocheMoteur2a, HIGH);
  digitalWrite(brocheMoteur2b, LOW);

  delay(2000); // on se donne le temps de placer le robot à son point de départ

  // lecture des valeurs initiales (on suppose que les capteurs sont de part et d'autre de la ligne)
  initialDroite = analogRead(capteurDroite);
  initialGauche = analogRead(capteurGauche);

}

void loop() {
  int valeurDroite, valeurGauche;

  valeurDroite = analogRead(capteurDroite);
  valeurGauche = analogRead(capteurGauche);

  if ((abs(valeurDroite - initialDroite) &lt; sensibilite) &amp;&amp; (abs(valeurGauche - initialGauche) &lt; sensibilite)) {
    // on continue tout droit
    analogWrite(brocheEnable1, vitesse);
    analogWrite(brocheEnable2, vitesse);
  }
  else if ((abs(valeurDroite - initialDroite) &lt; sensibilite) &amp;&amp; (abs(valeurGauche - initialGauche) >= sensibilite)) {
    // on tourne à gauche
    digitalWrite(brocheEnable1, 0);
    analogWrite(brocheEnable2, vitesse);
  }

  else if ((abs(valeurDroite - initialDroite) >= sensibilite) &amp;&amp; (abs(valeurGauche - initialGauche) &lt; sensibilite)) {
    // on tourne à droite
    analogWrite(brocheEnable1, vitesse);
    digitalWrite(brocheEnable2, 0);
  }

  else {
    // on s'arrête
    digitalWrite(brocheEnable1, 0);
    digitalWrite(brocheEnable2, 0);
  }

  delay(100);
}</pre>



<h2 class="wp-block-heading">Utilisation du robot suiveur</h2>



<p>A la mise sous tension, le robot devra être bien positionné afin qu&rsquo;il prenne en mémoire les valeurs initiales.</p>



<p class="has-small-font-size">Ce tutoriel a été vu sur l&rsquo;excellent <a rel="noreferrer noopener" href="http://electroniqueamateur.blogspot.com/2020/04/robot-suiveur-de-ligne-version-arduino.html" target="_blank">electroniqueamateur.blogspot.com</a>.</p>
<p>L’article <a href="https://programmation.surleweb-france.fr/robot-suiveur-de-ligne-version-arduino/">Robot suiveur de ligne, version Arduino</a> est apparu en premier sur <a href="https://programmation.surleweb-france.fr">La programmation sur le web</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://programmation.surleweb-france.fr/robot-suiveur-de-ligne-version-arduino/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">133</post-id>	</item>
	</channel>
</rss>
