<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>http://wiki.lesfabriquesduponant.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Marie</id>
		<title>Les Fabriques du Ponant - Contributions de l’utilisateur [fr]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.lesfabriquesduponant.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Marie"/>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Sp%C3%A9cial:Contributions/Marie"/>
		<updated>2026-05-01T02:32:00Z</updated>
		<subtitle>Contributions de l’utilisateur</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29572</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29572"/>
				<updated>2025-01-21T15:08:41Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Finitoooooo.JPG|600px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot avance jusqu'à ce qu'il rencontre un obstacle. Dès qu'un obstacle est détecté à 15 cm (grâce au capteur), la LED rouge s'allume, et le scooter tente de trouver un autre chemin, soit à droite, soit à gauche. Si le scooter tourne à gauche, la LED de gauche clignote pour prévenir et inversement si le scooter tourne à droite.&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 Maquette&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Matériel décoratif&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons réalisé les différentes parties du TurboScoot : le corps, le siège et le guidon. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Patron corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 3===&lt;br /&gt;
Ensuite, nous avons procédé au montage des différentes parties, ainsi qu'à la découpe des trous nécessaires pour accueillir les éléments électroniques.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modélisation siège.jpg | 300px]]&lt;br /&gt;
[[Fichier:Modélisation guidon.jpg | 300px]]&lt;br /&gt;
[[Fichier:Corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 4===&lt;br /&gt;
Après avoir terminé les premières étapes du montage, nous avons programmé sur Arduino (voir code plus bas). Nous avons d'abord effectué des tests sur une plaque à part : d'abord avec les LED seules, puis avec les LED et le capteur de distance ultrason, et enfin le test final avec les servomoteurs.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test les TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Test complet TS.jpg | 350px]]&lt;br /&gt;
&lt;br /&gt;
===étape 5===&lt;br /&gt;
Une fois les tests terminés et validés, nous avons réalisé les premiers essais sur le prototype initial.&lt;br /&gt;
&lt;br /&gt;
===étape 6===&lt;br /&gt;
Après quelques ajustements, le premier prototype fonctionne parfaitement, ce qui nous a permis de concevoir le TurboScoot final et de le customiser.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Finitoooooo.JPG | 300px]]&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
Voici le code Arduino pour faire fonctionner le TurboScoot.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Définition des broches&lt;br /&gt;
#define TRIG_PIN 5      // (D1)&lt;br /&gt;
#define ECHO_PIN 4      // (D2)&lt;br /&gt;
#define LED_LEFT 14     // (D5)&lt;br /&gt;
#define LED_RIGHT 12    // (D6)&lt;br /&gt;
#define LED_OBSTACLE 2  // (D4)&lt;br /&gt;
#define SERVO_LEFT_PIN 13   // (D7)&lt;br /&gt;
#define SERVO_RIGHT_PIN 15  // (D8)&lt;br /&gt;
&lt;br /&gt;
long duration;&lt;br /&gt;
int distance;&lt;br /&gt;
int minDistance = 15;  // Distance minimum pour arrêt en cm&lt;br /&gt;
int slowDistance = 30; // Distance pour ralentir en cm&lt;br /&gt;
&lt;br /&gt;
Servo servoLeft;  // Instance moteur gauche&lt;br /&gt;
Servo servoRight; // Instance moteur droit&lt;br /&gt;
&lt;br /&gt;
// Mesurer la distance avec le capteur ultrason&lt;br /&gt;
int measureDistance() {&lt;br /&gt;
  digitalWrite(TRIG_PIN, LOW);&lt;br /&gt;
  delayMicroseconds(2);&lt;br /&gt;
  digitalWrite(TRIG_PIN, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(TRIG_PIN, LOW);&lt;br /&gt;
  duration = pulseIn(ECHO_PIN, HIGH);&lt;br /&gt;
  return duration * 0.034 / 2; // Conversion en cm&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // Configuration des broches&lt;br /&gt;
  pinMode(TRIG_PIN, OUTPUT);&lt;br /&gt;
  pinMode(ECHO_PIN, INPUT);&lt;br /&gt;
  pinMode(LED_LEFT, OUTPUT);&lt;br /&gt;
  pinMode(LED_RIGHT, OUTPUT);&lt;br /&gt;
  pinMode(LED_OBSTACLE, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  // Attacher les moteurs aux broches&lt;br /&gt;
  servoLeft.attach(SERVO_LEFT_PIN);&lt;br /&gt;
  servoRight.attach(SERVO_RIGHT_PIN);&lt;br /&gt;
&lt;br /&gt;
  // Initialiser les moteurs en position neutre (90 degrés)&lt;br /&gt;
  servoLeft.write(90);&lt;br /&gt;
  servoRight.write(90);&lt;br /&gt;
&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  distance = measureDistance();&lt;br /&gt;
  Serial.println(distance);&lt;br /&gt;
&lt;br /&gt;
  if (distance &amp;lt; minDistance) {&lt;br /&gt;
    // Arrêt complet et allumer la LED d'obstacle&lt;br /&gt;
    servoLeft.write(90);  // Position neutre (arrêt)&lt;br /&gt;
    servoRight.write(90); // Position neutre (arrêt)&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, HIGH);&lt;br /&gt;
    delay(500);&lt;br /&gt;
&lt;br /&gt;
    // Choisir aléatoirement de tourner à gauche ou à droite&lt;br /&gt;
    int direction = random(0, 2);  // 0 pour gauche, 1 pour droite&lt;br /&gt;
&lt;br /&gt;
    if (direction == 0) {&lt;br /&gt;
      // Tourner à gauche&lt;br /&gt;
      digitalWrite(LED_LEFT, HIGH);&lt;br /&gt;
      digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
      servoLeft.write(60);  // Tourner à gauche&lt;br /&gt;
      delay(1000);&lt;br /&gt;
      servoRight.write(120); // Tourner à droite&lt;br /&gt;
      delay(2000);&lt;br /&gt;
&lt;br /&gt;
      digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
      digitalWrite(LED_OBSTACLE, LOW);&lt;br /&gt;
    } else {&lt;br /&gt;
      // Tourner à droite&lt;br /&gt;
      digitalWrite(LED_RIGHT, HIGH);&lt;br /&gt;
      digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
      servoRight.write(120); // Tourner à droite&lt;br /&gt;
      delay(1000);&lt;br /&gt;
      servoLeft.write(60); // Tourner à gauche&lt;br /&gt;
      delay(2000);&lt;br /&gt;
&lt;br /&gt;
      digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
      digitalWrite(LED_OBSTACLE, LOW);&lt;br /&gt;
    }&lt;br /&gt;
  } else if (distance &amp;lt; slowDistance) {&lt;br /&gt;
    // Ralentir selon la distance&lt;br /&gt;
    int angle = map(distance, minDistance, slowDistance, 90, 120);&lt;br /&gt;
    servoLeft.write(angle);&lt;br /&gt;
    servoRight.write(180 - angle); // Angle opposé pour symétrie&lt;br /&gt;
&lt;br /&gt;
    // Éteindre LEDs&lt;br /&gt;
    digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
    digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, LOW);  // Éteindre la LED d'obstacle&lt;br /&gt;
  } else {&lt;br /&gt;
    // Pleine vitesse (symétrique)&lt;br /&gt;
    servoLeft.write(120);&lt;br /&gt;
    servoRight.write(60);&lt;br /&gt;
&lt;br /&gt;
    // LEDs éteintes&lt;br /&gt;
    digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
    digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, LOW);  // Éteindre la LED d'obstacle&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(50); // Anti-rebond&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
le détail de toutes le brochs du shield sont décrite dans ce code : https://github.com/julienrat/petitbot/blob/master/code_arduino/petitbot_v2/petitbot_v2.ino&lt;br /&gt;
&lt;br /&gt;
===Code de base du petit bot ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
///////////////&lt;br /&gt;
// Petit Bot //&lt;br /&gt;
///////////////&lt;br /&gt;
// MAJ 250121&lt;br /&gt;
// Un programme pédagogique des petits débrouillards ?=+ pour gérer le robot &amp;quot;Petit Bot&amp;quot; &lt;br /&gt;
// Voir sur http://ancien.wikidebrouillard.org/index.php?title=Petit_Bot_un_robot_controlable_en_Wifi&lt;br /&gt;
// Ce programme est inspire de : http://www.esp8266.com/viewtopic.php?f=29&amp;amp;t=6419#sthash.gd1tJhwU.dpuf&lt;br /&gt;
// Sous licence CC-By-Sa&lt;br /&gt;
// Par des gens bien&lt;br /&gt;
&lt;br /&gt;
/* Schéma&lt;br /&gt;
Lolin (Wemos) D1 mini&lt;br /&gt;
                                     &lt;br /&gt;
                                _________________&lt;br /&gt;
                               /     D1 mini     \&lt;br /&gt;
                              |[ ]RST        TX[ ]|&lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|&lt;br /&gt;
                              |[ ]D0-16    5-D1[X]|----\&lt;br /&gt;
                              |[ ]D5-14    4-D2[X]|--\  \&lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]|  |   |&lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]|  |   |&lt;br /&gt;
                              |[ ]D8-15     GND[X]|  |   |&lt;br /&gt;
                              |[ ]3V3        5V[ ]|  |   |&lt;br /&gt;
 _                            |       +---+       |  |   |&lt;br /&gt;
| |                           |_______|USB|_______|  |  /                           _&lt;br /&gt;
| |       _                                         /  /                  _        | |&lt;br /&gt;
| |     _| |_________                         _____/  /         _________| |_      | |&lt;br /&gt;
| |    |    ______   |_data D1______________/        |_data D2_|   ______    |     | |&lt;br /&gt;
| |  __|   | SG90 |  |_______________GND_______________________|  | SG90 |   |___  | |&lt;br /&gt;
| |_|      |Servo |  |_______________Vin_______________________|  |Servo |       |_| |&lt;br /&gt;
| |_|      |Gauche|  |                                         |  |Droit |       |_| |&lt;br /&gt;
| | |__    |______|  |                                         |  |______|    ___| | |&lt;br /&gt;
| |    |__   ________|                                         |_________   __|    | |&lt;br /&gt;
| |       |_|                                                            |_|       | |&lt;br /&gt;
| |                                                                                | |&lt;br /&gt;
|_|                                                                                |_|&lt;br /&gt;
                                                                     &lt;br /&gt;
    ___&lt;br /&gt;
  / ___ \&lt;br /&gt;
 |_|   | | &lt;br /&gt;
      /_/&lt;br /&gt;
      _   ___   _&lt;br /&gt;
     |_| |___|_| |_&lt;br /&gt;
          ___|_   _|&lt;br /&gt;
         |___| |_|&lt;br /&gt;
  Les petits Débrouillards - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/&lt;br /&gt;
  Antony Le Goïc-Auffret janvier 2025&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// on appelle la bibliothèque qui gère le Wemos D1 mini&lt;br /&gt;
#include &amp;lt;ESP8266WiFi.h&amp;gt; &lt;br /&gt;
&lt;br /&gt;
// Gestion du Wifi&lt;br /&gt;
#include &amp;lt;ESP8266WebServer.h&amp;gt;&lt;br /&gt;
#include &amp;lt;DNSServer.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP8266mDNS.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFiClient.h&amp;gt; &lt;br /&gt;
&lt;br /&gt;
//  Definition du WiFi &lt;br /&gt;
const char *nomDuReseau = &amp;quot;petitbota&amp;quot;;     // Nom du réseau wifi du petit bot&lt;br /&gt;
const char *motDePasse = &amp;quot;&amp;quot;;    // Mot de passe du réseau wifi du petit bot&lt;br /&gt;
// ATTENTION - le mot de passe doit faire soit 0 caractères soit 8 ou plus sinon&lt;br /&gt;
// La configuration de votre réseau wifi ne se fera pas (ni mot de passe, ni nom de réseau !).&lt;br /&gt;
//création du monServeur&lt;br /&gt;
ESP8266WebServer monServeur(80);               // Création de l'objet monServeur&lt;br /&gt;
&lt;br /&gt;
//Gestion des servomoteurs&lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;   //appel de la bibliothèque qui gère les servomoteurs&lt;br /&gt;
// création des servomoteurs &lt;br /&gt;
Servo servogauche;   // Nom du servo qui gère la première roue&lt;br /&gt;
Servo servodroit;    // Seconde roue&lt;br /&gt;
&lt;br /&gt;
//déclaration des Variables&lt;br /&gt;
//int --- en cours &lt;br /&gt;
int val = -1; // Val nous sert à stocker la commande de l'utilisateur (stop, avance, ...).&lt;br /&gt;
&lt;br /&gt;
void setup(){&lt;br /&gt;
  delay(1000);&lt;br /&gt;
  Serial.begin(9600); // Ouvre une connexion série pour monitorer le fonctionnement du code quand on reste branché a l'ordinateur&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  Serial.println();  &lt;br /&gt;
  configDuWifi();&lt;br /&gt;
  servodroit.detach();  // Place les servos hors tension&lt;br /&gt;
  servogauche.detach(); &lt;br /&gt;
  pinMode(LED_BUILTIN, OUTPUT);    //met la led du Wemos en sortie&lt;br /&gt;
  digitalWrite(LED_BUILTIN, LOW);  //met la led du Wemos sur le niveau bas ce qui l'allume.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop(){&lt;br /&gt;
    val = -1;&lt;br /&gt;
    monServeur.handleClient();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////////GESTION DES INSTRUCTIONS///////////////////////////&lt;br /&gt;
void GestionDesClics() {&lt;br /&gt;
  monServeur.on(&amp;quot;/avance&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 1;&lt;br /&gt;
  Serial.println(&amp;quot;avance&amp;quot;);    &lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/recule&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 2;&lt;br /&gt;
  Serial.println(&amp;quot;recule&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/gauche&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 4;&lt;br /&gt;
  Serial.println(&amp;quot;gauche&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  monServeur.on(&amp;quot;/droite&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 3;&lt;br /&gt;
  Serial.println(&amp;quot;droite&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/stop&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 0;&lt;br /&gt;
  Serial.println(&amp;quot;stop&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  monServeur.on(&amp;quot;/&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = -1;&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////////////LA PAGE WEB DE CONROLE DU PETIT BOT/////////////////////////////////////////&lt;br /&gt;
void redactionPageWeb(){&lt;br /&gt;
  // Prépare la page web de réponse (le code HTML sera écrit dans la chaine de caractère &amp;quot;pageWeb&amp;quot;).&lt;br /&gt;
  String pageWeb = &amp;quot;&amp;lt;!DOCTYPE HTML&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;html&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;head&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;meta charset=\&amp;quot;utf-8\&amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;title&amp;gt;Petit bot&amp;lt;/title&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/head&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;body&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;center&amp;gt;&amp;quot;;    //On ouvre la balise qui va centrer les boutons&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;h1 style=\&amp;quot;font-size:300%;\&amp;quot;\&amp;gt; Le petit bot &amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;style type=\&amp;quot;text/css\&amp;quot;&amp;gt;  body { color: #212121; background-color: #CC0C59 } &amp;lt;/style&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  // On finalise l'écriture de la page Web et on donne les instructions aux servos&lt;br /&gt;
  pageWeb += instruction(val); // pour cela on appelle la fonction &amp;quot;instruction&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  // On termine l'écriture de la page Web&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/h1&amp;gt;&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;br&amp;gt;&amp;quot;; //aller à la ligne&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;br&amp;gt;&amp;quot;; //aller à la ligne&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/stop\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Stop &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;      // créer un bouton &amp;quot;Stop&amp;quot;, qui envoie sur l'URL /stop&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/avance\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Avance &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;  // créer un bouton &amp;quot;Avance&amp;quot;...&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/recule\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Recule &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/droite\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Droite &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/gauche\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Gauche &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/center&amp;gt;&amp;quot;; // tout est centré sur la page&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/body&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/html&amp;gt;\n&amp;quot;; //Fin de la page Web&lt;br /&gt;
&lt;br /&gt;
  // On envoie la page web&lt;br /&gt;
  monServeur.send(200, &amp;quot;text/html&amp;quot;, pageWeb);&lt;br /&gt;
  delay(1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////INSTRUCTIONS/////////////////////////////////////////////////////////&lt;br /&gt;
String instruction(int valeur){ //Cette fonction traite les instructions qui sont reçues&lt;br /&gt;
  int gauche;                           // Variable dont la valeur 180 ou 0 fera tourner le servo gauche dans un sens ou l'autre&lt;br /&gt;
  int droite;                           // Idem pour le servo droit&lt;br /&gt;
  String completePage;                  // Déclaration de la chaine de caractère qui sera renvoyée par cette fonction pour compléter la page web &lt;br /&gt;
  switch(valeur){                       // En fonction de la variable valeur on va donner un ordre aux servos &lt;br /&gt;
    case 0 :                            // et un texte à la chaine de caractère &amp;quot;completePage&amp;quot;&lt;br /&gt;
    completePage = &amp;quot; est a l'arrêt &amp;quot;;&lt;br /&gt;
    droite = 90;&lt;br /&gt;
    gauche = 90;&lt;br /&gt;
    break;&lt;br /&gt;
    case 1 :&lt;br /&gt;
    completePage = &amp;quot; avance &amp;quot;;&lt;br /&gt;
    droite = 180;&lt;br /&gt;
    gauche = 0;&lt;br /&gt;
    break;&lt;br /&gt;
    case 2 :&lt;br /&gt;
    completePage = &amp;quot; recule &amp;quot;;&lt;br /&gt;
    droite = 0;&lt;br /&gt;
    gauche = 180;&lt;br /&gt;
    break;&lt;br /&gt;
    case 3 :&lt;br /&gt;
    completePage = &amp;quot; tourne a gauche &amp;quot;;&lt;br /&gt;
    droite = 180;&lt;br /&gt;
    gauche = 180;&lt;br /&gt;
    break;&lt;br /&gt;
    case 4 :&lt;br /&gt;
    completePage = &amp;quot; tourne a droite &amp;quot;;&lt;br /&gt;
    droite = 0;&lt;br /&gt;
    gauche = 0;&lt;br /&gt;
    break;&lt;br /&gt;
    // que faire du cas ou val = -1 ? marquer ici ce qui doit être fait.&lt;br /&gt;
  }&lt;br /&gt;
  servogauche.attach(D1);     // Broche D1&lt;br /&gt;
  servodroit.attach(D2);      // Broche D2&lt;br /&gt;
  servogauche.write(gauche); &lt;br /&gt;
  servodroit.write(droite);&lt;br /&gt;
  return completePage;        // on renvoie la chaine de caractère pour compléter la page web&lt;br /&gt;
}&lt;br /&gt;
////////////////////////CONFIGURATION WIFI///////////////////////////////////////////////&lt;br /&gt;
void configDuWifi(){  // Fonction de configuratio du Wifi&lt;br /&gt;
  WiFi.mode(WIFI_AP); // le wemos est en mode &amp;quot;Point d'Accès&amp;quot; (il déploie un réseau wifi)&lt;br /&gt;
  WiFi.softAP(nomDuReseau, motDePasse, 2); // on démarre le &amp;quot;Point d'Accès&amp;quot;.&lt;br /&gt;
  MDNS.begin(nomDuReseau);                 // gérer les DNS ce qui rendra votre petit bot accessible&lt;br /&gt;
  MDNS.addService(&amp;quot;http&amp;quot;, &amp;quot;tcp&amp;quot;, 80);      // via http://nomDuReseau.local&lt;br /&gt;
  IPAddress monIP = WiFi.softAPIP();       // on récupère l'adresse IP du petit Bot&lt;br /&gt;
  Serial.print(&amp;quot;Adresse IP de ce Point d'Accès : &amp;quot;);&lt;br /&gt;
  Serial.println(monIP);                   // on l'écrit sur le moniteur série&lt;br /&gt;
  GestionDesClics();&lt;br /&gt;
  monServeur.begin();                          //Démarrage du monServeur&lt;br /&gt;
  Serial.println(&amp;quot;Serveur HTTP démarré&amp;quot;);&lt;br /&gt;
  return;                                  // on retourne à l'endroit ou la fonction a été appelée.&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
[[Fichier:TurboSCOT.png | 650px]]&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29559</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29559"/>
				<updated>2025-01-21T14:58:48Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* étape 5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Finitoooooo.JPG|600px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 Maquette&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Matériel décoratif&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons réalisé les différentes parties du TurboScoot : le corps, le siège et le guidon. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Patron corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 3===&lt;br /&gt;
Ensuite, nous avons procédé au montage des différentes parties, ainsi qu'à la découpe des trous nécessaires pour accueillir les éléments électroniques.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modélisation siège.jpg | 300px]]&lt;br /&gt;
[[Fichier:Modélisation guidon.jpg | 300px]]&lt;br /&gt;
[[Fichier:Corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 4===&lt;br /&gt;
Après avoir terminé les premières étapes du montage, nous avons programmé sur Arduino (voir code plus bas). Nous avons d'abord effectué des tests sur une plaque à part : d'abord avec les LED seules, puis avec les LED et le capteur de distance ultrason, et enfin le test final avec les servomoteurs.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test les TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Test complet TS.jpg | 350px]]&lt;br /&gt;
&lt;br /&gt;
===étape 5===&lt;br /&gt;
Une fois les tests terminés et validés, nous avons réalisé les premiers essais sur le prototype initial.&lt;br /&gt;
&lt;br /&gt;
===étape 6===&lt;br /&gt;
Après quelques ajustements, le premier prototype fonctionne parfaitement, ce qui nous a permis de concevoir le TurboScoot final et de le customiser.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Finitoooooo.JPG | 300px]]&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
Voici le code Arduino pour faire fonctionner le TurboScoot.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Définition des broches&lt;br /&gt;
#define TRIG_PIN 5      // (D1)&lt;br /&gt;
#define ECHO_PIN 4      // (D2)&lt;br /&gt;
#define LED_LEFT 14     // (D5)&lt;br /&gt;
#define LED_RIGHT 12    // (D6)&lt;br /&gt;
#define LED_OBSTACLE 2  // (D4)&lt;br /&gt;
#define SERVO_LEFT_PIN 13   // (D7)&lt;br /&gt;
#define SERVO_RIGHT_PIN 15  // (D8)&lt;br /&gt;
&lt;br /&gt;
long duration;&lt;br /&gt;
int distance;&lt;br /&gt;
int minDistance = 15;  // Distance minimum pour arrêt en cm&lt;br /&gt;
int slowDistance = 30; // Distance pour ralentir en cm&lt;br /&gt;
&lt;br /&gt;
Servo servoLeft;  // Instance moteur gauche&lt;br /&gt;
Servo servoRight; // Instance moteur droit&lt;br /&gt;
&lt;br /&gt;
// Mesurer la distance avec le capteur ultrason&lt;br /&gt;
int measureDistance() {&lt;br /&gt;
  digitalWrite(TRIG_PIN, LOW);&lt;br /&gt;
  delayMicroseconds(2);&lt;br /&gt;
  digitalWrite(TRIG_PIN, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(TRIG_PIN, LOW);&lt;br /&gt;
  duration = pulseIn(ECHO_PIN, HIGH);&lt;br /&gt;
  return duration * 0.034 / 2; // Conversion en cm&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // Configuration des broches&lt;br /&gt;
  pinMode(TRIG_PIN, OUTPUT);&lt;br /&gt;
  pinMode(ECHO_PIN, INPUT);&lt;br /&gt;
  pinMode(LED_LEFT, OUTPUT);&lt;br /&gt;
  pinMode(LED_RIGHT, OUTPUT);&lt;br /&gt;
  pinMode(LED_OBSTACLE, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  // Attacher les moteurs aux broches&lt;br /&gt;
  servoLeft.attach(SERVO_LEFT_PIN);&lt;br /&gt;
  servoRight.attach(SERVO_RIGHT_PIN);&lt;br /&gt;
&lt;br /&gt;
  // Initialiser les moteurs en position neutre (90 degrés)&lt;br /&gt;
  servoLeft.write(90);&lt;br /&gt;
  servoRight.write(90);&lt;br /&gt;
&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  distance = measureDistance();&lt;br /&gt;
  Serial.println(distance);&lt;br /&gt;
&lt;br /&gt;
  if (distance &amp;lt; minDistance) {&lt;br /&gt;
    // Arrêt complet et allumer la LED d'obstacle&lt;br /&gt;
    servoLeft.write(90);  // Position neutre (arrêt)&lt;br /&gt;
    servoRight.write(90); // Position neutre (arrêt)&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, HIGH);&lt;br /&gt;
    delay(500);&lt;br /&gt;
&lt;br /&gt;
    // Choisir aléatoirement de tourner à gauche ou à droite&lt;br /&gt;
    int direction = random(0, 2);  // 0 pour gauche, 1 pour droite&lt;br /&gt;
&lt;br /&gt;
    if (direction == 0) {&lt;br /&gt;
      // Tourner à gauche&lt;br /&gt;
      digitalWrite(LED_LEFT, HIGH);&lt;br /&gt;
      digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
      servoLeft.write(60);  // Tourner à gauche&lt;br /&gt;
      delay(1000);&lt;br /&gt;
      servoRight.write(120); // Tourner à droite&lt;br /&gt;
      delay(2000);&lt;br /&gt;
&lt;br /&gt;
      digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
      digitalWrite(LED_OBSTACLE, LOW);&lt;br /&gt;
    } else {&lt;br /&gt;
      // Tourner à droite&lt;br /&gt;
      digitalWrite(LED_RIGHT, HIGH);&lt;br /&gt;
      digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
      servoRight.write(120); // Tourner à droite&lt;br /&gt;
      delay(1000);&lt;br /&gt;
      servoLeft.write(60); // Tourner à gauche&lt;br /&gt;
      delay(2000);&lt;br /&gt;
&lt;br /&gt;
      digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
      digitalWrite(LED_OBSTACLE, LOW);&lt;br /&gt;
    }&lt;br /&gt;
  } else if (distance &amp;lt; slowDistance) {&lt;br /&gt;
    // Ralentir selon la distance&lt;br /&gt;
    int angle = map(distance, minDistance, slowDistance, 90, 120);&lt;br /&gt;
    servoLeft.write(angle);&lt;br /&gt;
    servoRight.write(180 - angle); // Angle opposé pour symétrie&lt;br /&gt;
&lt;br /&gt;
    // Éteindre LEDs&lt;br /&gt;
    digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
    digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, LOW);  // Éteindre la LED d'obstacle&lt;br /&gt;
  } else {&lt;br /&gt;
    // Pleine vitesse (symétrique)&lt;br /&gt;
    servoLeft.write(120);&lt;br /&gt;
    servoRight.write(60);&lt;br /&gt;
&lt;br /&gt;
    // LEDs éteintes&lt;br /&gt;
    digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
    digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, LOW);  // Éteindre la LED d'obstacle&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(50); // Anti-rebond&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
le détail de toutes le brochs du shield sont décrite dans ce code : https://github.com/julienrat/petitbot/blob/master/code_arduino/petitbot_v2/petitbot_v2.ino&lt;br /&gt;
&lt;br /&gt;
===Code de base du petit bot ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
///////////////&lt;br /&gt;
// Petit Bot //&lt;br /&gt;
///////////////&lt;br /&gt;
// MAJ 250121&lt;br /&gt;
// Un programme pédagogique des petits débrouillards ?=+ pour gérer le robot &amp;quot;Petit Bot&amp;quot; &lt;br /&gt;
// Voir sur http://ancien.wikidebrouillard.org/index.php?title=Petit_Bot_un_robot_controlable_en_Wifi&lt;br /&gt;
// Ce programme est inspire de : http://www.esp8266.com/viewtopic.php?f=29&amp;amp;t=6419#sthash.gd1tJhwU.dpuf&lt;br /&gt;
// Sous licence CC-By-Sa&lt;br /&gt;
// Par des gens bien&lt;br /&gt;
&lt;br /&gt;
/* Schéma&lt;br /&gt;
Lolin (Wemos) D1 mini&lt;br /&gt;
                                     &lt;br /&gt;
                                _________________&lt;br /&gt;
                               /     D1 mini     \&lt;br /&gt;
                              |[ ]RST        TX[ ]|&lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|&lt;br /&gt;
                              |[ ]D0-16    5-D1[X]|----\&lt;br /&gt;
                              |[ ]D5-14    4-D2[X]|--\  \&lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]|  |   |&lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]|  |   |&lt;br /&gt;
                              |[ ]D8-15     GND[X]|  |   |&lt;br /&gt;
                              |[ ]3V3        5V[ ]|  |   |&lt;br /&gt;
 _                            |       +---+       |  |   |&lt;br /&gt;
| |                           |_______|USB|_______|  |  /                           _&lt;br /&gt;
| |       _                                         /  /                  _        | |&lt;br /&gt;
| |     _| |_________                         _____/  /         _________| |_      | |&lt;br /&gt;
| |    |    ______   |_data D1______________/        |_data D2_|   ______    |     | |&lt;br /&gt;
| |  __|   | SG90 |  |_______________GND_______________________|  | SG90 |   |___  | |&lt;br /&gt;
| |_|      |Servo |  |_______________Vin_______________________|  |Servo |       |_| |&lt;br /&gt;
| |_|      |Gauche|  |                                         |  |Droit |       |_| |&lt;br /&gt;
| | |__    |______|  |                                         |  |______|    ___| | |&lt;br /&gt;
| |    |__   ________|                                         |_________   __|    | |&lt;br /&gt;
| |       |_|                                                            |_|       | |&lt;br /&gt;
| |                                                                                | |&lt;br /&gt;
|_|                                                                                |_|&lt;br /&gt;
                                                                     &lt;br /&gt;
    ___&lt;br /&gt;
  / ___ \&lt;br /&gt;
 |_|   | | &lt;br /&gt;
      /_/&lt;br /&gt;
      _   ___   _&lt;br /&gt;
     |_| |___|_| |_&lt;br /&gt;
          ___|_   _|&lt;br /&gt;
         |___| |_|&lt;br /&gt;
  Les petits Débrouillards - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/&lt;br /&gt;
  Antony Le Goïc-Auffret janvier 2025&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// on appelle la bibliothèque qui gère le Wemos D1 mini&lt;br /&gt;
#include &amp;lt;ESP8266WiFi.h&amp;gt; &lt;br /&gt;
&lt;br /&gt;
// Gestion du Wifi&lt;br /&gt;
#include &amp;lt;ESP8266WebServer.h&amp;gt;&lt;br /&gt;
#include &amp;lt;DNSServer.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP8266mDNS.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFiClient.h&amp;gt; &lt;br /&gt;
&lt;br /&gt;
//  Definition du WiFi &lt;br /&gt;
const char *nomDuReseau = &amp;quot;petitbota&amp;quot;;     // Nom du réseau wifi du petit bot&lt;br /&gt;
const char *motDePasse = &amp;quot;&amp;quot;;    // Mot de passe du réseau wifi du petit bot&lt;br /&gt;
// ATTENTION - le mot de passe doit faire soit 0 caractères soit 8 ou plus sinon&lt;br /&gt;
// La configuration de votre réseau wifi ne se fera pas (ni mot de passe, ni nom de réseau !).&lt;br /&gt;
//création du monServeur&lt;br /&gt;
ESP8266WebServer monServeur(80);               // Création de l'objet monServeur&lt;br /&gt;
&lt;br /&gt;
//Gestion des servomoteurs&lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;   //appel de la bibliothèque qui gère les servomoteurs&lt;br /&gt;
// création des servomoteurs &lt;br /&gt;
Servo servogauche;   // Nom du servo qui gère la première roue&lt;br /&gt;
Servo servodroit;    // Seconde roue&lt;br /&gt;
&lt;br /&gt;
//déclaration des Variables&lt;br /&gt;
//int --- en cours &lt;br /&gt;
int val = -1; // Val nous sert à stocker la commande de l'utilisateur (stop, avance, ...).&lt;br /&gt;
&lt;br /&gt;
void setup(){&lt;br /&gt;
  delay(1000);&lt;br /&gt;
  Serial.begin(9600); // Ouvre une connexion série pour monitorer le fonctionnement du code quand on reste branché a l'ordinateur&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  Serial.println();  &lt;br /&gt;
  configDuWifi();&lt;br /&gt;
  servodroit.detach();  // Place les servos hors tension&lt;br /&gt;
  servogauche.detach(); &lt;br /&gt;
  pinMode(LED_BUILTIN, OUTPUT);    //met la led du Wemos en sortie&lt;br /&gt;
  digitalWrite(LED_BUILTIN, LOW);  //met la led du Wemos sur le niveau bas ce qui l'allume.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop(){&lt;br /&gt;
    val = -1;&lt;br /&gt;
    monServeur.handleClient();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////////GESTION DES INSTRUCTIONS///////////////////////////&lt;br /&gt;
void GestionDesClics() {&lt;br /&gt;
  monServeur.on(&amp;quot;/avance&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 1;&lt;br /&gt;
  Serial.println(&amp;quot;avance&amp;quot;);    &lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/recule&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 2;&lt;br /&gt;
  Serial.println(&amp;quot;recule&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/gauche&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 4;&lt;br /&gt;
  Serial.println(&amp;quot;gauche&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  monServeur.on(&amp;quot;/droite&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 3;&lt;br /&gt;
  Serial.println(&amp;quot;droite&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/stop&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 0;&lt;br /&gt;
  Serial.println(&amp;quot;stop&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  monServeur.on(&amp;quot;/&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = -1;&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////////////LA PAGE WEB DE CONROLE DU PETIT BOT/////////////////////////////////////////&lt;br /&gt;
void redactionPageWeb(){&lt;br /&gt;
  // Prépare la page web de réponse (le code HTML sera écrit dans la chaine de caractère &amp;quot;pageWeb&amp;quot;).&lt;br /&gt;
  String pageWeb = &amp;quot;&amp;lt;!DOCTYPE HTML&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;html&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;head&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;meta charset=\&amp;quot;utf-8\&amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;title&amp;gt;Petit bot&amp;lt;/title&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/head&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;body&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;center&amp;gt;&amp;quot;;    //On ouvre la balise qui va centrer les boutons&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;h1 style=\&amp;quot;font-size:300%;\&amp;quot;\&amp;gt; Le petit bot &amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;style type=\&amp;quot;text/css\&amp;quot;&amp;gt;  body { color: #212121; background-color: #CC0C59 } &amp;lt;/style&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  // On finalise l'écriture de la page Web et on donne les instructions aux servos&lt;br /&gt;
  pageWeb += instruction(val); // pour cela on appelle la fonction &amp;quot;instruction&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  // On termine l'écriture de la page Web&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/h1&amp;gt;&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;br&amp;gt;&amp;quot;; //aller à la ligne&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;br&amp;gt;&amp;quot;; //aller à la ligne&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/stop\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Stop &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;      // créer un bouton &amp;quot;Stop&amp;quot;, qui envoie sur l'URL /stop&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/avance\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Avance &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;  // créer un bouton &amp;quot;Avance&amp;quot;...&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/recule\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Recule &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/droite\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Droite &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/gauche\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Gauche &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/center&amp;gt;&amp;quot;; // tout est centré sur la page&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/body&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/html&amp;gt;\n&amp;quot;; //Fin de la page Web&lt;br /&gt;
&lt;br /&gt;
  // On envoie la page web&lt;br /&gt;
  monServeur.send(200, &amp;quot;text/html&amp;quot;, pageWeb);&lt;br /&gt;
  delay(1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////INSTRUCTIONS/////////////////////////////////////////////////////////&lt;br /&gt;
String instruction(int valeur){ //Cette fonction traite les instructions qui sont reçues&lt;br /&gt;
  int gauche;                           // Variable dont la valeur 180 ou 0 fera tourner le servo gauche dans un sens ou l'autre&lt;br /&gt;
  int droite;                           // Idem pour le servo droit&lt;br /&gt;
  String completePage;                  // Déclaration de la chaine de caractère qui sera renvoyée par cette fonction pour compléter la page web &lt;br /&gt;
  switch(valeur){                       // En fonction de la variable valeur on va donner un ordre aux servos &lt;br /&gt;
    case 0 :                            // et un texte à la chaine de caractère &amp;quot;completePage&amp;quot;&lt;br /&gt;
    completePage = &amp;quot; est a l'arrêt &amp;quot;;&lt;br /&gt;
    droite = 90;&lt;br /&gt;
    gauche = 90;&lt;br /&gt;
    break;&lt;br /&gt;
    case 1 :&lt;br /&gt;
    completePage = &amp;quot; avance &amp;quot;;&lt;br /&gt;
    droite = 180;&lt;br /&gt;
    gauche = 0;&lt;br /&gt;
    break;&lt;br /&gt;
    case 2 :&lt;br /&gt;
    completePage = &amp;quot; recule &amp;quot;;&lt;br /&gt;
    droite = 0;&lt;br /&gt;
    gauche = 180;&lt;br /&gt;
    break;&lt;br /&gt;
    case 3 :&lt;br /&gt;
    completePage = &amp;quot; tourne a gauche &amp;quot;;&lt;br /&gt;
    droite = 180;&lt;br /&gt;
    gauche = 180;&lt;br /&gt;
    break;&lt;br /&gt;
    case 4 :&lt;br /&gt;
    completePage = &amp;quot; tourne a droite &amp;quot;;&lt;br /&gt;
    droite = 0;&lt;br /&gt;
    gauche = 0;&lt;br /&gt;
    break;&lt;br /&gt;
    // que faire du cas ou val = -1 ? marquer ici ce qui doit être fait.&lt;br /&gt;
  }&lt;br /&gt;
  servogauche.attach(D1);     // Broche D1&lt;br /&gt;
  servodroit.attach(D2);      // Broche D2&lt;br /&gt;
  servogauche.write(gauche); &lt;br /&gt;
  servodroit.write(droite);&lt;br /&gt;
  return completePage;        // on renvoie la chaine de caractère pour compléter la page web&lt;br /&gt;
}&lt;br /&gt;
////////////////////////CONFIGURATION WIFI///////////////////////////////////////////////&lt;br /&gt;
void configDuWifi(){  // Fonction de configuratio du Wifi&lt;br /&gt;
  WiFi.mode(WIFI_AP); // le wemos est en mode &amp;quot;Point d'Accès&amp;quot; (il déploie un réseau wifi)&lt;br /&gt;
  WiFi.softAP(nomDuReseau, motDePasse, 2); // on démarre le &amp;quot;Point d'Accès&amp;quot;.&lt;br /&gt;
  MDNS.begin(nomDuReseau);                 // gérer les DNS ce qui rendra votre petit bot accessible&lt;br /&gt;
  MDNS.addService(&amp;quot;http&amp;quot;, &amp;quot;tcp&amp;quot;, 80);      // via http://nomDuReseau.local&lt;br /&gt;
  IPAddress monIP = WiFi.softAPIP();       // on récupère l'adresse IP du petit Bot&lt;br /&gt;
  Serial.print(&amp;quot;Adresse IP de ce Point d'Accès : &amp;quot;);&lt;br /&gt;
  Serial.println(monIP);                   // on l'écrit sur le moniteur série&lt;br /&gt;
  GestionDesClics();&lt;br /&gt;
  monServeur.begin();                          //Démarrage du monServeur&lt;br /&gt;
  Serial.println(&amp;quot;Serveur HTTP démarré&amp;quot;);&lt;br /&gt;
  return;                                  // on retourne à l'endroit ou la fonction a été appelée.&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
[[Fichier:TurboSCOT.png | 650px]]&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29557</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29557"/>
				<updated>2025-01-21T14:56:04Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* étape 6 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Finitoooooo.JPG|600px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 Maquette&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Matériel décoratif&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons réalisé les différentes parties du TurboScoot : le corps, le siège et le guidon. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Patron corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 3===&lt;br /&gt;
Ensuite, nous avons procédé au montage des différentes parties, ainsi qu'à la découpe des trous nécessaires pour accueillir les éléments électroniques.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modélisation siège.jpg | 300px]]&lt;br /&gt;
[[Fichier:Modélisation guidon.jpg | 300px]]&lt;br /&gt;
[[Fichier:Corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 4===&lt;br /&gt;
Après avoir terminé les premières étapes du montage, nous avons programmé sur Arduino (voir code plus bas). Nous avons d'abord effectué des tests sur une plaque à part : d'abord avec les LED seules, puis avec les LED et le capteur de distance ultrason, et enfin le test final avec les servomoteurs.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test les TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Test complet TS.jpg | 350px]]&lt;br /&gt;
&lt;br /&gt;
===étape 5===&lt;br /&gt;
Une fois les tests terminés et validés, nous avons réalisé les premiers essais sur le prototype initial.&lt;br /&gt;
&lt;br /&gt;
METTRE LES PHOTO&lt;br /&gt;
&lt;br /&gt;
===étape 6===&lt;br /&gt;
Après quelques ajustements, le premier prototype fonctionne parfaitement, ce qui nous a permis de concevoir le TurboScoot final et de le customiser.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Finitoooooo.JPG | 300px]]&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
Voici le code Arduino pour faire fonctionner le TurboScoot.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Définition des broches&lt;br /&gt;
#define TRIG_PIN 5      // (D1)&lt;br /&gt;
#define ECHO_PIN 4      // (D2)&lt;br /&gt;
#define LED_LEFT 14     // (D5)&lt;br /&gt;
#define LED_RIGHT 12    // (D6)&lt;br /&gt;
#define LED_OBSTACLE 2  // (D4)&lt;br /&gt;
#define SERVO_LEFT_PIN 13   // (D7)&lt;br /&gt;
#define SERVO_RIGHT_PIN 15  // (D8)&lt;br /&gt;
&lt;br /&gt;
long duration;&lt;br /&gt;
int distance;&lt;br /&gt;
int minDistance = 15;  // Distance minimum pour arrêt en cm&lt;br /&gt;
int slowDistance = 30; // Distance pour ralentir en cm&lt;br /&gt;
&lt;br /&gt;
Servo servoLeft;  // Instance moteur gauche&lt;br /&gt;
Servo servoRight; // Instance moteur droit&lt;br /&gt;
&lt;br /&gt;
// Mesurer la distance avec le capteur ultrason&lt;br /&gt;
int measureDistance() {&lt;br /&gt;
  digitalWrite(TRIG_PIN, LOW);&lt;br /&gt;
  delayMicroseconds(2);&lt;br /&gt;
  digitalWrite(TRIG_PIN, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(TRIG_PIN, LOW);&lt;br /&gt;
  duration = pulseIn(ECHO_PIN, HIGH);&lt;br /&gt;
  return duration * 0.034 / 2; // Conversion en cm&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // Configuration des broches&lt;br /&gt;
  pinMode(TRIG_PIN, OUTPUT);&lt;br /&gt;
  pinMode(ECHO_PIN, INPUT);&lt;br /&gt;
  pinMode(LED_LEFT, OUTPUT);&lt;br /&gt;
  pinMode(LED_RIGHT, OUTPUT);&lt;br /&gt;
  pinMode(LED_OBSTACLE, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  // Attacher les moteurs aux broches&lt;br /&gt;
  servoLeft.attach(SERVO_LEFT_PIN);&lt;br /&gt;
  servoRight.attach(SERVO_RIGHT_PIN);&lt;br /&gt;
&lt;br /&gt;
  // Initialiser les moteurs en position neutre (90 degrés)&lt;br /&gt;
  servoLeft.write(90);&lt;br /&gt;
  servoRight.write(90);&lt;br /&gt;
&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  distance = measureDistance();&lt;br /&gt;
  Serial.println(distance);&lt;br /&gt;
&lt;br /&gt;
  if (distance &amp;lt; minDistance) {&lt;br /&gt;
    // Arrêt complet et allumer la LED d'obstacle&lt;br /&gt;
    servoLeft.write(90);  // Position neutre (arrêt)&lt;br /&gt;
    servoRight.write(90); // Position neutre (arrêt)&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, HIGH);&lt;br /&gt;
    delay(500);&lt;br /&gt;
&lt;br /&gt;
    // Choisir aléatoirement de tourner à gauche ou à droite&lt;br /&gt;
    int direction = random(0, 2);  // 0 pour gauche, 1 pour droite&lt;br /&gt;
&lt;br /&gt;
    if (direction == 0) {&lt;br /&gt;
      // Tourner à gauche&lt;br /&gt;
      digitalWrite(LED_LEFT, HIGH);&lt;br /&gt;
      digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
      servoLeft.write(60);  // Tourner à gauche&lt;br /&gt;
      delay(1000);&lt;br /&gt;
      servoRight.write(120); // Tourner à droite&lt;br /&gt;
      delay(2000);&lt;br /&gt;
&lt;br /&gt;
      digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
      digitalWrite(LED_OBSTACLE, LOW);&lt;br /&gt;
    } else {&lt;br /&gt;
      // Tourner à droite&lt;br /&gt;
      digitalWrite(LED_RIGHT, HIGH);&lt;br /&gt;
      digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
      servoRight.write(120); // Tourner à droite&lt;br /&gt;
      delay(1000);&lt;br /&gt;
      servoLeft.write(60); // Tourner à gauche&lt;br /&gt;
      delay(2000);&lt;br /&gt;
&lt;br /&gt;
      digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
      digitalWrite(LED_OBSTACLE, LOW);&lt;br /&gt;
    }&lt;br /&gt;
  } else if (distance &amp;lt; slowDistance) {&lt;br /&gt;
    // Ralentir selon la distance&lt;br /&gt;
    int angle = map(distance, minDistance, slowDistance, 90, 120);&lt;br /&gt;
    servoLeft.write(angle);&lt;br /&gt;
    servoRight.write(180 - angle); // Angle opposé pour symétrie&lt;br /&gt;
&lt;br /&gt;
    // Éteindre LEDs&lt;br /&gt;
    digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
    digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, LOW);  // Éteindre la LED d'obstacle&lt;br /&gt;
  } else {&lt;br /&gt;
    // Pleine vitesse (symétrique)&lt;br /&gt;
    servoLeft.write(120);&lt;br /&gt;
    servoRight.write(60);&lt;br /&gt;
&lt;br /&gt;
    // LEDs éteintes&lt;br /&gt;
    digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
    digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, LOW);  // Éteindre la LED d'obstacle&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(50); // Anti-rebond&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
le détail de toutes le brochs du shield sont décrite dans ce code : https://github.com/julienrat/petitbot/blob/master/code_arduino/petitbot_v2/petitbot_v2.ino&lt;br /&gt;
&lt;br /&gt;
===Code de base du petit bot ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
///////////////&lt;br /&gt;
// Petit Bot //&lt;br /&gt;
///////////////&lt;br /&gt;
// MAJ 250121&lt;br /&gt;
// Un programme pédagogique des petits débrouillards ?=+ pour gérer le robot &amp;quot;Petit Bot&amp;quot; &lt;br /&gt;
// Voir sur http://ancien.wikidebrouillard.org/index.php?title=Petit_Bot_un_robot_controlable_en_Wifi&lt;br /&gt;
// Ce programme est inspire de : http://www.esp8266.com/viewtopic.php?f=29&amp;amp;t=6419#sthash.gd1tJhwU.dpuf&lt;br /&gt;
// Sous licence CC-By-Sa&lt;br /&gt;
// Par des gens bien&lt;br /&gt;
&lt;br /&gt;
/* Schéma&lt;br /&gt;
Lolin (Wemos) D1 mini&lt;br /&gt;
                                     &lt;br /&gt;
                                _________________&lt;br /&gt;
                               /     D1 mini     \&lt;br /&gt;
                              |[ ]RST        TX[ ]|&lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|&lt;br /&gt;
                              |[ ]D0-16    5-D1[X]|----\&lt;br /&gt;
                              |[ ]D5-14    4-D2[X]|--\  \&lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]|  |   |&lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]|  |   |&lt;br /&gt;
                              |[ ]D8-15     GND[X]|  |   |&lt;br /&gt;
                              |[ ]3V3        5V[ ]|  |   |&lt;br /&gt;
 _                            |       +---+       |  |   |&lt;br /&gt;
| |                           |_______|USB|_______|  |  /                           _&lt;br /&gt;
| |       _                                         /  /                  _        | |&lt;br /&gt;
| |     _| |_________                         _____/  /         _________| |_      | |&lt;br /&gt;
| |    |    ______   |_data D1______________/        |_data D2_|   ______    |     | |&lt;br /&gt;
| |  __|   | SG90 |  |_______________GND_______________________|  | SG90 |   |___  | |&lt;br /&gt;
| |_|      |Servo |  |_______________Vin_______________________|  |Servo |       |_| |&lt;br /&gt;
| |_|      |Gauche|  |                                         |  |Droit |       |_| |&lt;br /&gt;
| | |__    |______|  |                                         |  |______|    ___| | |&lt;br /&gt;
| |    |__   ________|                                         |_________   __|    | |&lt;br /&gt;
| |       |_|                                                            |_|       | |&lt;br /&gt;
| |                                                                                | |&lt;br /&gt;
|_|                                                                                |_|&lt;br /&gt;
                                                                     &lt;br /&gt;
    ___&lt;br /&gt;
  / ___ \&lt;br /&gt;
 |_|   | | &lt;br /&gt;
      /_/&lt;br /&gt;
      _   ___   _&lt;br /&gt;
     |_| |___|_| |_&lt;br /&gt;
          ___|_   _|&lt;br /&gt;
         |___| |_|&lt;br /&gt;
  Les petits Débrouillards - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/&lt;br /&gt;
  Antony Le Goïc-Auffret janvier 2025&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// on appelle la bibliothèque qui gère le Wemos D1 mini&lt;br /&gt;
#include &amp;lt;ESP8266WiFi.h&amp;gt; &lt;br /&gt;
&lt;br /&gt;
// Gestion du Wifi&lt;br /&gt;
#include &amp;lt;ESP8266WebServer.h&amp;gt;&lt;br /&gt;
#include &amp;lt;DNSServer.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP8266mDNS.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFiClient.h&amp;gt; &lt;br /&gt;
&lt;br /&gt;
//  Definition du WiFi &lt;br /&gt;
const char *nomDuReseau = &amp;quot;petitbota&amp;quot;;     // Nom du réseau wifi du petit bot&lt;br /&gt;
const char *motDePasse = &amp;quot;&amp;quot;;    // Mot de passe du réseau wifi du petit bot&lt;br /&gt;
// ATTENTION - le mot de passe doit faire soit 0 caractères soit 8 ou plus sinon&lt;br /&gt;
// La configuration de votre réseau wifi ne se fera pas (ni mot de passe, ni nom de réseau !).&lt;br /&gt;
//création du monServeur&lt;br /&gt;
ESP8266WebServer monServeur(80);               // Création de l'objet monServeur&lt;br /&gt;
&lt;br /&gt;
//Gestion des servomoteurs&lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;   //appel de la bibliothèque qui gère les servomoteurs&lt;br /&gt;
// création des servomoteurs &lt;br /&gt;
Servo servogauche;   // Nom du servo qui gère la première roue&lt;br /&gt;
Servo servodroit;    // Seconde roue&lt;br /&gt;
&lt;br /&gt;
//déclaration des Variables&lt;br /&gt;
//int --- en cours &lt;br /&gt;
int val = -1; // Val nous sert à stocker la commande de l'utilisateur (stop, avance, ...).&lt;br /&gt;
&lt;br /&gt;
void setup(){&lt;br /&gt;
  delay(1000);&lt;br /&gt;
  Serial.begin(9600); // Ouvre une connexion série pour monitorer le fonctionnement du code quand on reste branché a l'ordinateur&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  Serial.println();  &lt;br /&gt;
  configDuWifi();&lt;br /&gt;
  servodroit.detach();  // Place les servos hors tension&lt;br /&gt;
  servogauche.detach(); &lt;br /&gt;
  pinMode(LED_BUILTIN, OUTPUT);    //met la led du Wemos en sortie&lt;br /&gt;
  digitalWrite(LED_BUILTIN, LOW);  //met la led du Wemos sur le niveau bas ce qui l'allume.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop(){&lt;br /&gt;
    val = -1;&lt;br /&gt;
    monServeur.handleClient();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////////GESTION DES INSTRUCTIONS///////////////////////////&lt;br /&gt;
void GestionDesClics() {&lt;br /&gt;
  monServeur.on(&amp;quot;/avance&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 1;&lt;br /&gt;
  Serial.println(&amp;quot;avance&amp;quot;);    &lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/recule&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 2;&lt;br /&gt;
  Serial.println(&amp;quot;recule&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/gauche&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 4;&lt;br /&gt;
  Serial.println(&amp;quot;gauche&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  monServeur.on(&amp;quot;/droite&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 3;&lt;br /&gt;
  Serial.println(&amp;quot;droite&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/stop&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 0;&lt;br /&gt;
  Serial.println(&amp;quot;stop&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  monServeur.on(&amp;quot;/&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = -1;&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////////////LA PAGE WEB DE CONROLE DU PETIT BOT/////////////////////////////////////////&lt;br /&gt;
void redactionPageWeb(){&lt;br /&gt;
  // Prépare la page web de réponse (le code HTML sera écrit dans la chaine de caractère &amp;quot;pageWeb&amp;quot;).&lt;br /&gt;
  String pageWeb = &amp;quot;&amp;lt;!DOCTYPE HTML&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;html&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;head&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;meta charset=\&amp;quot;utf-8\&amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;title&amp;gt;Petit bot&amp;lt;/title&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/head&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;body&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;center&amp;gt;&amp;quot;;    //On ouvre la balise qui va centrer les boutons&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;h1 style=\&amp;quot;font-size:300%;\&amp;quot;\&amp;gt; Le petit bot &amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;style type=\&amp;quot;text/css\&amp;quot;&amp;gt;  body { color: #212121; background-color: #CC0C59 } &amp;lt;/style&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  // On finalise l'écriture de la page Web et on donne les instructions aux servos&lt;br /&gt;
  pageWeb += instruction(val); // pour cela on appelle la fonction &amp;quot;instruction&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  // On termine l'écriture de la page Web&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/h1&amp;gt;&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;br&amp;gt;&amp;quot;; //aller à la ligne&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;br&amp;gt;&amp;quot;; //aller à la ligne&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/stop\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Stop &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;      // créer un bouton &amp;quot;Stop&amp;quot;, qui envoie sur l'URL /stop&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/avance\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Avance &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;  // créer un bouton &amp;quot;Avance&amp;quot;...&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/recule\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Recule &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/droite\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Droite &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/gauche\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Gauche &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/center&amp;gt;&amp;quot;; // tout est centré sur la page&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/body&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/html&amp;gt;\n&amp;quot;; //Fin de la page Web&lt;br /&gt;
&lt;br /&gt;
  // On envoie la page web&lt;br /&gt;
  monServeur.send(200, &amp;quot;text/html&amp;quot;, pageWeb);&lt;br /&gt;
  delay(1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////INSTRUCTIONS/////////////////////////////////////////////////////////&lt;br /&gt;
String instruction(int valeur){ //Cette fonction traite les instructions qui sont reçues&lt;br /&gt;
  int gauche;                           // Variable dont la valeur 180 ou 0 fera tourner le servo gauche dans un sens ou l'autre&lt;br /&gt;
  int droite;                           // Idem pour le servo droit&lt;br /&gt;
  String completePage;                  // Déclaration de la chaine de caractère qui sera renvoyée par cette fonction pour compléter la page web &lt;br /&gt;
  switch(valeur){                       // En fonction de la variable valeur on va donner un ordre aux servos &lt;br /&gt;
    case 0 :                            // et un texte à la chaine de caractère &amp;quot;completePage&amp;quot;&lt;br /&gt;
    completePage = &amp;quot; est a l'arrêt &amp;quot;;&lt;br /&gt;
    droite = 90;&lt;br /&gt;
    gauche = 90;&lt;br /&gt;
    break;&lt;br /&gt;
    case 1 :&lt;br /&gt;
    completePage = &amp;quot; avance &amp;quot;;&lt;br /&gt;
    droite = 180;&lt;br /&gt;
    gauche = 0;&lt;br /&gt;
    break;&lt;br /&gt;
    case 2 :&lt;br /&gt;
    completePage = &amp;quot; recule &amp;quot;;&lt;br /&gt;
    droite = 0;&lt;br /&gt;
    gauche = 180;&lt;br /&gt;
    break;&lt;br /&gt;
    case 3 :&lt;br /&gt;
    completePage = &amp;quot; tourne a gauche &amp;quot;;&lt;br /&gt;
    droite = 180;&lt;br /&gt;
    gauche = 180;&lt;br /&gt;
    break;&lt;br /&gt;
    case 4 :&lt;br /&gt;
    completePage = &amp;quot; tourne a droite &amp;quot;;&lt;br /&gt;
    droite = 0;&lt;br /&gt;
    gauche = 0;&lt;br /&gt;
    break;&lt;br /&gt;
    // que faire du cas ou val = -1 ? marquer ici ce qui doit être fait.&lt;br /&gt;
  }&lt;br /&gt;
  servogauche.attach(D1);     // Broche D1&lt;br /&gt;
  servodroit.attach(D2);      // Broche D2&lt;br /&gt;
  servogauche.write(gauche); &lt;br /&gt;
  servodroit.write(droite);&lt;br /&gt;
  return completePage;        // on renvoie la chaine de caractère pour compléter la page web&lt;br /&gt;
}&lt;br /&gt;
////////////////////////CONFIGURATION WIFI///////////////////////////////////////////////&lt;br /&gt;
void configDuWifi(){  // Fonction de configuratio du Wifi&lt;br /&gt;
  WiFi.mode(WIFI_AP); // le wemos est en mode &amp;quot;Point d'Accès&amp;quot; (il déploie un réseau wifi)&lt;br /&gt;
  WiFi.softAP(nomDuReseau, motDePasse, 2); // on démarre le &amp;quot;Point d'Accès&amp;quot;.&lt;br /&gt;
  MDNS.begin(nomDuReseau);                 // gérer les DNS ce qui rendra votre petit bot accessible&lt;br /&gt;
  MDNS.addService(&amp;quot;http&amp;quot;, &amp;quot;tcp&amp;quot;, 80);      // via http://nomDuReseau.local&lt;br /&gt;
  IPAddress monIP = WiFi.softAPIP();       // on récupère l'adresse IP du petit Bot&lt;br /&gt;
  Serial.print(&amp;quot;Adresse IP de ce Point d'Accès : &amp;quot;);&lt;br /&gt;
  Serial.println(monIP);                   // on l'écrit sur le moniteur série&lt;br /&gt;
  GestionDesClics();&lt;br /&gt;
  monServeur.begin();                          //Démarrage du monServeur&lt;br /&gt;
  Serial.println(&amp;quot;Serveur HTTP démarré&amp;quot;);&lt;br /&gt;
  return;                                  // on retourne à l'endroit ou la fonction a été appelée.&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
[[Fichier:TurboSCOT.png | 650px]]&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29556</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29556"/>
				<updated>2025-01-21T14:55:50Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* étape 6 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Finitoooooo.JPG|600px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 Maquette&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Matériel décoratif&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons réalisé les différentes parties du TurboScoot : le corps, le siège et le guidon. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Patron corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 3===&lt;br /&gt;
Ensuite, nous avons procédé au montage des différentes parties, ainsi qu'à la découpe des trous nécessaires pour accueillir les éléments électroniques.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modélisation siège.jpg | 300px]]&lt;br /&gt;
[[Fichier:Modélisation guidon.jpg | 300px]]&lt;br /&gt;
[[Fichier:Corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 4===&lt;br /&gt;
Après avoir terminé les premières étapes du montage, nous avons programmé sur Arduino (voir code plus bas). Nous avons d'abord effectué des tests sur une plaque à part : d'abord avec les LED seules, puis avec les LED et le capteur de distance ultrason, et enfin le test final avec les servomoteurs.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test les TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Test complet TS.jpg | 350px]]&lt;br /&gt;
&lt;br /&gt;
===étape 5===&lt;br /&gt;
Une fois les tests terminés et validés, nous avons réalisé les premiers essais sur le prototype initial.&lt;br /&gt;
&lt;br /&gt;
METTRE LES PHOTO&lt;br /&gt;
&lt;br /&gt;
===étape 6===&lt;br /&gt;
Après quelques ajustements, le premier prototype fonctionne parfaitement, ce qui nous a permis de concevoir le TurboScoot final et de le customiser.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Finitoooooo.JPG]]&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
Voici le code Arduino pour faire fonctionner le TurboScoot.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Définition des broches&lt;br /&gt;
#define TRIG_PIN 5      // (D1)&lt;br /&gt;
#define ECHO_PIN 4      // (D2)&lt;br /&gt;
#define LED_LEFT 14     // (D5)&lt;br /&gt;
#define LED_RIGHT 12    // (D6)&lt;br /&gt;
#define LED_OBSTACLE 2  // (D4)&lt;br /&gt;
#define SERVO_LEFT_PIN 13   // (D7)&lt;br /&gt;
#define SERVO_RIGHT_PIN 15  // (D8)&lt;br /&gt;
&lt;br /&gt;
long duration;&lt;br /&gt;
int distance;&lt;br /&gt;
int minDistance = 15;  // Distance minimum pour arrêt en cm&lt;br /&gt;
int slowDistance = 30; // Distance pour ralentir en cm&lt;br /&gt;
&lt;br /&gt;
Servo servoLeft;  // Instance moteur gauche&lt;br /&gt;
Servo servoRight; // Instance moteur droit&lt;br /&gt;
&lt;br /&gt;
// Mesurer la distance avec le capteur ultrason&lt;br /&gt;
int measureDistance() {&lt;br /&gt;
  digitalWrite(TRIG_PIN, LOW);&lt;br /&gt;
  delayMicroseconds(2);&lt;br /&gt;
  digitalWrite(TRIG_PIN, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(TRIG_PIN, LOW);&lt;br /&gt;
  duration = pulseIn(ECHO_PIN, HIGH);&lt;br /&gt;
  return duration * 0.034 / 2; // Conversion en cm&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // Configuration des broches&lt;br /&gt;
  pinMode(TRIG_PIN, OUTPUT);&lt;br /&gt;
  pinMode(ECHO_PIN, INPUT);&lt;br /&gt;
  pinMode(LED_LEFT, OUTPUT);&lt;br /&gt;
  pinMode(LED_RIGHT, OUTPUT);&lt;br /&gt;
  pinMode(LED_OBSTACLE, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  // Attacher les moteurs aux broches&lt;br /&gt;
  servoLeft.attach(SERVO_LEFT_PIN);&lt;br /&gt;
  servoRight.attach(SERVO_RIGHT_PIN);&lt;br /&gt;
&lt;br /&gt;
  // Initialiser les moteurs en position neutre (90 degrés)&lt;br /&gt;
  servoLeft.write(90);&lt;br /&gt;
  servoRight.write(90);&lt;br /&gt;
&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  distance = measureDistance();&lt;br /&gt;
  Serial.println(distance);&lt;br /&gt;
&lt;br /&gt;
  if (distance &amp;lt; minDistance) {&lt;br /&gt;
    // Arrêt complet et allumer la LED d'obstacle&lt;br /&gt;
    servoLeft.write(90);  // Position neutre (arrêt)&lt;br /&gt;
    servoRight.write(90); // Position neutre (arrêt)&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, HIGH);&lt;br /&gt;
    delay(500);&lt;br /&gt;
&lt;br /&gt;
    // Choisir aléatoirement de tourner à gauche ou à droite&lt;br /&gt;
    int direction = random(0, 2);  // 0 pour gauche, 1 pour droite&lt;br /&gt;
&lt;br /&gt;
    if (direction == 0) {&lt;br /&gt;
      // Tourner à gauche&lt;br /&gt;
      digitalWrite(LED_LEFT, HIGH);&lt;br /&gt;
      digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
      servoLeft.write(60);  // Tourner à gauche&lt;br /&gt;
      delay(1000);&lt;br /&gt;
      servoRight.write(120); // Tourner à droite&lt;br /&gt;
      delay(2000);&lt;br /&gt;
&lt;br /&gt;
      digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
      digitalWrite(LED_OBSTACLE, LOW);&lt;br /&gt;
    } else {&lt;br /&gt;
      // Tourner à droite&lt;br /&gt;
      digitalWrite(LED_RIGHT, HIGH);&lt;br /&gt;
      digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
      servoRight.write(120); // Tourner à droite&lt;br /&gt;
      delay(1000);&lt;br /&gt;
      servoLeft.write(60); // Tourner à gauche&lt;br /&gt;
      delay(2000);&lt;br /&gt;
&lt;br /&gt;
      digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
      digitalWrite(LED_OBSTACLE, LOW);&lt;br /&gt;
    }&lt;br /&gt;
  } else if (distance &amp;lt; slowDistance) {&lt;br /&gt;
    // Ralentir selon la distance&lt;br /&gt;
    int angle = map(distance, minDistance, slowDistance, 90, 120);&lt;br /&gt;
    servoLeft.write(angle);&lt;br /&gt;
    servoRight.write(180 - angle); // Angle opposé pour symétrie&lt;br /&gt;
&lt;br /&gt;
    // Éteindre LEDs&lt;br /&gt;
    digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
    digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, LOW);  // Éteindre la LED d'obstacle&lt;br /&gt;
  } else {&lt;br /&gt;
    // Pleine vitesse (symétrique)&lt;br /&gt;
    servoLeft.write(120);&lt;br /&gt;
    servoRight.write(60);&lt;br /&gt;
&lt;br /&gt;
    // LEDs éteintes&lt;br /&gt;
    digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
    digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, LOW);  // Éteindre la LED d'obstacle&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(50); // Anti-rebond&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
le détail de toutes le brochs du shield sont décrite dans ce code : https://github.com/julienrat/petitbot/blob/master/code_arduino/petitbot_v2/petitbot_v2.ino&lt;br /&gt;
&lt;br /&gt;
===Code de base du petit bot ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
///////////////&lt;br /&gt;
// Petit Bot //&lt;br /&gt;
///////////////&lt;br /&gt;
// MAJ 250121&lt;br /&gt;
// Un programme pédagogique des petits débrouillards ?=+ pour gérer le robot &amp;quot;Petit Bot&amp;quot; &lt;br /&gt;
// Voir sur http://ancien.wikidebrouillard.org/index.php?title=Petit_Bot_un_robot_controlable_en_Wifi&lt;br /&gt;
// Ce programme est inspire de : http://www.esp8266.com/viewtopic.php?f=29&amp;amp;t=6419#sthash.gd1tJhwU.dpuf&lt;br /&gt;
// Sous licence CC-By-Sa&lt;br /&gt;
// Par des gens bien&lt;br /&gt;
&lt;br /&gt;
/* Schéma&lt;br /&gt;
Lolin (Wemos) D1 mini&lt;br /&gt;
                                     &lt;br /&gt;
                                _________________&lt;br /&gt;
                               /     D1 mini     \&lt;br /&gt;
                              |[ ]RST        TX[ ]|&lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|&lt;br /&gt;
                              |[ ]D0-16    5-D1[X]|----\&lt;br /&gt;
                              |[ ]D5-14    4-D2[X]|--\  \&lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]|  |   |&lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]|  |   |&lt;br /&gt;
                              |[ ]D8-15     GND[X]|  |   |&lt;br /&gt;
                              |[ ]3V3        5V[ ]|  |   |&lt;br /&gt;
 _                            |       +---+       |  |   |&lt;br /&gt;
| |                           |_______|USB|_______|  |  /                           _&lt;br /&gt;
| |       _                                         /  /                  _        | |&lt;br /&gt;
| |     _| |_________                         _____/  /         _________| |_      | |&lt;br /&gt;
| |    |    ______   |_data D1______________/        |_data D2_|   ______    |     | |&lt;br /&gt;
| |  __|   | SG90 |  |_______________GND_______________________|  | SG90 |   |___  | |&lt;br /&gt;
| |_|      |Servo |  |_______________Vin_______________________|  |Servo |       |_| |&lt;br /&gt;
| |_|      |Gauche|  |                                         |  |Droit |       |_| |&lt;br /&gt;
| | |__    |______|  |                                         |  |______|    ___| | |&lt;br /&gt;
| |    |__   ________|                                         |_________   __|    | |&lt;br /&gt;
| |       |_|                                                            |_|       | |&lt;br /&gt;
| |                                                                                | |&lt;br /&gt;
|_|                                                                                |_|&lt;br /&gt;
                                                                     &lt;br /&gt;
    ___&lt;br /&gt;
  / ___ \&lt;br /&gt;
 |_|   | | &lt;br /&gt;
      /_/&lt;br /&gt;
      _   ___   _&lt;br /&gt;
     |_| |___|_| |_&lt;br /&gt;
          ___|_   _|&lt;br /&gt;
         |___| |_|&lt;br /&gt;
  Les petits Débrouillards - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/&lt;br /&gt;
  Antony Le Goïc-Auffret janvier 2025&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// on appelle la bibliothèque qui gère le Wemos D1 mini&lt;br /&gt;
#include &amp;lt;ESP8266WiFi.h&amp;gt; &lt;br /&gt;
&lt;br /&gt;
// Gestion du Wifi&lt;br /&gt;
#include &amp;lt;ESP8266WebServer.h&amp;gt;&lt;br /&gt;
#include &amp;lt;DNSServer.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP8266mDNS.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFiClient.h&amp;gt; &lt;br /&gt;
&lt;br /&gt;
//  Definition du WiFi &lt;br /&gt;
const char *nomDuReseau = &amp;quot;petitbota&amp;quot;;     // Nom du réseau wifi du petit bot&lt;br /&gt;
const char *motDePasse = &amp;quot;&amp;quot;;    // Mot de passe du réseau wifi du petit bot&lt;br /&gt;
// ATTENTION - le mot de passe doit faire soit 0 caractères soit 8 ou plus sinon&lt;br /&gt;
// La configuration de votre réseau wifi ne se fera pas (ni mot de passe, ni nom de réseau !).&lt;br /&gt;
//création du monServeur&lt;br /&gt;
ESP8266WebServer monServeur(80);               // Création de l'objet monServeur&lt;br /&gt;
&lt;br /&gt;
//Gestion des servomoteurs&lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;   //appel de la bibliothèque qui gère les servomoteurs&lt;br /&gt;
// création des servomoteurs &lt;br /&gt;
Servo servogauche;   // Nom du servo qui gère la première roue&lt;br /&gt;
Servo servodroit;    // Seconde roue&lt;br /&gt;
&lt;br /&gt;
//déclaration des Variables&lt;br /&gt;
//int --- en cours &lt;br /&gt;
int val = -1; // Val nous sert à stocker la commande de l'utilisateur (stop, avance, ...).&lt;br /&gt;
&lt;br /&gt;
void setup(){&lt;br /&gt;
  delay(1000);&lt;br /&gt;
  Serial.begin(9600); // Ouvre une connexion série pour monitorer le fonctionnement du code quand on reste branché a l'ordinateur&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  Serial.println();  &lt;br /&gt;
  configDuWifi();&lt;br /&gt;
  servodroit.detach();  // Place les servos hors tension&lt;br /&gt;
  servogauche.detach(); &lt;br /&gt;
  pinMode(LED_BUILTIN, OUTPUT);    //met la led du Wemos en sortie&lt;br /&gt;
  digitalWrite(LED_BUILTIN, LOW);  //met la led du Wemos sur le niveau bas ce qui l'allume.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop(){&lt;br /&gt;
    val = -1;&lt;br /&gt;
    monServeur.handleClient();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////////GESTION DES INSTRUCTIONS///////////////////////////&lt;br /&gt;
void GestionDesClics() {&lt;br /&gt;
  monServeur.on(&amp;quot;/avance&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 1;&lt;br /&gt;
  Serial.println(&amp;quot;avance&amp;quot;);    &lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/recule&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 2;&lt;br /&gt;
  Serial.println(&amp;quot;recule&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/gauche&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 4;&lt;br /&gt;
  Serial.println(&amp;quot;gauche&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  monServeur.on(&amp;quot;/droite&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 3;&lt;br /&gt;
  Serial.println(&amp;quot;droite&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/stop&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 0;&lt;br /&gt;
  Serial.println(&amp;quot;stop&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  monServeur.on(&amp;quot;/&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = -1;&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////////////LA PAGE WEB DE CONROLE DU PETIT BOT/////////////////////////////////////////&lt;br /&gt;
void redactionPageWeb(){&lt;br /&gt;
  // Prépare la page web de réponse (le code HTML sera écrit dans la chaine de caractère &amp;quot;pageWeb&amp;quot;).&lt;br /&gt;
  String pageWeb = &amp;quot;&amp;lt;!DOCTYPE HTML&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;html&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;head&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;meta charset=\&amp;quot;utf-8\&amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;title&amp;gt;Petit bot&amp;lt;/title&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/head&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;body&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;center&amp;gt;&amp;quot;;    //On ouvre la balise qui va centrer les boutons&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;h1 style=\&amp;quot;font-size:300%;\&amp;quot;\&amp;gt; Le petit bot &amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;style type=\&amp;quot;text/css\&amp;quot;&amp;gt;  body { color: #212121; background-color: #CC0C59 } &amp;lt;/style&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  // On finalise l'écriture de la page Web et on donne les instructions aux servos&lt;br /&gt;
  pageWeb += instruction(val); // pour cela on appelle la fonction &amp;quot;instruction&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  // On termine l'écriture de la page Web&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/h1&amp;gt;&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;br&amp;gt;&amp;quot;; //aller à la ligne&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;br&amp;gt;&amp;quot;; //aller à la ligne&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/stop\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Stop &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;      // créer un bouton &amp;quot;Stop&amp;quot;, qui envoie sur l'URL /stop&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/avance\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Avance &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;  // créer un bouton &amp;quot;Avance&amp;quot;...&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/recule\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Recule &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/droite\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Droite &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/gauche\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Gauche &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/center&amp;gt;&amp;quot;; // tout est centré sur la page&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/body&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/html&amp;gt;\n&amp;quot;; //Fin de la page Web&lt;br /&gt;
&lt;br /&gt;
  // On envoie la page web&lt;br /&gt;
  monServeur.send(200, &amp;quot;text/html&amp;quot;, pageWeb);&lt;br /&gt;
  delay(1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////INSTRUCTIONS/////////////////////////////////////////////////////////&lt;br /&gt;
String instruction(int valeur){ //Cette fonction traite les instructions qui sont reçues&lt;br /&gt;
  int gauche;                           // Variable dont la valeur 180 ou 0 fera tourner le servo gauche dans un sens ou l'autre&lt;br /&gt;
  int droite;                           // Idem pour le servo droit&lt;br /&gt;
  String completePage;                  // Déclaration de la chaine de caractère qui sera renvoyée par cette fonction pour compléter la page web &lt;br /&gt;
  switch(valeur){                       // En fonction de la variable valeur on va donner un ordre aux servos &lt;br /&gt;
    case 0 :                            // et un texte à la chaine de caractère &amp;quot;completePage&amp;quot;&lt;br /&gt;
    completePage = &amp;quot; est a l'arrêt &amp;quot;;&lt;br /&gt;
    droite = 90;&lt;br /&gt;
    gauche = 90;&lt;br /&gt;
    break;&lt;br /&gt;
    case 1 :&lt;br /&gt;
    completePage = &amp;quot; avance &amp;quot;;&lt;br /&gt;
    droite = 180;&lt;br /&gt;
    gauche = 0;&lt;br /&gt;
    break;&lt;br /&gt;
    case 2 :&lt;br /&gt;
    completePage = &amp;quot; recule &amp;quot;;&lt;br /&gt;
    droite = 0;&lt;br /&gt;
    gauche = 180;&lt;br /&gt;
    break;&lt;br /&gt;
    case 3 :&lt;br /&gt;
    completePage = &amp;quot; tourne a gauche &amp;quot;;&lt;br /&gt;
    droite = 180;&lt;br /&gt;
    gauche = 180;&lt;br /&gt;
    break;&lt;br /&gt;
    case 4 :&lt;br /&gt;
    completePage = &amp;quot; tourne a droite &amp;quot;;&lt;br /&gt;
    droite = 0;&lt;br /&gt;
    gauche = 0;&lt;br /&gt;
    break;&lt;br /&gt;
    // que faire du cas ou val = -1 ? marquer ici ce qui doit être fait.&lt;br /&gt;
  }&lt;br /&gt;
  servogauche.attach(D1);     // Broche D1&lt;br /&gt;
  servodroit.attach(D2);      // Broche D2&lt;br /&gt;
  servogauche.write(gauche); &lt;br /&gt;
  servodroit.write(droite);&lt;br /&gt;
  return completePage;        // on renvoie la chaine de caractère pour compléter la page web&lt;br /&gt;
}&lt;br /&gt;
////////////////////////CONFIGURATION WIFI///////////////////////////////////////////////&lt;br /&gt;
void configDuWifi(){  // Fonction de configuratio du Wifi&lt;br /&gt;
  WiFi.mode(WIFI_AP); // le wemos est en mode &amp;quot;Point d'Accès&amp;quot; (il déploie un réseau wifi)&lt;br /&gt;
  WiFi.softAP(nomDuReseau, motDePasse, 2); // on démarre le &amp;quot;Point d'Accès&amp;quot;.&lt;br /&gt;
  MDNS.begin(nomDuReseau);                 // gérer les DNS ce qui rendra votre petit bot accessible&lt;br /&gt;
  MDNS.addService(&amp;quot;http&amp;quot;, &amp;quot;tcp&amp;quot;, 80);      // via http://nomDuReseau.local&lt;br /&gt;
  IPAddress monIP = WiFi.softAPIP();       // on récupère l'adresse IP du petit Bot&lt;br /&gt;
  Serial.print(&amp;quot;Adresse IP de ce Point d'Accès : &amp;quot;);&lt;br /&gt;
  Serial.println(monIP);                   // on l'écrit sur le moniteur série&lt;br /&gt;
  GestionDesClics();&lt;br /&gt;
  monServeur.begin();                          //Démarrage du monServeur&lt;br /&gt;
  Serial.println(&amp;quot;Serveur HTTP démarré&amp;quot;);&lt;br /&gt;
  return;                                  // on retourne à l'endroit ou la fonction a été appelée.&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
[[Fichier:TurboSCOT.png | 650px]]&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29547</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29547"/>
				<updated>2025-01-21T14:54:17Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* Élément de présentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Finitoooooo.JPG|600px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 Maquette&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Matériel décoratif&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons réalisé les différentes parties du TurboScoot : le corps, le siège et le guidon. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Patron corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 3===&lt;br /&gt;
Ensuite, nous avons procédé au montage des différentes parties, ainsi qu'à la découpe des trous nécessaires pour accueillir les éléments électroniques.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modélisation siège.jpg | 300px]]&lt;br /&gt;
[[Fichier:Modélisation guidon.jpg | 300px]]&lt;br /&gt;
[[Fichier:Corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 4===&lt;br /&gt;
Après avoir terminé les premières étapes du montage, nous avons programmé sur Arduino (voir code plus bas). Nous avons d'abord effectué des tests sur une plaque à part : d'abord avec les LED seules, puis avec les LED et le capteur de distance ultrason, et enfin le test final avec les servomoteurs.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test les TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Test complet TS.jpg | 350px]]&lt;br /&gt;
&lt;br /&gt;
===étape 5===&lt;br /&gt;
Une fois les tests terminés et validés, nous avons réalisé les premiers essais sur le prototype initial.&lt;br /&gt;
&lt;br /&gt;
METTRE LES PHOTO&lt;br /&gt;
&lt;br /&gt;
===étape 6===&lt;br /&gt;
Après quelques ajustements, le premier prototype fonctionne parfaitement, ce qui nous a permis de concevoir le TurboScoot final et de le customiser.&lt;br /&gt;
&lt;br /&gt;
METTRE LES PHOTOS&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
Voici le code Arduino pour faire fonctionner le TurboScoot.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Définition des broches&lt;br /&gt;
#define TRIG_PIN 5      // (D1)&lt;br /&gt;
#define ECHO_PIN 4      // (D2)&lt;br /&gt;
#define LED_LEFT 14     // (D5)&lt;br /&gt;
#define LED_RIGHT 12    // (D6)&lt;br /&gt;
#define LED_OBSTACLE 2  // (D4)&lt;br /&gt;
#define SERVO_LEFT_PIN 13   // (D7)&lt;br /&gt;
#define SERVO_RIGHT_PIN 15  // (D8)&lt;br /&gt;
&lt;br /&gt;
long duration;&lt;br /&gt;
int distance;&lt;br /&gt;
int minDistance = 15;  // Distance minimum pour arrêt en cm&lt;br /&gt;
int slowDistance = 30; // Distance pour ralentir en cm&lt;br /&gt;
&lt;br /&gt;
Servo servoLeft;  // Instance moteur gauche&lt;br /&gt;
Servo servoRight; // Instance moteur droit&lt;br /&gt;
&lt;br /&gt;
// Mesurer la distance avec le capteur ultrason&lt;br /&gt;
int measureDistance() {&lt;br /&gt;
  digitalWrite(TRIG_PIN, LOW);&lt;br /&gt;
  delayMicroseconds(2);&lt;br /&gt;
  digitalWrite(TRIG_PIN, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(TRIG_PIN, LOW);&lt;br /&gt;
  duration = pulseIn(ECHO_PIN, HIGH);&lt;br /&gt;
  return duration * 0.034 / 2; // Conversion en cm&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // Configuration des broches&lt;br /&gt;
  pinMode(TRIG_PIN, OUTPUT);&lt;br /&gt;
  pinMode(ECHO_PIN, INPUT);&lt;br /&gt;
  pinMode(LED_LEFT, OUTPUT);&lt;br /&gt;
  pinMode(LED_RIGHT, OUTPUT);&lt;br /&gt;
  pinMode(LED_OBSTACLE, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  // Attacher les moteurs aux broches&lt;br /&gt;
  servoLeft.attach(SERVO_LEFT_PIN);&lt;br /&gt;
  servoRight.attach(SERVO_RIGHT_PIN);&lt;br /&gt;
&lt;br /&gt;
  // Initialiser les moteurs en position neutre (90 degrés)&lt;br /&gt;
  servoLeft.write(90);&lt;br /&gt;
  servoRight.write(90);&lt;br /&gt;
&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  distance = measureDistance();&lt;br /&gt;
  Serial.println(distance);&lt;br /&gt;
&lt;br /&gt;
  if (distance &amp;lt; minDistance) {&lt;br /&gt;
    // Arrêt complet et allumer la LED d'obstacle&lt;br /&gt;
    servoLeft.write(90);  // Position neutre (arrêt)&lt;br /&gt;
    servoRight.write(90); // Position neutre (arrêt)&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, HIGH);&lt;br /&gt;
    delay(500);&lt;br /&gt;
&lt;br /&gt;
    // Choisir aléatoirement de tourner à gauche ou à droite&lt;br /&gt;
    int direction = random(0, 2);  // 0 pour gauche, 1 pour droite&lt;br /&gt;
&lt;br /&gt;
    if (direction == 0) {&lt;br /&gt;
      // Tourner à gauche&lt;br /&gt;
      digitalWrite(LED_LEFT, HIGH);&lt;br /&gt;
      digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
      servoLeft.write(60);  // Tourner à gauche&lt;br /&gt;
      delay(1000);&lt;br /&gt;
      servoRight.write(120); // Tourner à droite&lt;br /&gt;
      delay(2000);&lt;br /&gt;
&lt;br /&gt;
      digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
      digitalWrite(LED_OBSTACLE, LOW);&lt;br /&gt;
    } else {&lt;br /&gt;
      // Tourner à droite&lt;br /&gt;
      digitalWrite(LED_RIGHT, HIGH);&lt;br /&gt;
      digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
      servoRight.write(120); // Tourner à droite&lt;br /&gt;
      delay(1000);&lt;br /&gt;
      servoLeft.write(60); // Tourner à gauche&lt;br /&gt;
      delay(2000);&lt;br /&gt;
&lt;br /&gt;
      digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
      digitalWrite(LED_OBSTACLE, LOW);&lt;br /&gt;
    }&lt;br /&gt;
  } else if (distance &amp;lt; slowDistance) {&lt;br /&gt;
    // Ralentir selon la distance&lt;br /&gt;
    int angle = map(distance, minDistance, slowDistance, 90, 120);&lt;br /&gt;
    servoLeft.write(angle);&lt;br /&gt;
    servoRight.write(180 - angle); // Angle opposé pour symétrie&lt;br /&gt;
&lt;br /&gt;
    // Éteindre LEDs&lt;br /&gt;
    digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
    digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, LOW);  // Éteindre la LED d'obstacle&lt;br /&gt;
  } else {&lt;br /&gt;
    // Pleine vitesse (symétrique)&lt;br /&gt;
    servoLeft.write(120);&lt;br /&gt;
    servoRight.write(60);&lt;br /&gt;
&lt;br /&gt;
    // LEDs éteintes&lt;br /&gt;
    digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
    digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, LOW);  // Éteindre la LED d'obstacle&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(50); // Anti-rebond&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
le détail de toutes le brochs du shield sont décrite dans ce code : https://github.com/julienrat/petitbot/blob/master/code_arduino/petitbot_v2/petitbot_v2.ino&lt;br /&gt;
&lt;br /&gt;
===Code de base du petit bot ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
///////////////&lt;br /&gt;
// Petit Bot //&lt;br /&gt;
///////////////&lt;br /&gt;
// MAJ 250121&lt;br /&gt;
// Un programme pédagogique des petits débrouillards ?=+ pour gérer le robot &amp;quot;Petit Bot&amp;quot; &lt;br /&gt;
// Voir sur http://ancien.wikidebrouillard.org/index.php?title=Petit_Bot_un_robot_controlable_en_Wifi&lt;br /&gt;
// Ce programme est inspire de : http://www.esp8266.com/viewtopic.php?f=29&amp;amp;t=6419#sthash.gd1tJhwU.dpuf&lt;br /&gt;
// Sous licence CC-By-Sa&lt;br /&gt;
// Par des gens bien&lt;br /&gt;
&lt;br /&gt;
/* Schéma&lt;br /&gt;
Lolin (Wemos) D1 mini&lt;br /&gt;
                                     &lt;br /&gt;
                                _________________&lt;br /&gt;
                               /     D1 mini     \&lt;br /&gt;
                              |[ ]RST        TX[ ]|&lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|&lt;br /&gt;
                              |[ ]D0-16    5-D1[X]|----\&lt;br /&gt;
                              |[ ]D5-14    4-D2[X]|--\  \&lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]|  |   |&lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]|  |   |&lt;br /&gt;
                              |[ ]D8-15     GND[X]|  |   |&lt;br /&gt;
                              |[ ]3V3        5V[ ]|  |   |&lt;br /&gt;
 _                            |       +---+       |  |   |&lt;br /&gt;
| |                           |_______|USB|_______|  |  /                           _&lt;br /&gt;
| |       _                                         /  /                  _        | |&lt;br /&gt;
| |     _| |_________                         _____/  /         _________| |_      | |&lt;br /&gt;
| |    |    ______   |_data D1______________/        |_data D2_|   ______    |     | |&lt;br /&gt;
| |  __|   | SG90 |  |_______________GND_______________________|  | SG90 |   |___  | |&lt;br /&gt;
| |_|      |Servo |  |_______________Vin_______________________|  |Servo |       |_| |&lt;br /&gt;
| |_|      |Gauche|  |                                         |  |Droit |       |_| |&lt;br /&gt;
| | |__    |______|  |                                         |  |______|    ___| | |&lt;br /&gt;
| |    |__   ________|                                         |_________   __|    | |&lt;br /&gt;
| |       |_|                                                            |_|       | |&lt;br /&gt;
| |                                                                                | |&lt;br /&gt;
|_|                                                                                |_|&lt;br /&gt;
                                                                     &lt;br /&gt;
    ___&lt;br /&gt;
  / ___ \&lt;br /&gt;
 |_|   | | &lt;br /&gt;
      /_/&lt;br /&gt;
      _   ___   _&lt;br /&gt;
     |_| |___|_| |_&lt;br /&gt;
          ___|_   _|&lt;br /&gt;
         |___| |_|&lt;br /&gt;
  Les petits Débrouillards - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/&lt;br /&gt;
  Antony Le Goïc-Auffret janvier 2025&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// on appelle la bibliothèque qui gère le Wemos D1 mini&lt;br /&gt;
#include &amp;lt;ESP8266WiFi.h&amp;gt; &lt;br /&gt;
&lt;br /&gt;
// Gestion du Wifi&lt;br /&gt;
#include &amp;lt;ESP8266WebServer.h&amp;gt;&lt;br /&gt;
#include &amp;lt;DNSServer.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP8266mDNS.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFiClient.h&amp;gt; &lt;br /&gt;
&lt;br /&gt;
//  Definition du WiFi &lt;br /&gt;
const char *nomDuReseau = &amp;quot;petitbota&amp;quot;;     // Nom du réseau wifi du petit bot&lt;br /&gt;
const char *motDePasse = &amp;quot;&amp;quot;;    // Mot de passe du réseau wifi du petit bot&lt;br /&gt;
// ATTENTION - le mot de passe doit faire soit 0 caractères soit 8 ou plus sinon&lt;br /&gt;
// La configuration de votre réseau wifi ne se fera pas (ni mot de passe, ni nom de réseau !).&lt;br /&gt;
//création du monServeur&lt;br /&gt;
ESP8266WebServer monServeur(80);               // Création de l'objet monServeur&lt;br /&gt;
&lt;br /&gt;
//Gestion des servomoteurs&lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;   //appel de la bibliothèque qui gère les servomoteurs&lt;br /&gt;
// création des servomoteurs &lt;br /&gt;
Servo servogauche;   // Nom du servo qui gère la première roue&lt;br /&gt;
Servo servodroit;    // Seconde roue&lt;br /&gt;
&lt;br /&gt;
//déclaration des Variables&lt;br /&gt;
//int --- en cours &lt;br /&gt;
int val = -1; // Val nous sert à stocker la commande de l'utilisateur (stop, avance, ...).&lt;br /&gt;
&lt;br /&gt;
void setup(){&lt;br /&gt;
  delay(1000);&lt;br /&gt;
  Serial.begin(9600); // Ouvre une connexion série pour monitorer le fonctionnement du code quand on reste branché a l'ordinateur&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  Serial.println();  &lt;br /&gt;
  configDuWifi();&lt;br /&gt;
  servodroit.detach();  // Place les servos hors tension&lt;br /&gt;
  servogauche.detach(); &lt;br /&gt;
  pinMode(LED_BUILTIN, OUTPUT);    //met la led du Wemos en sortie&lt;br /&gt;
  digitalWrite(LED_BUILTIN, LOW);  //met la led du Wemos sur le niveau bas ce qui l'allume.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop(){&lt;br /&gt;
    val = -1;&lt;br /&gt;
    monServeur.handleClient();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////////GESTION DES INSTRUCTIONS///////////////////////////&lt;br /&gt;
void GestionDesClics() {&lt;br /&gt;
  monServeur.on(&amp;quot;/avance&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 1;&lt;br /&gt;
  Serial.println(&amp;quot;avance&amp;quot;);    &lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/recule&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 2;&lt;br /&gt;
  Serial.println(&amp;quot;recule&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/gauche&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 4;&lt;br /&gt;
  Serial.println(&amp;quot;gauche&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  monServeur.on(&amp;quot;/droite&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 3;&lt;br /&gt;
  Serial.println(&amp;quot;droite&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/stop&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 0;&lt;br /&gt;
  Serial.println(&amp;quot;stop&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  monServeur.on(&amp;quot;/&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = -1;&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////////////LA PAGE WEB DE CONROLE DU PETIT BOT/////////////////////////////////////////&lt;br /&gt;
void redactionPageWeb(){&lt;br /&gt;
  // Prépare la page web de réponse (le code HTML sera écrit dans la chaine de caractère &amp;quot;pageWeb&amp;quot;).&lt;br /&gt;
  String pageWeb = &amp;quot;&amp;lt;!DOCTYPE HTML&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;html&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;head&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;meta charset=\&amp;quot;utf-8\&amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;title&amp;gt;Petit bot&amp;lt;/title&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/head&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;body&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;center&amp;gt;&amp;quot;;    //On ouvre la balise qui va centrer les boutons&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;h1 style=\&amp;quot;font-size:300%;\&amp;quot;\&amp;gt; Le petit bot &amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;style type=\&amp;quot;text/css\&amp;quot;&amp;gt;  body { color: #212121; background-color: #CC0C59 } &amp;lt;/style&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  // On finalise l'écriture de la page Web et on donne les instructions aux servos&lt;br /&gt;
  pageWeb += instruction(val); // pour cela on appelle la fonction &amp;quot;instruction&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  // On termine l'écriture de la page Web&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/h1&amp;gt;&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;br&amp;gt;&amp;quot;; //aller à la ligne&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;br&amp;gt;&amp;quot;; //aller à la ligne&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/stop\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Stop &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;      // créer un bouton &amp;quot;Stop&amp;quot;, qui envoie sur l'URL /stop&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/avance\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Avance &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;  // créer un bouton &amp;quot;Avance&amp;quot;...&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/recule\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Recule &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/droite\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Droite &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/gauche\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Gauche &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/center&amp;gt;&amp;quot;; // tout est centré sur la page&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/body&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/html&amp;gt;\n&amp;quot;; //Fin de la page Web&lt;br /&gt;
&lt;br /&gt;
  // On envoie la page web&lt;br /&gt;
  monServeur.send(200, &amp;quot;text/html&amp;quot;, pageWeb);&lt;br /&gt;
  delay(1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////INSTRUCTIONS/////////////////////////////////////////////////////////&lt;br /&gt;
String instruction(int valeur){ //Cette fonction traite les instructions qui sont reçues&lt;br /&gt;
  int gauche;                           // Variable dont la valeur 180 ou 0 fera tourner le servo gauche dans un sens ou l'autre&lt;br /&gt;
  int droite;                           // Idem pour le servo droit&lt;br /&gt;
  String completePage;                  // Déclaration de la chaine de caractère qui sera renvoyée par cette fonction pour compléter la page web &lt;br /&gt;
  switch(valeur){                       // En fonction de la variable valeur on va donner un ordre aux servos &lt;br /&gt;
    case 0 :                            // et un texte à la chaine de caractère &amp;quot;completePage&amp;quot;&lt;br /&gt;
    completePage = &amp;quot; est a l'arrêt &amp;quot;;&lt;br /&gt;
    droite = 90;&lt;br /&gt;
    gauche = 90;&lt;br /&gt;
    break;&lt;br /&gt;
    case 1 :&lt;br /&gt;
    completePage = &amp;quot; avance &amp;quot;;&lt;br /&gt;
    droite = 180;&lt;br /&gt;
    gauche = 0;&lt;br /&gt;
    break;&lt;br /&gt;
    case 2 :&lt;br /&gt;
    completePage = &amp;quot; recule &amp;quot;;&lt;br /&gt;
    droite = 0;&lt;br /&gt;
    gauche = 180;&lt;br /&gt;
    break;&lt;br /&gt;
    case 3 :&lt;br /&gt;
    completePage = &amp;quot; tourne a gauche &amp;quot;;&lt;br /&gt;
    droite = 180;&lt;br /&gt;
    gauche = 180;&lt;br /&gt;
    break;&lt;br /&gt;
    case 4 :&lt;br /&gt;
    completePage = &amp;quot; tourne a droite &amp;quot;;&lt;br /&gt;
    droite = 0;&lt;br /&gt;
    gauche = 0;&lt;br /&gt;
    break;&lt;br /&gt;
    // que faire du cas ou val = -1 ? marquer ici ce qui doit être fait.&lt;br /&gt;
  }&lt;br /&gt;
  servogauche.attach(D1);     // Broche D1&lt;br /&gt;
  servodroit.attach(D2);      // Broche D2&lt;br /&gt;
  servogauche.write(gauche); &lt;br /&gt;
  servodroit.write(droite);&lt;br /&gt;
  return completePage;        // on renvoie la chaine de caractère pour compléter la page web&lt;br /&gt;
}&lt;br /&gt;
////////////////////////CONFIGURATION WIFI///////////////////////////////////////////////&lt;br /&gt;
void configDuWifi(){  // Fonction de configuratio du Wifi&lt;br /&gt;
  WiFi.mode(WIFI_AP); // le wemos est en mode &amp;quot;Point d'Accès&amp;quot; (il déploie un réseau wifi)&lt;br /&gt;
  WiFi.softAP(nomDuReseau, motDePasse, 2); // on démarre le &amp;quot;Point d'Accès&amp;quot;.&lt;br /&gt;
  MDNS.begin(nomDuReseau);                 // gérer les DNS ce qui rendra votre petit bot accessible&lt;br /&gt;
  MDNS.addService(&amp;quot;http&amp;quot;, &amp;quot;tcp&amp;quot;, 80);      // via http://nomDuReseau.local&lt;br /&gt;
  IPAddress monIP = WiFi.softAPIP();       // on récupère l'adresse IP du petit Bot&lt;br /&gt;
  Serial.print(&amp;quot;Adresse IP de ce Point d'Accès : &amp;quot;);&lt;br /&gt;
  Serial.println(monIP);                   // on l'écrit sur le moniteur série&lt;br /&gt;
  GestionDesClics();&lt;br /&gt;
  monServeur.begin();                          //Démarrage du monServeur&lt;br /&gt;
  Serial.println(&amp;quot;Serveur HTTP démarré&amp;quot;);&lt;br /&gt;
  return;                                  // on retourne à l'endroit ou la fonction a été appelée.&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
[[Fichier:TurboSCOT.png | 650px]]&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29545</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29545"/>
				<updated>2025-01-21T14:53:46Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* Élément de présentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Finitoooooo.JPG|600px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 Maquette&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Matériel décoratif&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons réalisé les différentes parties du TurboScoot : le corps, le siège et le guidon. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Patron corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 3===&lt;br /&gt;
Ensuite, nous avons procédé au montage des différentes parties, ainsi qu'à la découpe des trous nécessaires pour accueillir les éléments électroniques.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modélisation siège.jpg | 300px]]&lt;br /&gt;
[[Fichier:Modélisation guidon.jpg | 300px]]&lt;br /&gt;
[[Fichier:Corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 4===&lt;br /&gt;
Après avoir terminé les premières étapes du montage, nous avons programmé sur Arduino (voir code plus bas). Nous avons d'abord effectué des tests sur une plaque à part : d'abord avec les LED seules, puis avec les LED et le capteur de distance ultrason, et enfin le test final avec les servomoteurs.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test les TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Test complet TS.jpg | 350px]]&lt;br /&gt;
&lt;br /&gt;
===étape 5===&lt;br /&gt;
Une fois les tests terminés et validés, nous avons réalisé les premiers essais sur le prototype initial.&lt;br /&gt;
&lt;br /&gt;
METTRE LES PHOTO&lt;br /&gt;
&lt;br /&gt;
===étape 6===&lt;br /&gt;
Après quelques ajustements, le premier prototype fonctionne parfaitement, ce qui nous a permis de concevoir le TurboScoot final et de le customiser.&lt;br /&gt;
&lt;br /&gt;
METTRE LES PHOTOS&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
Voici le code Arduino pour faire fonctionner le TurboScoot.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Définition des broches&lt;br /&gt;
#define TRIG_PIN 5      // (D1)&lt;br /&gt;
#define ECHO_PIN 4      // (D2)&lt;br /&gt;
#define LED_LEFT 14     // (D5)&lt;br /&gt;
#define LED_RIGHT 12    // (D6)&lt;br /&gt;
#define LED_OBSTACLE 2  // (D4)&lt;br /&gt;
#define SERVO_LEFT_PIN 13   // (D7)&lt;br /&gt;
#define SERVO_RIGHT_PIN 15  // (D8)&lt;br /&gt;
&lt;br /&gt;
long duration;&lt;br /&gt;
int distance;&lt;br /&gt;
int minDistance = 15;  // Distance minimum pour arrêt en cm&lt;br /&gt;
int slowDistance = 30; // Distance pour ralentir en cm&lt;br /&gt;
&lt;br /&gt;
Servo servoLeft;  // Instance moteur gauche&lt;br /&gt;
Servo servoRight; // Instance moteur droit&lt;br /&gt;
&lt;br /&gt;
// Mesurer la distance avec le capteur ultrason&lt;br /&gt;
int measureDistance() {&lt;br /&gt;
  digitalWrite(TRIG_PIN, LOW);&lt;br /&gt;
  delayMicroseconds(2);&lt;br /&gt;
  digitalWrite(TRIG_PIN, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(TRIG_PIN, LOW);&lt;br /&gt;
  duration = pulseIn(ECHO_PIN, HIGH);&lt;br /&gt;
  return duration * 0.034 / 2; // Conversion en cm&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // Configuration des broches&lt;br /&gt;
  pinMode(TRIG_PIN, OUTPUT);&lt;br /&gt;
  pinMode(ECHO_PIN, INPUT);&lt;br /&gt;
  pinMode(LED_LEFT, OUTPUT);&lt;br /&gt;
  pinMode(LED_RIGHT, OUTPUT);&lt;br /&gt;
  pinMode(LED_OBSTACLE, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  // Attacher les moteurs aux broches&lt;br /&gt;
  servoLeft.attach(SERVO_LEFT_PIN);&lt;br /&gt;
  servoRight.attach(SERVO_RIGHT_PIN);&lt;br /&gt;
&lt;br /&gt;
  // Initialiser les moteurs en position neutre (90 degrés)&lt;br /&gt;
  servoLeft.write(90);&lt;br /&gt;
  servoRight.write(90);&lt;br /&gt;
&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  distance = measureDistance();&lt;br /&gt;
  Serial.println(distance);&lt;br /&gt;
&lt;br /&gt;
  if (distance &amp;lt; minDistance) {&lt;br /&gt;
    // Arrêt complet et allumer la LED d'obstacle&lt;br /&gt;
    servoLeft.write(90);  // Position neutre (arrêt)&lt;br /&gt;
    servoRight.write(90); // Position neutre (arrêt)&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, HIGH);&lt;br /&gt;
    delay(500);&lt;br /&gt;
&lt;br /&gt;
    // Choisir aléatoirement de tourner à gauche ou à droite&lt;br /&gt;
    int direction = random(0, 2);  // 0 pour gauche, 1 pour droite&lt;br /&gt;
&lt;br /&gt;
    if (direction == 0) {&lt;br /&gt;
      // Tourner à gauche&lt;br /&gt;
      digitalWrite(LED_LEFT, HIGH);&lt;br /&gt;
      digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
      servoLeft.write(60);  // Tourner à gauche&lt;br /&gt;
      delay(1000);&lt;br /&gt;
      servoRight.write(120); // Tourner à droite&lt;br /&gt;
      delay(2000);&lt;br /&gt;
&lt;br /&gt;
      digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
      digitalWrite(LED_OBSTACLE, LOW);&lt;br /&gt;
    } else {&lt;br /&gt;
      // Tourner à droite&lt;br /&gt;
      digitalWrite(LED_RIGHT, HIGH);&lt;br /&gt;
      digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
      servoRight.write(120); // Tourner à droite&lt;br /&gt;
      delay(1000);&lt;br /&gt;
      servoLeft.write(60); // Tourner à gauche&lt;br /&gt;
      delay(2000);&lt;br /&gt;
&lt;br /&gt;
      digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
      digitalWrite(LED_OBSTACLE, LOW);&lt;br /&gt;
    }&lt;br /&gt;
  } else if (distance &amp;lt; slowDistance) {&lt;br /&gt;
    // Ralentir selon la distance&lt;br /&gt;
    int angle = map(distance, minDistance, slowDistance, 90, 120);&lt;br /&gt;
    servoLeft.write(angle);&lt;br /&gt;
    servoRight.write(180 - angle); // Angle opposé pour symétrie&lt;br /&gt;
&lt;br /&gt;
    // Éteindre LEDs&lt;br /&gt;
    digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
    digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, LOW);  // Éteindre la LED d'obstacle&lt;br /&gt;
  } else {&lt;br /&gt;
    // Pleine vitesse (symétrique)&lt;br /&gt;
    servoLeft.write(120);&lt;br /&gt;
    servoRight.write(60);&lt;br /&gt;
&lt;br /&gt;
    // LEDs éteintes&lt;br /&gt;
    digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
    digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, LOW);  // Éteindre la LED d'obstacle&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(50); // Anti-rebond&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
le détail de toutes le brochs du shield sont décrite dans ce code : https://github.com/julienrat/petitbot/blob/master/code_arduino/petitbot_v2/petitbot_v2.ino&lt;br /&gt;
&lt;br /&gt;
===Code de base du petit bot ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
///////////////&lt;br /&gt;
// Petit Bot //&lt;br /&gt;
///////////////&lt;br /&gt;
// MAJ 250121&lt;br /&gt;
// Un programme pédagogique des petits débrouillards ?=+ pour gérer le robot &amp;quot;Petit Bot&amp;quot; &lt;br /&gt;
// Voir sur http://ancien.wikidebrouillard.org/index.php?title=Petit_Bot_un_robot_controlable_en_Wifi&lt;br /&gt;
// Ce programme est inspire de : http://www.esp8266.com/viewtopic.php?f=29&amp;amp;t=6419#sthash.gd1tJhwU.dpuf&lt;br /&gt;
// Sous licence CC-By-Sa&lt;br /&gt;
// Par des gens bien&lt;br /&gt;
&lt;br /&gt;
/* Schéma&lt;br /&gt;
Lolin (Wemos) D1 mini&lt;br /&gt;
                                     &lt;br /&gt;
                                _________________&lt;br /&gt;
                               /     D1 mini     \&lt;br /&gt;
                              |[ ]RST        TX[ ]|&lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|&lt;br /&gt;
                              |[ ]D0-16    5-D1[X]|----\&lt;br /&gt;
                              |[ ]D5-14    4-D2[X]|--\  \&lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]|  |   |&lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]|  |   |&lt;br /&gt;
                              |[ ]D8-15     GND[X]|  |   |&lt;br /&gt;
                              |[ ]3V3        5V[ ]|  |   |&lt;br /&gt;
 _                            |       +---+       |  |   |&lt;br /&gt;
| |                           |_______|USB|_______|  |  /                           _&lt;br /&gt;
| |       _                                         /  /                  _        | |&lt;br /&gt;
| |     _| |_________                         _____/  /         _________| |_      | |&lt;br /&gt;
| |    |    ______   |_data D1______________/        |_data D2_|   ______    |     | |&lt;br /&gt;
| |  __|   | SG90 |  |_______________GND_______________________|  | SG90 |   |___  | |&lt;br /&gt;
| |_|      |Servo |  |_______________Vin_______________________|  |Servo |       |_| |&lt;br /&gt;
| |_|      |Gauche|  |                                         |  |Droit |       |_| |&lt;br /&gt;
| | |__    |______|  |                                         |  |______|    ___| | |&lt;br /&gt;
| |    |__   ________|                                         |_________   __|    | |&lt;br /&gt;
| |       |_|                                                            |_|       | |&lt;br /&gt;
| |                                                                                | |&lt;br /&gt;
|_|                                                                                |_|&lt;br /&gt;
                                                                     &lt;br /&gt;
    ___&lt;br /&gt;
  / ___ \&lt;br /&gt;
 |_|   | | &lt;br /&gt;
      /_/&lt;br /&gt;
      _   ___   _&lt;br /&gt;
     |_| |___|_| |_&lt;br /&gt;
          ___|_   _|&lt;br /&gt;
         |___| |_|&lt;br /&gt;
  Les petits Débrouillards - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/&lt;br /&gt;
  Antony Le Goïc-Auffret janvier 2025&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// on appelle la bibliothèque qui gère le Wemos D1 mini&lt;br /&gt;
#include &amp;lt;ESP8266WiFi.h&amp;gt; &lt;br /&gt;
&lt;br /&gt;
// Gestion du Wifi&lt;br /&gt;
#include &amp;lt;ESP8266WebServer.h&amp;gt;&lt;br /&gt;
#include &amp;lt;DNSServer.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP8266mDNS.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFiClient.h&amp;gt; &lt;br /&gt;
&lt;br /&gt;
//  Definition du WiFi &lt;br /&gt;
const char *nomDuReseau = &amp;quot;petitbota&amp;quot;;     // Nom du réseau wifi du petit bot&lt;br /&gt;
const char *motDePasse = &amp;quot;&amp;quot;;    // Mot de passe du réseau wifi du petit bot&lt;br /&gt;
// ATTENTION - le mot de passe doit faire soit 0 caractères soit 8 ou plus sinon&lt;br /&gt;
// La configuration de votre réseau wifi ne se fera pas (ni mot de passe, ni nom de réseau !).&lt;br /&gt;
//création du monServeur&lt;br /&gt;
ESP8266WebServer monServeur(80);               // Création de l'objet monServeur&lt;br /&gt;
&lt;br /&gt;
//Gestion des servomoteurs&lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;   //appel de la bibliothèque qui gère les servomoteurs&lt;br /&gt;
// création des servomoteurs &lt;br /&gt;
Servo servogauche;   // Nom du servo qui gère la première roue&lt;br /&gt;
Servo servodroit;    // Seconde roue&lt;br /&gt;
&lt;br /&gt;
//déclaration des Variables&lt;br /&gt;
//int --- en cours &lt;br /&gt;
int val = -1; // Val nous sert à stocker la commande de l'utilisateur (stop, avance, ...).&lt;br /&gt;
&lt;br /&gt;
void setup(){&lt;br /&gt;
  delay(1000);&lt;br /&gt;
  Serial.begin(9600); // Ouvre une connexion série pour monitorer le fonctionnement du code quand on reste branché a l'ordinateur&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  Serial.println();  &lt;br /&gt;
  configDuWifi();&lt;br /&gt;
  servodroit.detach();  // Place les servos hors tension&lt;br /&gt;
  servogauche.detach(); &lt;br /&gt;
  pinMode(LED_BUILTIN, OUTPUT);    //met la led du Wemos en sortie&lt;br /&gt;
  digitalWrite(LED_BUILTIN, LOW);  //met la led du Wemos sur le niveau bas ce qui l'allume.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop(){&lt;br /&gt;
    val = -1;&lt;br /&gt;
    monServeur.handleClient();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////////GESTION DES INSTRUCTIONS///////////////////////////&lt;br /&gt;
void GestionDesClics() {&lt;br /&gt;
  monServeur.on(&amp;quot;/avance&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 1;&lt;br /&gt;
  Serial.println(&amp;quot;avance&amp;quot;);    &lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/recule&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 2;&lt;br /&gt;
  Serial.println(&amp;quot;recule&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/gauche&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 4;&lt;br /&gt;
  Serial.println(&amp;quot;gauche&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  monServeur.on(&amp;quot;/droite&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 3;&lt;br /&gt;
  Serial.println(&amp;quot;droite&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/stop&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 0;&lt;br /&gt;
  Serial.println(&amp;quot;stop&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  monServeur.on(&amp;quot;/&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = -1;&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////////////LA PAGE WEB DE CONROLE DU PETIT BOT/////////////////////////////////////////&lt;br /&gt;
void redactionPageWeb(){&lt;br /&gt;
  // Prépare la page web de réponse (le code HTML sera écrit dans la chaine de caractère &amp;quot;pageWeb&amp;quot;).&lt;br /&gt;
  String pageWeb = &amp;quot;&amp;lt;!DOCTYPE HTML&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;html&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;head&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;meta charset=\&amp;quot;utf-8\&amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;title&amp;gt;Petit bot&amp;lt;/title&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/head&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;body&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;center&amp;gt;&amp;quot;;    //On ouvre la balise qui va centrer les boutons&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;h1 style=\&amp;quot;font-size:300%;\&amp;quot;\&amp;gt; Le petit bot &amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;style type=\&amp;quot;text/css\&amp;quot;&amp;gt;  body { color: #212121; background-color: #CC0C59 } &amp;lt;/style&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  // On finalise l'écriture de la page Web et on donne les instructions aux servos&lt;br /&gt;
  pageWeb += instruction(val); // pour cela on appelle la fonction &amp;quot;instruction&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  // On termine l'écriture de la page Web&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/h1&amp;gt;&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;br&amp;gt;&amp;quot;; //aller à la ligne&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;br&amp;gt;&amp;quot;; //aller à la ligne&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/stop\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Stop &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;      // créer un bouton &amp;quot;Stop&amp;quot;, qui envoie sur l'URL /stop&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/avance\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Avance &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;  // créer un bouton &amp;quot;Avance&amp;quot;...&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/recule\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Recule &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/droite\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Droite &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/gauche\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Gauche &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/center&amp;gt;&amp;quot;; // tout est centré sur la page&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/body&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/html&amp;gt;\n&amp;quot;; //Fin de la page Web&lt;br /&gt;
&lt;br /&gt;
  // On envoie la page web&lt;br /&gt;
  monServeur.send(200, &amp;quot;text/html&amp;quot;, pageWeb);&lt;br /&gt;
  delay(1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////INSTRUCTIONS/////////////////////////////////////////////////////////&lt;br /&gt;
String instruction(int valeur){ //Cette fonction traite les instructions qui sont reçues&lt;br /&gt;
  int gauche;                           // Variable dont la valeur 180 ou 0 fera tourner le servo gauche dans un sens ou l'autre&lt;br /&gt;
  int droite;                           // Idem pour le servo droit&lt;br /&gt;
  String completePage;                  // Déclaration de la chaine de caractère qui sera renvoyée par cette fonction pour compléter la page web &lt;br /&gt;
  switch(valeur){                       // En fonction de la variable valeur on va donner un ordre aux servos &lt;br /&gt;
    case 0 :                            // et un texte à la chaine de caractère &amp;quot;completePage&amp;quot;&lt;br /&gt;
    completePage = &amp;quot; est a l'arrêt &amp;quot;;&lt;br /&gt;
    droite = 90;&lt;br /&gt;
    gauche = 90;&lt;br /&gt;
    break;&lt;br /&gt;
    case 1 :&lt;br /&gt;
    completePage = &amp;quot; avance &amp;quot;;&lt;br /&gt;
    droite = 180;&lt;br /&gt;
    gauche = 0;&lt;br /&gt;
    break;&lt;br /&gt;
    case 2 :&lt;br /&gt;
    completePage = &amp;quot; recule &amp;quot;;&lt;br /&gt;
    droite = 0;&lt;br /&gt;
    gauche = 180;&lt;br /&gt;
    break;&lt;br /&gt;
    case 3 :&lt;br /&gt;
    completePage = &amp;quot; tourne a gauche &amp;quot;;&lt;br /&gt;
    droite = 180;&lt;br /&gt;
    gauche = 180;&lt;br /&gt;
    break;&lt;br /&gt;
    case 4 :&lt;br /&gt;
    completePage = &amp;quot; tourne a droite &amp;quot;;&lt;br /&gt;
    droite = 0;&lt;br /&gt;
    gauche = 0;&lt;br /&gt;
    break;&lt;br /&gt;
    // que faire du cas ou val = -1 ? marquer ici ce qui doit être fait.&lt;br /&gt;
  }&lt;br /&gt;
  servogauche.attach(D1);     // Broche D1&lt;br /&gt;
  servodroit.attach(D2);      // Broche D2&lt;br /&gt;
  servogauche.write(gauche); &lt;br /&gt;
  servodroit.write(droite);&lt;br /&gt;
  return completePage;        // on renvoie la chaine de caractère pour compléter la page web&lt;br /&gt;
}&lt;br /&gt;
////////////////////////CONFIGURATION WIFI///////////////////////////////////////////////&lt;br /&gt;
void configDuWifi(){  // Fonction de configuratio du Wifi&lt;br /&gt;
  WiFi.mode(WIFI_AP); // le wemos est en mode &amp;quot;Point d'Accès&amp;quot; (il déploie un réseau wifi)&lt;br /&gt;
  WiFi.softAP(nomDuReseau, motDePasse, 2); // on démarre le &amp;quot;Point d'Accès&amp;quot;.&lt;br /&gt;
  MDNS.begin(nomDuReseau);                 // gérer les DNS ce qui rendra votre petit bot accessible&lt;br /&gt;
  MDNS.addService(&amp;quot;http&amp;quot;, &amp;quot;tcp&amp;quot;, 80);      // via http://nomDuReseau.local&lt;br /&gt;
  IPAddress monIP = WiFi.softAPIP();       // on récupère l'adresse IP du petit Bot&lt;br /&gt;
  Serial.print(&amp;quot;Adresse IP de ce Point d'Accès : &amp;quot;);&lt;br /&gt;
  Serial.println(monIP);                   // on l'écrit sur le moniteur série&lt;br /&gt;
  GestionDesClics();&lt;br /&gt;
  monServeur.begin();                          //Démarrage du monServeur&lt;br /&gt;
  Serial.println(&amp;quot;Serveur HTTP démarré&amp;quot;);&lt;br /&gt;
  return;                                  // on retourne à l'endroit ou la fonction a été appelée.&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
[[Fichier:TurboSCOT.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29542</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29542"/>
				<updated>2025-01-21T14:53:11Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* Élément de présentation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Finitoooooo.JPG|600px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 Maquette&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Matériel décoratif&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons réalisé les différentes parties du TurboScoot : le corps, le siège et le guidon. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Patron corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 3===&lt;br /&gt;
Ensuite, nous avons procédé au montage des différentes parties, ainsi qu'à la découpe des trous nécessaires pour accueillir les éléments électroniques.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modélisation siège.jpg | 300px]]&lt;br /&gt;
[[Fichier:Modélisation guidon.jpg | 300px]]&lt;br /&gt;
[[Fichier:Corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 4===&lt;br /&gt;
Après avoir terminé les premières étapes du montage, nous avons programmé sur Arduino (voir code plus bas). Nous avons d'abord effectué des tests sur une plaque à part : d'abord avec les LED seules, puis avec les LED et le capteur de distance ultrason, et enfin le test final avec les servomoteurs.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test les TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Test complet TS.jpg | 350px]]&lt;br /&gt;
&lt;br /&gt;
===étape 5===&lt;br /&gt;
Une fois les tests terminés et validés, nous avons réalisé les premiers essais sur le prototype initial.&lt;br /&gt;
&lt;br /&gt;
METTRE LES PHOTO&lt;br /&gt;
&lt;br /&gt;
===étape 6===&lt;br /&gt;
Après quelques ajustements, le premier prototype fonctionne parfaitement, ce qui nous a permis de concevoir le TurboScoot final et de le customiser.&lt;br /&gt;
&lt;br /&gt;
METTRE LES PHOTOS&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
Voici le code Arduino pour faire fonctionner le TurboScoot.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Définition des broches&lt;br /&gt;
#define TRIG_PIN 5      // (D1)&lt;br /&gt;
#define ECHO_PIN 4      // (D2)&lt;br /&gt;
#define LED_LEFT 14     // (D5)&lt;br /&gt;
#define LED_RIGHT 12    // (D6)&lt;br /&gt;
#define LED_OBSTACLE 2  // (D4)&lt;br /&gt;
#define SERVO_LEFT_PIN 13   // (D7)&lt;br /&gt;
#define SERVO_RIGHT_PIN 15  // (D8)&lt;br /&gt;
&lt;br /&gt;
long duration;&lt;br /&gt;
int distance;&lt;br /&gt;
int minDistance = 15;  // Distance minimum pour arrêt en cm&lt;br /&gt;
int slowDistance = 30; // Distance pour ralentir en cm&lt;br /&gt;
&lt;br /&gt;
Servo servoLeft;  // Instance moteur gauche&lt;br /&gt;
Servo servoRight; // Instance moteur droit&lt;br /&gt;
&lt;br /&gt;
// Mesurer la distance avec le capteur ultrason&lt;br /&gt;
int measureDistance() {&lt;br /&gt;
  digitalWrite(TRIG_PIN, LOW);&lt;br /&gt;
  delayMicroseconds(2);&lt;br /&gt;
  digitalWrite(TRIG_PIN, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(TRIG_PIN, LOW);&lt;br /&gt;
  duration = pulseIn(ECHO_PIN, HIGH);&lt;br /&gt;
  return duration * 0.034 / 2; // Conversion en cm&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // Configuration des broches&lt;br /&gt;
  pinMode(TRIG_PIN, OUTPUT);&lt;br /&gt;
  pinMode(ECHO_PIN, INPUT);&lt;br /&gt;
  pinMode(LED_LEFT, OUTPUT);&lt;br /&gt;
  pinMode(LED_RIGHT, OUTPUT);&lt;br /&gt;
  pinMode(LED_OBSTACLE, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  // Attacher les moteurs aux broches&lt;br /&gt;
  servoLeft.attach(SERVO_LEFT_PIN);&lt;br /&gt;
  servoRight.attach(SERVO_RIGHT_PIN);&lt;br /&gt;
&lt;br /&gt;
  // Initialiser les moteurs en position neutre (90 degrés)&lt;br /&gt;
  servoLeft.write(90);&lt;br /&gt;
  servoRight.write(90);&lt;br /&gt;
&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  distance = measureDistance();&lt;br /&gt;
  Serial.println(distance);&lt;br /&gt;
&lt;br /&gt;
  if (distance &amp;lt; minDistance) {&lt;br /&gt;
    // Arrêt complet et allumer la LED d'obstacle&lt;br /&gt;
    servoLeft.write(90);  // Position neutre (arrêt)&lt;br /&gt;
    servoRight.write(90); // Position neutre (arrêt)&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, HIGH);&lt;br /&gt;
    delay(500);&lt;br /&gt;
&lt;br /&gt;
    // Choisir aléatoirement de tourner à gauche ou à droite&lt;br /&gt;
    int direction = random(0, 2);  // 0 pour gauche, 1 pour droite&lt;br /&gt;
&lt;br /&gt;
    if (direction == 0) {&lt;br /&gt;
      // Tourner à gauche&lt;br /&gt;
      digitalWrite(LED_LEFT, HIGH);&lt;br /&gt;
      digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
      servoLeft.write(60);  // Tourner à gauche&lt;br /&gt;
      delay(1000);&lt;br /&gt;
      servoRight.write(120); // Tourner à droite&lt;br /&gt;
      delay(2000);&lt;br /&gt;
&lt;br /&gt;
      digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
      digitalWrite(LED_OBSTACLE, LOW);&lt;br /&gt;
    } else {&lt;br /&gt;
      // Tourner à droite&lt;br /&gt;
      digitalWrite(LED_RIGHT, HIGH);&lt;br /&gt;
      digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
      servoRight.write(120); // Tourner à droite&lt;br /&gt;
      delay(1000);&lt;br /&gt;
      servoLeft.write(60); // Tourner à gauche&lt;br /&gt;
      delay(2000);&lt;br /&gt;
&lt;br /&gt;
      digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
      digitalWrite(LED_OBSTACLE, LOW);&lt;br /&gt;
    }&lt;br /&gt;
  } else if (distance &amp;lt; slowDistance) {&lt;br /&gt;
    // Ralentir selon la distance&lt;br /&gt;
    int angle = map(distance, minDistance, slowDistance, 90, 120);&lt;br /&gt;
    servoLeft.write(angle);&lt;br /&gt;
    servoRight.write(180 - angle); // Angle opposé pour symétrie&lt;br /&gt;
&lt;br /&gt;
    // Éteindre LEDs&lt;br /&gt;
    digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
    digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, LOW);  // Éteindre la LED d'obstacle&lt;br /&gt;
  } else {&lt;br /&gt;
    // Pleine vitesse (symétrique)&lt;br /&gt;
    servoLeft.write(120);&lt;br /&gt;
    servoRight.write(60);&lt;br /&gt;
&lt;br /&gt;
    // LEDs éteintes&lt;br /&gt;
    digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
    digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, LOW);  // Éteindre la LED d'obstacle&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(50); // Anti-rebond&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
le détail de toutes le brochs du shield sont décrite dans ce code : https://github.com/julienrat/petitbot/blob/master/code_arduino/petitbot_v2/petitbot_v2.ino&lt;br /&gt;
&lt;br /&gt;
===Code de base du petit bot ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
///////////////&lt;br /&gt;
// Petit Bot //&lt;br /&gt;
///////////////&lt;br /&gt;
// MAJ 250121&lt;br /&gt;
// Un programme pédagogique des petits débrouillards ?=+ pour gérer le robot &amp;quot;Petit Bot&amp;quot; &lt;br /&gt;
// Voir sur http://ancien.wikidebrouillard.org/index.php?title=Petit_Bot_un_robot_controlable_en_Wifi&lt;br /&gt;
// Ce programme est inspire de : http://www.esp8266.com/viewtopic.php?f=29&amp;amp;t=6419#sthash.gd1tJhwU.dpuf&lt;br /&gt;
// Sous licence CC-By-Sa&lt;br /&gt;
// Par des gens bien&lt;br /&gt;
&lt;br /&gt;
/* Schéma&lt;br /&gt;
Lolin (Wemos) D1 mini&lt;br /&gt;
                                     &lt;br /&gt;
                                _________________&lt;br /&gt;
                               /     D1 mini     \&lt;br /&gt;
                              |[ ]RST        TX[ ]|&lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|&lt;br /&gt;
                              |[ ]D0-16    5-D1[X]|----\&lt;br /&gt;
                              |[ ]D5-14    4-D2[X]|--\  \&lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]|  |   |&lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]|  |   |&lt;br /&gt;
                              |[ ]D8-15     GND[X]|  |   |&lt;br /&gt;
                              |[ ]3V3        5V[ ]|  |   |&lt;br /&gt;
 _                            |       +---+       |  |   |&lt;br /&gt;
| |                           |_______|USB|_______|  |  /                           _&lt;br /&gt;
| |       _                                         /  /                  _        | |&lt;br /&gt;
| |     _| |_________                         _____/  /         _________| |_      | |&lt;br /&gt;
| |    |    ______   |_data D1______________/        |_data D2_|   ______    |     | |&lt;br /&gt;
| |  __|   | SG90 |  |_______________GND_______________________|  | SG90 |   |___  | |&lt;br /&gt;
| |_|      |Servo |  |_______________Vin_______________________|  |Servo |       |_| |&lt;br /&gt;
| |_|      |Gauche|  |                                         |  |Droit |       |_| |&lt;br /&gt;
| | |__    |______|  |                                         |  |______|    ___| | |&lt;br /&gt;
| |    |__   ________|                                         |_________   __|    | |&lt;br /&gt;
| |       |_|                                                            |_|       | |&lt;br /&gt;
| |                                                                                | |&lt;br /&gt;
|_|                                                                                |_|&lt;br /&gt;
                                                                     &lt;br /&gt;
    ___&lt;br /&gt;
  / ___ \&lt;br /&gt;
 |_|   | | &lt;br /&gt;
      /_/&lt;br /&gt;
      _   ___   _&lt;br /&gt;
     |_| |___|_| |_&lt;br /&gt;
          ___|_   _|&lt;br /&gt;
         |___| |_|&lt;br /&gt;
  Les petits Débrouillards - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/&lt;br /&gt;
  Antony Le Goïc-Auffret janvier 2025&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// on appelle la bibliothèque qui gère le Wemos D1 mini&lt;br /&gt;
#include &amp;lt;ESP8266WiFi.h&amp;gt; &lt;br /&gt;
&lt;br /&gt;
// Gestion du Wifi&lt;br /&gt;
#include &amp;lt;ESP8266WebServer.h&amp;gt;&lt;br /&gt;
#include &amp;lt;DNSServer.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP8266mDNS.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFiClient.h&amp;gt; &lt;br /&gt;
&lt;br /&gt;
//  Definition du WiFi &lt;br /&gt;
const char *nomDuReseau = &amp;quot;petitbota&amp;quot;;     // Nom du réseau wifi du petit bot&lt;br /&gt;
const char *motDePasse = &amp;quot;&amp;quot;;    // Mot de passe du réseau wifi du petit bot&lt;br /&gt;
// ATTENTION - le mot de passe doit faire soit 0 caractères soit 8 ou plus sinon&lt;br /&gt;
// La configuration de votre réseau wifi ne se fera pas (ni mot de passe, ni nom de réseau !).&lt;br /&gt;
//création du monServeur&lt;br /&gt;
ESP8266WebServer monServeur(80);               // Création de l'objet monServeur&lt;br /&gt;
&lt;br /&gt;
//Gestion des servomoteurs&lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;   //appel de la bibliothèque qui gère les servomoteurs&lt;br /&gt;
// création des servomoteurs &lt;br /&gt;
Servo servogauche;   // Nom du servo qui gère la première roue&lt;br /&gt;
Servo servodroit;    // Seconde roue&lt;br /&gt;
&lt;br /&gt;
//déclaration des Variables&lt;br /&gt;
//int --- en cours &lt;br /&gt;
int val = -1; // Val nous sert à stocker la commande de l'utilisateur (stop, avance, ...).&lt;br /&gt;
&lt;br /&gt;
void setup(){&lt;br /&gt;
  delay(1000);&lt;br /&gt;
  Serial.begin(9600); // Ouvre une connexion série pour monitorer le fonctionnement du code quand on reste branché a l'ordinateur&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  Serial.println();  &lt;br /&gt;
  configDuWifi();&lt;br /&gt;
  servodroit.detach();  // Place les servos hors tension&lt;br /&gt;
  servogauche.detach(); &lt;br /&gt;
  pinMode(LED_BUILTIN, OUTPUT);    //met la led du Wemos en sortie&lt;br /&gt;
  digitalWrite(LED_BUILTIN, LOW);  //met la led du Wemos sur le niveau bas ce qui l'allume.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop(){&lt;br /&gt;
    val = -1;&lt;br /&gt;
    monServeur.handleClient();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////////GESTION DES INSTRUCTIONS///////////////////////////&lt;br /&gt;
void GestionDesClics() {&lt;br /&gt;
  monServeur.on(&amp;quot;/avance&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 1;&lt;br /&gt;
  Serial.println(&amp;quot;avance&amp;quot;);    &lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/recule&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 2;&lt;br /&gt;
  Serial.println(&amp;quot;recule&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/gauche&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 4;&lt;br /&gt;
  Serial.println(&amp;quot;gauche&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  monServeur.on(&amp;quot;/droite&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 3;&lt;br /&gt;
  Serial.println(&amp;quot;droite&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/stop&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 0;&lt;br /&gt;
  Serial.println(&amp;quot;stop&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  monServeur.on(&amp;quot;/&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = -1;&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////////////LA PAGE WEB DE CONROLE DU PETIT BOT/////////////////////////////////////////&lt;br /&gt;
void redactionPageWeb(){&lt;br /&gt;
  // Prépare la page web de réponse (le code HTML sera écrit dans la chaine de caractère &amp;quot;pageWeb&amp;quot;).&lt;br /&gt;
  String pageWeb = &amp;quot;&amp;lt;!DOCTYPE HTML&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;html&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;head&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;meta charset=\&amp;quot;utf-8\&amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;title&amp;gt;Petit bot&amp;lt;/title&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/head&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;body&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;center&amp;gt;&amp;quot;;    //On ouvre la balise qui va centrer les boutons&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;h1 style=\&amp;quot;font-size:300%;\&amp;quot;\&amp;gt; Le petit bot &amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;style type=\&amp;quot;text/css\&amp;quot;&amp;gt;  body { color: #212121; background-color: #CC0C59 } &amp;lt;/style&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  // On finalise l'écriture de la page Web et on donne les instructions aux servos&lt;br /&gt;
  pageWeb += instruction(val); // pour cela on appelle la fonction &amp;quot;instruction&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  // On termine l'écriture de la page Web&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/h1&amp;gt;&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;br&amp;gt;&amp;quot;; //aller à la ligne&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;br&amp;gt;&amp;quot;; //aller à la ligne&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/stop\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Stop &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;      // créer un bouton &amp;quot;Stop&amp;quot;, qui envoie sur l'URL /stop&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/avance\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Avance &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;  // créer un bouton &amp;quot;Avance&amp;quot;...&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/recule\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Recule &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/droite\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Droite &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/gauche\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Gauche &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/center&amp;gt;&amp;quot;; // tout est centré sur la page&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/body&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/html&amp;gt;\n&amp;quot;; //Fin de la page Web&lt;br /&gt;
&lt;br /&gt;
  // On envoie la page web&lt;br /&gt;
  monServeur.send(200, &amp;quot;text/html&amp;quot;, pageWeb);&lt;br /&gt;
  delay(1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////INSTRUCTIONS/////////////////////////////////////////////////////////&lt;br /&gt;
String instruction(int valeur){ //Cette fonction traite les instructions qui sont reçues&lt;br /&gt;
  int gauche;                           // Variable dont la valeur 180 ou 0 fera tourner le servo gauche dans un sens ou l'autre&lt;br /&gt;
  int droite;                           // Idem pour le servo droit&lt;br /&gt;
  String completePage;                  // Déclaration de la chaine de caractère qui sera renvoyée par cette fonction pour compléter la page web &lt;br /&gt;
  switch(valeur){                       // En fonction de la variable valeur on va donner un ordre aux servos &lt;br /&gt;
    case 0 :                            // et un texte à la chaine de caractère &amp;quot;completePage&amp;quot;&lt;br /&gt;
    completePage = &amp;quot; est a l'arrêt &amp;quot;;&lt;br /&gt;
    droite = 90;&lt;br /&gt;
    gauche = 90;&lt;br /&gt;
    break;&lt;br /&gt;
    case 1 :&lt;br /&gt;
    completePage = &amp;quot; avance &amp;quot;;&lt;br /&gt;
    droite = 180;&lt;br /&gt;
    gauche = 0;&lt;br /&gt;
    break;&lt;br /&gt;
    case 2 :&lt;br /&gt;
    completePage = &amp;quot; recule &amp;quot;;&lt;br /&gt;
    droite = 0;&lt;br /&gt;
    gauche = 180;&lt;br /&gt;
    break;&lt;br /&gt;
    case 3 :&lt;br /&gt;
    completePage = &amp;quot; tourne a gauche &amp;quot;;&lt;br /&gt;
    droite = 180;&lt;br /&gt;
    gauche = 180;&lt;br /&gt;
    break;&lt;br /&gt;
    case 4 :&lt;br /&gt;
    completePage = &amp;quot; tourne a droite &amp;quot;;&lt;br /&gt;
    droite = 0;&lt;br /&gt;
    gauche = 0;&lt;br /&gt;
    break;&lt;br /&gt;
    // que faire du cas ou val = -1 ? marquer ici ce qui doit être fait.&lt;br /&gt;
  }&lt;br /&gt;
  servogauche.attach(D1);     // Broche D1&lt;br /&gt;
  servodroit.attach(D2);      // Broche D2&lt;br /&gt;
  servogauche.write(gauche); &lt;br /&gt;
  servodroit.write(droite);&lt;br /&gt;
  return completePage;        // on renvoie la chaine de caractère pour compléter la page web&lt;br /&gt;
}&lt;br /&gt;
////////////////////////CONFIGURATION WIFI///////////////////////////////////////////////&lt;br /&gt;
void configDuWifi(){  // Fonction de configuratio du Wifi&lt;br /&gt;
  WiFi.mode(WIFI_AP); // le wemos est en mode &amp;quot;Point d'Accès&amp;quot; (il déploie un réseau wifi)&lt;br /&gt;
  WiFi.softAP(nomDuReseau, motDePasse, 2); // on démarre le &amp;quot;Point d'Accès&amp;quot;.&lt;br /&gt;
  MDNS.begin(nomDuReseau);                 // gérer les DNS ce qui rendra votre petit bot accessible&lt;br /&gt;
  MDNS.addService(&amp;quot;http&amp;quot;, &amp;quot;tcp&amp;quot;, 80);      // via http://nomDuReseau.local&lt;br /&gt;
  IPAddress monIP = WiFi.softAPIP();       // on récupère l'adresse IP du petit Bot&lt;br /&gt;
  Serial.print(&amp;quot;Adresse IP de ce Point d'Accès : &amp;quot;);&lt;br /&gt;
  Serial.println(monIP);                   // on l'écrit sur le moniteur série&lt;br /&gt;
  GestionDesClics();&lt;br /&gt;
  monServeur.begin();                          //Démarrage du monServeur&lt;br /&gt;
  Serial.println(&amp;quot;Serveur HTTP démarré&amp;quot;);&lt;br /&gt;
  return;                                  // on retourne à l'endroit ou la fonction a été appelée.&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
[[Fichier:TurboSCOT.png]]&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:TurboSCOT.png&amp;diff=29535</id>
		<title>Fichier:TurboSCOT.png</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:TurboSCOT.png&amp;diff=29535"/>
				<updated>2025-01-21T14:50:42Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29526</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29526"/>
				<updated>2025-01-21T14:47:12Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Finitoooooo.JPG|600px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 Maquette&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Matériel décoratif&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons réalisé les différentes parties du TurboScoot : le corps, le siège et le guidon. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Patron corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 3===&lt;br /&gt;
Ensuite, nous avons procédé au montage des différentes parties, ainsi qu'à la découpe des trous nécessaires pour accueillir les éléments électroniques.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modélisation siège.jpg | 300px]]&lt;br /&gt;
[[Fichier:Modélisation guidon.jpg | 300px]]&lt;br /&gt;
[[Fichier:Corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 4===&lt;br /&gt;
Après avoir terminé les premières étapes du montage, nous avons programmé sur Arduino (voir code plus bas). Nous avons d'abord effectué des tests sur une plaque à part : d'abord avec les LED seules, puis avec les LED et le capteur de distance ultrason, et enfin le test final avec les servomoteurs.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test les TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Test complet TS.jpg | 350px]]&lt;br /&gt;
&lt;br /&gt;
===étape 5===&lt;br /&gt;
Une fois les tests terminés et validés, nous avons réalisé les premiers essais sur le prototype initial.&lt;br /&gt;
&lt;br /&gt;
METTRE LES PHOTO&lt;br /&gt;
&lt;br /&gt;
===étape 6===&lt;br /&gt;
Après quelques ajustements, le premier prototype fonctionne parfaitement, ce qui nous a permis de concevoir le TurboScoot final et de le customiser.&lt;br /&gt;
&lt;br /&gt;
METTRE LES PHOTOS&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
Voici le code Arduino pour faire fonctionner le TurboScoot.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Définition des broches&lt;br /&gt;
#define TRIG_PIN 5      // (D1)&lt;br /&gt;
#define ECHO_PIN 4      // (D2)&lt;br /&gt;
#define LED_LEFT 14     // (D5)&lt;br /&gt;
#define LED_RIGHT 12    // (D6)&lt;br /&gt;
#define LED_OBSTACLE 2  // (D4)&lt;br /&gt;
#define SERVO_LEFT_PIN 13   // (D7)&lt;br /&gt;
#define SERVO_RIGHT_PIN 15  // (D8)&lt;br /&gt;
&lt;br /&gt;
long duration;&lt;br /&gt;
int distance;&lt;br /&gt;
int minDistance = 15;  // Distance minimum pour arrêt en cm&lt;br /&gt;
int slowDistance = 30; // Distance pour ralentir en cm&lt;br /&gt;
&lt;br /&gt;
Servo servoLeft;  // Instance moteur gauche&lt;br /&gt;
Servo servoRight; // Instance moteur droit&lt;br /&gt;
&lt;br /&gt;
// Mesurer la distance avec le capteur ultrason&lt;br /&gt;
int measureDistance() {&lt;br /&gt;
  digitalWrite(TRIG_PIN, LOW);&lt;br /&gt;
  delayMicroseconds(2);&lt;br /&gt;
  digitalWrite(TRIG_PIN, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(TRIG_PIN, LOW);&lt;br /&gt;
  duration = pulseIn(ECHO_PIN, HIGH);&lt;br /&gt;
  return duration * 0.034 / 2; // Conversion en cm&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // Configuration des broches&lt;br /&gt;
  pinMode(TRIG_PIN, OUTPUT);&lt;br /&gt;
  pinMode(ECHO_PIN, INPUT);&lt;br /&gt;
  pinMode(LED_LEFT, OUTPUT);&lt;br /&gt;
  pinMode(LED_RIGHT, OUTPUT);&lt;br /&gt;
  pinMode(LED_OBSTACLE, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  // Attacher les moteurs aux broches&lt;br /&gt;
  servoLeft.attach(SERVO_LEFT_PIN);&lt;br /&gt;
  servoRight.attach(SERVO_RIGHT_PIN);&lt;br /&gt;
&lt;br /&gt;
  // Initialiser les moteurs en position neutre (90 degrés)&lt;br /&gt;
  servoLeft.write(90);&lt;br /&gt;
  servoRight.write(90);&lt;br /&gt;
&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  distance = measureDistance();&lt;br /&gt;
  Serial.println(distance);&lt;br /&gt;
&lt;br /&gt;
  if (distance &amp;lt; minDistance) {&lt;br /&gt;
    // Arrêt complet et allumer la LED d'obstacle&lt;br /&gt;
    servoLeft.write(90);  // Position neutre (arrêt)&lt;br /&gt;
    servoRight.write(90); // Position neutre (arrêt)&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, HIGH);&lt;br /&gt;
    delay(500);&lt;br /&gt;
&lt;br /&gt;
    // Choisir aléatoirement de tourner à gauche ou à droite&lt;br /&gt;
    int direction = random(0, 2);  // 0 pour gauche, 1 pour droite&lt;br /&gt;
&lt;br /&gt;
    if (direction == 0) {&lt;br /&gt;
      // Tourner à gauche&lt;br /&gt;
      digitalWrite(LED_LEFT, HIGH);&lt;br /&gt;
      digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
      servoLeft.write(60);  // Tourner à gauche&lt;br /&gt;
      delay(1000);&lt;br /&gt;
      servoRight.write(120); // Tourner à droite&lt;br /&gt;
      delay(2000);&lt;br /&gt;
&lt;br /&gt;
      digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
      digitalWrite(LED_OBSTACLE, LOW);&lt;br /&gt;
    } else {&lt;br /&gt;
      // Tourner à droite&lt;br /&gt;
      digitalWrite(LED_RIGHT, HIGH);&lt;br /&gt;
      digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
      servoRight.write(120); // Tourner à droite&lt;br /&gt;
      delay(1000);&lt;br /&gt;
      servoLeft.write(60); // Tourner à gauche&lt;br /&gt;
      delay(2000);&lt;br /&gt;
&lt;br /&gt;
      digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
      digitalWrite(LED_OBSTACLE, LOW);&lt;br /&gt;
    }&lt;br /&gt;
  } else if (distance &amp;lt; slowDistance) {&lt;br /&gt;
    // Ralentir selon la distance&lt;br /&gt;
    int angle = map(distance, minDistance, slowDistance, 90, 120);&lt;br /&gt;
    servoLeft.write(angle);&lt;br /&gt;
    servoRight.write(180 - angle); // Angle opposé pour symétrie&lt;br /&gt;
&lt;br /&gt;
    // Éteindre LEDs&lt;br /&gt;
    digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
    digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, LOW);  // Éteindre la LED d'obstacle&lt;br /&gt;
  } else {&lt;br /&gt;
    // Pleine vitesse (symétrique)&lt;br /&gt;
    servoLeft.write(120);&lt;br /&gt;
    servoRight.write(60);&lt;br /&gt;
&lt;br /&gt;
    // LEDs éteintes&lt;br /&gt;
    digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
    digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, LOW);  // Éteindre la LED d'obstacle&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(50); // Anti-rebond&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
le détail de toutes le brochs du shield sont décrite dans ce code : https://github.com/julienrat/petitbot/blob/master/code_arduino/petitbot_v2/petitbot_v2.ino&lt;br /&gt;
&lt;br /&gt;
===Code de base du petit bot ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
///////////////&lt;br /&gt;
// Petit Bot //&lt;br /&gt;
///////////////&lt;br /&gt;
// MAJ 250121&lt;br /&gt;
// Un programme pédagogique des petits débrouillards ?=+ pour gérer le robot &amp;quot;Petit Bot&amp;quot; &lt;br /&gt;
// Voir sur http://ancien.wikidebrouillard.org/index.php?title=Petit_Bot_un_robot_controlable_en_Wifi&lt;br /&gt;
// Ce programme est inspire de : http://www.esp8266.com/viewtopic.php?f=29&amp;amp;t=6419#sthash.gd1tJhwU.dpuf&lt;br /&gt;
// Sous licence CC-By-Sa&lt;br /&gt;
// Par des gens bien&lt;br /&gt;
&lt;br /&gt;
/* Schéma&lt;br /&gt;
Lolin (Wemos) D1 mini&lt;br /&gt;
                                     &lt;br /&gt;
                                _________________&lt;br /&gt;
                               /     D1 mini     \&lt;br /&gt;
                              |[ ]RST        TX[ ]|&lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|&lt;br /&gt;
                              |[ ]D0-16    5-D1[X]|----\&lt;br /&gt;
                              |[ ]D5-14    4-D2[X]|--\  \&lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]|  |   |&lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]|  |   |&lt;br /&gt;
                              |[ ]D8-15     GND[X]|  |   |&lt;br /&gt;
                              |[ ]3V3        5V[ ]|  |   |&lt;br /&gt;
 _                            |       +---+       |  |   |&lt;br /&gt;
| |                           |_______|USB|_______|  |  /                           _&lt;br /&gt;
| |       _                                         /  /                  _        | |&lt;br /&gt;
| |     _| |_________                         _____/  /         _________| |_      | |&lt;br /&gt;
| |    |    ______   |_data D1______________/        |_data D2_|   ______    |     | |&lt;br /&gt;
| |  __|   | SG90 |  |_______________GND_______________________|  | SG90 |   |___  | |&lt;br /&gt;
| |_|      |Servo |  |_______________Vin_______________________|  |Servo |       |_| |&lt;br /&gt;
| |_|      |Gauche|  |                                         |  |Droit |       |_| |&lt;br /&gt;
| | |__    |______|  |                                         |  |______|    ___| | |&lt;br /&gt;
| |    |__   ________|                                         |_________   __|    | |&lt;br /&gt;
| |       |_|                                                            |_|       | |&lt;br /&gt;
| |                                                                                | |&lt;br /&gt;
|_|                                                                                |_|&lt;br /&gt;
                                                                     &lt;br /&gt;
    ___&lt;br /&gt;
  / ___ \&lt;br /&gt;
 |_|   | | &lt;br /&gt;
      /_/&lt;br /&gt;
      _   ___   _&lt;br /&gt;
     |_| |___|_| |_&lt;br /&gt;
          ___|_   _|&lt;br /&gt;
         |___| |_|&lt;br /&gt;
  Les petits Débrouillards - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/&lt;br /&gt;
  Antony Le Goïc-Auffret janvier 2025&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// on appelle la bibliothèque qui gère le Wemos D1 mini&lt;br /&gt;
#include &amp;lt;ESP8266WiFi.h&amp;gt; &lt;br /&gt;
&lt;br /&gt;
// Gestion du Wifi&lt;br /&gt;
#include &amp;lt;ESP8266WebServer.h&amp;gt;&lt;br /&gt;
#include &amp;lt;DNSServer.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP8266mDNS.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFiClient.h&amp;gt; &lt;br /&gt;
&lt;br /&gt;
//  Definition du WiFi &lt;br /&gt;
const char *nomDuReseau = &amp;quot;petitbota&amp;quot;;     // Nom du réseau wifi du petit bot&lt;br /&gt;
const char *motDePasse = &amp;quot;&amp;quot;;    // Mot de passe du réseau wifi du petit bot&lt;br /&gt;
// ATTENTION - le mot de passe doit faire soit 0 caractères soit 8 ou plus sinon&lt;br /&gt;
// La configuration de votre réseau wifi ne se fera pas (ni mot de passe, ni nom de réseau !).&lt;br /&gt;
//création du monServeur&lt;br /&gt;
ESP8266WebServer monServeur(80);               // Création de l'objet monServeur&lt;br /&gt;
&lt;br /&gt;
//Gestion des servomoteurs&lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;   //appel de la bibliothèque qui gère les servomoteurs&lt;br /&gt;
// création des servomoteurs &lt;br /&gt;
Servo servogauche;   // Nom du servo qui gère la première roue&lt;br /&gt;
Servo servodroit;    // Seconde roue&lt;br /&gt;
&lt;br /&gt;
//déclaration des Variables&lt;br /&gt;
//int --- en cours &lt;br /&gt;
int val = -1; // Val nous sert à stocker la commande de l'utilisateur (stop, avance, ...).&lt;br /&gt;
&lt;br /&gt;
void setup(){&lt;br /&gt;
  delay(1000);&lt;br /&gt;
  Serial.begin(9600); // Ouvre une connexion série pour monitorer le fonctionnement du code quand on reste branché a l'ordinateur&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  Serial.println();  &lt;br /&gt;
  configDuWifi();&lt;br /&gt;
  servodroit.detach();  // Place les servos hors tension&lt;br /&gt;
  servogauche.detach(); &lt;br /&gt;
  pinMode(LED_BUILTIN, OUTPUT);    //met la led du Wemos en sortie&lt;br /&gt;
  digitalWrite(LED_BUILTIN, LOW);  //met la led du Wemos sur le niveau bas ce qui l'allume.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop(){&lt;br /&gt;
    val = -1;&lt;br /&gt;
    monServeur.handleClient();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////////GESTION DES INSTRUCTIONS///////////////////////////&lt;br /&gt;
void GestionDesClics() {&lt;br /&gt;
  monServeur.on(&amp;quot;/avance&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 1;&lt;br /&gt;
  Serial.println(&amp;quot;avance&amp;quot;);    &lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/recule&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 2;&lt;br /&gt;
  Serial.println(&amp;quot;recule&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/gauche&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 4;&lt;br /&gt;
  Serial.println(&amp;quot;gauche&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  monServeur.on(&amp;quot;/droite&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 3;&lt;br /&gt;
  Serial.println(&amp;quot;droite&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/stop&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 0;&lt;br /&gt;
  Serial.println(&amp;quot;stop&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  monServeur.on(&amp;quot;/&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = -1;&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////////////LA PAGE WEB DE CONROLE DU PETIT BOT/////////////////////////////////////////&lt;br /&gt;
void redactionPageWeb(){&lt;br /&gt;
  // Prépare la page web de réponse (le code HTML sera écrit dans la chaine de caractère &amp;quot;pageWeb&amp;quot;).&lt;br /&gt;
  String pageWeb = &amp;quot;&amp;lt;!DOCTYPE HTML&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;html&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;head&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;meta charset=\&amp;quot;utf-8\&amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;title&amp;gt;Petit bot&amp;lt;/title&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/head&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;body&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;center&amp;gt;&amp;quot;;    //On ouvre la balise qui va centrer les boutons&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;h1 style=\&amp;quot;font-size:300%;\&amp;quot;\&amp;gt; Le petit bot &amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;style type=\&amp;quot;text/css\&amp;quot;&amp;gt;  body { color: #212121; background-color: #CC0C59 } &amp;lt;/style&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  // On finalise l'écriture de la page Web et on donne les instructions aux servos&lt;br /&gt;
  pageWeb += instruction(val); // pour cela on appelle la fonction &amp;quot;instruction&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  // On termine l'écriture de la page Web&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/h1&amp;gt;&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;br&amp;gt;&amp;quot;; //aller à la ligne&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;br&amp;gt;&amp;quot;; //aller à la ligne&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/stop\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Stop &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;      // créer un bouton &amp;quot;Stop&amp;quot;, qui envoie sur l'URL /stop&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/avance\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Avance &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;  // créer un bouton &amp;quot;Avance&amp;quot;...&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/recule\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Recule &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/droite\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Droite &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/gauche\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Gauche &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/center&amp;gt;&amp;quot;; // tout est centré sur la page&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/body&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/html&amp;gt;\n&amp;quot;; //Fin de la page Web&lt;br /&gt;
&lt;br /&gt;
  // On envoie la page web&lt;br /&gt;
  monServeur.send(200, &amp;quot;text/html&amp;quot;, pageWeb);&lt;br /&gt;
  delay(1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////INSTRUCTIONS/////////////////////////////////////////////////////////&lt;br /&gt;
String instruction(int valeur){ //Cette fonction traite les instructions qui sont reçues&lt;br /&gt;
  int gauche;                           // Variable dont la valeur 180 ou 0 fera tourner le servo gauche dans un sens ou l'autre&lt;br /&gt;
  int droite;                           // Idem pour le servo droit&lt;br /&gt;
  String completePage;                  // Déclaration de la chaine de caractère qui sera renvoyée par cette fonction pour compléter la page web &lt;br /&gt;
  switch(valeur){                       // En fonction de la variable valeur on va donner un ordre aux servos &lt;br /&gt;
    case 0 :                            // et un texte à la chaine de caractère &amp;quot;completePage&amp;quot;&lt;br /&gt;
    completePage = &amp;quot; est a l'arrêt &amp;quot;;&lt;br /&gt;
    droite = 90;&lt;br /&gt;
    gauche = 90;&lt;br /&gt;
    break;&lt;br /&gt;
    case 1 :&lt;br /&gt;
    completePage = &amp;quot; avance &amp;quot;;&lt;br /&gt;
    droite = 180;&lt;br /&gt;
    gauche = 0;&lt;br /&gt;
    break;&lt;br /&gt;
    case 2 :&lt;br /&gt;
    completePage = &amp;quot; recule &amp;quot;;&lt;br /&gt;
    droite = 0;&lt;br /&gt;
    gauche = 180;&lt;br /&gt;
    break;&lt;br /&gt;
    case 3 :&lt;br /&gt;
    completePage = &amp;quot; tourne a gauche &amp;quot;;&lt;br /&gt;
    droite = 180;&lt;br /&gt;
    gauche = 180;&lt;br /&gt;
    break;&lt;br /&gt;
    case 4 :&lt;br /&gt;
    completePage = &amp;quot; tourne a droite &amp;quot;;&lt;br /&gt;
    droite = 0;&lt;br /&gt;
    gauche = 0;&lt;br /&gt;
    break;&lt;br /&gt;
    // que faire du cas ou val = -1 ? marquer ici ce qui doit être fait.&lt;br /&gt;
  }&lt;br /&gt;
  servogauche.attach(D1);     // Broche D1&lt;br /&gt;
  servodroit.attach(D2);      // Broche D2&lt;br /&gt;
  servogauche.write(gauche); &lt;br /&gt;
  servodroit.write(droite);&lt;br /&gt;
  return completePage;        // on renvoie la chaine de caractère pour compléter la page web&lt;br /&gt;
}&lt;br /&gt;
////////////////////////CONFIGURATION WIFI///////////////////////////////////////////////&lt;br /&gt;
void configDuWifi(){  // Fonction de configuratio du Wifi&lt;br /&gt;
  WiFi.mode(WIFI_AP); // le wemos est en mode &amp;quot;Point d'Accès&amp;quot; (il déploie un réseau wifi)&lt;br /&gt;
  WiFi.softAP(nomDuReseau, motDePasse, 2); // on démarre le &amp;quot;Point d'Accès&amp;quot;.&lt;br /&gt;
  MDNS.begin(nomDuReseau);                 // gérer les DNS ce qui rendra votre petit bot accessible&lt;br /&gt;
  MDNS.addService(&amp;quot;http&amp;quot;, &amp;quot;tcp&amp;quot;, 80);      // via http://nomDuReseau.local&lt;br /&gt;
  IPAddress monIP = WiFi.softAPIP();       // on récupère l'adresse IP du petit Bot&lt;br /&gt;
  Serial.print(&amp;quot;Adresse IP de ce Point d'Accès : &amp;quot;);&lt;br /&gt;
  Serial.println(monIP);                   // on l'écrit sur le moniteur série&lt;br /&gt;
  GestionDesClics();&lt;br /&gt;
  monServeur.begin();                          //Démarrage du monServeur&lt;br /&gt;
  Serial.println(&amp;quot;Serveur HTTP démarré&amp;quot;);&lt;br /&gt;
  return;                                  // on retourne à l'endroit ou la fonction a été appelée.&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29525</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29525"/>
				<updated>2025-01-21T14:46:55Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Finitoooooo.JPG|500px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 Maquette&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Matériel décoratif&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons réalisé les différentes parties du TurboScoot : le corps, le siège et le guidon. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Patron corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 3===&lt;br /&gt;
Ensuite, nous avons procédé au montage des différentes parties, ainsi qu'à la découpe des trous nécessaires pour accueillir les éléments électroniques.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modélisation siège.jpg | 300px]]&lt;br /&gt;
[[Fichier:Modélisation guidon.jpg | 300px]]&lt;br /&gt;
[[Fichier:Corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 4===&lt;br /&gt;
Après avoir terminé les premières étapes du montage, nous avons programmé sur Arduino (voir code plus bas). Nous avons d'abord effectué des tests sur une plaque à part : d'abord avec les LED seules, puis avec les LED et le capteur de distance ultrason, et enfin le test final avec les servomoteurs.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test les TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Test complet TS.jpg | 350px]]&lt;br /&gt;
&lt;br /&gt;
===étape 5===&lt;br /&gt;
Une fois les tests terminés et validés, nous avons réalisé les premiers essais sur le prototype initial.&lt;br /&gt;
&lt;br /&gt;
METTRE LES PHOTO&lt;br /&gt;
&lt;br /&gt;
===étape 6===&lt;br /&gt;
Après quelques ajustements, le premier prototype fonctionne parfaitement, ce qui nous a permis de concevoir le TurboScoot final et de le customiser.&lt;br /&gt;
&lt;br /&gt;
METTRE LES PHOTOS&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
Voici le code Arduino pour faire fonctionner le TurboScoot.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Définition des broches&lt;br /&gt;
#define TRIG_PIN 5      // (D1)&lt;br /&gt;
#define ECHO_PIN 4      // (D2)&lt;br /&gt;
#define LED_LEFT 14     // (D5)&lt;br /&gt;
#define LED_RIGHT 12    // (D6)&lt;br /&gt;
#define LED_OBSTACLE 2  // (D4)&lt;br /&gt;
#define SERVO_LEFT_PIN 13   // (D7)&lt;br /&gt;
#define SERVO_RIGHT_PIN 15  // (D8)&lt;br /&gt;
&lt;br /&gt;
long duration;&lt;br /&gt;
int distance;&lt;br /&gt;
int minDistance = 15;  // Distance minimum pour arrêt en cm&lt;br /&gt;
int slowDistance = 30; // Distance pour ralentir en cm&lt;br /&gt;
&lt;br /&gt;
Servo servoLeft;  // Instance moteur gauche&lt;br /&gt;
Servo servoRight; // Instance moteur droit&lt;br /&gt;
&lt;br /&gt;
// Mesurer la distance avec le capteur ultrason&lt;br /&gt;
int measureDistance() {&lt;br /&gt;
  digitalWrite(TRIG_PIN, LOW);&lt;br /&gt;
  delayMicroseconds(2);&lt;br /&gt;
  digitalWrite(TRIG_PIN, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(TRIG_PIN, LOW);&lt;br /&gt;
  duration = pulseIn(ECHO_PIN, HIGH);&lt;br /&gt;
  return duration * 0.034 / 2; // Conversion en cm&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // Configuration des broches&lt;br /&gt;
  pinMode(TRIG_PIN, OUTPUT);&lt;br /&gt;
  pinMode(ECHO_PIN, INPUT);&lt;br /&gt;
  pinMode(LED_LEFT, OUTPUT);&lt;br /&gt;
  pinMode(LED_RIGHT, OUTPUT);&lt;br /&gt;
  pinMode(LED_OBSTACLE, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  // Attacher les moteurs aux broches&lt;br /&gt;
  servoLeft.attach(SERVO_LEFT_PIN);&lt;br /&gt;
  servoRight.attach(SERVO_RIGHT_PIN);&lt;br /&gt;
&lt;br /&gt;
  // Initialiser les moteurs en position neutre (90 degrés)&lt;br /&gt;
  servoLeft.write(90);&lt;br /&gt;
  servoRight.write(90);&lt;br /&gt;
&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  distance = measureDistance();&lt;br /&gt;
  Serial.println(distance);&lt;br /&gt;
&lt;br /&gt;
  if (distance &amp;lt; minDistance) {&lt;br /&gt;
    // Arrêt complet et allumer la LED d'obstacle&lt;br /&gt;
    servoLeft.write(90);  // Position neutre (arrêt)&lt;br /&gt;
    servoRight.write(90); // Position neutre (arrêt)&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, HIGH);&lt;br /&gt;
    delay(500);&lt;br /&gt;
&lt;br /&gt;
    // Choisir aléatoirement de tourner à gauche ou à droite&lt;br /&gt;
    int direction = random(0, 2);  // 0 pour gauche, 1 pour droite&lt;br /&gt;
&lt;br /&gt;
    if (direction == 0) {&lt;br /&gt;
      // Tourner à gauche&lt;br /&gt;
      digitalWrite(LED_LEFT, HIGH);&lt;br /&gt;
      digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
      servoLeft.write(60);  // Tourner à gauche&lt;br /&gt;
      delay(1000);&lt;br /&gt;
      servoRight.write(120); // Tourner à droite&lt;br /&gt;
      delay(2000);&lt;br /&gt;
&lt;br /&gt;
      digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
      digitalWrite(LED_OBSTACLE, LOW);&lt;br /&gt;
    } else {&lt;br /&gt;
      // Tourner à droite&lt;br /&gt;
      digitalWrite(LED_RIGHT, HIGH);&lt;br /&gt;
      digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
      servoRight.write(120); // Tourner à droite&lt;br /&gt;
      delay(1000);&lt;br /&gt;
      servoLeft.write(60); // Tourner à gauche&lt;br /&gt;
      delay(2000);&lt;br /&gt;
&lt;br /&gt;
      digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
      digitalWrite(LED_OBSTACLE, LOW);&lt;br /&gt;
    }&lt;br /&gt;
  } else if (distance &amp;lt; slowDistance) {&lt;br /&gt;
    // Ralentir selon la distance&lt;br /&gt;
    int angle = map(distance, minDistance, slowDistance, 90, 120);&lt;br /&gt;
    servoLeft.write(angle);&lt;br /&gt;
    servoRight.write(180 - angle); // Angle opposé pour symétrie&lt;br /&gt;
&lt;br /&gt;
    // Éteindre LEDs&lt;br /&gt;
    digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
    digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, LOW);  // Éteindre la LED d'obstacle&lt;br /&gt;
  } else {&lt;br /&gt;
    // Pleine vitesse (symétrique)&lt;br /&gt;
    servoLeft.write(120);&lt;br /&gt;
    servoRight.write(60);&lt;br /&gt;
&lt;br /&gt;
    // LEDs éteintes&lt;br /&gt;
    digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
    digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, LOW);  // Éteindre la LED d'obstacle&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(50); // Anti-rebond&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
le détail de toutes le brochs du shield sont décrite dans ce code : https://github.com/julienrat/petitbot/blob/master/code_arduino/petitbot_v2/petitbot_v2.ino&lt;br /&gt;
&lt;br /&gt;
===Code de base du petit bot ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
///////////////&lt;br /&gt;
// Petit Bot //&lt;br /&gt;
///////////////&lt;br /&gt;
// MAJ 250121&lt;br /&gt;
// Un programme pédagogique des petits débrouillards ?=+ pour gérer le robot &amp;quot;Petit Bot&amp;quot; &lt;br /&gt;
// Voir sur http://ancien.wikidebrouillard.org/index.php?title=Petit_Bot_un_robot_controlable_en_Wifi&lt;br /&gt;
// Ce programme est inspire de : http://www.esp8266.com/viewtopic.php?f=29&amp;amp;t=6419#sthash.gd1tJhwU.dpuf&lt;br /&gt;
// Sous licence CC-By-Sa&lt;br /&gt;
// Par des gens bien&lt;br /&gt;
&lt;br /&gt;
/* Schéma&lt;br /&gt;
Lolin (Wemos) D1 mini&lt;br /&gt;
                                     &lt;br /&gt;
                                _________________&lt;br /&gt;
                               /     D1 mini     \&lt;br /&gt;
                              |[ ]RST        TX[ ]|&lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|&lt;br /&gt;
                              |[ ]D0-16    5-D1[X]|----\&lt;br /&gt;
                              |[ ]D5-14    4-D2[X]|--\  \&lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]|  |   |&lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]|  |   |&lt;br /&gt;
                              |[ ]D8-15     GND[X]|  |   |&lt;br /&gt;
                              |[ ]3V3        5V[ ]|  |   |&lt;br /&gt;
 _                            |       +---+       |  |   |&lt;br /&gt;
| |                           |_______|USB|_______|  |  /                           _&lt;br /&gt;
| |       _                                         /  /                  _        | |&lt;br /&gt;
| |     _| |_________                         _____/  /         _________| |_      | |&lt;br /&gt;
| |    |    ______   |_data D1______________/        |_data D2_|   ______    |     | |&lt;br /&gt;
| |  __|   | SG90 |  |_______________GND_______________________|  | SG90 |   |___  | |&lt;br /&gt;
| |_|      |Servo |  |_______________Vin_______________________|  |Servo |       |_| |&lt;br /&gt;
| |_|      |Gauche|  |                                         |  |Droit |       |_| |&lt;br /&gt;
| | |__    |______|  |                                         |  |______|    ___| | |&lt;br /&gt;
| |    |__   ________|                                         |_________   __|    | |&lt;br /&gt;
| |       |_|                                                            |_|       | |&lt;br /&gt;
| |                                                                                | |&lt;br /&gt;
|_|                                                                                |_|&lt;br /&gt;
                                                                     &lt;br /&gt;
    ___&lt;br /&gt;
  / ___ \&lt;br /&gt;
 |_|   | | &lt;br /&gt;
      /_/&lt;br /&gt;
      _   ___   _&lt;br /&gt;
     |_| |___|_| |_&lt;br /&gt;
          ___|_   _|&lt;br /&gt;
         |___| |_|&lt;br /&gt;
  Les petits Débrouillards - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/&lt;br /&gt;
  Antony Le Goïc-Auffret janvier 2025&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// on appelle la bibliothèque qui gère le Wemos D1 mini&lt;br /&gt;
#include &amp;lt;ESP8266WiFi.h&amp;gt; &lt;br /&gt;
&lt;br /&gt;
// Gestion du Wifi&lt;br /&gt;
#include &amp;lt;ESP8266WebServer.h&amp;gt;&lt;br /&gt;
#include &amp;lt;DNSServer.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP8266mDNS.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFiClient.h&amp;gt; &lt;br /&gt;
&lt;br /&gt;
//  Definition du WiFi &lt;br /&gt;
const char *nomDuReseau = &amp;quot;petitbota&amp;quot;;     // Nom du réseau wifi du petit bot&lt;br /&gt;
const char *motDePasse = &amp;quot;&amp;quot;;    // Mot de passe du réseau wifi du petit bot&lt;br /&gt;
// ATTENTION - le mot de passe doit faire soit 0 caractères soit 8 ou plus sinon&lt;br /&gt;
// La configuration de votre réseau wifi ne se fera pas (ni mot de passe, ni nom de réseau !).&lt;br /&gt;
//création du monServeur&lt;br /&gt;
ESP8266WebServer monServeur(80);               // Création de l'objet monServeur&lt;br /&gt;
&lt;br /&gt;
//Gestion des servomoteurs&lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;   //appel de la bibliothèque qui gère les servomoteurs&lt;br /&gt;
// création des servomoteurs &lt;br /&gt;
Servo servogauche;   // Nom du servo qui gère la première roue&lt;br /&gt;
Servo servodroit;    // Seconde roue&lt;br /&gt;
&lt;br /&gt;
//déclaration des Variables&lt;br /&gt;
//int --- en cours &lt;br /&gt;
int val = -1; // Val nous sert à stocker la commande de l'utilisateur (stop, avance, ...).&lt;br /&gt;
&lt;br /&gt;
void setup(){&lt;br /&gt;
  delay(1000);&lt;br /&gt;
  Serial.begin(9600); // Ouvre une connexion série pour monitorer le fonctionnement du code quand on reste branché a l'ordinateur&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  Serial.println();  &lt;br /&gt;
  configDuWifi();&lt;br /&gt;
  servodroit.detach();  // Place les servos hors tension&lt;br /&gt;
  servogauche.detach(); &lt;br /&gt;
  pinMode(LED_BUILTIN, OUTPUT);    //met la led du Wemos en sortie&lt;br /&gt;
  digitalWrite(LED_BUILTIN, LOW);  //met la led du Wemos sur le niveau bas ce qui l'allume.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop(){&lt;br /&gt;
    val = -1;&lt;br /&gt;
    monServeur.handleClient();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////////GESTION DES INSTRUCTIONS///////////////////////////&lt;br /&gt;
void GestionDesClics() {&lt;br /&gt;
  monServeur.on(&amp;quot;/avance&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 1;&lt;br /&gt;
  Serial.println(&amp;quot;avance&amp;quot;);    &lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/recule&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 2;&lt;br /&gt;
  Serial.println(&amp;quot;recule&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/gauche&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 4;&lt;br /&gt;
  Serial.println(&amp;quot;gauche&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  monServeur.on(&amp;quot;/droite&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 3;&lt;br /&gt;
  Serial.println(&amp;quot;droite&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/stop&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 0;&lt;br /&gt;
  Serial.println(&amp;quot;stop&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  monServeur.on(&amp;quot;/&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = -1;&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////////////LA PAGE WEB DE CONROLE DU PETIT BOT/////////////////////////////////////////&lt;br /&gt;
void redactionPageWeb(){&lt;br /&gt;
  // Prépare la page web de réponse (le code HTML sera écrit dans la chaine de caractère &amp;quot;pageWeb&amp;quot;).&lt;br /&gt;
  String pageWeb = &amp;quot;&amp;lt;!DOCTYPE HTML&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;html&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;head&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;meta charset=\&amp;quot;utf-8\&amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;title&amp;gt;Petit bot&amp;lt;/title&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/head&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;body&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;center&amp;gt;&amp;quot;;    //On ouvre la balise qui va centrer les boutons&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;h1 style=\&amp;quot;font-size:300%;\&amp;quot;\&amp;gt; Le petit bot &amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;style type=\&amp;quot;text/css\&amp;quot;&amp;gt;  body { color: #212121; background-color: #CC0C59 } &amp;lt;/style&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  // On finalise l'écriture de la page Web et on donne les instructions aux servos&lt;br /&gt;
  pageWeb += instruction(val); // pour cela on appelle la fonction &amp;quot;instruction&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  // On termine l'écriture de la page Web&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/h1&amp;gt;&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;br&amp;gt;&amp;quot;; //aller à la ligne&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;br&amp;gt;&amp;quot;; //aller à la ligne&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/stop\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Stop &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;      // créer un bouton &amp;quot;Stop&amp;quot;, qui envoie sur l'URL /stop&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/avance\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Avance &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;  // créer un bouton &amp;quot;Avance&amp;quot;...&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/recule\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Recule &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/droite\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Droite &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/gauche\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Gauche &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/center&amp;gt;&amp;quot;; // tout est centré sur la page&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/body&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/html&amp;gt;\n&amp;quot;; //Fin de la page Web&lt;br /&gt;
&lt;br /&gt;
  // On envoie la page web&lt;br /&gt;
  monServeur.send(200, &amp;quot;text/html&amp;quot;, pageWeb);&lt;br /&gt;
  delay(1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////INSTRUCTIONS/////////////////////////////////////////////////////////&lt;br /&gt;
String instruction(int valeur){ //Cette fonction traite les instructions qui sont reçues&lt;br /&gt;
  int gauche;                           // Variable dont la valeur 180 ou 0 fera tourner le servo gauche dans un sens ou l'autre&lt;br /&gt;
  int droite;                           // Idem pour le servo droit&lt;br /&gt;
  String completePage;                  // Déclaration de la chaine de caractère qui sera renvoyée par cette fonction pour compléter la page web &lt;br /&gt;
  switch(valeur){                       // En fonction de la variable valeur on va donner un ordre aux servos &lt;br /&gt;
    case 0 :                            // et un texte à la chaine de caractère &amp;quot;completePage&amp;quot;&lt;br /&gt;
    completePage = &amp;quot; est a l'arrêt &amp;quot;;&lt;br /&gt;
    droite = 90;&lt;br /&gt;
    gauche = 90;&lt;br /&gt;
    break;&lt;br /&gt;
    case 1 :&lt;br /&gt;
    completePage = &amp;quot; avance &amp;quot;;&lt;br /&gt;
    droite = 180;&lt;br /&gt;
    gauche = 0;&lt;br /&gt;
    break;&lt;br /&gt;
    case 2 :&lt;br /&gt;
    completePage = &amp;quot; recule &amp;quot;;&lt;br /&gt;
    droite = 0;&lt;br /&gt;
    gauche = 180;&lt;br /&gt;
    break;&lt;br /&gt;
    case 3 :&lt;br /&gt;
    completePage = &amp;quot; tourne a gauche &amp;quot;;&lt;br /&gt;
    droite = 180;&lt;br /&gt;
    gauche = 180;&lt;br /&gt;
    break;&lt;br /&gt;
    case 4 :&lt;br /&gt;
    completePage = &amp;quot; tourne a droite &amp;quot;;&lt;br /&gt;
    droite = 0;&lt;br /&gt;
    gauche = 0;&lt;br /&gt;
    break;&lt;br /&gt;
    // que faire du cas ou val = -1 ? marquer ici ce qui doit être fait.&lt;br /&gt;
  }&lt;br /&gt;
  servogauche.attach(D1);     // Broche D1&lt;br /&gt;
  servodroit.attach(D2);      // Broche D2&lt;br /&gt;
  servogauche.write(gauche); &lt;br /&gt;
  servodroit.write(droite);&lt;br /&gt;
  return completePage;        // on renvoie la chaine de caractère pour compléter la page web&lt;br /&gt;
}&lt;br /&gt;
////////////////////////CONFIGURATION WIFI///////////////////////////////////////////////&lt;br /&gt;
void configDuWifi(){  // Fonction de configuratio du Wifi&lt;br /&gt;
  WiFi.mode(WIFI_AP); // le wemos est en mode &amp;quot;Point d'Accès&amp;quot; (il déploie un réseau wifi)&lt;br /&gt;
  WiFi.softAP(nomDuReseau, motDePasse, 2); // on démarre le &amp;quot;Point d'Accès&amp;quot;.&lt;br /&gt;
  MDNS.begin(nomDuReseau);                 // gérer les DNS ce qui rendra votre petit bot accessible&lt;br /&gt;
  MDNS.addService(&amp;quot;http&amp;quot;, &amp;quot;tcp&amp;quot;, 80);      // via http://nomDuReseau.local&lt;br /&gt;
  IPAddress monIP = WiFi.softAPIP();       // on récupère l'adresse IP du petit Bot&lt;br /&gt;
  Serial.print(&amp;quot;Adresse IP de ce Point d'Accès : &amp;quot;);&lt;br /&gt;
  Serial.println(monIP);                   // on l'écrit sur le moniteur série&lt;br /&gt;
  GestionDesClics();&lt;br /&gt;
  monServeur.begin();                          //Démarrage du monServeur&lt;br /&gt;
  Serial.println(&amp;quot;Serveur HTTP démarré&amp;quot;);&lt;br /&gt;
  return;                                  // on retourne à l'endroit ou la fonction a été appelée.&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Finitoooooo.JPG&amp;diff=29524</id>
		<title>Fichier:Finitoooooo.JPG</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Finitoooooo.JPG&amp;diff=29524"/>
				<updated>2025-01-21T14:46:24Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29516</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29516"/>
				<updated>2025-01-21T14:39:48Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* Outil et matériel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 Maquette&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Matériel décoratif&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons réalisé les différentes parties du TurboScoot : le corps, le siège et le guidon. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Patron corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 3===&lt;br /&gt;
Ensuite, nous avons procédé au montage des différentes parties, ainsi qu'à la découpe des trous nécessaires pour accueillir les éléments électroniques.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modélisation siège.jpg | 300px]]&lt;br /&gt;
[[Fichier:Modélisation guidon.jpg | 300px]]&lt;br /&gt;
[[Fichier:Corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 4===&lt;br /&gt;
Après avoir terminé les premières étapes du montage, nous avons programmé sur Arduino (voir code plus bas). Nous avons d'abord effectué des tests sur une plaque à part : d'abord avec les LED seules, puis avec les LED et le capteur de distance ultrason, et enfin le test final avec les servomoteurs.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test les TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Test complet TS.jpg | 350px]]&lt;br /&gt;
&lt;br /&gt;
===étape 5===&lt;br /&gt;
Une fois les tests terminés et validés, nous avons réalisé les premiers essais sur le prototype initial.&lt;br /&gt;
&lt;br /&gt;
METTRE LES PHOTO&lt;br /&gt;
&lt;br /&gt;
===étape 6===&lt;br /&gt;
Après quelques ajustements, le premier prototype fonctionne parfaitement, ce qui nous a permis de concevoir le TurboScoot final et de le customiser.&lt;br /&gt;
&lt;br /&gt;
METTRE LES PHOTOS&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
Voici le code Arduino pour faire fonctionner le TurboScoot.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Définition des broches&lt;br /&gt;
#define TRIG_PIN 5      // (D1)&lt;br /&gt;
#define ECHO_PIN 4      // (D2)&lt;br /&gt;
#define LED_LEFT 14     // (D5)&lt;br /&gt;
#define LED_RIGHT 12    // (D6)&lt;br /&gt;
#define LED_OBSTACLE 2  // (D4)&lt;br /&gt;
#define SERVO_LEFT_PIN 13   // (D7)&lt;br /&gt;
#define SERVO_RIGHT_PIN 15  // (D8)&lt;br /&gt;
&lt;br /&gt;
long duration;&lt;br /&gt;
int distance;&lt;br /&gt;
int minDistance = 15;  // Distance minimum pour arrêt en cm&lt;br /&gt;
int slowDistance = 30; // Distance pour ralentir en cm&lt;br /&gt;
&lt;br /&gt;
Servo servoLeft;  // Instance moteur gauche&lt;br /&gt;
Servo servoRight; // Instance moteur droit&lt;br /&gt;
&lt;br /&gt;
// Mesurer la distance avec le capteur ultrason&lt;br /&gt;
int measureDistance() {&lt;br /&gt;
  digitalWrite(TRIG_PIN, LOW);&lt;br /&gt;
  delayMicroseconds(2);&lt;br /&gt;
  digitalWrite(TRIG_PIN, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(TRIG_PIN, LOW);&lt;br /&gt;
  duration = pulseIn(ECHO_PIN, HIGH);&lt;br /&gt;
  return duration * 0.034 / 2; // Conversion en cm&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // Configuration des broches&lt;br /&gt;
  pinMode(TRIG_PIN, OUTPUT);&lt;br /&gt;
  pinMode(ECHO_PIN, INPUT);&lt;br /&gt;
  pinMode(LED_LEFT, OUTPUT);&lt;br /&gt;
  pinMode(LED_RIGHT, OUTPUT);&lt;br /&gt;
  pinMode(LED_OBSTACLE, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  // Attacher les moteurs aux broches&lt;br /&gt;
  servoLeft.attach(SERVO_LEFT_PIN);&lt;br /&gt;
  servoRight.attach(SERVO_RIGHT_PIN);&lt;br /&gt;
&lt;br /&gt;
  // Initialiser les moteurs en position neutre (90 degrés)&lt;br /&gt;
  servoLeft.write(90);&lt;br /&gt;
  servoRight.write(90);&lt;br /&gt;
&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  distance = measureDistance();&lt;br /&gt;
  Serial.println(distance);&lt;br /&gt;
&lt;br /&gt;
  if (distance &amp;lt; minDistance) {&lt;br /&gt;
    // Arrêt complet et allumer la LED d'obstacle&lt;br /&gt;
    servoLeft.write(90);  // Position neutre (arrêt)&lt;br /&gt;
    servoRight.write(90); // Position neutre (arrêt)&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, HIGH);&lt;br /&gt;
    delay(500);&lt;br /&gt;
&lt;br /&gt;
    // Choisir aléatoirement de tourner à gauche ou à droite&lt;br /&gt;
    int direction = random(0, 2);  // 0 pour gauche, 1 pour droite&lt;br /&gt;
&lt;br /&gt;
    if (direction == 0) {&lt;br /&gt;
      // Tourner à gauche&lt;br /&gt;
      digitalWrite(LED_LEFT, HIGH);&lt;br /&gt;
      digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
      servoLeft.write(60);  // Tourner à gauche&lt;br /&gt;
      delay(1000);&lt;br /&gt;
      servoRight.write(120); // Tourner à droite&lt;br /&gt;
      delay(2000);&lt;br /&gt;
&lt;br /&gt;
      digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
      digitalWrite(LED_OBSTACLE, LOW);&lt;br /&gt;
    } else {&lt;br /&gt;
      // Tourner à droite&lt;br /&gt;
      digitalWrite(LED_RIGHT, HIGH);&lt;br /&gt;
      digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
      servoRight.write(120); // Tourner à droite&lt;br /&gt;
      delay(1000);&lt;br /&gt;
      servoLeft.write(60); // Tourner à gauche&lt;br /&gt;
      delay(2000);&lt;br /&gt;
&lt;br /&gt;
      digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
      digitalWrite(LED_OBSTACLE, LOW);&lt;br /&gt;
    }&lt;br /&gt;
  } else if (distance &amp;lt; slowDistance) {&lt;br /&gt;
    // Ralentir selon la distance&lt;br /&gt;
    int angle = map(distance, minDistance, slowDistance, 90, 120);&lt;br /&gt;
    servoLeft.write(angle);&lt;br /&gt;
    servoRight.write(180 - angle); // Angle opposé pour symétrie&lt;br /&gt;
&lt;br /&gt;
    // Éteindre LEDs&lt;br /&gt;
    digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
    digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, LOW);  // Éteindre la LED d'obstacle&lt;br /&gt;
  } else {&lt;br /&gt;
    // Pleine vitesse (symétrique)&lt;br /&gt;
    servoLeft.write(120);&lt;br /&gt;
    servoRight.write(60);&lt;br /&gt;
&lt;br /&gt;
    // LEDs éteintes&lt;br /&gt;
    digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
    digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, LOW);  // Éteindre la LED d'obstacle&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(50); // Anti-rebond&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
le détail de toutes le brochs du shield sont décrite dans ce code : https://github.com/julienrat/petitbot/blob/master/code_arduino/petitbot_v2/petitbot_v2.ino&lt;br /&gt;
&lt;br /&gt;
===Code de base du petit bot ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
///////////////&lt;br /&gt;
// Petit Bot //&lt;br /&gt;
///////////////&lt;br /&gt;
// MAJ 250121&lt;br /&gt;
// Un programme pédagogique des petits débrouillards ?=+ pour gérer le robot &amp;quot;Petit Bot&amp;quot; &lt;br /&gt;
// Voir sur http://ancien.wikidebrouillard.org/index.php?title=Petit_Bot_un_robot_controlable_en_Wifi&lt;br /&gt;
// Ce programme est inspire de : http://www.esp8266.com/viewtopic.php?f=29&amp;amp;t=6419#sthash.gd1tJhwU.dpuf&lt;br /&gt;
// Sous licence CC-By-Sa&lt;br /&gt;
// Par des gens bien&lt;br /&gt;
&lt;br /&gt;
/* Schéma&lt;br /&gt;
Lolin (Wemos) D1 mini&lt;br /&gt;
                                     &lt;br /&gt;
                                _________________&lt;br /&gt;
                               /     D1 mini     \&lt;br /&gt;
                              |[ ]RST        TX[ ]|&lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|&lt;br /&gt;
                              |[ ]D0-16    5-D1[X]|----\&lt;br /&gt;
                              |[ ]D5-14    4-D2[X]|--\  \&lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]|  |   |&lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]|  |   |&lt;br /&gt;
                              |[ ]D8-15     GND[X]|  |   |&lt;br /&gt;
                              |[ ]3V3        5V[ ]|  |   |&lt;br /&gt;
 _                            |       +---+       |  |   |&lt;br /&gt;
| |                           |_______|USB|_______|  |  /                           _&lt;br /&gt;
| |       _                                         /  /                  _        | |&lt;br /&gt;
| |     _| |_________                         _____/  /         _________| |_      | |&lt;br /&gt;
| |    |    ______   |_data D1______________/        |_data D2_|   ______    |     | |&lt;br /&gt;
| |  __|   | SG90 |  |_______________GND_______________________|  | SG90 |   |___  | |&lt;br /&gt;
| |_|      |Servo |  |_______________Vin_______________________|  |Servo |       |_| |&lt;br /&gt;
| |_|      |Gauche|  |                                         |  |Droit |       |_| |&lt;br /&gt;
| | |__    |______|  |                                         |  |______|    ___| | |&lt;br /&gt;
| |    |__   ________|                                         |_________   __|    | |&lt;br /&gt;
| |       |_|                                                            |_|       | |&lt;br /&gt;
| |                                                                                | |&lt;br /&gt;
|_|                                                                                |_|&lt;br /&gt;
                                                                     &lt;br /&gt;
    ___&lt;br /&gt;
  / ___ \&lt;br /&gt;
 |_|   | | &lt;br /&gt;
      /_/&lt;br /&gt;
      _   ___   _&lt;br /&gt;
     |_| |___|_| |_&lt;br /&gt;
          ___|_   _|&lt;br /&gt;
         |___| |_|&lt;br /&gt;
  Les petits Débrouillards - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/&lt;br /&gt;
  Antony Le Goïc-Auffret janvier 2025&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// on appelle la bibliothèque qui gère le Wemos D1 mini&lt;br /&gt;
#include &amp;lt;ESP8266WiFi.h&amp;gt; &lt;br /&gt;
&lt;br /&gt;
// Gestion du Wifi&lt;br /&gt;
#include &amp;lt;ESP8266WebServer.h&amp;gt;&lt;br /&gt;
#include &amp;lt;DNSServer.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP8266mDNS.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFiClient.h&amp;gt; &lt;br /&gt;
&lt;br /&gt;
//  Definition du WiFi &lt;br /&gt;
const char *nomDuReseau = &amp;quot;petitbota&amp;quot;;     // Nom du réseau wifi du petit bot&lt;br /&gt;
const char *motDePasse = &amp;quot;&amp;quot;;    // Mot de passe du réseau wifi du petit bot&lt;br /&gt;
// ATTENTION - le mot de passe doit faire soit 0 caractères soit 8 ou plus sinon&lt;br /&gt;
// La configuration de votre réseau wifi ne se fera pas (ni mot de passe, ni nom de réseau !).&lt;br /&gt;
//création du monServeur&lt;br /&gt;
ESP8266WebServer monServeur(80);               // Création de l'objet monServeur&lt;br /&gt;
&lt;br /&gt;
//Gestion des servomoteurs&lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;   //appel de la bibliothèque qui gère les servomoteurs&lt;br /&gt;
// création des servomoteurs &lt;br /&gt;
Servo servogauche;   // Nom du servo qui gère la première roue&lt;br /&gt;
Servo servodroit;    // Seconde roue&lt;br /&gt;
&lt;br /&gt;
//déclaration des Variables&lt;br /&gt;
//int --- en cours &lt;br /&gt;
int val = -1; // Val nous sert à stocker la commande de l'utilisateur (stop, avance, ...).&lt;br /&gt;
&lt;br /&gt;
void setup(){&lt;br /&gt;
  delay(1000);&lt;br /&gt;
  Serial.begin(9600); // Ouvre une connexion série pour monitorer le fonctionnement du code quand on reste branché a l'ordinateur&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  Serial.println();  &lt;br /&gt;
  configDuWifi();&lt;br /&gt;
  servodroit.detach();  // Place les servos hors tension&lt;br /&gt;
  servogauche.detach(); &lt;br /&gt;
  pinMode(LED_BUILTIN, OUTPUT);    //met la led du Wemos en sortie&lt;br /&gt;
  digitalWrite(LED_BUILTIN, LOW);  //met la led du Wemos sur le niveau bas ce qui l'allume.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop(){&lt;br /&gt;
    val = -1;&lt;br /&gt;
    monServeur.handleClient();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////////GESTION DES INSTRUCTIONS///////////////////////////&lt;br /&gt;
void GestionDesClics() {&lt;br /&gt;
  monServeur.on(&amp;quot;/avance&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 1;&lt;br /&gt;
  Serial.println(&amp;quot;avance&amp;quot;);    &lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/recule&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 2;&lt;br /&gt;
  Serial.println(&amp;quot;recule&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/gauche&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 4;&lt;br /&gt;
  Serial.println(&amp;quot;gauche&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  monServeur.on(&amp;quot;/droite&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 3;&lt;br /&gt;
  Serial.println(&amp;quot;droite&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/stop&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 0;&lt;br /&gt;
  Serial.println(&amp;quot;stop&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  monServeur.on(&amp;quot;/&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = -1;&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////////////LA PAGE WEB DE CONROLE DU PETIT BOT/////////////////////////////////////////&lt;br /&gt;
void redactionPageWeb(){&lt;br /&gt;
  // Prépare la page web de réponse (le code HTML sera écrit dans la chaine de caractère &amp;quot;pageWeb&amp;quot;).&lt;br /&gt;
  String pageWeb = &amp;quot;&amp;lt;!DOCTYPE HTML&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;html&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;head&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;meta charset=\&amp;quot;utf-8\&amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;title&amp;gt;Petit bot&amp;lt;/title&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/head&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;body&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;center&amp;gt;&amp;quot;;    //On ouvre la balise qui va centrer les boutons&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;h1 style=\&amp;quot;font-size:300%;\&amp;quot;\&amp;gt; Le petit bot &amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;style type=\&amp;quot;text/css\&amp;quot;&amp;gt;  body { color: #212121; background-color: #CC0C59 } &amp;lt;/style&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  // On finalise l'écriture de la page Web et on donne les instructions aux servos&lt;br /&gt;
  pageWeb += instruction(val); // pour cela on appelle la fonction &amp;quot;instruction&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  // On termine l'écriture de la page Web&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/h1&amp;gt;&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;br&amp;gt;&amp;quot;; //aller à la ligne&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;br&amp;gt;&amp;quot;; //aller à la ligne&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/stop\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Stop &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;      // créer un bouton &amp;quot;Stop&amp;quot;, qui envoie sur l'URL /stop&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/avance\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Avance &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;  // créer un bouton &amp;quot;Avance&amp;quot;...&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/recule\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Recule &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/droite\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Droite &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/gauche\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Gauche &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/center&amp;gt;&amp;quot;; // tout est centré sur la page&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/body&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/html&amp;gt;\n&amp;quot;; //Fin de la page Web&lt;br /&gt;
&lt;br /&gt;
  // On envoie la page web&lt;br /&gt;
  monServeur.send(200, &amp;quot;text/html&amp;quot;, pageWeb);&lt;br /&gt;
  delay(1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////INSTRUCTIONS/////////////////////////////////////////////////////////&lt;br /&gt;
String instruction(int valeur){ //Cette fonction traite les instructions qui sont reçues&lt;br /&gt;
  int gauche;                           // Variable dont la valeur 180 ou 0 fera tourner le servo gauche dans un sens ou l'autre&lt;br /&gt;
  int droite;                           // Idem pour le servo droit&lt;br /&gt;
  String completePage;                  // Déclaration de la chaine de caractère qui sera renvoyée par cette fonction pour compléter la page web &lt;br /&gt;
  switch(valeur){                       // En fonction de la variable valeur on va donner un ordre aux servos &lt;br /&gt;
    case 0 :                            // et un texte à la chaine de caractère &amp;quot;completePage&amp;quot;&lt;br /&gt;
    completePage = &amp;quot; est a l'arrêt &amp;quot;;&lt;br /&gt;
    droite = 90;&lt;br /&gt;
    gauche = 90;&lt;br /&gt;
    break;&lt;br /&gt;
    case 1 :&lt;br /&gt;
    completePage = &amp;quot; avance &amp;quot;;&lt;br /&gt;
    droite = 180;&lt;br /&gt;
    gauche = 0;&lt;br /&gt;
    break;&lt;br /&gt;
    case 2 :&lt;br /&gt;
    completePage = &amp;quot; recule &amp;quot;;&lt;br /&gt;
    droite = 0;&lt;br /&gt;
    gauche = 180;&lt;br /&gt;
    break;&lt;br /&gt;
    case 3 :&lt;br /&gt;
    completePage = &amp;quot; tourne a gauche &amp;quot;;&lt;br /&gt;
    droite = 180;&lt;br /&gt;
    gauche = 180;&lt;br /&gt;
    break;&lt;br /&gt;
    case 4 :&lt;br /&gt;
    completePage = &amp;quot; tourne a droite &amp;quot;;&lt;br /&gt;
    droite = 0;&lt;br /&gt;
    gauche = 0;&lt;br /&gt;
    break;&lt;br /&gt;
    // que faire du cas ou val = -1 ? marquer ici ce qui doit être fait.&lt;br /&gt;
  }&lt;br /&gt;
  servogauche.attach(D1);     // Broche D1&lt;br /&gt;
  servodroit.attach(D2);      // Broche D2&lt;br /&gt;
  servogauche.write(gauche); &lt;br /&gt;
  servodroit.write(droite);&lt;br /&gt;
  return completePage;        // on renvoie la chaine de caractère pour compléter la page web&lt;br /&gt;
}&lt;br /&gt;
////////////////////////CONFIGURATION WIFI///////////////////////////////////////////////&lt;br /&gt;
void configDuWifi(){  // Fonction de configuratio du Wifi&lt;br /&gt;
  WiFi.mode(WIFI_AP); // le wemos est en mode &amp;quot;Point d'Accès&amp;quot; (il déploie un réseau wifi)&lt;br /&gt;
  WiFi.softAP(nomDuReseau, motDePasse, 2); // on démarre le &amp;quot;Point d'Accès&amp;quot;.&lt;br /&gt;
  MDNS.begin(nomDuReseau);                 // gérer les DNS ce qui rendra votre petit bot accessible&lt;br /&gt;
  MDNS.addService(&amp;quot;http&amp;quot;, &amp;quot;tcp&amp;quot;, 80);      // via http://nomDuReseau.local&lt;br /&gt;
  IPAddress monIP = WiFi.softAPIP();       // on récupère l'adresse IP du petit Bot&lt;br /&gt;
  Serial.print(&amp;quot;Adresse IP de ce Point d'Accès : &amp;quot;);&lt;br /&gt;
  Serial.println(monIP);                   // on l'écrit sur le moniteur série&lt;br /&gt;
  GestionDesClics();&lt;br /&gt;
  monServeur.begin();                          //Démarrage du monServeur&lt;br /&gt;
  Serial.println(&amp;quot;Serveur HTTP démarré&amp;quot;);&lt;br /&gt;
  return;                                  // on retourne à l'endroit ou la fonction a été appelée.&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29510</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29510"/>
				<updated>2025-01-21T14:37:32Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* Outil et matériel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 Maquette&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Plusieurs morceaux de carton&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons réalisé les différentes parties du TurboScoot : le corps, le siège et le guidon. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Patron corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 3===&lt;br /&gt;
Ensuite, nous avons procédé au montage des différentes parties, ainsi qu'à la découpe des trous nécessaires pour accueillir les éléments électroniques.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modélisation siège.jpg | 300px]]&lt;br /&gt;
[[Fichier:Modélisation guidon.jpg | 300px]]&lt;br /&gt;
[[Fichier:Corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 4===&lt;br /&gt;
Après avoir terminé les premières étapes du montage, nous avons programmé sur Arduino (voir code plus bas). Nous avons d'abord effectué des tests sur une plaque à part : d'abord avec les LED seules, puis avec les LED et le capteur de distance ultrason, et enfin le test final avec les servomoteurs.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test les TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Test complet TS.jpg | 350px]]&lt;br /&gt;
&lt;br /&gt;
===étape 5===&lt;br /&gt;
Une fois les tests terminés et validés, nous avons réalisé les premiers essais sur le prototype initial.&lt;br /&gt;
&lt;br /&gt;
METTRE LES PHOTO&lt;br /&gt;
&lt;br /&gt;
===étape 6===&lt;br /&gt;
Après quelques ajustements, le premier prototype fonctionne parfaitement, ce qui nous a permis de concevoir le TurboScoot final et de le customiser.&lt;br /&gt;
&lt;br /&gt;
METTRE LES PHOTOS&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
Voici le code Arduino pour faire fonctionner le TurboScoot.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Définition des broches&lt;br /&gt;
#define TRIG_PIN 5      // (D1)&lt;br /&gt;
#define ECHO_PIN 4      // (D2)&lt;br /&gt;
#define LED_LEFT 14     // (D5)&lt;br /&gt;
#define LED_RIGHT 12    // (D6)&lt;br /&gt;
#define LED_OBSTACLE 2  // (D4)&lt;br /&gt;
#define SERVO_LEFT_PIN 13   // (D7)&lt;br /&gt;
#define SERVO_RIGHT_PIN 15  // (D8)&lt;br /&gt;
&lt;br /&gt;
long duration;&lt;br /&gt;
int distance;&lt;br /&gt;
int minDistance = 15;  // Distance minimum pour arrêt en cm&lt;br /&gt;
int slowDistance = 30; // Distance pour ralentir en cm&lt;br /&gt;
&lt;br /&gt;
Servo servoLeft;  // Instance moteur gauche&lt;br /&gt;
Servo servoRight; // Instance moteur droit&lt;br /&gt;
&lt;br /&gt;
// Mesurer la distance avec le capteur ultrason&lt;br /&gt;
int measureDistance() {&lt;br /&gt;
  digitalWrite(TRIG_PIN, LOW);&lt;br /&gt;
  delayMicroseconds(2);&lt;br /&gt;
  digitalWrite(TRIG_PIN, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(TRIG_PIN, LOW);&lt;br /&gt;
  duration = pulseIn(ECHO_PIN, HIGH);&lt;br /&gt;
  return duration * 0.034 / 2; // Conversion en cm&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // Configuration des broches&lt;br /&gt;
  pinMode(TRIG_PIN, OUTPUT);&lt;br /&gt;
  pinMode(ECHO_PIN, INPUT);&lt;br /&gt;
  pinMode(LED_LEFT, OUTPUT);&lt;br /&gt;
  pinMode(LED_RIGHT, OUTPUT);&lt;br /&gt;
  pinMode(LED_OBSTACLE, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  // Attacher les moteurs aux broches&lt;br /&gt;
  servoLeft.attach(SERVO_LEFT_PIN);&lt;br /&gt;
  servoRight.attach(SERVO_RIGHT_PIN);&lt;br /&gt;
&lt;br /&gt;
  // Initialiser les moteurs en position neutre (90 degrés)&lt;br /&gt;
  servoLeft.write(90);&lt;br /&gt;
  servoRight.write(90);&lt;br /&gt;
&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  distance = measureDistance();&lt;br /&gt;
  Serial.println(distance);&lt;br /&gt;
&lt;br /&gt;
  if (distance &amp;lt; minDistance) {&lt;br /&gt;
    // Arrêt complet et allumer la LED d'obstacle&lt;br /&gt;
    servoLeft.write(90);  // Position neutre (arrêt)&lt;br /&gt;
    servoRight.write(90); // Position neutre (arrêt)&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, HIGH);&lt;br /&gt;
    delay(500);&lt;br /&gt;
&lt;br /&gt;
    // Choisir aléatoirement de tourner à gauche ou à droite&lt;br /&gt;
    int direction = random(0, 2);  // 0 pour gauche, 1 pour droite&lt;br /&gt;
&lt;br /&gt;
    if (direction == 0) {&lt;br /&gt;
      // Tourner à gauche&lt;br /&gt;
      digitalWrite(LED_LEFT, HIGH);&lt;br /&gt;
      digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
      servoLeft.write(60);  // Tourner à gauche&lt;br /&gt;
      delay(1000);&lt;br /&gt;
      servoRight.write(120); // Tourner à droite&lt;br /&gt;
      delay(2000);&lt;br /&gt;
&lt;br /&gt;
      digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
      digitalWrite(LED_OBSTACLE, LOW);&lt;br /&gt;
    } else {&lt;br /&gt;
      // Tourner à droite&lt;br /&gt;
      digitalWrite(LED_RIGHT, HIGH);&lt;br /&gt;
      digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
      servoRight.write(120); // Tourner à droite&lt;br /&gt;
      delay(1000);&lt;br /&gt;
      servoLeft.write(60); // Tourner à gauche&lt;br /&gt;
      delay(2000);&lt;br /&gt;
&lt;br /&gt;
      digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
      digitalWrite(LED_OBSTACLE, LOW);&lt;br /&gt;
    }&lt;br /&gt;
  } else if (distance &amp;lt; slowDistance) {&lt;br /&gt;
    // Ralentir selon la distance&lt;br /&gt;
    int angle = map(distance, minDistance, slowDistance, 90, 120);&lt;br /&gt;
    servoLeft.write(angle);&lt;br /&gt;
    servoRight.write(180 - angle); // Angle opposé pour symétrie&lt;br /&gt;
&lt;br /&gt;
    // Éteindre LEDs&lt;br /&gt;
    digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
    digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, LOW);  // Éteindre la LED d'obstacle&lt;br /&gt;
  } else {&lt;br /&gt;
    // Pleine vitesse (symétrique)&lt;br /&gt;
    servoLeft.write(120);&lt;br /&gt;
    servoRight.write(60);&lt;br /&gt;
&lt;br /&gt;
    // LEDs éteintes&lt;br /&gt;
    digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
    digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, LOW);  // Éteindre la LED d'obstacle&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(50); // Anti-rebond&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt; &lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
le détail de toutes le brochs du shield sont décrite dans ce code : https://github.com/julienrat/petitbot/blob/master/code_arduino/petitbot_v2/petitbot_v2.ino&lt;br /&gt;
&lt;br /&gt;
===Code de base du petit bot ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
///////////////&lt;br /&gt;
// Petit Bot //&lt;br /&gt;
///////////////&lt;br /&gt;
// MAJ 250121&lt;br /&gt;
// Un programme pédagogique des petits débrouillards ?=+ pour gérer le robot &amp;quot;Petit Bot&amp;quot; &lt;br /&gt;
// Voir sur http://ancien.wikidebrouillard.org/index.php?title=Petit_Bot_un_robot_controlable_en_Wifi&lt;br /&gt;
// Ce programme est inspire de : http://www.esp8266.com/viewtopic.php?f=29&amp;amp;t=6419#sthash.gd1tJhwU.dpuf&lt;br /&gt;
// Sous licence CC-By-Sa&lt;br /&gt;
// Par des gens bien&lt;br /&gt;
&lt;br /&gt;
/* Schéma&lt;br /&gt;
Lolin (Wemos) D1 mini&lt;br /&gt;
                                     &lt;br /&gt;
                                _________________&lt;br /&gt;
                               /     D1 mini     \&lt;br /&gt;
                              |[ ]RST        TX[ ]|&lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|&lt;br /&gt;
                              |[ ]D0-16    5-D1[X]|----\&lt;br /&gt;
                              |[ ]D5-14    4-D2[X]|--\  \&lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]|  |   |&lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]|  |   |&lt;br /&gt;
                              |[ ]D8-15     GND[X]|  |   |&lt;br /&gt;
                              |[ ]3V3        5V[ ]|  |   |&lt;br /&gt;
 _                            |       +---+       |  |   |&lt;br /&gt;
| |                           |_______|USB|_______|  |  /                           _&lt;br /&gt;
| |       _                                         /  /                  _        | |&lt;br /&gt;
| |     _| |_________                         _____/  /         _________| |_      | |&lt;br /&gt;
| |    |    ______   |_data D1______________/        |_data D2_|   ______    |     | |&lt;br /&gt;
| |  __|   | SG90 |  |_______________GND_______________________|  | SG90 |   |___  | |&lt;br /&gt;
| |_|      |Servo |  |_______________Vin_______________________|  |Servo |       |_| |&lt;br /&gt;
| |_|      |Gauche|  |                                         |  |Droit |       |_| |&lt;br /&gt;
| | |__    |______|  |                                         |  |______|    ___| | |&lt;br /&gt;
| |    |__   ________|                                         |_________   __|    | |&lt;br /&gt;
| |       |_|                                                            |_|       | |&lt;br /&gt;
| |                                                                                | |&lt;br /&gt;
|_|                                                                                |_|&lt;br /&gt;
                                                                     &lt;br /&gt;
    ___&lt;br /&gt;
  / ___ \&lt;br /&gt;
 |_|   | | &lt;br /&gt;
      /_/&lt;br /&gt;
      _   ___   _&lt;br /&gt;
     |_| |___|_| |_&lt;br /&gt;
          ___|_   _|&lt;br /&gt;
         |___| |_|&lt;br /&gt;
  Les petits Débrouillards - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/&lt;br /&gt;
  Antony Le Goïc-Auffret janvier 2025&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// on appelle la bibliothèque qui gère le Wemos D1 mini&lt;br /&gt;
#include &amp;lt;ESP8266WiFi.h&amp;gt; &lt;br /&gt;
&lt;br /&gt;
// Gestion du Wifi&lt;br /&gt;
#include &amp;lt;ESP8266WebServer.h&amp;gt;&lt;br /&gt;
#include &amp;lt;DNSServer.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP8266mDNS.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFiClient.h&amp;gt; &lt;br /&gt;
&lt;br /&gt;
//  Definition du WiFi &lt;br /&gt;
const char *nomDuReseau = &amp;quot;petitbota&amp;quot;;     // Nom du réseau wifi du petit bot&lt;br /&gt;
const char *motDePasse = &amp;quot;&amp;quot;;    // Mot de passe du réseau wifi du petit bot&lt;br /&gt;
// ATTENTION - le mot de passe doit faire soit 0 caractères soit 8 ou plus sinon&lt;br /&gt;
// La configuration de votre réseau wifi ne se fera pas (ni mot de passe, ni nom de réseau !).&lt;br /&gt;
//création du monServeur&lt;br /&gt;
ESP8266WebServer monServeur(80);               // Création de l'objet monServeur&lt;br /&gt;
&lt;br /&gt;
//Gestion des servomoteurs&lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;   //appel de la bibliothèque qui gère les servomoteurs&lt;br /&gt;
// création des servomoteurs &lt;br /&gt;
Servo servogauche;   // Nom du servo qui gère la première roue&lt;br /&gt;
Servo servodroit;    // Seconde roue&lt;br /&gt;
&lt;br /&gt;
//déclaration des Variables&lt;br /&gt;
//int --- en cours &lt;br /&gt;
int val = -1; // Val nous sert à stocker la commande de l'utilisateur (stop, avance, ...).&lt;br /&gt;
&lt;br /&gt;
void setup(){&lt;br /&gt;
  delay(1000);&lt;br /&gt;
  Serial.begin(9600); // Ouvre une connexion série pour monitorer le fonctionnement du code quand on reste branché a l'ordinateur&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  Serial.println();  &lt;br /&gt;
  configDuWifi();&lt;br /&gt;
  servodroit.detach();  // Place les servos hors tension&lt;br /&gt;
  servogauche.detach(); &lt;br /&gt;
  pinMode(LED_BUILTIN, OUTPUT);    //met la led du Wemos en sortie&lt;br /&gt;
  digitalWrite(LED_BUILTIN, LOW);  //met la led du Wemos sur le niveau bas ce qui l'allume.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop(){&lt;br /&gt;
    val = -1;&lt;br /&gt;
    monServeur.handleClient();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////////GESTION DES INSTRUCTIONS///////////////////////////&lt;br /&gt;
void GestionDesClics() {&lt;br /&gt;
  monServeur.on(&amp;quot;/avance&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 1;&lt;br /&gt;
  Serial.println(&amp;quot;avance&amp;quot;);    &lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/recule&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 2;&lt;br /&gt;
  Serial.println(&amp;quot;recule&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/gauche&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 4;&lt;br /&gt;
  Serial.println(&amp;quot;gauche&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  monServeur.on(&amp;quot;/droite&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 3;&lt;br /&gt;
  Serial.println(&amp;quot;droite&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/stop&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 0;&lt;br /&gt;
  Serial.println(&amp;quot;stop&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  monServeur.on(&amp;quot;/&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = -1;&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////////////LA PAGE WEB DE CONROLE DU PETIT BOT/////////////////////////////////////////&lt;br /&gt;
void redactionPageWeb(){&lt;br /&gt;
  // Prépare la page web de réponse (le code HTML sera écrit dans la chaine de caractère &amp;quot;pageWeb&amp;quot;).&lt;br /&gt;
  String pageWeb = &amp;quot;&amp;lt;!DOCTYPE HTML&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;html&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;head&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;meta charset=\&amp;quot;utf-8\&amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;title&amp;gt;Petit bot&amp;lt;/title&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/head&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;body&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;center&amp;gt;&amp;quot;;    //On ouvre la balise qui va centrer les boutons&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;h1 style=\&amp;quot;font-size:300%;\&amp;quot;\&amp;gt; Le petit bot &amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;style type=\&amp;quot;text/css\&amp;quot;&amp;gt;  body { color: #212121; background-color: #CC0C59 } &amp;lt;/style&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  // On finalise l'écriture de la page Web et on donne les instructions aux servos&lt;br /&gt;
  pageWeb += instruction(val); // pour cela on appelle la fonction &amp;quot;instruction&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  // On termine l'écriture de la page Web&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/h1&amp;gt;&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;br&amp;gt;&amp;quot;; //aller à la ligne&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;br&amp;gt;&amp;quot;; //aller à la ligne&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/stop\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Stop &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;      // créer un bouton &amp;quot;Stop&amp;quot;, qui envoie sur l'URL /stop&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/avance\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Avance &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;  // créer un bouton &amp;quot;Avance&amp;quot;...&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/recule\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Recule &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/droite\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Droite &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/gauche\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Gauche &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/center&amp;gt;&amp;quot;; // tout est centré sur la page&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/body&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/html&amp;gt;\n&amp;quot;; //Fin de la page Web&lt;br /&gt;
&lt;br /&gt;
  // On envoie la page web&lt;br /&gt;
  monServeur.send(200, &amp;quot;text/html&amp;quot;, pageWeb);&lt;br /&gt;
  delay(1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////INSTRUCTIONS/////////////////////////////////////////////////////////&lt;br /&gt;
String instruction(int valeur){ //Cette fonction traite les instructions qui sont reçues&lt;br /&gt;
  int gauche;                           // Variable dont la valeur 180 ou 0 fera tourner le servo gauche dans un sens ou l'autre&lt;br /&gt;
  int droite;                           // Idem pour le servo droit&lt;br /&gt;
  String completePage;                  // Déclaration de la chaine de caractère qui sera renvoyée par cette fonction pour compléter la page web &lt;br /&gt;
  switch(valeur){                       // En fonction de la variable valeur on va donner un ordre aux servos &lt;br /&gt;
    case 0 :                            // et un texte à la chaine de caractère &amp;quot;completePage&amp;quot;&lt;br /&gt;
    completePage = &amp;quot; est a l'arrêt &amp;quot;;&lt;br /&gt;
    droite = 90;&lt;br /&gt;
    gauche = 90;&lt;br /&gt;
    break;&lt;br /&gt;
    case 1 :&lt;br /&gt;
    completePage = &amp;quot; avance &amp;quot;;&lt;br /&gt;
    droite = 180;&lt;br /&gt;
    gauche = 0;&lt;br /&gt;
    break;&lt;br /&gt;
    case 2 :&lt;br /&gt;
    completePage = &amp;quot; recule &amp;quot;;&lt;br /&gt;
    droite = 0;&lt;br /&gt;
    gauche = 180;&lt;br /&gt;
    break;&lt;br /&gt;
    case 3 :&lt;br /&gt;
    completePage = &amp;quot; tourne a gauche &amp;quot;;&lt;br /&gt;
    droite = 180;&lt;br /&gt;
    gauche = 180;&lt;br /&gt;
    break;&lt;br /&gt;
    case 4 :&lt;br /&gt;
    completePage = &amp;quot; tourne a droite &amp;quot;;&lt;br /&gt;
    droite = 0;&lt;br /&gt;
    gauche = 0;&lt;br /&gt;
    break;&lt;br /&gt;
    // que faire du cas ou val = -1 ? marquer ici ce qui doit être fait.&lt;br /&gt;
  }&lt;br /&gt;
  servogauche.attach(D1);     // Broche D1&lt;br /&gt;
  servodroit.attach(D2);      // Broche D2&lt;br /&gt;
  servogauche.write(gauche); &lt;br /&gt;
  servodroit.write(droite);&lt;br /&gt;
  return completePage;        // on renvoie la chaine de caractère pour compléter la page web&lt;br /&gt;
}&lt;br /&gt;
////////////////////////CONFIGURATION WIFI///////////////////////////////////////////////&lt;br /&gt;
void configDuWifi(){  // Fonction de configuratio du Wifi&lt;br /&gt;
  WiFi.mode(WIFI_AP); // le wemos est en mode &amp;quot;Point d'Accès&amp;quot; (il déploie un réseau wifi)&lt;br /&gt;
  WiFi.softAP(nomDuReseau, motDePasse, 2); // on démarre le &amp;quot;Point d'Accès&amp;quot;.&lt;br /&gt;
  MDNS.begin(nomDuReseau);                 // gérer les DNS ce qui rendra votre petit bot accessible&lt;br /&gt;
  MDNS.addService(&amp;quot;http&amp;quot;, &amp;quot;tcp&amp;quot;, 80);      // via http://nomDuReseau.local&lt;br /&gt;
  IPAddress monIP = WiFi.softAPIP();       // on récupère l'adresse IP du petit Bot&lt;br /&gt;
  Serial.print(&amp;quot;Adresse IP de ce Point d'Accès : &amp;quot;);&lt;br /&gt;
  Serial.println(monIP);                   // on l'écrit sur le moniteur série&lt;br /&gt;
  GestionDesClics();&lt;br /&gt;
  monServeur.begin();                          //Démarrage du monServeur&lt;br /&gt;
  Serial.println(&amp;quot;Serveur HTTP démarré&amp;quot;);&lt;br /&gt;
  return;                                  // on retourne à l'endroit ou la fonction a été appelée.&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29493</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29493"/>
				<updated>2025-01-21T14:30:41Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* Mettre du code Arduino */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Plusieurs morceaux de carton&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons réalisé les différentes parties du TurboScoot : le corps, le siège et le guidon. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Patron corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 3===&lt;br /&gt;
Ensuite, nous avons procédé au montage des différentes parties, ainsi qu'à la découpe des trous nécessaires pour accueillir les éléments électroniques.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modélisation siège.jpg | 300px]]&lt;br /&gt;
[[Fichier:Modélisation guidon.jpg | 300px]]&lt;br /&gt;
[[Fichier:Corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 4===&lt;br /&gt;
Après avoir terminé les premières étapes du montage, nous avons programmé sur Arduino (voir code plus bas). Nous avons d'abord effectué des tests sur une plaque à part : d'abord avec les LED seules, puis avec les LED et le capteur de distance ultrason, et enfin le test final avec les servomoteurs.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test les TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Test complet TS.jpg | 350px]]&lt;br /&gt;
&lt;br /&gt;
===étape 5===&lt;br /&gt;
Une fois les tests terminés et validés, nous avons réalisé les premiers essais sur le prototype initial.&lt;br /&gt;
&lt;br /&gt;
METTRE LES PHOTO&lt;br /&gt;
&lt;br /&gt;
===étape 6===&lt;br /&gt;
Après quelques ajustements, le premier prototype fonctionne parfaitement, ce qui nous a permis de concevoir le TurboScoot final et de le customiser.&lt;br /&gt;
&lt;br /&gt;
METTRE LES PHOTOS&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
Voici le code Arduino pour faire fonctionner le TurboScoot.&lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Définition des broches&lt;br /&gt;
#define TRIG_PIN 5      // (D1)&lt;br /&gt;
#define ECHO_PIN 4      // (D2)&lt;br /&gt;
#define LED_LEFT 14     // (D5)&lt;br /&gt;
#define LED_RIGHT 12    // (D6)&lt;br /&gt;
#define LED_OBSTACLE 2  // (D4)&lt;br /&gt;
#define SERVO_LEFT_PIN 13   // (D7)&lt;br /&gt;
#define SERVO_RIGHT_PIN 15  // (D8)&lt;br /&gt;
&lt;br /&gt;
long duration;&lt;br /&gt;
int distance;&lt;br /&gt;
int minDistance = 15;  // Distance minimum pour arrêt en cm&lt;br /&gt;
int slowDistance = 30; // Distance pour ralentir en cm&lt;br /&gt;
&lt;br /&gt;
Servo servoLeft;  // Instance moteur gauche&lt;br /&gt;
Servo servoRight; // Instance moteur droit&lt;br /&gt;
&lt;br /&gt;
// Mesurer la distance avec le capteur ultrason&lt;br /&gt;
int measureDistance() {&lt;br /&gt;
  digitalWrite(TRIG_PIN, LOW);&lt;br /&gt;
  delayMicroseconds(2);&lt;br /&gt;
  digitalWrite(TRIG_PIN, HIGH);&lt;br /&gt;
  delayMicroseconds(10);&lt;br /&gt;
  digitalWrite(TRIG_PIN, LOW);&lt;br /&gt;
  duration = pulseIn(ECHO_PIN, HIGH);&lt;br /&gt;
  return duration * 0.034 / 2; // Conversion en cm&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // Configuration des broches&lt;br /&gt;
  pinMode(TRIG_PIN, OUTPUT);&lt;br /&gt;
  pinMode(ECHO_PIN, INPUT);&lt;br /&gt;
  pinMode(LED_LEFT, OUTPUT);&lt;br /&gt;
  pinMode(LED_RIGHT, OUTPUT);&lt;br /&gt;
  pinMode(LED_OBSTACLE, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  // Attacher les moteurs aux broches&lt;br /&gt;
  servoLeft.attach(SERVO_LEFT_PIN);&lt;br /&gt;
  servoRight.attach(SERVO_RIGHT_PIN);&lt;br /&gt;
&lt;br /&gt;
  // Initialiser les moteurs en position neutre (90 degrés)&lt;br /&gt;
  servoLeft.write(90);&lt;br /&gt;
  servoRight.write(90);&lt;br /&gt;
&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  distance = measureDistance();&lt;br /&gt;
  Serial.println(distance);&lt;br /&gt;
&lt;br /&gt;
  if (distance &amp;lt; minDistance) {&lt;br /&gt;
    // Arrêt complet et allumer la LED d'obstacle&lt;br /&gt;
    servoLeft.write(90);  // Position neutre (arrêt)&lt;br /&gt;
    servoRight.write(90); // Position neutre (arrêt)&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, HIGH);&lt;br /&gt;
    delay(500);&lt;br /&gt;
&lt;br /&gt;
    // Choisir aléatoirement de tourner à gauche ou à droite&lt;br /&gt;
    int direction = random(0, 2);  // 0 pour gauche, 1 pour droite&lt;br /&gt;
&lt;br /&gt;
    if (direction == 0) {&lt;br /&gt;
      // Tourner à gauche&lt;br /&gt;
      digitalWrite(LED_LEFT, HIGH);&lt;br /&gt;
      digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
      servoLeft.write(60);  // Tourner à gauche&lt;br /&gt;
      delay(1000);&lt;br /&gt;
      servoRight.write(120); // Tourner à droite&lt;br /&gt;
      delay(2000);&lt;br /&gt;
&lt;br /&gt;
      digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
      digitalWrite(LED_OBSTACLE, LOW);&lt;br /&gt;
    } else {&lt;br /&gt;
      // Tourner à droite&lt;br /&gt;
      digitalWrite(LED_RIGHT, HIGH);&lt;br /&gt;
      digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
      servoRight.write(120); // Tourner à droite&lt;br /&gt;
      delay(1000);&lt;br /&gt;
      servoLeft.write(60); // Tourner à gauche&lt;br /&gt;
      delay(2000);&lt;br /&gt;
&lt;br /&gt;
      digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
      digitalWrite(LED_OBSTACLE, LOW);&lt;br /&gt;
    }&lt;br /&gt;
  } else if (distance &amp;lt; slowDistance) {&lt;br /&gt;
    // Ralentir selon la distance&lt;br /&gt;
    int angle = map(distance, minDistance, slowDistance, 90, 120);&lt;br /&gt;
    servoLeft.write(angle);&lt;br /&gt;
    servoRight.write(180 - angle); // Angle opposé pour symétrie&lt;br /&gt;
&lt;br /&gt;
    // Éteindre LEDs&lt;br /&gt;
    digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
    digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, LOW);  // Éteindre la LED d'obstacle&lt;br /&gt;
  } else {&lt;br /&gt;
    // Pleine vitesse (symétrique)&lt;br /&gt;
    servoLeft.write(120);&lt;br /&gt;
    servoRight.write(60);&lt;br /&gt;
&lt;br /&gt;
    // LEDs éteintes&lt;br /&gt;
    digitalWrite(LED_RIGHT, LOW);&lt;br /&gt;
    digitalWrite(LED_LEFT, LOW);&lt;br /&gt;
    digitalWrite(LED_OBSTACLE, LOW);  // Éteindre la LED d'obstacle&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  delay(50); // Anti-rebond&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
le détail de toutes le brochs du shield sont décrite dans ce code : https://github.com/julienrat/petitbot/blob/master/code_arduino/petitbot_v2/petitbot_v2.ino&lt;br /&gt;
&lt;br /&gt;
===Code de base du petit bot ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
///////////////&lt;br /&gt;
// Petit Bot //&lt;br /&gt;
///////////////&lt;br /&gt;
// MAJ 250121&lt;br /&gt;
// Un programme pédagogique des petits débrouillards ?=+ pour gérer le robot &amp;quot;Petit Bot&amp;quot; &lt;br /&gt;
// Voir sur http://ancien.wikidebrouillard.org/index.php?title=Petit_Bot_un_robot_controlable_en_Wifi&lt;br /&gt;
// Ce programme est inspire de : http://www.esp8266.com/viewtopic.php?f=29&amp;amp;t=6419#sthash.gd1tJhwU.dpuf&lt;br /&gt;
// Sous licence CC-By-Sa&lt;br /&gt;
// Par des gens bien&lt;br /&gt;
&lt;br /&gt;
/* Schéma&lt;br /&gt;
Lolin (Wemos) D1 mini&lt;br /&gt;
                                     &lt;br /&gt;
                                _________________&lt;br /&gt;
                               /     D1 mini     \&lt;br /&gt;
                              |[ ]RST        TX[ ]|&lt;br /&gt;
                              |[ ]A0  -GPIO  RX[ ]|&lt;br /&gt;
                              |[ ]D0-16    5-D1[X]|----\&lt;br /&gt;
                              |[ ]D5-14    4-D2[X]|--\  \&lt;br /&gt;
                              |[ ]D6-12    0-D3[ ]|  |   |&lt;br /&gt;
                              |[ ]D7-13    2-D4[ ]|  |   |&lt;br /&gt;
                              |[ ]D8-15     GND[X]|  |   |&lt;br /&gt;
                              |[ ]3V3        5V[ ]|  |   |&lt;br /&gt;
 _                            |       +---+       |  |   |&lt;br /&gt;
| |                           |_______|USB|_______|  |  /                           _&lt;br /&gt;
| |       _                                         /  /                  _        | |&lt;br /&gt;
| |     _| |_________                         _____/  /         _________| |_      | |&lt;br /&gt;
| |    |    ______   |_data D1______________/        |_data D2_|   ______    |     | |&lt;br /&gt;
| |  __|   | SG90 |  |_______________GND_______________________|  | SG90 |   |___  | |&lt;br /&gt;
| |_|      |Servo |  |_______________Vin_______________________|  |Servo |       |_| |&lt;br /&gt;
| |_|      |Gauche|  |                                         |  |Droit |       |_| |&lt;br /&gt;
| | |__    |______|  |                                         |  |______|    ___| | |&lt;br /&gt;
| |    |__   ________|                                         |_________   __|    | |&lt;br /&gt;
| |       |_|                                                            |_|       | |&lt;br /&gt;
| |                                                                                | |&lt;br /&gt;
|_|                                                                                |_|&lt;br /&gt;
                                                                     &lt;br /&gt;
    ___&lt;br /&gt;
  / ___ \&lt;br /&gt;
 |_|   | | &lt;br /&gt;
      /_/&lt;br /&gt;
      _   ___   _&lt;br /&gt;
     |_| |___|_| |_&lt;br /&gt;
          ___|_   _|&lt;br /&gt;
         |___| |_|&lt;br /&gt;
  Les petits Débrouillards - CC-By-Sa http://creativecommons.org/licenses/by-nc-sa/3.0/&lt;br /&gt;
  Antony Le Goïc-Auffret janvier 2025&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// on appelle la bibliothèque qui gère le Wemos D1 mini&lt;br /&gt;
#include &amp;lt;ESP8266WiFi.h&amp;gt; &lt;br /&gt;
&lt;br /&gt;
// Gestion du Wifi&lt;br /&gt;
#include &amp;lt;ESP8266WebServer.h&amp;gt;&lt;br /&gt;
#include &amp;lt;DNSServer.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP8266mDNS.h&amp;gt;&lt;br /&gt;
#include &amp;lt;WiFiClient.h&amp;gt; &lt;br /&gt;
&lt;br /&gt;
//  Definition du WiFi &lt;br /&gt;
const char *nomDuReseau = &amp;quot;petitbota&amp;quot;;     // Nom du réseau wifi du petit bot&lt;br /&gt;
const char *motDePasse = &amp;quot;&amp;quot;;    // Mot de passe du réseau wifi du petit bot&lt;br /&gt;
// ATTENTION - le mot de passe doit faire soit 0 caractères soit 8 ou plus sinon&lt;br /&gt;
// La configuration de votre réseau wifi ne se fera pas (ni mot de passe, ni nom de réseau !).&lt;br /&gt;
//création du monServeur&lt;br /&gt;
ESP8266WebServer monServeur(80);               // Création de l'objet monServeur&lt;br /&gt;
&lt;br /&gt;
//Gestion des servomoteurs&lt;br /&gt;
#include &amp;lt;Servo.h&amp;gt;   //appel de la bibliothèque qui gère les servomoteurs&lt;br /&gt;
// création des servomoteurs &lt;br /&gt;
Servo servogauche;   // Nom du servo qui gère la première roue&lt;br /&gt;
Servo servodroit;    // Seconde roue&lt;br /&gt;
&lt;br /&gt;
//déclaration des Variables&lt;br /&gt;
//int --- en cours &lt;br /&gt;
int val = -1; // Val nous sert à stocker la commande de l'utilisateur (stop, avance, ...).&lt;br /&gt;
&lt;br /&gt;
void setup(){&lt;br /&gt;
  delay(1000);&lt;br /&gt;
  Serial.begin(9600); // Ouvre une connexion série pour monitorer le fonctionnement du code quand on reste branché a l'ordinateur&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  Serial.println();  &lt;br /&gt;
  configDuWifi();&lt;br /&gt;
  servodroit.detach();  // Place les servos hors tension&lt;br /&gt;
  servogauche.detach(); &lt;br /&gt;
  pinMode(LED_BUILTIN, OUTPUT);    //met la led du Wemos en sortie&lt;br /&gt;
  digitalWrite(LED_BUILTIN, LOW);  //met la led du Wemos sur le niveau bas ce qui l'allume.&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop(){&lt;br /&gt;
    val = -1;&lt;br /&gt;
    monServeur.handleClient();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////////GESTION DES INSTRUCTIONS///////////////////////////&lt;br /&gt;
void GestionDesClics() {&lt;br /&gt;
  monServeur.on(&amp;quot;/avance&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 1;&lt;br /&gt;
  Serial.println(&amp;quot;avance&amp;quot;);    &lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/recule&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 2;&lt;br /&gt;
  Serial.println(&amp;quot;recule&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/gauche&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 4;&lt;br /&gt;
  Serial.println(&amp;quot;gauche&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  monServeur.on(&amp;quot;/droite&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 3;&lt;br /&gt;
  Serial.println(&amp;quot;droite&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  monServeur.on(&amp;quot;/stop&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = 0;&lt;br /&gt;
  Serial.println(&amp;quot;stop&amp;quot;);&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
  &lt;br /&gt;
  monServeur.on(&amp;quot;/&amp;quot;, HTTP_GET, []() {&lt;br /&gt;
  val = -1;&lt;br /&gt;
  redactionPageWeb();&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////////////LA PAGE WEB DE CONROLE DU PETIT BOT/////////////////////////////////////////&lt;br /&gt;
void redactionPageWeb(){&lt;br /&gt;
  // Prépare la page web de réponse (le code HTML sera écrit dans la chaine de caractère &amp;quot;pageWeb&amp;quot;).&lt;br /&gt;
  String pageWeb = &amp;quot;&amp;lt;!DOCTYPE HTML&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;html&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;head&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;meta charset=\&amp;quot;utf-8\&amp;quot;&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;title&amp;gt;Petit bot&amp;lt;/title&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/head&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;body&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;center&amp;gt;&amp;quot;;    //On ouvre la balise qui va centrer les boutons&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;h1 style=\&amp;quot;font-size:300%;\&amp;quot;\&amp;gt; Le petit bot &amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;style type=\&amp;quot;text/css\&amp;quot;&amp;gt;  body { color: #212121; background-color: #CC0C59 } &amp;lt;/style&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  // On finalise l'écriture de la page Web et on donne les instructions aux servos&lt;br /&gt;
  pageWeb += instruction(val); // pour cela on appelle la fonction &amp;quot;instruction&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  // On termine l'écriture de la page Web&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/h1&amp;gt;&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;br&amp;gt;&amp;quot;; //aller à la ligne&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;br&amp;gt;&amp;quot;; //aller à la ligne&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/stop\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Stop &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;      // créer un bouton &amp;quot;Stop&amp;quot;, qui envoie sur l'URL /stop&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/avance\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Avance &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;  // créer un bouton &amp;quot;Avance&amp;quot;...&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/recule\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Recule &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/droite\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Droite &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;a href=\&amp;quot;/gauche\&amp;quot;\&amp;quot;&amp;gt;&amp;lt;button style=\&amp;quot;font-size:200%; width: 18%; background-color:#0CCC16; border-radius: 12px\&amp;quot;\&amp;gt;Gauche &amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;br /&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/center&amp;gt;&amp;quot;; // tout est centré sur la page&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/body&amp;gt;\r\n&amp;quot;;&lt;br /&gt;
  pageWeb += &amp;quot;&amp;lt;/html&amp;gt;\n&amp;quot;; //Fin de la page Web&lt;br /&gt;
&lt;br /&gt;
  // On envoie la page web&lt;br /&gt;
  monServeur.send(200, &amp;quot;text/html&amp;quot;, pageWeb);&lt;br /&gt;
  delay(1);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
///////////////////INSTRUCTIONS/////////////////////////////////////////////////////////&lt;br /&gt;
String instruction(int valeur){ //Cette fonction traite les instructions qui sont reçues&lt;br /&gt;
  int gauche;                           // Variable dont la valeur 180 ou 0 fera tourner le servo gauche dans un sens ou l'autre&lt;br /&gt;
  int droite;                           // Idem pour le servo droit&lt;br /&gt;
  String completePage;                  // Déclaration de la chaine de caractère qui sera renvoyée par cette fonction pour compléter la page web &lt;br /&gt;
  switch(valeur){                       // En fonction de la variable valeur on va donner un ordre aux servos &lt;br /&gt;
    case 0 :                            // et un texte à la chaine de caractère &amp;quot;completePage&amp;quot;&lt;br /&gt;
    completePage = &amp;quot; est a l'arrêt &amp;quot;;&lt;br /&gt;
    droite = 90;&lt;br /&gt;
    gauche = 90;&lt;br /&gt;
    break;&lt;br /&gt;
    case 1 :&lt;br /&gt;
    completePage = &amp;quot; avance &amp;quot;;&lt;br /&gt;
    droite = 180;&lt;br /&gt;
    gauche = 0;&lt;br /&gt;
    break;&lt;br /&gt;
    case 2 :&lt;br /&gt;
    completePage = &amp;quot; recule &amp;quot;;&lt;br /&gt;
    droite = 0;&lt;br /&gt;
    gauche = 180;&lt;br /&gt;
    break;&lt;br /&gt;
    case 3 :&lt;br /&gt;
    completePage = &amp;quot; tourne a gauche &amp;quot;;&lt;br /&gt;
    droite = 180;&lt;br /&gt;
    gauche = 180;&lt;br /&gt;
    break;&lt;br /&gt;
    case 4 :&lt;br /&gt;
    completePage = &amp;quot; tourne a droite &amp;quot;;&lt;br /&gt;
    droite = 0;&lt;br /&gt;
    gauche = 0;&lt;br /&gt;
    break;&lt;br /&gt;
    // que faire du cas ou val = -1 ? marquer ici ce qui doit être fait.&lt;br /&gt;
  }&lt;br /&gt;
  servogauche.attach(D1);     // Broche D1&lt;br /&gt;
  servodroit.attach(D2);      // Broche D2&lt;br /&gt;
  servogauche.write(gauche); &lt;br /&gt;
  servodroit.write(droite);&lt;br /&gt;
  return completePage;        // on renvoie la chaine de caractère pour compléter la page web&lt;br /&gt;
}&lt;br /&gt;
////////////////////////CONFIGURATION WIFI///////////////////////////////////////////////&lt;br /&gt;
void configDuWifi(){  // Fonction de configuratio du Wifi&lt;br /&gt;
  WiFi.mode(WIFI_AP); // le wemos est en mode &amp;quot;Point d'Accès&amp;quot; (il déploie un réseau wifi)&lt;br /&gt;
  WiFi.softAP(nomDuReseau, motDePasse, 2); // on démarre le &amp;quot;Point d'Accès&amp;quot;.&lt;br /&gt;
  MDNS.begin(nomDuReseau);                 // gérer les DNS ce qui rendra votre petit bot accessible&lt;br /&gt;
  MDNS.addService(&amp;quot;http&amp;quot;, &amp;quot;tcp&amp;quot;, 80);      // via http://nomDuReseau.local&lt;br /&gt;
  IPAddress monIP = WiFi.softAPIP();       // on récupère l'adresse IP du petit Bot&lt;br /&gt;
  Serial.print(&amp;quot;Adresse IP de ce Point d'Accès : &amp;quot;);&lt;br /&gt;
  Serial.println(monIP);                   // on l'écrit sur le moniteur série&lt;br /&gt;
  GestionDesClics();&lt;br /&gt;
  monServeur.begin();                          //Démarrage du monServeur&lt;br /&gt;
  Serial.println(&amp;quot;Serveur HTTP démarré&amp;quot;);&lt;br /&gt;
  return;                                  // on retourne à l'endroit ou la fonction a été appelée.&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29109</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29109"/>
				<updated>2025-01-21T09:59:27Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* Fichiers à joindre */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Plusieurs morceaux de carton&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons réalisé les différentes parties du TurboScoot : le corps, le siège et le guidon. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Patron corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 3===&lt;br /&gt;
Ensuite, nous avons procédé au montage des différentes parties, ainsi qu'à la découpe des trous nécessaires pour accueillir les éléments électroniques.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modélisation siège.jpg | 300px]]&lt;br /&gt;
[[Fichier:Modélisation guidon.jpg | 300px]]&lt;br /&gt;
[[Fichier:Corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 4===&lt;br /&gt;
Après avoir terminé les premières étapes du montage, nous avons programmé sur Arduino (voir code plus bas). Nous avons d'abord effectué des tests sur une plaque à part : d'abord avec les LED seules, puis avec les LED et le capteur de distance ultrason, et enfin le test final avec les servomoteurs.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test les TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Test complet TS.jpg | 350px]]&lt;br /&gt;
&lt;br /&gt;
===étape 5===&lt;br /&gt;
Une fois les tests terminés et validés, nous avons réalisé les premiers essais sur le prototype initial.&lt;br /&gt;
&lt;br /&gt;
METTRE LES PHOTO&lt;br /&gt;
&lt;br /&gt;
===étape 6===&lt;br /&gt;
Après quelques ajustements, le premier prototype fonctionne parfaitement, ce qui nous a permis de concevoir le TurboScoot final et de le customiser.&lt;br /&gt;
&lt;br /&gt;
METTRE LES PHOTOS&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
Voici le code Arduino pour faire fonctionner le TurboScoot.&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#define PIN 9&lt;br /&gt;
#include &amp;lt;Arduino_GFX_Library.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29108</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29108"/>
				<updated>2025-01-21T09:59:16Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* Fichiers à joindre */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Plusieurs morceaux de carton&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons réalisé les différentes parties du TurboScoot : le corps, le siège et le guidon. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Patron corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 3===&lt;br /&gt;
Ensuite, nous avons procédé au montage des différentes parties, ainsi qu'à la découpe des trous nécessaires pour accueillir les éléments électroniques.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modélisation siège.jpg | 300px]]&lt;br /&gt;
[[Fichier:Modélisation guidon.jpg | 300px]]&lt;br /&gt;
[[Fichier:Corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 4===&lt;br /&gt;
Après avoir terminé les premières étapes du montage, nous avons programmé sur Arduino (voir code plus bas). Nous avons d'abord effectué des tests sur une plaque à part : d'abord avec les LED seules, puis avec les LED et le capteur de distance ultrason, et enfin le test final avec les servomoteurs.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test les TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Test complet TS.jpg | 350px]]&lt;br /&gt;
&lt;br /&gt;
===étape 5===&lt;br /&gt;
Une fois les tests terminés et validés, nous avons réalisé les premiers essais sur le prototype initial.&lt;br /&gt;
&lt;br /&gt;
METTRE LES PHOTO&lt;br /&gt;
&lt;br /&gt;
===étape 6===&lt;br /&gt;
Après quelques ajustements, le premier prototype fonctionne parfaitement, ce qui nous a permis de concevoir le TurboScoot final et de le customiser.&lt;br /&gt;
&lt;br /&gt;
METTRE LES PHOTOS&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
Voici le code Arduino pour faire fonctionner le TurboScoot&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#define PIN 9&lt;br /&gt;
#include &amp;lt;Arduino_GFX_Library.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29106</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29106"/>
				<updated>2025-01-21T09:58:04Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* étape 6 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Plusieurs morceaux de carton&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons réalisé les différentes parties du TurboScoot : le corps, le siège et le guidon. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Patron corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 3===&lt;br /&gt;
Ensuite, nous avons procédé au montage des différentes parties, ainsi qu'à la découpe des trous nécessaires pour accueillir les éléments électroniques.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modélisation siège.jpg | 300px]]&lt;br /&gt;
[[Fichier:Modélisation guidon.jpg | 300px]]&lt;br /&gt;
[[Fichier:Corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 4===&lt;br /&gt;
Après avoir terminé les premières étapes du montage, nous avons programmé sur Arduino (voir code plus bas). Nous avons d'abord effectué des tests sur une plaque à part : d'abord avec les LED seules, puis avec les LED et le capteur de distance ultrason, et enfin le test final avec les servomoteurs.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test les TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Test complet TS.jpg | 350px]]&lt;br /&gt;
&lt;br /&gt;
===étape 5===&lt;br /&gt;
Une fois les tests terminés et validés, nous avons réalisé les premiers essais sur le prototype initial.&lt;br /&gt;
&lt;br /&gt;
METTRE LES PHOTO&lt;br /&gt;
&lt;br /&gt;
===étape 6===&lt;br /&gt;
Après quelques ajustements, le premier prototype fonctionne parfaitement, ce qui nous a permis de concevoir le TurboScoot final et de le customiser.&lt;br /&gt;
&lt;br /&gt;
METTRE LES PHOTOS&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#define PIN 9&lt;br /&gt;
#include &amp;lt;Arduino_GFX_Library.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29105</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29105"/>
				<updated>2025-01-21T09:57:49Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* Fichiers à joindre */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Plusieurs morceaux de carton&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons réalisé les différentes parties du TurboScoot : le corps, le siège et le guidon. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Patron corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 3===&lt;br /&gt;
Ensuite, nous avons procédé au montage des différentes parties, ainsi qu'à la découpe des trous nécessaires pour accueillir les éléments électroniques.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modélisation siège.jpg | 300px]]&lt;br /&gt;
[[Fichier:Modélisation guidon.jpg | 300px]]&lt;br /&gt;
[[Fichier:Corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 4===&lt;br /&gt;
Après avoir terminé les premières étapes du montage, nous avons programmé sur Arduino (voir code plus bas). Nous avons d'abord effectué des tests sur une plaque à part : d'abord avec les LED seules, puis avec les LED et le capteur de distance ultrason, et enfin le test final avec les servomoteurs.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test les TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Test complet TS.jpg | 350px]]&lt;br /&gt;
&lt;br /&gt;
===étape 5===&lt;br /&gt;
Une fois les tests terminés et validés, nous avons réalisé les premiers essais sur le prototype initial.&lt;br /&gt;
&lt;br /&gt;
METTRE LES PHOTO&lt;br /&gt;
&lt;br /&gt;
===étape 6===&lt;br /&gt;
Après quelques ajustements, le premier prototype fonctionne parfaitement, ce qui nous a permis de concevoir le TurboScoot final et de le customiser.&lt;br /&gt;
&lt;br /&gt;
METTRE LES PHOTOS&lt;br /&gt;
&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29104</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29104"/>
				<updated>2025-01-21T09:57:32Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* étape 4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Plusieurs morceaux de carton&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#define PIN 9&lt;br /&gt;
#include &amp;lt;Arduino_GFX_Library.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons réalisé les différentes parties du TurboScoot : le corps, le siège et le guidon. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Patron corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 3===&lt;br /&gt;
Ensuite, nous avons procédé au montage des différentes parties, ainsi qu'à la découpe des trous nécessaires pour accueillir les éléments électroniques.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modélisation siège.jpg | 300px]]&lt;br /&gt;
[[Fichier:Modélisation guidon.jpg | 300px]]&lt;br /&gt;
[[Fichier:Corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 4===&lt;br /&gt;
Après avoir terminé les premières étapes du montage, nous avons programmé sur Arduino (voir code plus bas). Nous avons d'abord effectué des tests sur une plaque à part : d'abord avec les LED seules, puis avec les LED et le capteur de distance ultrason, et enfin le test final avec les servomoteurs.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test les TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Test complet TS.jpg | 350px]]&lt;br /&gt;
&lt;br /&gt;
===étape 5===&lt;br /&gt;
Une fois les tests terminés et validés, nous avons réalisé les premiers essais sur le prototype initial.&lt;br /&gt;
&lt;br /&gt;
METTRE LES PHOTO&lt;br /&gt;
&lt;br /&gt;
===étape 6===&lt;br /&gt;
Après quelques ajustements, le premier prototype fonctionne parfaitement, ce qui nous a permis de concevoir le TurboScoot final et de le customiser.&lt;br /&gt;
&lt;br /&gt;
METTRE LES PHOTOS&lt;br /&gt;
&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29078</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29078"/>
				<updated>2025-01-21T09:50:38Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* étape 4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Plusieurs morceaux de carton&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#define PIN 9&lt;br /&gt;
#include &amp;lt;Arduino_GFX_Library.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons réalisé les différentes parties du TurboScoot : le corps, le siège et le guidon. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Patron corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 3===&lt;br /&gt;
Ensuite, nous avons procédé au montage des différentes parties, ainsi qu'à la découpe des trous nécessaires pour accueillir les éléments électroniques.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modélisation siège.jpg | 300px]]&lt;br /&gt;
[[Fichier:Modélisation guidon.jpg | 300px]]&lt;br /&gt;
[[Fichier:Corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 4===&lt;br /&gt;
Après avoir terminé les premières étapes du montage, nous avons programmé sur Arduino (voir code plus bas). Nous avons d'abord effectué des tests sur une plaque à part : d'abord avec les LED seules, puis avec les LED et le capteur de distance ultrason, et enfin le test final avec les servomoteurs.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test les TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Test complet TS.jpg | 350px]]&lt;br /&gt;
&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29071</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29071"/>
				<updated>2025-01-21T09:46:46Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* étape 4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Plusieurs morceaux de carton&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#define PIN 9&lt;br /&gt;
#include &amp;lt;Arduino_GFX_Library.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons réalisé les différentes parties du TurboScoot : le corps, le siège et le guidon. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Patron corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 3===&lt;br /&gt;
Ensuite, nous avons procédé au montage des différentes parties, ainsi qu'à la découpe des trous nécessaires pour accueillir les éléments électroniques.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modélisation siège.jpg | 300px]]&lt;br /&gt;
[[Fichier:Modélisation guidon.jpg | 300px]]&lt;br /&gt;
[[Fichier:Corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 4===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test les TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Test complet TS.jpg | 350px]]&lt;br /&gt;
&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29062</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29062"/>
				<updated>2025-01-21T09:42:13Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* étape 4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Plusieurs morceaux de carton&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#define PIN 9&lt;br /&gt;
#include &amp;lt;Arduino_GFX_Library.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons réalisé les différentes parties du TurboScoot : le corps, le siège et le guidon. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Patron corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 3===&lt;br /&gt;
Ensuite, nous avons procédé au montage des différentes parties, ainsi qu'à la découpe des trous nécessaires pour accueillir les éléments électroniques.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modélisation siège.jpg | 300px]]&lt;br /&gt;
[[Fichier:Modélisation guidon.jpg | 300px]]&lt;br /&gt;
[[Fichier:Corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 4===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test les TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Test complet TS.jpg | 400px]]&lt;br /&gt;
&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29060</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29060"/>
				<updated>2025-01-21T09:41:50Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* étape 4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Plusieurs morceaux de carton&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#define PIN 9&lt;br /&gt;
#include &amp;lt;Arduino_GFX_Library.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons réalisé les différentes parties du TurboScoot : le corps, le siège et le guidon. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Patron corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 3===&lt;br /&gt;
Ensuite, nous avons procédé au montage des différentes parties, ainsi qu'à la découpe des trous nécessaires pour accueillir les éléments électroniques.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modélisation siège.jpg | 300px]]&lt;br /&gt;
[[Fichier:Modélisation guidon.jpg | 300px]]&lt;br /&gt;
[[Fichier:Corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 4===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test les TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Test complet TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Test_complet_TS.jpg&amp;diff=29057</id>
		<title>Fichier:Test complet TS.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Test_complet_TS.jpg&amp;diff=29057"/>
				<updated>2025-01-21T09:41:25Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : Marie a téléversé une nouvelle version de Fichier:Test complet TS.jpg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29054</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29054"/>
				<updated>2025-01-21T09:39:58Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* Étapes de fabrication */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Plusieurs morceaux de carton&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#define PIN 9&lt;br /&gt;
#include &amp;lt;Arduino_GFX_Library.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons réalisé les différentes parties du TurboScoot : le corps, le siège et le guidon. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Patron corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 3===&lt;br /&gt;
Ensuite, nous avons procédé au montage des différentes parties, ainsi qu'à la découpe des trous nécessaires pour accueillir les éléments électroniques.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modélisation siège.jpg | 300px]]&lt;br /&gt;
[[Fichier:Modélisation guidon.jpg | 300px]]&lt;br /&gt;
[[Fichier:Corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 4===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Test les TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Test complet TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Test_complet_TS.jpg&amp;diff=29053</id>
		<title>Fichier:Test complet TS.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Test_complet_TS.jpg&amp;diff=29053"/>
				<updated>2025-01-21T09:39:27Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Test_les_TS.jpg&amp;diff=29051</id>
		<title>Fichier:Test les TS.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Test_les_TS.jpg&amp;diff=29051"/>
				<updated>2025-01-21T09:38:37Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29017</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29017"/>
				<updated>2025-01-21T09:21:07Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* Étapes de fabrication */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Plusieurs morceaux de carton&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#define PIN 9&lt;br /&gt;
#include &amp;lt;Arduino_GFX_Library.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons réalisé les différentes parties du TurboScoot : le corps, le siège et le guidon. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Patron corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 3===&lt;br /&gt;
Ensuite, nous avons procédé au montage des différentes parties.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modélisation siège.jpg | 300px]]&lt;br /&gt;
[[Fichier:Modélisation guidon.jpg | 300px]]&lt;br /&gt;
[[Fichier:Corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Corps_TS.jpg&amp;diff=29016</id>
		<title>Fichier:Corps TS.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Corps_TS.jpg&amp;diff=29016"/>
				<updated>2025-01-21T09:20:26Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29005</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=29005"/>
				<updated>2025-01-21T09:17:41Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* Étapes de fabrication */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Plusieurs morceaux de carton&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#define PIN 9&lt;br /&gt;
#include &amp;lt;Arduino_GFX_Library.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons réalisé les différentes parties du TurboScoot : le corps, le siège et le guidon. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Patron corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 3===&lt;br /&gt;
Ensuite, nous avons procédé au montage des différentes parties.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modélisation siège.jpg | 300px]]&lt;br /&gt;
[[Fichier:Modélisation guidon.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28999</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28999"/>
				<updated>2025-01-21T09:15:56Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* Étapes de fabrication */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Plusieurs morceaux de carton&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#define PIN 9&lt;br /&gt;
#include &amp;lt;Arduino_GFX_Library.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons réalisé les différentes parties du TurboScoot : le corps, le siège et le guidon. Puis, &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Patron corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 3===&lt;br /&gt;
Ensuite, &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modélisation siège.jpg | 300px]]&lt;br /&gt;
[[Fichier:Modélisation guidon.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28997</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28997"/>
				<updated>2025-01-21T09:15:19Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* Étapes de fabrication */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Plusieurs morceaux de carton&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#define PIN 9&lt;br /&gt;
#include &amp;lt;Arduino_GFX_Library.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons réalisé les différentes parties du TurboScoot : le corps, le siège et le guidon. Puis, &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Patron corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 3===&lt;br /&gt;
Ensuite, &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Modélisation siège.jpg]]&lt;br /&gt;
[[Fichier:Modélisation guidon.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Mod%C3%A9lisation_guidon.jpg&amp;diff=28995</id>
		<title>Fichier:Modélisation guidon.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Mod%C3%A9lisation_guidon.jpg&amp;diff=28995"/>
				<updated>2025-01-21T09:14:51Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Mod%C3%A9lisation_si%C3%A8ge.jpg&amp;diff=28993</id>
		<title>Fichier:Modélisation siège.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Mod%C3%A9lisation_si%C3%A8ge.jpg&amp;diff=28993"/>
				<updated>2025-01-21T09:14:01Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28932</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28932"/>
				<updated>2025-01-20T15:30:53Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* étape 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Plusieurs morceaux de carton&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#define PIN 9&lt;br /&gt;
#include &amp;lt;Arduino_GFX_Library.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons dessiné les patrons du corps, du siège et du guidon du TurboScoot.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
[[Fichier:Patron corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape ...===&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28931</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28931"/>
				<updated>2025-01-20T15:30:36Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* étape 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Plusieurs morceaux de carton&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#define PIN 9&lt;br /&gt;
#include &amp;lt;Arduino_GFX_Library.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons dessiné les patrons du corps, du siège et du guidon du TurboScoot.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron corps TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape ...===&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Patron_corps_TS.jpg&amp;diff=28929</id>
		<title>Fichier:Patron corps TS.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Patron_corps_TS.jpg&amp;diff=28929"/>
				<updated>2025-01-20T15:30:01Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28928</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28928"/>
				<updated>2025-01-20T15:29:33Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* étape 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Plusieurs morceaux de carton&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#define PIN 9&lt;br /&gt;
#include &amp;lt;Arduino_GFX_Library.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons dessiné les patrons du corps, du siège et du guidon du TurboScoot.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape ...===&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28926</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28926"/>
				<updated>2025-01-20T15:29:05Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* étape 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Plusieurs morceaux de carton&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#define PIN 9&lt;br /&gt;
#include &amp;lt;Arduino_GFX_Library.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons dessiné les patrons du corps, du siège et du guidon du TurboScoot.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Patron TS.jpg ]]&lt;br /&gt;
&lt;br /&gt;
===étape ...===&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Patron_TS.jpg&amp;diff=28924</id>
		<title>Fichier:Patron TS.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Patron_TS.jpg&amp;diff=28924"/>
				<updated>2025-01-20T15:28:33Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28919</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28919"/>
				<updated>2025-01-20T15:24:21Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* étape 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Plusieurs morceaux de carton&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#define PIN 9&lt;br /&gt;
#include &amp;lt;Arduino_GFX_Library.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
Dans un second temps, nous avons dessiné les patrons du corps, du siège et du guidon du TurboScoot.&lt;br /&gt;
&lt;br /&gt;
===étape ...===&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28915</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28915"/>
				<updated>2025-01-20T15:23:16Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* étape 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Plusieurs morceaux de carton&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#define PIN 9&lt;br /&gt;
#include &amp;lt;Arduino_GFX_Library.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
===étape ...===&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28914</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28914"/>
				<updated>2025-01-20T15:23:07Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* étape 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Plusieurs morceaux de carton&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#define PIN 9&lt;br /&gt;
#include &amp;lt;Arduino_GFX_Library.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
Dans un premier temps nous avons dessiné la maquette :&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
===étape ...===&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28912</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28912"/>
				<updated>2025-01-20T15:17:02Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* étape 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Plusieurs morceaux de carton&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#define PIN 9&lt;br /&gt;
#include &amp;lt;Arduino_GFX_Library.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 300px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
===étape ...===&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28911</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28911"/>
				<updated>2025-01-20T15:16:52Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* étape 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Plusieurs morceaux de carton&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#define PIN 9&lt;br /&gt;
#include &amp;lt;Arduino_GFX_Library.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg | 400px]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
===étape ...===&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28910</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28910"/>
				<updated>2025-01-20T15:14:43Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* Étapes de fabrication */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Plusieurs morceaux de carton&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#define PIN 9&lt;br /&gt;
#include &amp;lt;Arduino_GFX_Library.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
Mode d'emploi : &lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
[[Fichier:Plan TurboScoot.jpg]]&lt;br /&gt;
&lt;br /&gt;
===étape 2===&lt;br /&gt;
===étape ...===&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Plan_TurboScoot.jpg&amp;diff=28909</id>
		<title>Fichier:Plan TurboScoot.jpg</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=Fichier:Plan_TurboScoot.jpg&amp;diff=28909"/>
				<updated>2025-01-20T15:14:14Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28900</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28900"/>
				<updated>2025-01-20T14:51:43Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* Étapes de fabrication */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Plusieurs morceaux de carton&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#define PIN 9&lt;br /&gt;
#include &amp;lt;Arduino_GFX_Library.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
===étape 2===&lt;br /&gt;
===étape ...===&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28899</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28899"/>
				<updated>2025-01-20T14:49:34Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* Outil et matériel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter, il nous faut plusieurs éléments :&lt;br /&gt;
&lt;br /&gt;
 • 2 servos moteurs&lt;br /&gt;
 • 2 roues imprimées en 3D&lt;br /&gt;
 • 1 capteur de distance ultrason&lt;br /&gt;
 • 1 microprocesseur ESP8266&lt;br /&gt;
 • 2 petites LED blanches&lt;br /&gt;
 • 1 grande LED rouge&lt;br /&gt;
 • 2 résistances de 220 Ω&lt;br /&gt;
 • 1 résistance de 1 kΩ&lt;br /&gt;
 • 1 bille avec son support imprimé en 3D&lt;br /&gt;
 • Plusieurs fils électriques&lt;br /&gt;
 • Plusieurs morceaux de carton&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#define PIN 9&lt;br /&gt;
#include &amp;lt;Arduino_GFX_Library.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
indiquer autant d'étape que nécessaire, chacune illustrée par des images (photo, dessins, ...)&lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
===étape 2===&lt;br /&gt;
===étape ...===&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	<entry>
		<id>http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28889</id>
		<title>ENIB 2025 : TurboScoot</title>
		<link rel="alternate" type="text/html" href="http://wiki.lesfabriquesduponant.net/index.php?title=ENIB_2025_:_TurboScoot&amp;diff=28889"/>
				<updated>2025-01-20T14:37:23Z</updated>
		
		<summary type="html">&lt;p&gt;Marie : /* Outil et matériel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Titre de la fiche expérience :&lt;br /&gt;
==Introduction == &lt;br /&gt;
Cette page est une fiche écrite dans le cadre de l'Inter-Semestre ENIB 2025.&lt;br /&gt;
&lt;br /&gt;
Nous nous sommes inspirés du projet du Petit Bot pour construire notre TurboScoot.&lt;br /&gt;
&lt;br /&gt;
Le TurboScoot est un robot en forme de scooter qui détecte et évite les obstacles. Il indique également s'il tourne à droite ou à gauche.&lt;br /&gt;
&lt;br /&gt;
Voici le modèle final du TurboScoot :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Fleurrose.jpg|200px]]&lt;br /&gt;
&lt;br /&gt;
==Auteurs==&lt;br /&gt;
Nous sommes une équipe de 3 :&lt;br /&gt;
&lt;br /&gt;
Jade Arnould&lt;br /&gt;
&lt;br /&gt;
Zahra El Bahloul&lt;br /&gt;
&lt;br /&gt;
Marie Lehmann Gaumer&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
==Outil et matériel==&lt;br /&gt;
Pour fabriquer le TurboScooter il nous faut plusieurs éléments : &lt;br /&gt;
&lt;br /&gt;
* 2 servos Moteur &lt;br /&gt;
* 2 roues&lt;br /&gt;
* 1 capteur distance ultrason&lt;br /&gt;
* plusieurs fils électriques&lt;br /&gt;
* plusieurs cartons&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==Fichiers à joindre==&lt;br /&gt;
code, ficher d'impression 3D, de découpe laser ou vinyle, ...&lt;br /&gt;
===Mettre du code Arduino===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Arduino&amp;quot; line&amp;gt; &lt;br /&gt;
#define PIN 9&lt;br /&gt;
#include &amp;lt;Arduino_GFX_Library.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // put your setup code here, to run once:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // put your main code here, to run repeatedly:&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Étapes de fabrication==&lt;br /&gt;
indiquer autant d'étape que nécessaire, chacune illustrée par des images (photo, dessins, ...)&lt;br /&gt;
&lt;br /&gt;
===étape 1===&lt;br /&gt;
===étape 2===&lt;br /&gt;
===étape ...===&lt;br /&gt;
===Troubleshouting===&lt;br /&gt;
Quelles sont difficultés, les problèmes, quelles sont les solutions, les trucs et astuces pour que ça marche ?&lt;br /&gt;
&lt;br /&gt;
==Sources et documentation complémentaire==&lt;br /&gt;
&lt;br /&gt;
==Élément de présentation==&lt;br /&gt;
je met ici le document de présentation de mon projet&lt;br /&gt;
&lt;br /&gt;
==Attention ne pas modifier sous cette ligne==&lt;br /&gt;
[[Catégorie:Enib2024]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025]]&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Enib2025-AB]]&lt;/div&gt;</summary>
		<author><name>Marie</name></author>	</entry>

	</feed>