<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.tge.cegeplabs.qc.ca/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Philippe</id>
	<title>Wiki TGE CSTwiki - Contributions [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.tge.cegeplabs.qc.ca/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Philippe"/>
	<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php/Sp%C3%A9cial:Contributions/Philippe"/>
	<updated>2026-04-17T14:10:22Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Cegeplabs&amp;diff=964</id>
		<title>Cegeplabs</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Cegeplabs&amp;diff=964"/>
		<updated>2026-03-19T18:54:31Z</updated>

		<summary type="html">&lt;p&gt;Philippe : /* Principe d&amp;#039;attribution des adresses IP en TGÉ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Principe d&#039;attribution des adresses IP en TGÉ =&lt;br /&gt;
&lt;br /&gt;
Adresse IP : 10.243.x.y&amp;lt;br&amp;gt;&lt;br /&gt;
Masque : 255.255.255.0&amp;lt;br&amp;gt;&lt;br /&gt;
Passerelle : 10.243.x.1&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Le 10 provient de la norme pour des adresses IP privées (10.0.0.0/8). Le 243 est le numéro du programme de la technologie du génie électrique.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
x =­&amp;gt; Les deux dernier chiffre du numéro de local&amp;lt;br&amp;gt;&lt;br /&gt;
C-2701 =&amp;gt; 1&amp;lt;br&amp;gt;&lt;br /&gt;
C-2701 (Zone robotiques) =&amp;gt; 11&amp;lt;br&amp;gt;&lt;br /&gt;
C-2702 =&amp;gt; 2&amp;lt;br&amp;gt;&lt;br /&gt;
C-2705 =&amp;gt; 5&amp;lt;br&amp;gt;&lt;br /&gt;
C-2706 =&amp;gt; 6&amp;lt;br&amp;gt;&lt;br /&gt;
C-2714 =&amp;gt; 14&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
y ­=­­&amp;gt; Fonction (dizaine) et numéro de poste (unité)&amp;lt;br&amp;gt;&lt;br /&gt;
1x =­&amp;gt; Automates programmable&amp;lt;br&amp;gt;&lt;br /&gt;
2x =­&amp;gt; Variateur de vitesse&amp;lt;br&amp;gt;&lt;br /&gt;
3x =&amp;gt; Interface homme-machine&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Les numéros de poste vont de 1 à 8 généralement&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Exemple pour le poste 4 dans le C-2702&amp;lt;br&amp;gt;&lt;br /&gt;
Automate Omron =&amp;gt; 10.243.2.14&amp;lt;br&amp;gt;&lt;br /&gt;
Powerflex 70 =&amp;gt; 10.243.2.24&amp;lt;br&amp;gt;&lt;br /&gt;
Interface homme-machine =&amp;gt; 10.243.2.34&amp;lt;br&amp;gt;&lt;br /&gt;
Tous les équipements ont le masque 255.255.255.0 et la passerelle 10.243.2.1&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Schéma =&lt;br /&gt;
Cegeplabs est un réseau dédié aux laboratoires du Cégep. Il est principalement utilisé par le programme de Technologie du génie électrique, par la Technique de l’informatique ainsi que par le LabIDEA.&lt;br /&gt;
[[File:CegeplabsA.jpg|Cegeplabs A]]&lt;br /&gt;
[[File:CegeplabsA.jpg|Cegeplabs B]]&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Cegeplabs&amp;diff=963</id>
		<title>Cegeplabs</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Cegeplabs&amp;diff=963"/>
		<updated>2026-03-19T18:53:59Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Principe d&#039;attribution des adresses IP en TGÉ =&lt;br /&gt;
&lt;br /&gt;
Adresse IP : 10.243.x.y&amp;lt;br&amp;gt;&lt;br /&gt;
Masque : 255.255.255.0&amp;lt;br&amp;gt;&lt;br /&gt;
Passerelle : 10.243.x.1&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Le 10 provient de la norme pour des adresses IP privées (10.0.0.0/8). Le 243 est le numéro du programme de la technologie du génie électrique.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
x =­&amp;gt; Les deux dernier chiffre du numéro de local&amp;lt;br&amp;gt;&lt;br /&gt;
C-2701 =&amp;gt; 1&amp;lt;br&amp;gt;&lt;br /&gt;
C-2701 (Zone robotiques) =&amp;gt; 11&amp;lt;br&amp;gt;&lt;br /&gt;
C-2702 =&amp;gt; 2&amp;lt;br&amp;gt;&lt;br /&gt;
C-2705 =&amp;gt; 5&amp;lt;br&amp;gt;&lt;br /&gt;
C-2706 =&amp;gt; 6&amp;lt;br&amp;gt;&lt;br /&gt;
C-2714 =&amp;gt; 14&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
y ­=­­&amp;gt; Fonction (dizaine) et numéro de poste (unité)&amp;lt;br&amp;gt;&lt;br /&gt;
1x =­&amp;gt; Automates programmable&amp;lt;br&amp;gt;&lt;br /&gt;
2x =­&amp;gt; Variateur de vitesse&amp;lt;br&amp;gt;&lt;br /&gt;
3x =&amp;gt; Interface homme-machine&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Les numéros de poste vont de 1 à 8 généralement&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Exemple pour le poste 4 dans le C-2702&amp;lt;br&amp;gt;&lt;br /&gt;
Automate Omron =&amp;gt; 10.243.2.14&amp;lt;br&amp;gt;&lt;br /&gt;
Powerflex 70 =&amp;gt; 10.243.2.24&amp;lt;br&amp;gt;&lt;br /&gt;
Interface homme-machine =&amp;gt; 10.243.2.34&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Tous les équipements ont le masque 255.255.255.0 et la passerelle 10.243.2.1&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Schéma =&lt;br /&gt;
Cegeplabs est un réseau dédié aux laboratoires du Cégep. Il est principalement utilisé par le programme de Technologie du génie électrique, par la Technique de l’informatique ainsi que par le LabIDEA.&lt;br /&gt;
[[File:CegeplabsA.jpg|Cegeplabs A]]&lt;br /&gt;
[[File:CegeplabsA.jpg|Cegeplabs B]]&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Cegeplabs&amp;diff=962</id>
		<title>Cegeplabs</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Cegeplabs&amp;diff=962"/>
		<updated>2026-03-19T18:51:45Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Principe d&#039;attribution des adresses IP en TGÉ =&lt;br /&gt;
&lt;br /&gt;
Adresse IP : 10.243.x.y&lt;br /&gt;
Masque : 255.255.255.0&lt;br /&gt;
Passerelle : 10.243.x.1&lt;br /&gt;
&lt;br /&gt;
Le 10 provient de la norme pour des adresses IP privées (10.0.0.0/8). Le 243 est le numéro du programme de la technologie du génie électrique.&lt;br /&gt;
&lt;br /&gt;
x =­&amp;gt; Les deux dernier chiffre du numéro de local&lt;br /&gt;
C-2701 =&amp;gt; 1&lt;br /&gt;
C-2701 (Zone robotiques) =&amp;gt; 11&lt;br /&gt;
C-2702 =&amp;gt; 2&lt;br /&gt;
C-2705 =&amp;gt; 5&lt;br /&gt;
C-2706 =&amp;gt; 6&lt;br /&gt;
C-2714 =&amp;gt; 14&lt;br /&gt;
&lt;br /&gt;
y ­=­­&amp;gt; Fonction (dizaine) et numéro de poste (unité)&lt;br /&gt;
1x =­&amp;gt; Automates programmable&lt;br /&gt;
2x =­&amp;gt; Variateur de vitesse&lt;br /&gt;
3x =&amp;gt; Interface homme-machine&lt;br /&gt;
&lt;br /&gt;
Les numéros de poste vont de 1 à 8 généralement&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Exemple pour le poste 4 dans le C-2702&lt;br /&gt;
Automate Omron =&amp;gt; 10.243.2.14&lt;br /&gt;
Powerflex 70 =&amp;gt; 10.243.2.24&lt;br /&gt;
Interface homme-machine =&amp;gt; 10.243.2.34&lt;br /&gt;
&lt;br /&gt;
Tous les équipements ont le masque 255.255.255.0 et la passerelle 10.243.2.1&lt;br /&gt;
&lt;br /&gt;
= Schéma =&lt;br /&gt;
Cegeplabs est un réseau dédié aux laboratoires du Cégep. Il est principalement utilisé par le programme de Technologie du génie électrique, par la Technique de l’informatique ainsi que par le LabIDEA.&lt;br /&gt;
[[File:CegeplabsA.jpg|Cegeplabs A]]&lt;br /&gt;
[[File:CegeplabsA.jpg|Cegeplabs B]]&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_Combat&amp;diff=69</id>
		<title>Zumo32U4 Combat</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_Combat&amp;diff=69"/>
		<updated>2025-12-01T14:50:37Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
/* Exemple Zumo32U4 sumo adapté :&lt;br /&gt;
   - Surface de combat : sol gris&lt;br /&gt;
   - Bordure / mur : tape noir au sol&lt;br /&gt;
 &lt;br /&gt;
   Le robot :&lt;br /&gt;
   - Utilise les capteurs de ligne pour détecter la bordure noire (mur) et reculer.&lt;br /&gt;
   - Utilise les capteurs de proximité pour chercher l’adversaire et foncer dessus.&lt;br /&gt;
 &lt;br /&gt;
   Pour que le code fonctionne, les jumpers de la front sensor array&lt;br /&gt;
   doivent connecter :&lt;br /&gt;
     - pin 4 -&amp;gt; RGT&lt;br /&gt;
     - pin 20 -&amp;gt; LFT&lt;br /&gt;
 &lt;br /&gt;
   Testé avec un Zumo 32U4 et moteurs 75:1 HP.&lt;br /&gt;
*/&lt;br /&gt;
 &lt;br /&gt;
#include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
#include &amp;lt;Zumo32U4.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
// Si tu as l’ancien écran noir/vert, utilise Zumo32U4LCD.&lt;br /&gt;
// Ici : OLED.&lt;br /&gt;
Zumo32U4OLED display;&lt;br /&gt;
 &lt;br /&gt;
Zumo32U4ButtonA buttonA;&lt;br /&gt;
Zumo32U4Buzzer buzzer;&lt;br /&gt;
Zumo32U4Motors motors;&lt;br /&gt;
Zumo32U4LineSensors lineSensors;&lt;br /&gt;
Zumo32U4ProximitySensors proxSensors;&lt;br /&gt;
 &lt;br /&gt;
unsigned int lineSensorValues[3];&lt;br /&gt;
 &lt;br /&gt;
// *** IMPORTANT ***&lt;br /&gt;
// On a : sol gris au centre, bordure en tape noir.&lt;br /&gt;
// Quand la lecture sur un capteur de ligne VA AU-DESSUS de ce seuil,&lt;br /&gt;
// on considère qu’il détecte le MUR (tape noir) à la bordure.&lt;br /&gt;
// --&amp;gt; Ajuste lineSensorThreshold après avoir mesuré:&lt;br /&gt;
//     - valeur au centre (gris)&lt;br /&gt;
//     - valeur sur le tape noir&lt;br /&gt;
//     Mets un seuil entre les 2 et vérifie que la condition (&amp;gt;) marche.&lt;br /&gt;
const uint16_t lineSensorThreshold = 1000;&lt;br /&gt;
 &lt;br /&gt;
// Vitesse en marche arrière&lt;br /&gt;
const uint16_t reverseSpeed = 200;&lt;br /&gt;
 &lt;br /&gt;
// Vitesse pour tourner sur place&lt;br /&gt;
const uint16_t turnSpeed = 200;&lt;br /&gt;
 &lt;br /&gt;
// Vitesse en marche avant (mode normal)&lt;br /&gt;
const uint16_t forwardSpeed = 200;&lt;br /&gt;
 &lt;br /&gt;
// Vitesses pour “dévier” vers la gauche ou la droite en cherchant l’ennemi&lt;br /&gt;
const uint16_t veerSpeedLow  = 0;&lt;br /&gt;
const uint16_t veerSpeedHigh = 250;&lt;br /&gt;
 &lt;br /&gt;
// Vitesse de “ramming” (quand on pense pousser l’adversaire)&lt;br /&gt;
const uint16_t rammingSpeed = 400;&lt;br /&gt;
 &lt;br /&gt;
// Temps à passer en marche arrière après avoir détecté la bordure (ms)&lt;br /&gt;
const uint16_t reverseTime = 200;&lt;br /&gt;
 &lt;br /&gt;
// Temps min/max pour scanner en tournant (ms)&lt;br /&gt;
const uint16_t scanTimeMin = 200;&lt;br /&gt;
const uint16_t scanTimeMax = 2100;&lt;br /&gt;
 &lt;br /&gt;
// Temps d’attente après appui bouton A avant de bouger (ms) (règle sumo)&lt;br /&gt;
const uint16_t waitTime = 5000;&lt;br /&gt;
 &lt;br /&gt;
// Temps à avancer tout droit avant de décider qu’on est en “stalemate” (ms)&lt;br /&gt;
const uint16_t stalemateTime = 4000;&lt;br /&gt;
 &lt;br /&gt;
// États principaux de la machine à états&lt;br /&gt;
enum State&lt;br /&gt;
{&lt;br /&gt;
  StatePausing,&lt;br /&gt;
  StateWaiting,&lt;br /&gt;
  StateScanning,&lt;br /&gt;
  StateDriving,&lt;br /&gt;
  StateBacking,&lt;br /&gt;
};&lt;br /&gt;
 &lt;br /&gt;
State state = StatePausing;&lt;br /&gt;
 &lt;br /&gt;
enum Direction&lt;br /&gt;
{&lt;br /&gt;
  DirectionLeft,&lt;br /&gt;
  DirectionRight,&lt;br /&gt;
};&lt;br /&gt;
 &lt;br /&gt;
// Direction de scan la prochaine fois qu’on cherchera un adversaire&lt;br /&gt;
Direction scanDir = DirectionLeft;&lt;br /&gt;
 &lt;br /&gt;
// Temps (ms) d’entrée dans l’état courant&lt;br /&gt;
uint16_t stateStartTime;&lt;br /&gt;
 &lt;br /&gt;
// Temps (ms) de dernier refresh de l’affichage&lt;br /&gt;
uint16_t displayTime;&lt;br /&gt;
 &lt;br /&gt;
// Vrai quand on vient de changer d’état&lt;br /&gt;
bool justChangedState;&lt;br /&gt;
 &lt;br /&gt;
// Vrai quand l’écran vient d’être effacé&lt;br /&gt;
bool displayCleared;&lt;br /&gt;
 &lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
  // Décommente si un moteur tourne à l’envers :&lt;br /&gt;
  // motors.flipLeftMotor(true);&lt;br /&gt;
  // motors.flipRightMotor(true);&lt;br /&gt;
 &lt;br /&gt;
  // On utilise les 3 capteurs de ligne (gauche, milieu, droite)&lt;br /&gt;
  lineSensors.initThreeSensors();&lt;br /&gt;
 &lt;br /&gt;
  // On utilise aussi les 3 capteurs de proximité (gauche, front, droite)&lt;br /&gt;
  proxSensors.initThreeSensors();&lt;br /&gt;
 &lt;br /&gt;
  changeState(StatePausing);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void loop()&lt;br /&gt;
{&lt;br /&gt;
  bool buttonPress = buttonA.getSingleDebouncedPress();&lt;br /&gt;
 &lt;br /&gt;
  if (state == StatePausing)&lt;br /&gt;
  {&lt;br /&gt;
    // État de pause : on affiche la tension batterie&lt;br /&gt;
    // et on attend que l’utilisateur appuie sur A.&lt;br /&gt;
 &lt;br /&gt;
    motors.setSpeeds(0, 0);&lt;br /&gt;
 &lt;br /&gt;
    if (justChangedState)&lt;br /&gt;
    {&lt;br /&gt;
      justChangedState = false;&lt;br /&gt;
      display.print(F(&amp;quot;Press A&amp;quot;));&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    if (displayIsStale(100))&lt;br /&gt;
    {&lt;br /&gt;
      displayUpdated();&lt;br /&gt;
      display.gotoXY(0, 1);&lt;br /&gt;
      display.print(readBatteryMillivolts());&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    if (buttonPress)&lt;br /&gt;
    {&lt;br /&gt;
      // Passage à l’état d’attente avant départ&lt;br /&gt;
      changeState(StateWaiting);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  else if (buttonPress)&lt;br /&gt;
  {&lt;br /&gt;
    // Appui sur A pendant que le robot tourne -&amp;gt; on met en pause.&lt;br /&gt;
    changeState(StatePausing);&lt;br /&gt;
  }&lt;br /&gt;
  else if (state == StateWaiting)&lt;br /&gt;
  {&lt;br /&gt;
    // On attend waitTime ms avant de commencer à bouger.&lt;br /&gt;
 &lt;br /&gt;
    motors.setSpeeds(0, 0);&lt;br /&gt;
 &lt;br /&gt;
    uint16_t time = timeInThisState();&lt;br /&gt;
 &lt;br /&gt;
    if (time &amp;lt; waitTime)&lt;br /&gt;
    {&lt;br /&gt;
      // Affiche le temps restant (en secondes, avec 1 décimale)&lt;br /&gt;
      uint16_t timeLeft = waitTime - time;&lt;br /&gt;
      display.gotoXY(0, 0);&lt;br /&gt;
      display.print(timeLeft / 1000 % 10);&lt;br /&gt;
      display.print(&#039;.&#039;);&lt;br /&gt;
      display.print(timeLeft / 100 % 10);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
      // Assez attendu, on commence le scan de l’adversaire&lt;br /&gt;
      changeState(StateScanning);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  else if (state == StateBacking)&lt;br /&gt;
  {&lt;br /&gt;
    // Marche arrière après avoir détecté la bordure.&lt;br /&gt;
 &lt;br /&gt;
    if (justChangedState)&lt;br /&gt;
    {&lt;br /&gt;
      justChangedState = false;&lt;br /&gt;
      display.print(F(&amp;quot;back&amp;quot;));&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    motors.setSpeeds(-reverseSpeed, -reverseSpeed);&lt;br /&gt;
 &lt;br /&gt;
    // Après reverseTime ms, on repasse en scan&lt;br /&gt;
    if (timeInThisState() &amp;gt;= reverseTime)&lt;br /&gt;
    {&lt;br /&gt;
      changeState(StateScanning);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  else if (state == StateScanning)&lt;br /&gt;
  {&lt;br /&gt;
    // Robot tourne sur place et cherche l’adversaire.&lt;br /&gt;
 &lt;br /&gt;
    if (justChangedState)&lt;br /&gt;
    {&lt;br /&gt;
      justChangedState = false;&lt;br /&gt;
      display.print(F(&amp;quot;scan&amp;quot;));&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    if (scanDir == DirectionRight)&lt;br /&gt;
    {&lt;br /&gt;
      motors.setSpeeds(turnSpeed, -turnSpeed);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
      motors.setSpeeds(-turnSpeed, turnSpeed);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    uint16_t time = timeInThisState();&lt;br /&gt;
 &lt;br /&gt;
    if (time &amp;gt; scanTimeMax)&lt;br /&gt;
    {&lt;br /&gt;
      // Rien vu depuis longtemps -&amp;gt; on avance&lt;br /&gt;
      changeState(StateDriving);&lt;br /&gt;
    }&lt;br /&gt;
    else if (time &amp;gt; scanTimeMin)&lt;br /&gt;
    {&lt;br /&gt;
      // On regarde les capteurs de proximité frontaux&lt;br /&gt;
      proxSensors.read();&lt;br /&gt;
      if (proxSensors.countsFrontWithLeftLeds()  &amp;gt;= 2&lt;br /&gt;
       || proxSensors.countsFrontWithRightLeds() &amp;gt;= 2)&lt;br /&gt;
      {&lt;br /&gt;
        // Adversaire détecté devant -&amp;gt; on avance&lt;br /&gt;
        changeState(StateDriving);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  else if (state == StateDriving)&lt;br /&gt;
  {&lt;br /&gt;
    // On avance, on surveille :&lt;br /&gt;
    // - la bordure (mur noir),&lt;br /&gt;
    // - la présence de l’adversaire devant / sur les côtés.&lt;br /&gt;
 &lt;br /&gt;
    if (justChangedState)&lt;br /&gt;
    {&lt;br /&gt;
      justChangedState = false;&lt;br /&gt;
      display.print(F(&amp;quot;drive&amp;quot;));&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // *** DÉTECTION BORDURE ***&lt;br /&gt;
    // On lit les 3 capteurs de ligne.&lt;br /&gt;
    lineSensors.read(lineSensorValues);&lt;br /&gt;
 &lt;br /&gt;
    // Avec sol gris + tape noir :&lt;br /&gt;
    // -&amp;gt; on considère qu’on voit le MUR si la valeur est AU-DESSUS du seuil.&lt;br /&gt;
    if (lineSensorValues[0] &amp;gt; lineSensorThreshold)&lt;br /&gt;
    {&lt;br /&gt;
      // Bordure détectée côté gauche -&amp;gt; on reculera puis on tournera vers la droite&lt;br /&gt;
      scanDir = DirectionRight;&lt;br /&gt;
      changeState(StateBacking);&lt;br /&gt;
    }&lt;br /&gt;
    if (lineSensorValues[2] &amp;gt; lineSensorThreshold)&lt;br /&gt;
    {&lt;br /&gt;
      // Bordure détectée côté droit -&amp;gt; on reculera puis on tournera vers la gauche&lt;br /&gt;
      scanDir = DirectionLeft;&lt;br /&gt;
      changeState(StateBacking);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // *** DÉTECTION ADVERSAIRE PAR PROXIMITÉ ***&lt;br /&gt;
    proxSensors.read();&lt;br /&gt;
    uint8_t sum  = proxSensors.countsFrontWithRightLeds()&lt;br /&gt;
                 + proxSensors.countsFrontWithLeftLeds();&lt;br /&gt;
    int8_t diff  = proxSensors.countsFrontWithRightLeds()&lt;br /&gt;
                 - proxSensors.countsFrontWithLeftLeds();&lt;br /&gt;
 &lt;br /&gt;
    if (sum &amp;gt;= 4 || timeInThisState() &amp;gt; stalemateTime)&lt;br /&gt;
    {&lt;br /&gt;
      // Forte détection frontale OU on avance depuis longtemps -&amp;gt; on fonce (ramming)&lt;br /&gt;
      motors.setSpeeds(rammingSpeed, rammingSpeed);&lt;br /&gt;
 &lt;br /&gt;
      // LED rouge allumée quand on “ram”&lt;br /&gt;
      ledRed(1);&lt;br /&gt;
    }&lt;br /&gt;
    else if (sum == 0)&lt;br /&gt;
    {&lt;br /&gt;
      // Rien devant, on continue tout droit en mode normal&lt;br /&gt;
      motors.setSpeeds(forwardSpeed, forwardSpeed);&lt;br /&gt;
 &lt;br /&gt;
      // Mais on surveille les côtés pour repasser en scan si on voit qqch&lt;br /&gt;
      if (proxSensors.countsLeftWithLeftLeds() &amp;gt;= 2)&lt;br /&gt;
      {&lt;br /&gt;
        // Objet sur la gauche&lt;br /&gt;
        scanDir = DirectionLeft;&lt;br /&gt;
        changeState(StateScanning);&lt;br /&gt;
      }&lt;br /&gt;
 &lt;br /&gt;
      if (proxSensors.countsRightWithRightLeds() &amp;gt;= 2)&lt;br /&gt;
      {&lt;br /&gt;
        // Objet sur la droite&lt;br /&gt;
        scanDir = DirectionRight;&lt;br /&gt;
        changeState(StateScanning);&lt;br /&gt;
      }&lt;br /&gt;
 &lt;br /&gt;
      ledRed(0);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
      // On voit quelque chose devant mais pas super fort :&lt;br /&gt;
      // on “pivote” légèrement pour viser l’adversaire.&lt;br /&gt;
 &lt;br /&gt;
      if (diff &amp;gt;= 1)&lt;br /&gt;
      {&lt;br /&gt;
        // Lecture droite plus forte -&amp;gt; on vire à droite&lt;br /&gt;
        motors.setSpeeds(veerSpeedHigh, veerSpeedLow);&lt;br /&gt;
      }&lt;br /&gt;
      else if (diff &amp;lt;= -1)&lt;br /&gt;
      {&lt;br /&gt;
        // Lecture gauche plus forte -&amp;gt; on vire à gauche&lt;br /&gt;
        motors.setSpeeds(veerSpeedLow, veerSpeedHigh);&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
        // Égal -&amp;gt; tout droit&lt;br /&gt;
        motors.setSpeeds(forwardSpeed, forwardSpeed);&lt;br /&gt;
      }&lt;br /&gt;
      ledRed(0);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
// Temps passé dans l’état courant (ms).&lt;br /&gt;
// Overflow après ~65s, mais ce n’est pas grave ici.&lt;br /&gt;
uint16_t timeInThisState()&lt;br /&gt;
{&lt;br /&gt;
  return (uint16_t)(millis() - stateStartTime);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
// Change d’état, reset les LEDs et efface l’écran.&lt;br /&gt;
void changeState(uint8_t newState)&lt;br /&gt;
{&lt;br /&gt;
  state = (State)newState;&lt;br /&gt;
  justChangedState = true;&lt;br /&gt;
  stateStartTime = millis();&lt;br /&gt;
  ledRed(0);&lt;br /&gt;
  ledYellow(0);&lt;br /&gt;
  ledGreen(0);&lt;br /&gt;
  display.clear();&lt;br /&gt;
  displayCleared = true;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
// True si l’affichage est “vieux” de plus que staleTime (ms)&lt;br /&gt;
// ou vient d’être clear.&lt;br /&gt;
bool displayIsStale(uint16_t staleTime)&lt;br /&gt;
{&lt;br /&gt;
  return displayCleared || (millis() - displayTime) &amp;gt; staleTime;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
// À appeler à chaque fois qu’on met à jour l’écran.&lt;br /&gt;
void displayUpdated()&lt;br /&gt;
{&lt;br /&gt;
  displayTime = millis();&lt;br /&gt;
  displayCleared = false;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_Combat&amp;diff=68</id>
		<title>Zumo32U4 Combat</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_Combat&amp;diff=68"/>
		<updated>2025-12-01T14:50:08Z</updated>

		<summary type="html">&lt;p&gt;Philippe : Page créée avec « &amp;lt;pre&amp;gt;  /* Exemple Zumo32U4 sumo adapté :    - Surface de combat : sol gris    - Bordure / mur : tape noir au sol      Le robot :    - Utilise les capteurs de ligne pour détecter la bordure noire (mur) et reculer.    - Utilise les capteurs de proximité pour chercher l’adversaire et foncer dessus.      Pour que le code fonctionne, les jumpers de la front sensor array    doivent connecter :      - pin 4 -&amp;gt; RGT      - pin 20 -&amp;gt; LFT      Testé avec un Zumo 32U4... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/* Exemple Zumo32U4 sumo adapté :&lt;br /&gt;
   - Surface de combat : sol gris&lt;br /&gt;
   - Bordure / mur : tape noir au sol&lt;br /&gt;
 &lt;br /&gt;
   Le robot :&lt;br /&gt;
   - Utilise les capteurs de ligne pour détecter la bordure noire (mur) et reculer.&lt;br /&gt;
   - Utilise les capteurs de proximité pour chercher l’adversaire et foncer dessus.&lt;br /&gt;
 &lt;br /&gt;
   Pour que le code fonctionne, les jumpers de la front sensor array&lt;br /&gt;
   doivent connecter :&lt;br /&gt;
     - pin 4 -&amp;gt; RGT&lt;br /&gt;
     - pin 20 -&amp;gt; LFT&lt;br /&gt;
 &lt;br /&gt;
   Testé avec un Zumo 32U4 et moteurs 75:1 HP.&lt;br /&gt;
*/&lt;br /&gt;
 &lt;br /&gt;
#include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
#include &amp;lt;Zumo32U4.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
// Si tu as l’ancien écran noir/vert, utilise Zumo32U4LCD.&lt;br /&gt;
// Ici : OLED.&lt;br /&gt;
Zumo32U4OLED display;&lt;br /&gt;
 &lt;br /&gt;
Zumo32U4ButtonA buttonA;&lt;br /&gt;
Zumo32U4Buzzer buzzer;&lt;br /&gt;
Zumo32U4Motors motors;&lt;br /&gt;
Zumo32U4LineSensors lineSensors;&lt;br /&gt;
Zumo32U4ProximitySensors proxSensors;&lt;br /&gt;
 &lt;br /&gt;
unsigned int lineSensorValues[3];&lt;br /&gt;
 &lt;br /&gt;
// *** IMPORTANT ***&lt;br /&gt;
// On a : sol gris au centre, bordure en tape noir.&lt;br /&gt;
// Quand la lecture sur un capteur de ligne VA AU-DESSUS de ce seuil,&lt;br /&gt;
// on considère qu’il détecte le MUR (tape noir) à la bordure.&lt;br /&gt;
// --&amp;gt; Ajuste lineSensorThreshold après avoir mesuré:&lt;br /&gt;
//     - valeur au centre (gris)&lt;br /&gt;
//     - valeur sur le tape noir&lt;br /&gt;
//     Mets un seuil entre les 2 et vérifie que la condition (&amp;gt;) marche.&lt;br /&gt;
const uint16_t lineSensorThreshold = 1000;&lt;br /&gt;
 &lt;br /&gt;
// Vitesse en marche arrière&lt;br /&gt;
const uint16_t reverseSpeed = 200;&lt;br /&gt;
 &lt;br /&gt;
// Vitesse pour tourner sur place&lt;br /&gt;
const uint16_t turnSpeed = 200;&lt;br /&gt;
 &lt;br /&gt;
// Vitesse en marche avant (mode normal)&lt;br /&gt;
const uint16_t forwardSpeed = 200;&lt;br /&gt;
 &lt;br /&gt;
// Vitesses pour “dévier” vers la gauche ou la droite en cherchant l’ennemi&lt;br /&gt;
const uint16_t veerSpeedLow  = 0;&lt;br /&gt;
const uint16_t veerSpeedHigh = 250;&lt;br /&gt;
 &lt;br /&gt;
// Vitesse de “ramming” (quand on pense pousser l’adversaire)&lt;br /&gt;
const uint16_t rammingSpeed = 400;&lt;br /&gt;
 &lt;br /&gt;
// Temps à passer en marche arrière après avoir détecté la bordure (ms)&lt;br /&gt;
const uint16_t reverseTime = 200;&lt;br /&gt;
 &lt;br /&gt;
// Temps min/max pour scanner en tournant (ms)&lt;br /&gt;
const uint16_t scanTimeMin = 200;&lt;br /&gt;
const uint16_t scanTimeMax = 2100;&lt;br /&gt;
 &lt;br /&gt;
// Temps d’attente après appui bouton A avant de bouger (ms) (règle sumo)&lt;br /&gt;
const uint16_t waitTime = 5000;&lt;br /&gt;
 &lt;br /&gt;
// Temps à avancer tout droit avant de décider qu’on est en “stalemate” (ms)&lt;br /&gt;
const uint16_t stalemateTime = 4000;&lt;br /&gt;
 &lt;br /&gt;
// États principaux de la machine à états&lt;br /&gt;
enum State&lt;br /&gt;
{&lt;br /&gt;
  StatePausing,&lt;br /&gt;
  StateWaiting,&lt;br /&gt;
  StateScanning,&lt;br /&gt;
  StateDriving,&lt;br /&gt;
  StateBacking,&lt;br /&gt;
};&lt;br /&gt;
 &lt;br /&gt;
State state = StatePausing;&lt;br /&gt;
 &lt;br /&gt;
enum Direction&lt;br /&gt;
{&lt;br /&gt;
  DirectionLeft,&lt;br /&gt;
  DirectionRight,&lt;br /&gt;
};&lt;br /&gt;
 &lt;br /&gt;
// Direction de scan la prochaine fois qu’on cherchera un adversaire&lt;br /&gt;
Direction scanDir = DirectionLeft;&lt;br /&gt;
 &lt;br /&gt;
// Temps (ms) d’entrée dans l’état courant&lt;br /&gt;
uint16_t stateStartTime;&lt;br /&gt;
 &lt;br /&gt;
// Temps (ms) de dernier refresh de l’affichage&lt;br /&gt;
uint16_t displayTime;&lt;br /&gt;
 &lt;br /&gt;
// Vrai quand on vient de changer d’état&lt;br /&gt;
bool justChangedState;&lt;br /&gt;
 &lt;br /&gt;
// Vrai quand l’écran vient d’être effacé&lt;br /&gt;
bool displayCleared;&lt;br /&gt;
 &lt;br /&gt;
void setup()&lt;br /&gt;
{&lt;br /&gt;
  // Décommente si un moteur tourne à l’envers :&lt;br /&gt;
  // motors.flipLeftMotor(true);&lt;br /&gt;
  // motors.flipRightMotor(true);&lt;br /&gt;
 &lt;br /&gt;
  // On utilise les 3 capteurs de ligne (gauche, milieu, droite)&lt;br /&gt;
  lineSensors.initThreeSensors();&lt;br /&gt;
 &lt;br /&gt;
  // On utilise aussi les 3 capteurs de proximité (gauche, front, droite)&lt;br /&gt;
  proxSensors.initThreeSensors();&lt;br /&gt;
 &lt;br /&gt;
  changeState(StatePausing);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
void loop()&lt;br /&gt;
{&lt;br /&gt;
  bool buttonPress = buttonA.getSingleDebouncedPress();&lt;br /&gt;
 &lt;br /&gt;
  if (state == StatePausing)&lt;br /&gt;
  {&lt;br /&gt;
    // État de pause : on affiche la tension batterie&lt;br /&gt;
    // et on attend que l’utilisateur appuie sur A.&lt;br /&gt;
 &lt;br /&gt;
    motors.setSpeeds(0, 0);&lt;br /&gt;
 &lt;br /&gt;
    if (justChangedState)&lt;br /&gt;
    {&lt;br /&gt;
      justChangedState = false;&lt;br /&gt;
      display.print(F(&amp;quot;Press A&amp;quot;));&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    if (displayIsStale(100))&lt;br /&gt;
    {&lt;br /&gt;
      displayUpdated();&lt;br /&gt;
      display.gotoXY(0, 1);&lt;br /&gt;
      display.print(readBatteryMillivolts());&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    if (buttonPress)&lt;br /&gt;
    {&lt;br /&gt;
      // Passage à l’état d’attente avant départ&lt;br /&gt;
      changeState(StateWaiting);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  else if (buttonPress)&lt;br /&gt;
  {&lt;br /&gt;
    // Appui sur A pendant que le robot tourne -&amp;gt; on met en pause.&lt;br /&gt;
    changeState(StatePausing);&lt;br /&gt;
  }&lt;br /&gt;
  else if (state == StateWaiting)&lt;br /&gt;
  {&lt;br /&gt;
    // On attend waitTime ms avant de commencer à bouger.&lt;br /&gt;
 &lt;br /&gt;
    motors.setSpeeds(0, 0);&lt;br /&gt;
 &lt;br /&gt;
    uint16_t time = timeInThisState();&lt;br /&gt;
 &lt;br /&gt;
    if (time &amp;lt; waitTime)&lt;br /&gt;
    {&lt;br /&gt;
      // Affiche le temps restant (en secondes, avec 1 décimale)&lt;br /&gt;
      uint16_t timeLeft = waitTime - time;&lt;br /&gt;
      display.gotoXY(0, 0);&lt;br /&gt;
      display.print(timeLeft / 1000 % 10);&lt;br /&gt;
      display.print(&#039;.&#039;);&lt;br /&gt;
      display.print(timeLeft / 100 % 10);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
      // Assez attendu, on commence le scan de l’adversaire&lt;br /&gt;
      changeState(StateScanning);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  else if (state == StateBacking)&lt;br /&gt;
  {&lt;br /&gt;
    // Marche arrière après avoir détecté la bordure.&lt;br /&gt;
 &lt;br /&gt;
    if (justChangedState)&lt;br /&gt;
    {&lt;br /&gt;
      justChangedState = false;&lt;br /&gt;
      display.print(F(&amp;quot;back&amp;quot;));&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    motors.setSpeeds(-reverseSpeed, -reverseSpeed);&lt;br /&gt;
 &lt;br /&gt;
    // Après reverseTime ms, on repasse en scan&lt;br /&gt;
    if (timeInThisState() &amp;gt;= reverseTime)&lt;br /&gt;
    {&lt;br /&gt;
      changeState(StateScanning);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  else if (state == StateScanning)&lt;br /&gt;
  {&lt;br /&gt;
    // Robot tourne sur place et cherche l’adversaire.&lt;br /&gt;
 &lt;br /&gt;
    if (justChangedState)&lt;br /&gt;
    {&lt;br /&gt;
      justChangedState = false;&lt;br /&gt;
      display.print(F(&amp;quot;scan&amp;quot;));&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    if (scanDir == DirectionRight)&lt;br /&gt;
    {&lt;br /&gt;
      motors.setSpeeds(turnSpeed, -turnSpeed);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
      motors.setSpeeds(-turnSpeed, turnSpeed);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    uint16_t time = timeInThisState();&lt;br /&gt;
 &lt;br /&gt;
    if (time &amp;gt; scanTimeMax)&lt;br /&gt;
    {&lt;br /&gt;
      // Rien vu depuis longtemps -&amp;gt; on avance&lt;br /&gt;
      changeState(StateDriving);&lt;br /&gt;
    }&lt;br /&gt;
    else if (time &amp;gt; scanTimeMin)&lt;br /&gt;
    {&lt;br /&gt;
      // On regarde les capteurs de proximité frontaux&lt;br /&gt;
      proxSensors.read();&lt;br /&gt;
      if (proxSensors.countsFrontWithLeftLeds()  &amp;gt;= 2&lt;br /&gt;
       || proxSensors.countsFrontWithRightLeds() &amp;gt;= 2)&lt;br /&gt;
      {&lt;br /&gt;
        // Adversaire détecté devant -&amp;gt; on avance&lt;br /&gt;
        changeState(StateDriving);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  else if (state == StateDriving)&lt;br /&gt;
  {&lt;br /&gt;
    // On avance, on surveille :&lt;br /&gt;
    // - la bordure (mur noir),&lt;br /&gt;
    // - la présence de l’adversaire devant / sur les côtés.&lt;br /&gt;
 &lt;br /&gt;
    if (justChangedState)&lt;br /&gt;
    {&lt;br /&gt;
      justChangedState = false;&lt;br /&gt;
      display.print(F(&amp;quot;drive&amp;quot;));&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // *** DÉTECTION BORDURE ***&lt;br /&gt;
    // On lit les 3 capteurs de ligne.&lt;br /&gt;
    lineSensors.read(lineSensorValues);&lt;br /&gt;
 &lt;br /&gt;
    // Avec sol gris + tape noir :&lt;br /&gt;
    // -&amp;gt; on considère qu’on voit le MUR si la valeur est AU-DESSUS du seuil.&lt;br /&gt;
    if (lineSensorValues[0] &amp;gt; lineSensorThreshold)&lt;br /&gt;
    {&lt;br /&gt;
      // Bordure détectée côté gauche -&amp;gt; on reculera puis on tournera vers la droite&lt;br /&gt;
      scanDir = DirectionRight;&lt;br /&gt;
      changeState(StateBacking);&lt;br /&gt;
    }&lt;br /&gt;
    if (lineSensorValues[2] &amp;gt; lineSensorThreshold)&lt;br /&gt;
    {&lt;br /&gt;
      // Bordure détectée côté droit -&amp;gt; on reculera puis on tournera vers la gauche&lt;br /&gt;
      scanDir = DirectionLeft;&lt;br /&gt;
      changeState(StateBacking);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // *** DÉTECTION ADVERSAIRE PAR PROXIMITÉ ***&lt;br /&gt;
    proxSensors.read();&lt;br /&gt;
    uint8_t sum  = proxSensors.countsFrontWithRightLeds()&lt;br /&gt;
                 + proxSensors.countsFrontWithLeftLeds();&lt;br /&gt;
    int8_t diff  = proxSensors.countsFrontWithRightLeds()&lt;br /&gt;
                 - proxSensors.countsFrontWithLeftLeds();&lt;br /&gt;
 &lt;br /&gt;
    if (sum &amp;gt;= 4 || timeInThisState() &amp;gt; stalemateTime)&lt;br /&gt;
    {&lt;br /&gt;
      // Forte détection frontale OU on avance depuis longtemps -&amp;gt; on fonce (ramming)&lt;br /&gt;
      motors.setSpeeds(rammingSpeed, rammingSpeed);&lt;br /&gt;
 &lt;br /&gt;
      // LED rouge allumée quand on “ram”&lt;br /&gt;
      ledRed(1);&lt;br /&gt;
    }&lt;br /&gt;
    else if (sum == 0)&lt;br /&gt;
    {&lt;br /&gt;
      // Rien devant, on continue tout droit en mode normal&lt;br /&gt;
      motors.setSpeeds(forwardSpeed, forwardSpeed);&lt;br /&gt;
 &lt;br /&gt;
      // Mais on surveille les côtés pour repasser en scan si on voit qqch&lt;br /&gt;
      if (proxSensors.countsLeftWithLeftLeds() &amp;gt;= 2)&lt;br /&gt;
      {&lt;br /&gt;
        // Objet sur la gauche&lt;br /&gt;
        scanDir = DirectionLeft;&lt;br /&gt;
        changeState(StateScanning);&lt;br /&gt;
      }&lt;br /&gt;
 &lt;br /&gt;
      if (proxSensors.countsRightWithRightLeds() &amp;gt;= 2)&lt;br /&gt;
      {&lt;br /&gt;
        // Objet sur la droite&lt;br /&gt;
        scanDir = DirectionRight;&lt;br /&gt;
        changeState(StateScanning);&lt;br /&gt;
      }&lt;br /&gt;
 &lt;br /&gt;
      ledRed(0);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
      // On voit quelque chose devant mais pas super fort :&lt;br /&gt;
      // on “pivote” légèrement pour viser l’adversaire.&lt;br /&gt;
 &lt;br /&gt;
      if (diff &amp;gt;= 1)&lt;br /&gt;
      {&lt;br /&gt;
        // Lecture droite plus forte -&amp;gt; on vire à droite&lt;br /&gt;
        motors.setSpeeds(veerSpeedHigh, veerSpeedLow);&lt;br /&gt;
      }&lt;br /&gt;
      else if (diff &amp;lt;= -1)&lt;br /&gt;
      {&lt;br /&gt;
        // Lecture gauche plus forte -&amp;gt; on vire à gauche&lt;br /&gt;
        motors.setSpeeds(veerSpeedLow, veerSpeedHigh);&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
        // Égal -&amp;gt; tout droit&lt;br /&gt;
        motors.setSpeeds(forwardSpeed, forwardSpeed);&lt;br /&gt;
      }&lt;br /&gt;
      ledRed(0);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
// Temps passé dans l’état courant (ms).&lt;br /&gt;
// Overflow après ~65s, mais ce n’est pas grave ici.&lt;br /&gt;
uint16_t timeInThisState()&lt;br /&gt;
{&lt;br /&gt;
  return (uint16_t)(millis() - stateStartTime);&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
// Change d’état, reset les LEDs et efface l’écran.&lt;br /&gt;
void changeState(uint8_t newState)&lt;br /&gt;
{&lt;br /&gt;
  state = (State)newState;&lt;br /&gt;
  justChangedState = true;&lt;br /&gt;
  stateStartTime = millis();&lt;br /&gt;
  ledRed(0);&lt;br /&gt;
  ledYellow(0);&lt;br /&gt;
  ledGreen(0);&lt;br /&gt;
  display.clear();&lt;br /&gt;
  displayCleared = true;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
// True si l’affichage est “vieux” de plus que staleTime (ms)&lt;br /&gt;
// ou vient d’être clear.&lt;br /&gt;
bool displayIsStale(uint16_t staleTime)&lt;br /&gt;
{&lt;br /&gt;
  return displayCleared || (millis() - displayTime) &amp;gt; staleTime;&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
// À appeler à chaque fois qu’on met à jour l’écran.&lt;br /&gt;
void displayUpdated()&lt;br /&gt;
{&lt;br /&gt;
  displayTime = millis();&lt;br /&gt;
  displayCleared = false;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=67</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=67"/>
		<updated>2025-12-01T14:41:01Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;Configuration initiale&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : &#039;&#039;&#039;[[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Dans la barre à gauche, cliquez sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyez sur « Install » si ce n’est pas le cas.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manager URLs », aussurez-vous d’avoir :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copiez et collez au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Dans la barre à gauche, cliquez sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous que la plaquette soit installée. Appuyez sur « Install » si ce n’est pas le cas.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Allez dans « File =&amp;gt; Examples =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6. Modifiez les lignes 27 et 28 pour qu’elles soient ainsi :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cette modification permet de sélectionner le bon type d’écran qui est installé sur le robot. Le « // » fait ignorez la ligne au compilateur. Ainsi, le OLED est désactivé et le LCD est activé en tant qu’écran.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7. Branchez le robot Zumo à l’ordinateur à l’aide d’un câble USB et appuyez sur le bouton « Upload » : [[File:Zumo006.png]]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo007.png]]&amp;lt;/br&amp;gt;&lt;br /&gt;
Le robot devrait émettre une tonalité. Ignorez le message « Device code : 0x44 ».&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8. Débranchez le robot du câble USB, assurez vous que le bouton des moteurs soit à « ON » et que la lumière bleue soit allumée et déposez le robot centré sur une ligne d’un parcours quelconque. Voyez comment le robot se comporte avant d’aller à la suite.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Modification du programme&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;9. Trouvez la ligne&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ajoutez les lignes suivantes en dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;erreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10. Trouvez la ligne&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;int16_t lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
et changez la pour&lt;br /&gt;
&amp;lt;pre&amp;gt;float lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11. Trouvez les lignes&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  int16_t speedDifference = error / 4 + 6 * (error - lastError);&lt;br /&gt;
  lastError = error;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et changez les pour&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
float kperreur = kp*error;&lt;br /&gt;
float accumulateur = accumulateur + kperreur;&lt;br /&gt;
accumulateur = constrain(accumulateur, 0, 5*maxSpeed);&lt;br /&gt;
float speedDifference = kperreur + 1/(1000*ti)*kperreur + (td/1000)*(kperreur-lastError);&lt;br /&gt;
lastError = kperreur;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12. Ajustez vos paramètres&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La vitesse maximale est de 400. À cette vitesse, l&#039;algorithme a de la difficulté à opérer le robot. Vous pouvez la diminuer à 200 pour travailler le kp, le ki et le kd. Faites des tests sur différents circuits et essayez d&#039;augmenter en vitesse par la suite.&lt;br /&gt;
&lt;br /&gt;
Le &#039;&#039;&#039;kp&#039;&#039;&#039; est le paramètre proportionnel qui réagit directement. C&#039;est comme donner un coup de volant. Le &#039;&#039;&#039;ki&#039;&#039;&#039; est le paramètre de l&#039;action intégrale, il corrige lentement des déviations de trajectoire. Sur le robot, Ki n&#039;est pas très utile car le robot bouge rapidement. Le &#039;&#039;&#039;kd&#039;&#039;&#039; est le paramètre de l&#039;action dérivée, il corrige rapidement les tendences de l&#039;erreur mais augmente l&#039;instabilité du robot.&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=66</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=66"/>
		<updated>2025-12-01T14:35:08Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;Configuration initiale&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : &#039;&#039;&#039;[[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Dans la barre à gauche, cliquez sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyez sur « Install » si ce n’est pas le cas.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manager URLs », aussurez-vous d’avoir :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copiez et collez au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Dans la barre à gauche, cliquez sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous que la plaquette soit installée. Appuyez sur « Install » si ce n’est pas le cas.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Allez dans « File =&amp;gt; Examples =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6. Modifiez les lignes 27 et 28 pour qu’elles soient ainsi :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cette modification permet de sélectionner le bon type d’écran qui est installé sur le robot. Le « // » fait ignorer la ligne au compilateur. Ainsi, le OLED est désactiver et le LCD est activé en tant qu’écran.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7. Brancher le robot Zumo à l’ordinateur à l’aide d’une câble USB et appuyer sur le bouton « Upload » : [[File:Zumo006.png]]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo007.png]]&amp;lt;/br&amp;gt;&lt;br /&gt;
Le robot devrait émettre une tonalité. Ignorez le message « Device code : 0x44 ».&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8. Débranchez le robot du câble USB, assurez vous que le bouton des moteurs soit à « ON » et que la lumière bleue soit allumée et déposer le robot centrer une un ligne d’une parcours quelconque. Voyez comment le robot se comporte avant d’aller à la suite.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Modification du programme&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;9. Trouvez la ligne&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ajoutez les lignes suivantes en dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10. Trouvez la ligne&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;int16_t lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
et changez la pour&lt;br /&gt;
&amp;lt;pre&amp;gt;float lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11. Trouvez les lignes&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  int16_t speedDifference = error / 4 + 6 * (error - lastError);&lt;br /&gt;
  lastError = error;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et changez les pour&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
float kperreur = kp*error;&lt;br /&gt;
float accumulateur = accumulateur + kperreur;&lt;br /&gt;
accumulateur = constrain(accumulateur, 0, 5*maxSpeed);&lt;br /&gt;
float speedDifference = kperreur + 1/(1000*ti)*kperreur + (td/1000)*(kperreur-lastError);&lt;br /&gt;
lastError = kperreur;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12. Ajustez vos paramètres&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La vitesse maximale est de 400. À cette vitesse, l&#039;algorithme a de la difficulté à opérer le robot. Vous pouvez la diminuez à 200 pour travaille le kp, ki et kd. Faites des tests sur différents circuits et essayer d&#039;augmenter en vitesse par la suite.&lt;br /&gt;
&lt;br /&gt;
Le &#039;&#039;&#039;kp&#039;&#039;&#039; est le paramètre proportionnelle qui réagit directement. C&#039;est comme donner un coup de volant. Le &#039;&#039;&#039;ki&#039;&#039;&#039; est le paramètre de l&#039;action intégral, il corrige lentement des déviate de tajectoire. Sur le robot, est n&#039;est pas très utile car le robot bouge rapidement. Le &#039;&#039;&#039;kd&#039;&#039;&#039; est le paramètre de l&#039;action dérivé, il corrige rapidement les tendences de l&#039;erreurs mais augmente l&#039;instabilité du robot.&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=65</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=65"/>
		<updated>2025-12-01T14:32:24Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;Configuration initiale&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : &#039;&#039;&#039;[[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Dans la barre à gauche, cliquez sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyez sur « Install » si ce n’est pas le cas.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manager URLs », aussurez-vous d’avoir :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copiez et collez au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Dans la barre à gauche, cliquez sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous que la plaquette soit installée. Appuyez sur « Install » si ce n’est pas le cas.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Allez dans « File =&amp;gt; Examples =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cette modification permet de sélectionner le bon type d’écran qui est installé sur le robot. Le « // » fait ignorer la ligne au compilateur. Ainsi, le OLED est désactiver et le LCD est activé en tant qu’écran.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7. Brancher le robot Zumo à l’ordinateur à l’aide d’une câble USB et appuyer sur le bouton « Upload » : [[File:Zumo006.png]]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo007.png]]&amp;lt;/br&amp;gt;&lt;br /&gt;
Le robot devrait émettre une tonalité. Ignorez le message « Device code : 0x44 ».&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8. Débranchez le robot du câble USB, assurez vous que le bouton des moteurs soit à « ON » et que la lumière bleue soit allumée et déposer le robot centrer une un ligne d’une parcours quelconque. Voyez comment le robot se comporte avant d’aller à la suite.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Modification du programme&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;9. Trouvez la ligne&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ajoutez les lignes suivantes en dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10. Trouvez la ligne&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;int16_t lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
et changez la pour&lt;br /&gt;
&amp;lt;pre&amp;gt;float lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11. Trouvez les lignes&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  int16_t speedDifference = error / 4 + 6 * (error - lastError);&lt;br /&gt;
  lastError = error;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et changez les pour&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
float kperreur = kp*error;&lt;br /&gt;
float accumulateur = accumulateur + kperreur;&lt;br /&gt;
accumulateur = constrain(accumulateur, 0, 5*maxSpeed);&lt;br /&gt;
float speedDifference = kperreur + 1/(1000*ti)*kperreur + (td/1000)*(kperreur-lastError);&lt;br /&gt;
lastError = kperreur;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12. Ajustez vos paramètres&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La vitesse maximale est de 400. À cette vitesse, l&#039;algorithme a de la difficulté à opérer le robot. Vous pouvez la diminuez à 200 pour travaille le kp, ki et kd. Faites des tests sur différents circuits et essayer d&#039;augmenter en vitesse par la suite.&lt;br /&gt;
&lt;br /&gt;
Le &#039;&#039;&#039;kp&#039;&#039;&#039; est le paramètre proportionnelle qui réagit directement. C&#039;est comme donner un coup de volant. Le &#039;&#039;&#039;ki&#039;&#039;&#039; est le paramètre de l&#039;action intégral, il corrige lentement des déviate de tajectoire. Sur le robot, est n&#039;est pas très utile car le robot bouge rapidement. Le &#039;&#039;&#039;kd&#039;&#039;&#039; est le paramètre de l&#039;action dérivé, il corrige rapidement les tendences de l&#039;erreurs mais augmente l&#039;instabilité du robot.&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=64</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=64"/>
		<updated>2025-12-01T14:30:55Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;Configuration initiale&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : &#039;&#039;&#039;[[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Dans la barre à gauche, cliquez sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyez sur « Install » si ce n’est pas le cas.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manager URLs », aussurez-vous d’avoir :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copiez et collez au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Dans la barre à gauche, cliquez sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Allez dans « File =&amp;gt; Examples =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cette modification permet de sélectionner le bon type d’écran qui est installé sur le robot. Le « // » fait ignorer la ligne au compilateur. Ainsi, le OLED est désactiver et le LCD est activé en tant qu’écran.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7. Brancher le robot Zumo à l’ordinateur à l’aide d’une câble USB et appuyer sur le bouton « Upload » : [[File:Zumo006.png]]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo007.png]]&amp;lt;/br&amp;gt;&lt;br /&gt;
Le robot devrait émettre une tonalité. Ignorez le message « Device code : 0x44 ».&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8. Débranchez le robot du câble USB, assurez vous que le bouton des moteurs soit à « ON » et que la lumière bleue soit allumée et déposer le robot centrer une un ligne d’une parcours quelconque. Voyez comment le robot se comporte avant d’aller à la suite.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Modification du programme&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;9. Trouvez la ligne&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ajoutez les lignes suivantes en dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10. Trouvez la ligne&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;int16_t lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
et changez la pour&lt;br /&gt;
&amp;lt;pre&amp;gt;float lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11. Trouvez les lignes&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  int16_t speedDifference = error / 4 + 6 * (error - lastError);&lt;br /&gt;
  lastError = error;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et changez les pour&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
float kperreur = kp*error;&lt;br /&gt;
float accumulateur = accumulateur + kperreur;&lt;br /&gt;
accumulateur = constrain(accumulateur, 0, 5*maxSpeed);&lt;br /&gt;
float speedDifference = kperreur + 1/(1000*ti)*kperreur + (td/1000)*(kperreur-lastError);&lt;br /&gt;
lastError = kperreur;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12. Ajustez vos paramètres&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La vitesse maximale est de 400. À cette vitesse, l&#039;algorithme a de la difficulté à opérer le robot. Vous pouvez la diminuez à 200 pour travaille le kp, ki et kd. Faites des tests sur différents circuits et essayer d&#039;augmenter en vitesse par la suite.&lt;br /&gt;
&lt;br /&gt;
Le &#039;&#039;&#039;kp&#039;&#039;&#039; est le paramètre proportionnelle qui réagit directement. C&#039;est comme donner un coup de volant. Le &#039;&#039;&#039;ki&#039;&#039;&#039; est le paramètre de l&#039;action intégral, il corrige lentement des déviate de tajectoire. Sur le robot, est n&#039;est pas très utile car le robot bouge rapidement. Le &#039;&#039;&#039;kd&#039;&#039;&#039; est le paramètre de l&#039;action dérivé, il corrige rapidement les tendences de l&#039;erreurs mais augmente l&#039;instabilité du robot.&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=63</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=63"/>
		<updated>2025-12-01T14:30:01Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;Configuration initiale&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : &#039;&#039;&#039;[[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Dans la barre à gauche, cliquez sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyez sur « Install » si ce n’est pas le cas.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manager URLs », aussurez-vous d’avoir :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Dans la barre à gauche, cliquez sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Allez dans « File =&amp;gt; Examples =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cette modification permet de sélectionner le bon type d’écran qui est installé sur le robot. Le « // » fait ignorer la ligne au compilateur. Ainsi, le OLED est désactiver et le LCD est activé en tant qu’écran.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7. Brancher le robot Zumo à l’ordinateur à l’aide d’une câble USB et appuyer sur le bouton « Upload » : [[File:Zumo006.png]]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo007.png]]&amp;lt;/br&amp;gt;&lt;br /&gt;
Le robot devrait émettre une tonalité. Ignorez le message « Device code : 0x44 ».&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8. Débranchez le robot du câble USB, assurez vous que le bouton des moteurs soit à « ON » et que la lumière bleue soit allumée et déposer le robot centrer une un ligne d’une parcours quelconque. Voyez comment le robot se comporte avant d’aller à la suite.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Modification du programme&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;9. Trouvez la ligne&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ajoutez les lignes suivantes en dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10. Trouvez la ligne&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;int16_t lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
et changez la pour&lt;br /&gt;
&amp;lt;pre&amp;gt;float lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11. Trouvez les lignes&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  int16_t speedDifference = error / 4 + 6 * (error - lastError);&lt;br /&gt;
  lastError = error;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et changez les pour&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
float kperreur = kp*error;&lt;br /&gt;
float accumulateur = accumulateur + kperreur;&lt;br /&gt;
accumulateur = constrain(accumulateur, 0, 5*maxSpeed);&lt;br /&gt;
float speedDifference = kperreur + 1/(1000*ti)*kperreur + (td/1000)*(kperreur-lastError);&lt;br /&gt;
lastError = kperreur;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12. Ajustez vos paramètres&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La vitesse maximale est de 400. À cette vitesse, l&#039;algorithme a de la difficulté à opérer le robot. Vous pouvez la diminuez à 200 pour travaille le kp, ki et kd. Faites des tests sur différents circuits et essayer d&#039;augmenter en vitesse par la suite.&lt;br /&gt;
&lt;br /&gt;
Le &#039;&#039;&#039;kp&#039;&#039;&#039; est le paramètre proportionnelle qui réagit directement. C&#039;est comme donner un coup de volant. Le &#039;&#039;&#039;ki&#039;&#039;&#039; est le paramètre de l&#039;action intégral, il corrige lentement des déviate de tajectoire. Sur le robot, est n&#039;est pas très utile car le robot bouge rapidement. Le &#039;&#039;&#039;kd&#039;&#039;&#039; est le paramètre de l&#039;action dérivé, il corrige rapidement les tendences de l&#039;erreurs mais augmente l&#039;instabilité du robot.&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=62</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=62"/>
		<updated>2025-12-01T14:29:28Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;Configuration initiale&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : &#039;&#039;&#039;[[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Dans la barre à gauche, cliquez sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyez sur « Install » si ce n’est pas le cas.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Dans la barre à gauche, cliquez sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Allez dans « File =&amp;gt; Examples =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cette modification permet de sélectionner le bon type d’écran qui est installé sur le robot. Le « // » fait ignorer la ligne au compilateur. Ainsi, le OLED est désactiver et le LCD est activé en tant qu’écran.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7. Brancher le robot Zumo à l’ordinateur à l’aide d’une câble USB et appuyer sur le bouton « Upload » : [[File:Zumo006.png]]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo007.png]]&amp;lt;/br&amp;gt;&lt;br /&gt;
Le robot devrait émettre une tonalité. Ignorez le message « Device code : 0x44 ».&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8. Débranchez le robot du câble USB, assurez vous que le bouton des moteurs soit à « ON » et que la lumière bleue soit allumée et déposer le robot centrer une un ligne d’une parcours quelconque. Voyez comment le robot se comporte avant d’aller à la suite.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Modification du programme&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;9. Trouvez la ligne&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ajoutez les lignes suivantes en dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10. Trouvez la ligne&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;int16_t lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
et changez la pour&lt;br /&gt;
&amp;lt;pre&amp;gt;float lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11. Trouvez les lignes&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  int16_t speedDifference = error / 4 + 6 * (error - lastError);&lt;br /&gt;
  lastError = error;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et changez les pour&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
float kperreur = kp*error;&lt;br /&gt;
float accumulateur = accumulateur + kperreur;&lt;br /&gt;
accumulateur = constrain(accumulateur, 0, 5*maxSpeed);&lt;br /&gt;
float speedDifference = kperreur + 1/(1000*ti)*kperreur + (td/1000)*(kperreur-lastError);&lt;br /&gt;
lastError = kperreur;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12. Ajustez vos paramètres&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La vitesse maximale est de 400. À cette vitesse, l&#039;algorithme a de la difficulté à opérer le robot. Vous pouvez la diminuez à 200 pour travaille le kp, ki et kd. Faites des tests sur différents circuits et essayer d&#039;augmenter en vitesse par la suite.&lt;br /&gt;
&lt;br /&gt;
Le &#039;&#039;&#039;kp&#039;&#039;&#039; est le paramètre proportionnelle qui réagit directement. C&#039;est comme donner un coup de volant. Le &#039;&#039;&#039;ki&#039;&#039;&#039; est le paramètre de l&#039;action intégral, il corrige lentement des déviate de tajectoire. Sur le robot, est n&#039;est pas très utile car le robot bouge rapidement. Le &#039;&#039;&#039;kd&#039;&#039;&#039; est le paramètre de l&#039;action dérivé, il corrige rapidement les tendences de l&#039;erreurs mais augmente l&#039;instabilité du robot.&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=61</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=61"/>
		<updated>2025-12-01T14:29:06Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;Configuration initiale&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : &#039;&#039;&#039;[[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Dans la barre à gauche, cliquez sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Dans la barre à gauche, cliquez sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Allez dans « File =&amp;gt; Examples =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cette modification permet de sélectionner le bon type d’écran qui est installé sur le robot. Le « // » fait ignorer la ligne au compilateur. Ainsi, le OLED est désactiver et le LCD est activé en tant qu’écran.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7. Brancher le robot Zumo à l’ordinateur à l’aide d’une câble USB et appuyer sur le bouton « Upload » : [[File:Zumo006.png]]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo007.png]]&amp;lt;/br&amp;gt;&lt;br /&gt;
Le robot devrait émettre une tonalité. Ignorez le message « Device code : 0x44 ».&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8. Débranchez le robot du câble USB, assurez vous que le bouton des moteurs soit à « ON » et que la lumière bleue soit allumée et déposer le robot centrer une un ligne d’une parcours quelconque. Voyez comment le robot se comporte avant d’aller à la suite.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Modification du programme&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;9. Trouvez la ligne&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ajoutez les lignes suivantes en dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10. Trouvez la ligne&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;int16_t lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
et changez la pour&lt;br /&gt;
&amp;lt;pre&amp;gt;float lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11. Trouvez les lignes&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  int16_t speedDifference = error / 4 + 6 * (error - lastError);&lt;br /&gt;
  lastError = error;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et changez les pour&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
float kperreur = kp*error;&lt;br /&gt;
float accumulateur = accumulateur + kperreur;&lt;br /&gt;
accumulateur = constrain(accumulateur, 0, 5*maxSpeed);&lt;br /&gt;
float speedDifference = kperreur + 1/(1000*ti)*kperreur + (td/1000)*(kperreur-lastError);&lt;br /&gt;
lastError = kperreur;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12. Ajustez vos paramètres&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La vitesse maximale est de 400. À cette vitesse, l&#039;algorithme a de la difficulté à opérer le robot. Vous pouvez la diminuez à 200 pour travaille le kp, ki et kd. Faites des tests sur différents circuits et essayer d&#039;augmenter en vitesse par la suite.&lt;br /&gt;
&lt;br /&gt;
Le &#039;&#039;&#039;kp&#039;&#039;&#039; est le paramètre proportionnelle qui réagit directement. C&#039;est comme donner un coup de volant. Le &#039;&#039;&#039;ki&#039;&#039;&#039; est le paramètre de l&#039;action intégral, il corrige lentement des déviate de tajectoire. Sur le robot, est n&#039;est pas très utile car le robot bouge rapidement. Le &#039;&#039;&#039;kd&#039;&#039;&#039; est le paramètre de l&#039;action dérivé, il corrige rapidement les tendences de l&#039;erreurs mais augmente l&#039;instabilité du robot.&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=60</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=60"/>
		<updated>2025-12-01T14:28:25Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;Configuration initiale&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : &#039;&#039;&#039;[[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Dans la barre à gauche, cliquez sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Allez dans « File =&amp;gt; Examples =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cette modification permet de sélectionner le bon type d’écran qui est installé sur le robot. Le « // » fait ignorer la ligne au compilateur. Ainsi, le OLED est désactiver et le LCD est activé en tant qu’écran.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7. Brancher le robot Zumo à l’ordinateur à l’aide d’une câble USB et appuyer sur le bouton « Upload » : [[File:Zumo006.png]]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo007.png]]&amp;lt;/br&amp;gt;&lt;br /&gt;
Le robot devrait émettre une tonalité. Ignorez le message « Device code : 0x44 ».&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8. Débranchez le robot du câble USB, assurez vous que le bouton des moteurs soit à « ON » et que la lumière bleue soit allumée et déposer le robot centrer une un ligne d’une parcours quelconque. Voyez comment le robot se comporte avant d’aller à la suite.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Modification du programme&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;9. Trouvez la ligne&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ajoutez les lignes suivantes en dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10. Trouvez la ligne&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;int16_t lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
et changez la pour&lt;br /&gt;
&amp;lt;pre&amp;gt;float lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11. Trouvez les lignes&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  int16_t speedDifference = error / 4 + 6 * (error - lastError);&lt;br /&gt;
  lastError = error;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et changez les pour&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
float kperreur = kp*error;&lt;br /&gt;
float accumulateur = accumulateur + kperreur;&lt;br /&gt;
accumulateur = constrain(accumulateur, 0, 5*maxSpeed);&lt;br /&gt;
float speedDifference = kperreur + 1/(1000*ti)*kperreur + (td/1000)*(kperreur-lastError);&lt;br /&gt;
lastError = kperreur;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12. Ajustez vos paramètres&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La vitesse maximale est de 400. À cette vitesse, l&#039;algorithme a de la difficulté à opérer le robot. Vous pouvez la diminuez à 200 pour travaille le kp, ki et kd. Faites des tests sur différents circuits et essayer d&#039;augmenter en vitesse par la suite.&lt;br /&gt;
&lt;br /&gt;
Le &#039;&#039;&#039;kp&#039;&#039;&#039; est le paramètre proportionnelle qui réagit directement. C&#039;est comme donner un coup de volant. Le &#039;&#039;&#039;ki&#039;&#039;&#039; est le paramètre de l&#039;action intégral, il corrige lentement des déviate de tajectoire. Sur le robot, est n&#039;est pas très utile car le robot bouge rapidement. Le &#039;&#039;&#039;kd&#039;&#039;&#039; est le paramètre de l&#039;action dérivé, il corrige rapidement les tendences de l&#039;erreurs mais augmente l&#039;instabilité du robot.&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=59</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=59"/>
		<updated>2025-11-28T19:02:19Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;Configuration initiale&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : &#039;&#039;&#039;[[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Dans la barre à gauche, cliquer sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Allez dans « File =&amp;gt; Examples =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cette modification permet de sélectionner le bon type d’écran qui est installé sur le robot. Le « // » fait ignorer la ligne au compilateur. Ainsi, le OLED est désactiver et le LCD est activé en tant qu’écran.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7. Brancher le robot Zumo à l’ordinateur à l’aide d’une câble USB et appuyer sur le bouton « Upload » : [[File:Zumo006.png]]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo007.png]]&amp;lt;/br&amp;gt;&lt;br /&gt;
Le robot devrait émettre une tonalité. Ignorez le message « Device code : 0x44 ».&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8. Débranchez le robot du câble USB, assurez vous que le bouton des moteurs soit à « ON » et que la lumière bleue soit allumée et déposer le robot centrer une un ligne d’une parcours quelconque. Voyez comment le robot se comporte avant d’aller à la suite.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Modification du programme&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;9. Trouvez la ligne&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ajoutez les lignes suivantes en dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10. Trouvez la ligne&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;int16_t lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
et changez la pour&lt;br /&gt;
&amp;lt;pre&amp;gt;float lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11. Trouvez les lignes&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  int16_t speedDifference = error / 4 + 6 * (error - lastError);&lt;br /&gt;
  lastError = error;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et changez les pour&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
float kperreur = kp*error;&lt;br /&gt;
float accumulateur = accumulateur + kperreur;&lt;br /&gt;
accumulateur = constrain(accumulateur, 0, 5*maxSpeed);&lt;br /&gt;
float speedDifference = kperreur + 1/(1000*ti)*kperreur + (td/1000)*(kperreur-lastError);&lt;br /&gt;
lastError = kperreur;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12. Ajustez vos paramètres&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La vitesse maximale est de 400. À cette vitesse, l&#039;algorithme a de la difficulté à opérer le robot. Vous pouvez la diminuez à 200 pour travaille le kp, ki et kd. Faites des tests sur différents circuits et essayer d&#039;augmenter en vitesse par la suite.&lt;br /&gt;
&lt;br /&gt;
Le &#039;&#039;&#039;kp&#039;&#039;&#039; est le paramètre proportionnelle qui réagit directement. C&#039;est comme donner un coup de volant. Le &#039;&#039;&#039;ki&#039;&#039;&#039; est le paramètre de l&#039;action intégral, il corrige lentement des déviate de tajectoire. Sur le robot, est n&#039;est pas très utile car le robot bouge rapidement. Le &#039;&#039;&#039;kd&#039;&#039;&#039; est le paramètre de l&#039;action dérivé, il corrige rapidement les tendences de l&#039;erreurs mais augmente l&#039;instabilité du robot.&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=58</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=58"/>
		<updated>2025-11-28T19:01:04Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;Configuration initiale&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : &#039;&#039;&#039;[[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Dans la barre à gauche, cliquer sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Allez dans « File =&amp;gt; Examples =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cette modification permet de sélectionner le bon type d’écran qui est installé sur le robot. Le « // » fait ignorer la ligne au compilateur. Ainsi, le OLED est désactiver et le LCD est activé en tant qu’écran.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7. Brancher le robot Zumo à l’ordinateur à l’aide d’une câble USB et appuyer sur le bouton « Upload » : [[File:Zumo006.png]]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo007.png]]&amp;lt;/br&amp;gt;&lt;br /&gt;
Le robot devrait émettre une tonalité. Ignorez le message « Device code : 0x44 ».&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8. Débranchez le robot du câble USB, assurez vous que le bouton des moteurs soit à « ON » et que la lumière bleue soit allumée et déposer le robot centrer une un ligne d’une parcours quelconque. Voyez comment le robot se comporte avant d’aller à la suite.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Modification du programme&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;9. Trouvez la ligne&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ajoutez les lignes suivante en dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10. Trouvez la ligne&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;int16_t lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
et changez la pour&lt;br /&gt;
&amp;lt;pre&amp;gt;float lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11. Trouvez les lignes&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  int16_t speedDifference = error / 4 + 6 * (error - lastError);&lt;br /&gt;
  lastError = error;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et changez les pour&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
float kperreur = kp*error;&lt;br /&gt;
float accumulateur = accumulateur + kperreur;&lt;br /&gt;
accumulateur = constrain(accumulateur, 0, 5*maxSpeed);&lt;br /&gt;
float speedDifference = kperreur + 1/(1000*ti)*kperreur + (td/1000)*(kperreur-lastError);&lt;br /&gt;
lastError = kperreur;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12. Ajustez vos paramètres&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La vitesse maximale est de 400. À cette vitesse, l&#039;algorithme a de la difficulté à opérer le robot. Vous pouvez la diminuez à 200 pour travaille le kp, ki et kd. Faites des tests sur différents circuits et essayer d&#039;augmenter en vitesse par la suite.&lt;br /&gt;
&lt;br /&gt;
Le &#039;&#039;&#039;kp&#039;&#039;&#039; est le paramètre proportionnelle qui réagit directement. C&#039;est comme donner un coup de volant. Le &#039;&#039;&#039;ki&#039;&#039;&#039; est le paramètre de l&#039;action intégral, il corrige lentement des déviate de tajectoire. Sur le robot, est n&#039;est pas très utile car le robot bouge rapidement. Le &#039;&#039;&#039;kd&#039;&#039;&#039; est le paramètre de l&#039;action dérivé, il corrige rapidement les tendences de l&#039;erreurs mais augmente l&#039;instabilité du robot.&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=57</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=57"/>
		<updated>2025-11-28T19:00:06Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;Configuration initiale&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : &#039;&#039;&#039;[[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Dans la barre à gauche, cliquer sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Allez dans « File =&amp;gt; Examples =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cette modification permet de sélectionner le bon type d’écran qui est installé sur le robot. Le « // » fait ignorer la ligne au compilateur. Ainsi, le OLED est désactiver et le LCD est activé en tant qu’écran.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7. Brancher le robot Zumo à l’ordinateur à l’aide d’une câble USB et appuyer sur le bouton « Upload » : [[File:Zumo006.png]]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo007.png]]&lt;br /&gt;
Le robot devrait émettre une tonalité. Ignorez le message « Device code : 0x44 ».&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8. Débranchez le robot du câble USB, assurez vous que le bouton des moteurs soit à « ON » et que la lumière bleue soit allumée et déposer le robot centrer une un ligne d’une parcours quelconque. Voyez comment le robot se comporte avant d’aller à la suite.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Modification du programme&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;9. Trouvez la ligne&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ajoutez les lignes suivante en dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10. Trouvez la ligne&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;int16_t lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
et changez la pour&lt;br /&gt;
&amp;lt;pre&amp;gt;float lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11. Trouvez les lignes&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  int16_t speedDifference = error / 4 + 6 * (error - lastError);&lt;br /&gt;
  lastError = error;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et changez les pour&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
float kperreur = kp*error;&lt;br /&gt;
float accumulateur = accumulateur + kperreur;&lt;br /&gt;
accumulateur = constrain(accumulateur, 0, 5*maxSpeed);&lt;br /&gt;
float speedDifference = kperreur + 1/(1000*ti)*kperreur + (td/1000)*(kperreur-lastError);&lt;br /&gt;
lastError = kperreur;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12. Ajustez vos paramètres&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La vitesse maximale est de 400. À cette vitesse, l&#039;algorithme a de la difficulté à opérer le robot. Vous pouvez la diminuez à 200 pour travaille le kp, ki et kd. Faites des tests sur différents circuits et essayer d&#039;augmenter en vitesse par la suite.&lt;br /&gt;
&lt;br /&gt;
Le &#039;&#039;&#039;kp&#039;&#039;&#039; est le paramètre proportionnelle qui réagit directement. C&#039;est comme donner un coup de volant. Le &#039;&#039;&#039;ki&#039;&#039;&#039; est le paramètre de l&#039;action intégral, il corrige lentement des déviate de tajectoire. Sur le robot, est n&#039;est pas très utile car le robot bouge rapidement. Le &#039;&#039;&#039;kd&#039;&#039;&#039; est le paramètre de l&#039;action dérivé, il corrige rapidement les tendences de l&#039;erreurs mais augmente l&#039;instabilité du robot.&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=56</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=56"/>
		<updated>2025-11-28T18:56:47Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;Configuration initiale&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : &#039;&#039;&#039;[[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Dans la barre à gauche, cliquer sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Allez dans « File =&amp;gt; Example =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cette modification permet de sélectionner le bon type d’écran qui est installé sur le robot. Le « // » fait ignorer la ligne au compilateur. Ainsi, le OLED est désactiver et le LCD est activé en tant qu’écran.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7. Brancher le robot Zumo à l’ordinateur à l’aide d’une câble USB et appuyer sur le bouton « Upload » : [[File:Zumo006.png]]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo007.png]]&lt;br /&gt;
Le robot devrait émettre une tonalité. Ignorez le message « Device code : 0x44 ».&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8. Débranchez le robot du câble USB, assurez vous que le bouton des moteurs soit à « ON » et que la lumière bleue soit allumée et déposer le robot centrer une un ligne d’une parcours quelconque. Voyez comment le robot se comporte avant d’aller à la suite.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Modification du programme&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;9. Trouvez la ligne&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ajoutez les lignes suivante en dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10. Trouvez la ligne&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;int16_t lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
et changez la pour&lt;br /&gt;
&amp;lt;pre&amp;gt;float lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11. Trouvez les lignes&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  int16_t speedDifference = error / 4 + 6 * (error - lastError);&lt;br /&gt;
  lastError = error;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et changez les pour&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
float kperreur = kp*error;&lt;br /&gt;
float accumulateur = accumulateur + kperreur;&lt;br /&gt;
accumulateur = constrain(accumulateur, 0, 5*maxSpeed);&lt;br /&gt;
float speedDifference = kperreur + 1/(1000*ti)*kperreur + (td/1000)*(kperreur-lastError);&lt;br /&gt;
lastError = kperreur;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12. Ajustez vos paramètres&#039;&#039;&#039;&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La vitesse maximale est de 400. À cette vitesse, l&#039;algorithme a de la difficulté à opérer le robot. Vous pouvez la diminuez à 200 pour travaille le kp, ki et kd. Faites des tests sur différents circuits et essayer d&#039;augmenter en vitesse par la suite.&lt;br /&gt;
&lt;br /&gt;
Le &#039;&#039;&#039;kp&#039;&#039;&#039; est le paramètre proportionnelle qui réagit directement. C&#039;est comme donner un coup de volant. Le &#039;&#039;&#039;ki&#039;&#039;&#039; est le paramètre de l&#039;action intégral, il corrige lentement des déviate de tajectoire. Sur le robot, est n&#039;est pas très utile car le robot bouge rapidement. Le &#039;&#039;&#039;kd&#039;&#039;&#039; est le paramètre de l&#039;action dérivé, il corrige rapidement les tendences de l&#039;erreurs mais augmente l&#039;instabilité du robot.&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=55</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=55"/>
		<updated>2025-11-28T18:50:25Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;Configuration initiale&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : &#039;&#039;&#039;[[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Dans la barre à gauche, cliquer sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Allez dans « File =&amp;gt; Example =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cette modification permet de sélectionner le bon type d’écran qui est installé sur le robot. Le « // » fait ignorer la ligne au compilateur. Ainsi, le OLED est désactiver et le LCD est activé en tant qu’écran.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7. Brancher le robot Zumo à l’ordinateur à l’aide d’une câble USB et appuyer sur le bouton « Upload » : [[File:Zumo006.png]]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo007.png]]&lt;br /&gt;
Le robot devrait émettre une tonalité. Ignorez le message « Device code : 0x44 ».&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8. Débranchez le robot du câble USB, assurez vous que le bouton des moteurs soit à « ON » et que la lumière bleue soit allumée et déposer le robot centrer une un ligne d’une parcours quelconque. Voyez comment le robot se comporte avant d’aller à la suite.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Modification du programme&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;9. Trouvez la ligne&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ajoutez les lignes suivante en dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10. Trouvez la ligne&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;int16_t lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
et changez la pour&lt;br /&gt;
&amp;lt;pre&amp;gt;float lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11. Trouvez les lignes&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  int16_t speedDifference = error / 4 + 6 * (error - lastError);&lt;br /&gt;
  lastError = error;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et changez les pour&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
float kperreur = kp*error;&lt;br /&gt;
float accumulateur = accumulateur + kperreur;&lt;br /&gt;
accumulateur = constrain(accumulateur, 0, 5*maxSpeed);&lt;br /&gt;
float speedDifference = kperreur + 1/(1000*ti)*kperreur + (td/1000)*(kperreur-lastError);&lt;br /&gt;
lastError = kperreur;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=54</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=54"/>
		<updated>2025-11-28T18:49:41Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;Configuration initiale&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : &#039;&#039;&#039;[[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Dans la barre à gauche, cliquer sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Allez dans « File =&amp;gt; Example =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cette modification permet de sélectionner le bon type d’écran qui est installé sur le robot. Le « // » fait ignorer la ligne au compilateur. Ainsi, le OLED est désactiver et le LCD est activé en tant qu’écran.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7. Brancher le robot Zumo à l’ordinateur à l’aide d’une câble USB et appuyer sur le bouton « Upload » : [[File:Zumo006.png]]&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo007.png]]&lt;br /&gt;
Le robot devrait émettre une tonalité. Ignorez le message « Device code : 0x44 ».&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;8. Débranchez le robot du câble USB, assurez vous que le bouton des moteurs soit à « ON » et que la lumière bleue soit allumée et déposer le robot centrer une un ligne d’une parcours quelconque. Voyez comment le robot se comporte avant d’aller à la suite.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Modification du programme&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;9. Trouvez la ligne&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ajoutez les lignes suivante en dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10. Trouvez la ligne&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;int16_t lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
et changez la pour&lt;br /&gt;
&amp;lt;pre&amp;gt;float lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11. Trouvez les lignes&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  int16_t speedDifference = error / 4 + 6 * (error - lastError);&lt;br /&gt;
  lastError = error;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et changez les pour&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
float kperreur = kp*error;&lt;br /&gt;
float accumulateur = accumulateur + kperreur;&lt;br /&gt;
accumulateur = constrain(accumulateur, 0, 5*maxSpeed);&lt;br /&gt;
float speedDifference = kperreur + 1/(1000*ti)*kperreur + (td/1000)*(kperreur-lastError);&lt;br /&gt;
lastError = kperreur;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=53</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=53"/>
		<updated>2025-11-28T18:47:44Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;Configuration initiale&amp;lt;/h1&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : &#039;&#039;&#039;[[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
4. Dans la barre à gauche, cliquer sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
5. Allez dans « File =&amp;gt; Example =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cette modification permet de sélectionner le bon type d’écran qui est installé sur le robot. Le « // » fait ignorer la ligne au compilateur. Ainsi, le OLED est désactiver et le LCD est activé en tant qu’écran.&lt;br /&gt;
&lt;br /&gt;
7. Brancher le robot Zumo à l’ordinateur à l’aide d’une câble USB et appuyer sur le bouton « Upload » : [[File:Zumo006.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo007.png]]&lt;br /&gt;
Le robot devrait émettre une tonalité. Ignorez le message « Device code : 0x44 ».&lt;br /&gt;
&lt;br /&gt;
8. Débranchez le robot du câble USB, assurez vous que le bouton des moteurs soit à « ON » et que la lumière bleue soit allumée et déposer le robot centrer une un ligne d’une parcours quelconque. Voyez comment le robot se comporte avant d’aller à la suite.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Modification du programme&amp;lt;/h1&amp;gt;&lt;br /&gt;
8. Trouvez la ligne&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ajoutez les lignes suivante en dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. Trouvez la ligne&lt;br /&gt;
&amp;lt;pre&amp;gt;int16_t lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
et changez la pour&lt;br /&gt;
&amp;lt;pre&amp;gt;float lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10. Trouvez les lignes&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  int16_t speedDifference = error / 4 + 6 * (error - lastError);&lt;br /&gt;
  lastError = error;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et changez les pour&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
float kperreur = kp*error;&lt;br /&gt;
float accumulateur = accumulateur + kperreur;&lt;br /&gt;
accumulateur = constrain(accumulateur, 0, 5*maxSpeed);&lt;br /&gt;
float speedDifference = kperreur + 1/(1000*ti)*kperreur + (td/1000)*(kperreur-lastError);&lt;br /&gt;
lastError = kperreur;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=52</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=52"/>
		<updated>2025-11-28T18:46:46Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;Configuration initiale&amp;lt;/h1&amp;gt;&lt;br /&gt;
1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : [[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
4. Dans la barre à gauche, cliquer sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
5. Allez dans « File =&amp;gt; Example =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cette modification permet de sélectionner le bon type d’écran qui est installé sur le robot. Le « // » fait ignorer la ligne au compilateur. Ainsi, le OLED est désactiver et le LCD est activé en tant qu’écran.&lt;br /&gt;
&lt;br /&gt;
7. Brancher le robot Zumo à l’ordinateur à l’aide d’une câble USB et appuyer sur le bouton « Upload » : [[File:Zumo006.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo007.png]]&lt;br /&gt;
Le robot devrait émettre une tonalité. Ignorez le message « Device code : 0x44 ».&lt;br /&gt;
&lt;br /&gt;
8. Débranchez le robot du câble USB, assurez vous que le bouton des moteurs soit à « ON » et que la lumière bleue soit allumée et déposer le robot centrer une un ligne d’une parcours quelconque. Voyez comment le robot se comporte avant d’aller à la suite.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Modification du programme&amp;lt;/h1&amp;gt;&lt;br /&gt;
8. Trouvez la ligne&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ajoutez les lignes suivante en dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. Trouvez la ligne&lt;br /&gt;
&amp;lt;pre&amp;gt;int16_t lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
et changez la pour&lt;br /&gt;
&amp;lt;pre&amp;gt;float lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10. Trouvez les lignes&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  int16_t speedDifference = error / 4 + 6 * (error - lastError);&lt;br /&gt;
  lastError = error;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
et changez les pour&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
float kperreur = kp*error;&lt;br /&gt;
float accumulateur = accumulateur + kperreur;&lt;br /&gt;
accumulateur = constrain(accumulateur, 0, 5*maxSpeed);&lt;br /&gt;
float speedDifference = kperreur + 1/(1000*ti)*kperreur + (td/1000)*(kperreur-lastError);&lt;br /&gt;
lastError = kperreur;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=51</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=51"/>
		<updated>2025-11-28T18:45:31Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;Configuration initiale&amp;lt;/h1&amp;gt;&lt;br /&gt;
1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : [[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
4. Dans la barre à gauche, cliquer sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
5. Allez dans « File =&amp;gt; Example =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cette modification permet de sélectionner le bon type d’écran qui est installé sur le robot. Le « // » fait ignorer la ligne au compilateur. Ainsi, le OLED est désactiver et le LCD est activé en tant qu’écran.&lt;br /&gt;
&lt;br /&gt;
7. Brancher le robot Zumo à l’ordinateur à l’aide d’une câble USB et appuyer sur le bouton « Upload » : [[File:Zumo006.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo007.png]]&lt;br /&gt;
Le robot devrait émettre une tonalité. Ignorez le message « Device code : 0x44 ».&lt;br /&gt;
&lt;br /&gt;
8. Débranchez le robot du câble USB, assurez vous que le bouton des moteurs soit à « ON » et que la lumière bleue soit allumée et déposer le robot centrer une un ligne d’une parcours quelconque. Voyez comment le robot se comporte avant d’aller à la suite.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Modification du programme&amp;lt;/h1&amp;gt;&lt;br /&gt;
8. Trouvez la ligne&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ajoutez les lignes suivante en dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. Trouvez la ligne&lt;br /&gt;
&amp;lt;pre&amp;gt;int16_t lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
et changez la pour&lt;br /&gt;
&amp;lt;pre&amp;gt;float lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
10. Trouvez les lignes&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  int16_t speedDifference = error / 4 + 6 * (error - lastError);&lt;br /&gt;
  lastError = error;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=50</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=50"/>
		<updated>2025-11-28T18:44:27Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;Configuration initiale&amp;lt;/h1&amp;gt;&lt;br /&gt;
1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : [[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
4. Dans la barre à gauche, cliquer sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
5. Allez dans « File =&amp;gt; Example =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cette modification permet de sélectionner le bon type d’écran qui est installé sur le robot. Le « // » fait ignorer la ligne au compilateur. Ainsi, le OLED est désactiver et le LCD est activé en tant qu’écran.&lt;br /&gt;
&lt;br /&gt;
7. Brancher le robot Zumo à l’ordinateur à l’aide d’une câble USB et appuyer sur le bouton « Upload » : [[File:Zumo006.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo007.png]]&lt;br /&gt;
Le robot devrait émettre une tonalité. Ignorez le message « Device code : 0x44 ».&lt;br /&gt;
&lt;br /&gt;
8. Débranchez le robot du câble USB, assurez vous que le bouton des moteurs soit à « ON » et que la lumière bleue soit allumée et déposer le robot centrer une un ligne d’une parcours quelconque. Voyez comment le robot se comporte avant d’aller à la suite.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Modification du programme&amp;lt;/h1&amp;gt;&lt;br /&gt;
8. Trouvez la ligne&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ajoutez les lignes suivante en dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
9. Trouvez la ligne&lt;br /&gt;
&amp;lt;pre&amp;gt;int16_t lastError = 0;&amp;lt;/pre&amp;gt;&lt;br /&gt;
et changez la pour&lt;br /&gt;
&amp;lt;pre&amp;gt;float lastError = 0;&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=49</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=49"/>
		<updated>2025-11-28T18:42:33Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;Configuration initiale&amp;lt;/h1&amp;gt;&lt;br /&gt;
1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : [[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
4. Dans la barre à gauche, cliquer sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
5. Allez dans « File =&amp;gt; Example =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cette modification permet de sélectionner le bon type d’écran qui est installé sur le robot. Le « // » fait ignorer la ligne au compilateur. Ainsi, le OLED est désactiver et le LCD est activé en tant qu’écran.&lt;br /&gt;
&lt;br /&gt;
7. Brancher le robot Zumo à l’ordinateur à l’aide d’une câble USB et appuyer sur le bouton « Upload » : [[File:Zumo006.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo007.png]]&lt;br /&gt;
Le robot devrait émettre une tonalité. Ignorez le message « Device code : 0x44 ».&lt;br /&gt;
&lt;br /&gt;
8. Débranchez le robot du câble USB, assurez vous que le bouton des moteurs soit à « ON » et que la lumière bleue soit allumée et déposer le robot centrer une un ligne d’une parcours quelconque. Voyez comment le robot se comporte avant d’aller à la suite.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Modification du programme&amp;lt;/h1&amp;gt;&lt;br /&gt;
8. Trouver la ligne&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ajoutez les lignes suivante en dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=48</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=48"/>
		<updated>2025-11-28T18:42:17Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;Configuration initiale&amp;lt;/h1&amp;gt;&lt;br /&gt;
1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : [[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
4. Dans la barre à gauche, cliquer sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
5. Allez dans « File =&amp;gt; Example =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cette modification permet de sélectionner le bon type d’écran qui est installé sur le robot. Le « // » fait ignorer la ligne au compilateur. Ainsi, le OLED est désactiver et le LCD est activé en tant qu’écran.&lt;br /&gt;
&lt;br /&gt;
7. Brancher le robot Zumo à l’ordinateur à l’aide d’une câble USB et appuyer sur le bouton « Upload » : [[File:Zumo006.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo007.png]]&lt;br /&gt;
Le robot devrait émettre une tonalité. Ignorez le message « Device code : 0x44 ».&lt;br /&gt;
&lt;br /&gt;
8. Débranchez le robot du câble USB, assurez vous que le bouton des moteurs soit à « ON » et que la lumière bleue soit allumée et déposer le robot centrer une un ligne d’une parcours quelconque. Voyez comment le robot se comporte avant d’aller à la suite.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Modification du programme&amp;lt;/h1&amp;gt;&lt;br /&gt;
8. Trouver la ligne&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 400;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ajoutez les lignes suivante en dessous.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
const uint16_t maxSpeed = 300;&lt;br /&gt;
// Paramètres PID&lt;br /&gt;
const float kp = 1;    // Action proportionnelle qui travaille avec l&#039;erreur actuelle&lt;br /&gt;
const float ti = 1;  // Action intégrale (en seconde) qui travaille avec le passé de l&#039;erreur&lt;br /&gt;
const float td = 0.05;    // Action dérivé (en seconde) qui travaille avec le futur de l&#039;érreur&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=47</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=47"/>
		<updated>2025-11-28T18:40:15Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;Configuration initiale&amp;lt;/h1&amp;gt;&lt;br /&gt;
1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : [[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
4. Dans la barre à gauche, cliquer sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
5. Allez dans « File =&amp;gt; Example =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cette modification permet de sélectionner le bon type d’écran qui est installé sur le robot. Le « // » fait ignorer la ligne au compilateur. Ainsi, le OLED est désactiver et le LCD est activé en tant qu’écran.&lt;br /&gt;
&lt;br /&gt;
7. Brancher le robot Zumo à l’ordinateur à l’aide d’une câble USB et appuyer sur le bouton « Upload » : [[File:Zumo006.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo007.png]]&lt;br /&gt;
Le robot devrait émettre une tonalité. Ignorez le message « Device code : 0x44 ».&lt;br /&gt;
&lt;br /&gt;
8. Débranchez le robot du câble USB, assurez vous que le bouton des moteurs soit à « ON » et que la lumière bleue soit allumée et déposer le robot centrer une un ligne d’une parcours quelconque. Voyez comment le robot se comporte avant d’aller à la suite.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Modification du programme&amp;lt;/h1&amp;gt;&lt;br /&gt;
...&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=46</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=46"/>
		<updated>2025-11-28T18:38:51Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : [[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
4. Dans la barre à gauche, cliquer sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
5. Allez dans « File =&amp;gt; Example =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cette modification permet de sélectionner le bon type d’écran qui est installé sur le robot. Le « // » fait ignorer la ligne au compilateur. Ainsi, le OLED est désactiver et le LCD est activé en tant qu’écran.&lt;br /&gt;
&lt;br /&gt;
7. Brancher le robot Zumo à l’ordinateur à l’aide d’une câble USB et appuyer sur le bouton « Upload » : [[File:Zumo006.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo007.png]]&lt;br /&gt;
Le robot devrait émettre une tonalité. Ignorez le message « Device code : 0x44 ».&lt;br /&gt;
&lt;br /&gt;
8. Débranchez le robot du câble USB, assurez vous que le bouton des moteurs soit à « ON » et que la lumière bleue soit allumée et déposer le robot centrer une un ligne d’une parcours quelconque. Voyez comment le robot se comporte avant d’aller à la suite.&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=45</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=45"/>
		<updated>2025-11-28T18:37:40Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : [[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
4. Dans la barre à gauche, cliquer sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
5. Allez dans « File =&amp;gt; Example =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cette modification permet de sélectionner le bon type d’écran qui est installé sur le robot. Le « // » fait ignorer la ligne au compilateur. Ainsi, le OLED est désactiver et le LCD est activé en tant qu’écran.&lt;br /&gt;
&lt;br /&gt;
7. Brancher le robot Zumo à l’ordinateur à l’aide d’une câble USB et appuyer sur le bouton « Upload » : [[File:Zumo006.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo007.png]]&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Fichier:Zumo007.png&amp;diff=44</id>
		<title>Fichier:Zumo007.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Fichier:Zumo007.png&amp;diff=44"/>
		<updated>2025-11-28T18:36:52Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=43</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=43"/>
		<updated>2025-11-28T18:35:36Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : [[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
4. Dans la barre à gauche, cliquer sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
5. Allez dans « File =&amp;gt; Example =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cette modification permet de sélectionner le bon type d’écran qui est installé sur le robot. Le « // » fait ignorer la ligne au compilateur. Ainsi, le OLED est désactiver et le LCD est activé en tant qu’écran.&lt;br /&gt;
&lt;br /&gt;
7. Brancher le robot Zumo à l’ordinateur à l’aide d’une câble USB et appuyer sur le bouton « Upload »&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo006.png]]&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Fichier:Zumo006.png&amp;diff=42</id>
		<title>Fichier:Zumo006.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Fichier:Zumo006.png&amp;diff=42"/>
		<updated>2025-11-28T18:35:30Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=41</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=41"/>
		<updated>2025-11-28T18:32:39Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : [[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
4. Dans la barre à gauche, cliquer sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
5. Allez dans « File =&amp;gt; Example =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Cette modification permet de sélectionner le bon type d’écran qui est installé sur le robot. Le « // » fait ignorer la ligne au compilateur. Ainsi, le OLED est désactiver et le LCD est activé en tant qu’écran.&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=40</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=40"/>
		<updated>2025-11-28T18:32:00Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : [[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
4. Dans la barre à gauche, cliquer sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
5. Allez dans « File =&amp;gt; Example =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=39</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=39"/>
		<updated>2025-11-28T18:31:11Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : [[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
4. Dans la barre à gauche, cliquer sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
5. Allez dans « File =&amp;gt; Example =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=38</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=38"/>
		<updated>2025-11-28T18:29:13Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : [[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
4. Dans la barre à gauche, cliquer sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
5. Allez dans « File =&amp;gt; Example =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=37</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=37"/>
		<updated>2025-11-28T18:26:30Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : [[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
4. Dans la barre à gauche, cliquer sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
5. Allez dans « File =&amp;gt; Example =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=36</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=36"/>
		<updated>2025-11-28T18:25:43Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : [[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
4. Dans la barre à gauche, cliquer sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
5. Allez dans « File =&amp;gt; Example =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=35</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=35"/>
		<updated>2025-11-28T18:25:05Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : [[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
4. Dans la barre à gauche, cliquer sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
5. Allez dans « File =&amp;gt; Example =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&lt;br /&gt;
&amp;lt;/br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=34</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=34"/>
		<updated>2025-11-28T18:24:40Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : [[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
4. Dans la barre à gauche, cliquer sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
5. Allez dans « File =&amp;gt; Example =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;br /&gt;
&lt;br /&gt;
6. Modifiez les ligne 27 et 28 pour qu’elles soient ainsi :&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Zumo32U4LCD display;&lt;br /&gt;
// Zumo32U4OLED display;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=33</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=33"/>
		<updated>2025-11-28T18:20:03Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : [[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
4. Dans la barre à gauche, cliquer sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;br /&gt;
&lt;br /&gt;
5. Allez dans « File =&amp;gt; Example =&amp;gt; Zumo32U4 » et cliquez sur « LineFollower ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo005.png]]&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Fichier:Zumo005.png&amp;diff=32</id>
		<title>Fichier:Zumo005.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Fichier:Zumo005.png&amp;diff=32"/>
		<updated>2025-11-28T18:20:00Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Fichier:Zumo004.png&amp;diff=31</id>
		<title>Fichier:Zumo004.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Fichier:Zumo004.png&amp;diff=31"/>
		<updated>2025-11-28T18:17:36Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=30</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=30"/>
		<updated>2025-11-28T18:17:19Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : [[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;br /&gt;
&lt;br /&gt;
4. Dans la barre à gauche, cliquer sur « Board Manager » recherchez « Pololu A-Star Boards » et assurez-vous d’y retrouver que la plaquette soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo004.png]]&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=29</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=29"/>
		<updated>2025-11-28T18:15:50Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : [[File:IconArduino.png]]&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
&amp;lt;/br&amp;gt;[[File:Zumo003.png]]&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=28</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=28"/>
		<updated>2025-11-28T18:15:23Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : [[File:IconArduino.png]]&lt;br /&gt;
[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&amp;gt;&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
[[File:Zumo003.png]]&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=27</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=27"/>
		<updated>2025-11-28T18:15:01Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : [[File:IconArduino.png]]&lt;br /&gt;
[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&amp;lt;/br&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
[[File:Zumo003.png]]&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Fichier:Zumo003.png&amp;diff=26</id>
		<title>Fichier:Zumo003.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Fichier:Zumo003.png&amp;diff=26"/>
		<updated>2025-11-28T18:14:53Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=25</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=25"/>
		<updated>2025-11-28T18:13:38Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : [[File:IconArduino.png]]&lt;br /&gt;
[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&lt;br /&gt;
&amp;lt;/br&amp;gt;https://files.pololu.com/arduino/package_pololu_index.json&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
[[File:Zumo003.png]]&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=24</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=24"/>
		<updated>2025-11-28T18:12:49Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : [[File:IconArduino.png]]&lt;br /&gt;
[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
[[File:Zumo002.png]]&lt;br /&gt;
&lt;br /&gt;
3. Allez dans « File =&amp;gt; Preferences ». À droite de « Additional boards manger URLs », aussurez-vous d’avoir :&lt;br /&gt;
https://files.pololu.com/arduino/package_pololu_index.json&lt;br /&gt;
Copier et coller au besoin.&lt;br /&gt;
Appuyez sur « OK ».&lt;br /&gt;
[[File:Zumo003.png]]&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
	<entry>
		<id>https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=23</id>
		<title>Zumo32U4 linefollower</title>
		<link rel="alternate" type="text/html" href="https://wiki.tge.cegeplabs.qc.ca/index.php?title=Zumo32U4_linefollower&amp;diff=23"/>
		<updated>2025-11-28T18:11:04Z</updated>

		<summary type="html">&lt;p&gt;Philippe : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. À partir du bureau de Windows ou du gestionnaire d&#039;application, démarrez Arduino IDE : [[File:IconArduino.png]]&lt;br /&gt;
[[File:Zumo001.png]]&lt;br /&gt;
&lt;br /&gt;
2. Dans la barre à gauche, cliquer sur « Library Manager » recherchez « Zumo32U4 » et assurez-vous que la librairie soit installée. Appuyer sur « Install » si ce n’est pas le cas.&lt;br /&gt;
[[File:Zumo002.png]]&lt;/div&gt;</summary>
		<author><name>Philippe</name></author>
	</entry>
</feed>