(→Fabrication du robot téléguidé) |
(→Contenus pédagogiques associés) |
||
(62 versions intermédiaires masquées) | |||
Ligne 1 : | Ligne 1 : | ||
{{avertissement}} | {{avertissement}} | ||
- | {{vidéo|numérovidéo = <videoflash | + | {{vidéo|numérovidéo = <videoflash>3xTfAByKSS0|400|300</videoflash> }} |
+ | =='''Avant propos'''== | ||
- | + | <font color="#e31419">CET ARTICLE EST EN COURS D’ÉBAUCHE | |
- | + | ''ATTENTION : veuillez bien prendre connaissance de l'ensemble du tutoriel avant de vous lancer dans la construction de ce projet. Il y de nombreux points de vigilance et d'anticipation de matériel pour éviter de se retrouver bloquer ou d'avoir à recommencer une manip. La construction du robot demande également quelques compétences de base en Arduino (savoir téléverser un programme) et en électronique, être à l'aise avec les soudures et une connaissance des connaissances sommaires des composants. Nous nous tenons disponible à cette adresse : d.cliclab@debrouillonet.org pour toute question et n'hésitez pas pour ceux qui se lancerons dans cette construction à nous envoyer des photos ou documentation de vos versions ! Ce tuto n'est qu'une première ébauche, n'hésite pas à nous transmettre vos retours, des manques, des incompréhensions, des conseils…''</font> | |
- | + | =='''Présentation de l'expérience'''== | |
- | + | [[Image:Debrouillarduino1.JPG]] | |
- | + | ||
- | |||
- | |||
- | |||
Le '''Tableau de bord Débrouillarduino''' est un outils permettant d'initier la programmation auprès de très jeunes publics (à partir de 3 ans), sous forme ludique, par '''programmation tangible'''. | Le '''Tableau de bord Débrouillarduino''' est un outils permettant d'initier la programmation auprès de très jeunes publics (à partir de 3 ans), sous forme ludique, par '''programmation tangible'''. | ||
Ligne 36 : | Ligne 33 : | ||
- '''Les jetons''' à imbriquer dans le tableau de bord. | - '''Les jetons''' à imbriquer dans le tableau de bord. | ||
+ | |||
+ | [[Image:IMG_20170215_105437.jpg|200px]] [[Image:Boitier.JPG|225px]] [[Image:Jetons.JPG|250px]] | ||
== '''Matériel''' == | == '''Matériel''' == | ||
Ligne 83 : | Ligne 82 : | ||
===Logiciel :=== | ===Logiciel :=== | ||
- | + | IDE Arduino, gratuit (dernière version sur le site officiel : https://www.arduino.cc/en/Main/Software) Qui vous permettra de téléverser les programmes dans les cartes Arduino Mega et ESP8862. | |
+ | |||
+ | Les manipulations de ces 2 cartes ne sont pas détaillées dans ce tutoriel. Si vous êtes novice dans le sujet, nous vous conseillons de vous référer à un des nombreux tutoriels d'initiation sur la toile : | ||
+ | *Initiation Arduino Open Class Room : [https://openclassrooms.com/courses/programmez-vos-premiers-montages-avec-arduino Lien] | ||
+ | *Paramétrage de l'ESP8862 (en anglais mais il n'y a qu'à reproduire la manip de la vidéo jusqu'à 2:00, pas la suite): [https://www.youtube.com/watch?v=utKpl1Z4nEM Lien] | ||
=='''Fabrication du robot téléguidé'''== | =='''Fabrication du robot téléguidé'''== | ||
- | Nous sommes parti du projet de '''robot Petit Bot''' et avons apporté quelques modifications. Vous pouvez suivre le tuto de la page du petit bot pour reproduire le robot : [http://wikidebrouillard.org/index.php?title=Petit_Bot_un_robot_controlable_en_Wifi Lien] | + | [[Image:IMG_20170215_105437.jpg|450px]] |
+ | |||
+ | Nous sommes parti du projet de '''robot Petit Bot''' et avons apporté quelques modifications. Vous pouvez suivre le tuto de la page wikidébrouillard du petit bot pour reproduire le robot : [http://wikidebrouillard.org/index.php?title=Petit_Bot_un_robot_controlable_en_Wifi Lien] | ||
Vous pouvez''' personnaliser votre chassis et vos roues'''. Si vous ne disposez pas d'imprimante 3D ou de Fablabs à proximité, pas d'inquiétude vous pourrez toujours fabriquer un chassis de bonne fortune comme dans l'exemple de la page du Petit Bot. | Vous pouvez''' personnaliser votre chassis et vos roues'''. Si vous ne disposez pas d'imprimante 3D ou de Fablabs à proximité, pas d'inquiétude vous pourrez toujours fabriquer un chassis de bonne fortune comme dans l'exemple de la page du Petit Bot. | ||
Ligne 97 : | Ligne 102 : | ||
'''à cela quelques précisions :''' | '''à cela quelques précisions :''' | ||
- | * S'assurer d'utiliser des servo-moteurs type '''« rotation continue »''' à 360° 6V (à la différence des servo-moteurs de type T9 modifiés permettrons d'ajuster leur vitesse au besoin). | + | * S'assurer d'utiliser des servo-moteurs type '''« rotation continue »''' à 360° 6V (à la différence des servo-moteurs de type T9 modifiés permettrons d'ajuster leur vitesse au besoin). [http://snootlab.com/pololu/510-servo-a-rotation-continue-springrc-sm-s4303r-fr.html Voir exemple] |
- | http://snootlab.com/pololu/510-servo-a-rotation-continue-springrc-sm-s4303r-fr.html | + | |
* Nous utilisons une version modifiée du programme du Petit Bot. '''Veuillez ne pas téléverser le programme proposé sur la page du Petit Bot.''' Télécharger le bon programme [ici] ou copiez collez le programme ci-dessous. | * Nous utilisons une version modifiée du programme du Petit Bot. '''Veuillez ne pas téléverser le programme proposé sur la page du Petit Bot.''' Télécharger le bon programme [ici] ou copiez collez le programme ci-dessous. | ||
* L'ESP8862 est programmé pour attendre des ordres bien précis : « a » pour avancer, « r » pour reculer, « g » pour tourner à gauche, « d » pour tourner à droite, « s » pour stop | * L'ESP8862 est programmé pour attendre des ordres bien précis : « a » pour avancer, « r » pour reculer, « g » pour tourner à gauche, « d » pour tourner à droite, « s » pour stop | ||
Ligne 107 : | Ligne 111 : | ||
<pre> | <pre> | ||
- | + | /** | |
+ | * This file contains code related to the Débrouillarduino project. | ||
+ | * | ||
+ | * Read an instruction from WiFi then execute it. | ||
+ | * | ||
+ | * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | ||
+ | * | ||
+ | * Ce fichier contient du code lié au projet Débrouillarduino. | ||
+ | * | ||
+ | * Lit une instruction à travers le WiFi puis l'exécute. | ||
+ | */ | ||
+ | |||
+ | #include <ESP8266WiFi.h> | ||
+ | #include <dummy.h> // ESP8266 library | ||
+ | #include <Servo.h> | ||
+ | |||
+ | const char ssid[] = "Debrouillarduino"; | ||
+ | const char password[] = "1234567890"; | ||
+ | WiFiServer server(80); | ||
+ | |||
+ | |||
+ | /** | ||
+ | * Servos initial positions. | ||
+ | * Positions initiales des servos. | ||
+ | */ | ||
+ | const uint8_t INIT_SERVO_LEFT = 90; | ||
+ | const uint8_t INIT_SERVO_RIGHT = 90; | ||
+ | |||
+ | // | ||
+ | /** | ||
+ | * Since servos are disposed symmetrically they need to have opposite values. | ||
+ | * Puisque les servos sont disposés symétriquement ils doivent avoir des valeurs opposées. | ||
+ | */ | ||
+ | const uint8_t SERVO_LEFT_FORWARD = 180; | ||
+ | const uint8_t SERVO_LEFT_BACKWARD = 0; | ||
+ | const uint8_t SERVO_RIGHT_FORWARD = 0; | ||
+ | const uint8_t SERVO_RIGHT_BACKWARD = 180; | ||
+ | |||
+ | Servo servo_left; | ||
+ | Servo servo_right; | ||
+ | |||
+ | void setup() | ||
+ | { | ||
+ | Serial.begin(115200); | ||
+ | |||
+ | /** | ||
+ | * Create a WiFi access point. | ||
+ | * Créé un point d'accès WiFi. | ||
+ | */ | ||
+ | WiFi.mode(WIFI_AP); | ||
+ | WiFi.softAP(ssid, password, 7); | ||
+ | |||
+ | server.begin(); | ||
+ | |||
+ | servo_left.attach(D5); | ||
+ | servo_right.attach(D6); | ||
+ | |||
+ | /** | ||
+ | * Initialize servos's default position. | ||
+ | * Initialise la position par défaut des servos. | ||
+ | */ | ||
+ | servo_left.write(INIT_SERVO_LEFT); | ||
+ | servo_right.write(INIT_SERVO_RIGHT); | ||
+ | } | ||
+ | |||
+ | /** | ||
+ | * Waits until a client connect then retrieves the command through | ||
+ | * url and execute it. | ||
+ | * Finally, send the HTTP code 200 to the client. | ||
+ | * | ||
+ | * Attend qu'un client se connecte puis récupère la commande à travers | ||
+ | * l'url et l'exécute. | ||
+ | * Enfin, envoie un code HTTP 200 au client. | ||
+ | */ | ||
+ | void loop() | ||
+ | { | ||
+ | WiFiClient client = server.available(); | ||
+ | if (!client) { | ||
+ | return; | ||
+ | } | ||
+ | |||
+ | String req = client.readStringUntil('\r'); | ||
+ | |||
+ | client.flush(); | ||
+ | |||
+ | if (req.indexOf("/s") != -1) { // Stop | ||
+ | servo_left.write(INIT_SERVO_LEFT); | ||
+ | servo_right.write(INIT_SERVO_RIGHT); | ||
+ | } else if (req.indexOf("/a") != -1) { // Forward / Avancer | ||
+ | servo_left.write(SERVO_LEFT_FORWARD); | ||
+ | servo_right.write(SERVO_RIGHT_FORWARD); | ||
+ | } else if (req.indexOf("/r") != -1) { // Backward / Reculer | ||
+ | servo_left.write(SERVO_LEFT_BACKWARD); | ||
+ | servo_right.write(SERVO_RIGHT_BACKWARD); | ||
+ | } else if (req.indexOf("/g") != -1) { // Left / Gauche | ||
+ | servo_left.write(INIT_SERVO_LEFT); | ||
+ | servo_right.write(SERVO_RIGHT_FORWARD); | ||
+ | } else if (req.indexOf("/d") != -1) { // Right / Droite | ||
+ | servo_left.write(SERVO_LEFT_FORWARD); | ||
+ | servo_right.write(INIT_SERVO_RIGHT); | ||
+ | } | ||
+ | |||
+ | client.print("HTTP/1.1 200 OK\r\n"); | ||
+ | delay(100); | ||
+ | Serial.println("Client disconnected"); | ||
+ | client.flush(); | ||
+ | } | ||
</pre> | </pre> | ||
- | + | Nous avons notamment ramené les branchements sur une unique plaque d'essai dans laquelle l'ESP8862 vient s'imbriquer pour simplifier les branchements, le montage et démontage du dispositif au besoin. | |
- | [ | + | [[Image:Schemapetitbot.png|450px]] |
+ | [[Image:Voiturecarte.JPG|450px]] | ||
+ | == '''Fabrication des jetons de direction''' == | ||
+ | [[Image:Jetons.JPG|300px]] | ||
- | + | Si vous disposez d'une imprimante 3D, vous pouvez télécharger et imprimer ces modèles de jetons sur la page de l'auteur : [https://www.tinkercad.com/things/9j0pqUqkmDZ-magnificent-elzing-jarv Lien]. | |
- | + | Ou à ce lien : [http://wikidebrouillard.org/images/0/08/Jetons.stl Télécharger] | |
Vous pouvez en imprimer autant que de jetons que vous souhaitez utiliser avec votre tableau de bord (mais vous serez limité à 9 ordres consécutifs sur le tableau de bord). | Vous pouvez en imprimer autant que de jetons que vous souhaitez utiliser avec votre tableau de bord (mais vous serez limité à 9 ordres consécutifs sur le tableau de bord). | ||
Définissez un code couleur pour chaque direction. Dans chaque type de jeton, vous devrez insérer une résistance d'une valeur bien précise Nous avons choisi ce code couleur : | Définissez un code couleur pour chaque direction. Dans chaque type de jeton, vous devrez insérer une résistance d'une valeur bien précise Nous avons choisi ce code couleur : | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | Par défaut, l'absence de jeton dans le tableau de bord lance l'ordre « s'arrêter ». | + | * <font color="#158518"> Avancer = vert = 8,2 kOhm </font> |
+ | * <font color="#f28518"> Reculer = orange = 22 kOhm </font> | ||
+ | * <font color="#d92a99"> Tourner à Gauche = rose = 56 kOhm </font> | ||
+ | * <font color="#1468e3"> Tourner à droite = bleu = 150 kOhm </font> | ||
+ | * Par défaut, l'absence de jeton dans le tableau de bord lance l'ordre « s'arrêter ». | ||
- | + | Si vous ne disposez pas d'imprimante 3D, pas de problème !Pourquoi ne pas tester avec des bouchons de boissons gazeuses de différentes couleurs. L'avantage du modèle à imprimer, ou le point de vigilance pour la version « récup » est d'avoir un système de détrompeur empêchant toute mauvaise orientation du jeton dans le tableau de bord. | |
- | + | Pour la pose des résistances, ces dernières doivent être insérées à l'intérieur des jetons. Leur 2 broches des résistances doivent traverser a face inférieur des jetons, espacés dans notre cas de 7,5mm et repartent à l'intérieur.''' ATTENTION, les 2 broches d'une résistance ne doivent jamais entrer en contact''' sous peine de créer un court circuit d’empêcher la reconnaissance par le tableau de bord. | |
+ | |||
+ | Enfin insérer à l'intérieur de chaque jeton un aimant en faisant attention à ce qu'il ne rentre pas en contact avec les broches de la résistance. A caler ou coller. ATTENTION à la polarité pour s'assurer que le jeton soit bien attiré par l'aimant qui sera sous le tableau de bord, et attention à ce que tous les aimants de vos jetons soient oienté dans la même polarité. | ||
+ | |||
+ | [[Image:Jeton3.JPG|225px]] [[Image:Jeton1.JPG|225px]] [[Image:Jeton2.JPG|225px]] | ||
== '''Fabrication du tableau de bord''' == | == '''Fabrication du tableau de bord''' == | ||
- | 1 – Fabrication du | + | [[Image:Boitier.JPG|450px]] |
- | Pour la version « découpe laser », voici le patron de découpe à télécharger ici. Les pièces sont faites pour s’emboîter, fixer le tout avec le la colle à bois. Ne pas coller le fond (!). 4 coins peuvent être imprimés pour protéger le boitier et le refermer sans colle. | + | |
+ | ===1 – Fabrication du boîtier=== | ||
+ | Pour la version « découpe laser », voici le patron de découpe à télécharger ici [ Lien]. Les pièces sont faites pour s’emboîter, fixer le tout avec le la colle à bois. Ne pas coller le fond (!). 4 coins peuvent être imprimés pour protéger le boitier et le refermer sans colle. | ||
Sans découpeuse laser, la solution la plus pratique et rigide reste un boîtier en bois. | Sans découpeuse laser, la solution la plus pratique et rigide reste un boîtier en bois. | ||
Ligne 146 : | Ligne 263 : | ||
Pour les trous pour insérer les jetons, cela dépendra de la dimension de vos jetons et de leur forme, il est plus facile dans ce cas de partir sur une solution de jeton en bouchons de bouteilles. | Pour les trous pour insérer les jetons, cela dépendra de la dimension de vos jetons et de leur forme, il est plus facile dans ce cas de partir sur une solution de jeton en bouchons de bouteilles. | ||
- | |||
- | 3 – Fabrication de la surface de détection | + | ===2 – Avec l'aide d'une perceuse et de petites mèches=== |
+ | ...percer la face supérieur et un bord de façon à insérer votre interrupteur et votre bouton poussoir de validation. | ||
+ | |||
+ | [[Image:Boitier2.JPG|300px]] | ||
+ | |||
+ | |||
+ | ===3 – Fabrication de la surface de détection=== | ||
+ | Il vous faut une planche de dimension inférieur à votre face supérieure (moins l’épaisseur des faces latérales). Fixer à l'aide de serre joints la planche à votre face supérieure de manière à pouvoir percer de part en part les 2 plaques en vue d'y insérer des vis/boulons qui à terme tiendrons les 2 plaques solidement ensemble. De la même manière, percez les orifices destinés à recevoir les LED de validation (ces led serviront à valider la bonne insertion des jetons dans leur orifices). | ||
+ | |||
+ | [[Image:Boitier3.JPG|300px]] | ||
A l'aide d'un crayon, dessinez le pourtour des ouvertures destinées à vos 9 jetons. Ces marques vous permettrons de définir le parcours de vos bandes de cuivre avec précision. | A l'aide d'un crayon, dessinez le pourtour des ouvertures destinées à vos 9 jetons. Ces marques vous permettrons de définir le parcours de vos bandes de cuivre avec précision. | ||
Retirez les serres joints, séparer les 2 plaques. Collez les bandes de cuivre adhésives pour former un circuit comme le modèle suivant. Les bandes doivent être positionnées à cheval sur les 2 faces. | Retirez les serres joints, séparer les 2 plaques. Collez les bandes de cuivre adhésives pour former un circuit comme le modèle suivant. Les bandes doivent être positionnées à cheval sur les 2 faces. | ||
- | Attention à bien positionner les bandes suffisamment proches pour permettre le contact entre les broches des résistances. | + | Attention à bien positionner les bandes suffisamment proches pour permettre le contact entre les broches des résistances. |
- | + | [[Image:Boitier4.JPG|300px]] [[Image:Boitier5.JPG|300px]] | |
- | + | ===4 – Pose des LED=== | |
- | + | Répartir les LED comme dans l'exemple illustré ci-dessous. Plier la broche – de chaque LED et la souder à la bande de cuivre adhésive longue. | |
- | + | [[Image:Boitier7.JPG|225px]] [[Image:Boitier9.JPG|225px]] [[Image:Boitier8.JPG|225px]] | |
- | + | ===5 – Pose des Nappes/câbles et des aimants=== | |
+ | C'est la partie laborieuse du projet (!). Pour ce câblage nous avons fait le choix de réutiliser de vielles nappes de connexions de disques durs pour limiter la place prise par les câbles dans le boîtier et simplifier les connexions à l'Arduino Mega. Ce n'est pas une obligation et vous pouvez également effectuer le câblage avec de simples câbles à extrémités mâles type wire. | ||
+ | Quelques compétences ou entraînement en soudure vous seront utiles pour cette étape...Voici le schéma de montage et quelques photos : | ||
- | + | [[Image:Boite_bb.png|600px]] | |
- | + | ||
- | + | ||
- | + | [[Image:Boitier11.JPG|225px]][[Image:Boitier13.JPG|225px]][[Image:Boitier14.JPG|225px]] | |
- | + | ||
- | + | Enfin coller les aimants à l'aide d'un pistocole (ATTENTION à la polarité ! il faut que les jetons soient attirés par le tableau de bord et non l'inverse...) | |
+ | [[Image:Boitier15.JPG|300px]] | ||
+ | |||
+ | ===6 – Montage de l'ESP8862=== | ||
+ | Comme pour la voiture, nous avons préféré créer une mini-plaque de montage dans laquelle insérer l'ESP8862 du tableau de bord. Le tout se raccorde à l'Arduino Méga selon le schéma de montage vu plus haut. Voici les photos du montages : | ||
+ | |||
+ | [[Image:Boitier16.JPG|300px]] [[Image:Boitier17.JPG|300px]] | ||
+ | |||
+ | ===7 – Raccord de interrupteur et de l'alimentation=== | ||
+ | Rien de bien nouveau au schéma de montage ci-dessus. Une photo du montage final. Nous avons collé à l'aide d'adhésif double face une plaque de mousse afin e caler les composants à l'intérieur du boitiers. | ||
+ | |||
+ | [[Image:Boitier18.JPG|500px]] | ||
+ | |||
+ | ===8 – Téléversement des programmes=== | ||
+ | Voici les 2 programmes à téléverser dans les cartes : | ||
+ | |||
+ | * Programme de la carte Arduino Mega : [http://wikidebrouillard.org/images/a/a7/Board_mega_debrouillarduino.ino Lien] | ||
+ | * Programme de la carte ESP8862 : [http://wikidebrouillard.org/images/0/00/Board_esp_Debrouillarduino.ino Lien] | ||
+ | |||
+ | ===9 – Fermeture du boitier=== | ||
+ | Coins de fermeture à télécharger et imprimer : Lien | ||
+ | |||
+ | ===10 – tests :=== | ||
+ | [[Image:Boitier19.jpg|600px|center]] | ||
== '''Contenus pédagogiques associés''' == | == '''Contenus pédagogiques associés''' == | ||
+ | [[Image:Classcode.png|150px]] | ||
+ | |||
+ | En plus des ressources accessibles sur le Wikidébrouillard, nous vous invitons à découvrir '''le site Pixees de l'Inria''', rassemblant des centaines de contenus pédagogiques autour de l'informatique et le numérique : | ||
+ | *Pixee[https://pixees.fr Lien] | ||
+ | *Dont des activités pour les plus jeunes, ici : [https://pixees.fr/des-ressources-pour-le-scolaire-niveau-primaire-gs-cp-ce1/ Lien] | ||
+ | |||
+ | Si vous souhaitez vous former à la médiation numérique, nous vous invitons également à découvrir la '''formation Class Code''', un mooc hybride proposant gratuitement des cours en lignes (menant à une certification) et organisant sur tout le territoire des rencontres autour du mooc pour partager ses difficultés, ses astuce et se former à plusieur en présentiel : [https://pixees.fr/classcode/ Lien] | ||
=='''Expériences sur Wikidébrouillard'''== | =='''Expériences sur Wikidébrouillard'''== | ||
- | |||
- | == ''' | + | ===Les ressources=== |
- | + | *[http://wikidebrouillard.org/index.php?title=Animer_une_premiere_s%C3%A9quence_Arduino_avec_des_enfants Animer un premier atelier Arduino] | |
+ | *[http://wikidebrouillard.org/index.php?title=Antis%C3%A8che_arduino Antisèche Arduino] | ||
+ | *[http://wikidebrouillard.org/index.php?title=Arduino_(ressources_web) Arduino sur internet] | ||
+ | *[http://wikidebrouillard.org/index.php?title=Arduino_:_Le_cahier_de_programmation Arduino, le cahier de programmation] | ||
+ | *[http://wikidebrouillard.org/index.php?title=Petit_Bot_un_robot_controlable_en_Wifi La page du Petit Bot] | ||
+ | |||
+ | == '''Le devenir du projet, évolution''' == | ||
+ | Nous travaillons à faire évoluer le projet. Dans l'objectif de démocratisation de l'outil et sa simplification nous cherchons à nous affranchir totalement tu tableau de bord. De maintenir l'idée de programmation tangible mais de s'orienter sur un système de reconnaissance visuelle via webcam ou appli smartphone. Si le projet vous intéresse, n'hésitez pas à nous contacter. | ||
=='''Catégories'''== | =='''Catégories'''== | ||
- | |||
- | |||
- | |||
[[Catégorie:Orthographe et style à corriger]] | [[Catégorie:Orthographe et style à corriger]] | ||
[[Catégorie:Contenus à développer]] | [[Catégorie:Contenus à développer]] | ||
[[Catégorie:Fiche à Valider]] | [[Catégorie:Fiche à Valider]] | ||
[[Catégorie:expérience]] | [[Catégorie:expérience]] | ||
+ | [[Catégorie:Arduino]] | ||
+ | [[Catégorie:Électronique]] | ||
+ | [[Catégorie:Électrokids]] | ||
+ | [[Catégorie:Pédagogie du numérique]] | ||
+ | [[Catégorie:Fabrication Numérique]] | ||
+ | [[Catégorie:Informatique]] |
CET ARTICLE EST EN COURS D’ÉBAUCHE
ATTENTION : veuillez bien prendre connaissance de l'ensemble du tutoriel avant de vous lancer dans la construction de ce projet. Il y de nombreux points de vigilance et d'anticipation de matériel pour éviter de se retrouver bloquer ou d'avoir à recommencer une manip. La construction du robot demande également quelques compétences de base en Arduino (savoir téléverser un programme) et en électronique, être à l'aise avec les soudures et une connaissance des connaissances sommaires des composants. Nous nous tenons disponible à cette adresse : d.cliclab@debrouillonet.org pour toute question et n'hésitez pas pour ceux qui se lancerons dans cette construction à nous envoyer des photos ou documentation de vos versions ! Ce tuto n'est qu'une première ébauche, n'hésite pas à nous transmettre vos retours, des manques, des incompréhensions, des conseils…
Le Tableau de bord Débrouillarduino est un outils permettant d'initier la programmation auprès de très jeunes publics (à partir de 3 ans), sous forme ludique, par programmation tangible.
Le projet part des questions : Y-a-t-il un âge pour commencer à programmer ? Pour piloter son premier robot ?
Le robot Débrouillarduino propose une solution à ces questions grâce à son tableau de bord permettant de programmer un robot, y compris sans savoir lire à l'aide de blocs de directions reconnus et interprétés.
Ce robot est inspiré du projet Primo Cubetto (https://www.primotoys.com/). L'objectif étant de reproduire le dispositif, d'une part en vue d'une évolution du robot (rajout de fonctionnalités, évolution du système de tableau de bord) et dans un but de démocratisation auprès de tous c'est à dire :
- L'utilisation de matériels plus simples, accessibles et moins coûteux
- La construction minimaliste et simplifiée
Afin de permettre à tout enseignant, médiateur numérique, parent, plus globalement toute personne curieuse et un minimum bidouilleuse de pouvoir en construire un facilement et pour moins de 100 euros (30 euros pour le robot téléguidé, 70 euros pour le tableau de bord).
L'ensemble du dispositif repose sur 3 éléments :
- Le robot téléguidé ou « voiture », dérivée du projet « Petit Bot » : [Lien vers la page wikidébbrouillards du Petit Bot]
- Le tableau de bord dans lequel viennent s'insérer les jetons de direction et transmettant au robot téléguidé les instructions à suivre.
- Les jetons à imbriquer dans le tableau de bord.
Bonus si vous être proche d'un fablab ou très bien équipés (https://www.fablabs.io/labs) :
IDE Arduino, gratuit (dernière version sur le site officiel : https://www.arduino.cc/en/Main/Software) Qui vous permettra de téléverser les programmes dans les cartes Arduino Mega et ESP8862.
Les manipulations de ces 2 cartes ne sont pas détaillées dans ce tutoriel. Si vous êtes novice dans le sujet, nous vous conseillons de vous référer à un des nombreux tutoriels d'initiation sur la toile :
Nous sommes parti du projet de robot Petit Bot et avons apporté quelques modifications. Vous pouvez suivre le tuto de la page wikidébrouillard du petit bot pour reproduire le robot : Lien
Vous pouvez personnaliser votre chassis et vos roues. Si vous ne disposez pas d'imprimante 3D ou de Fablabs à proximité, pas d'inquiétude vous pourrez toujours fabriquer un chassis de bonne fortune comme dans l'exemple de la page du Petit Bot. Si vous disposez d'une imprimante 3D, il existe une multitude d'exemples de chassis sur des sites comme Thingiverse, pourquoi ne pas en faire un à partir de deux ?
à cela quelques précisions :
/** * This file contains code related to the Débrouillarduino project. * * Read an instruction from WiFi then execute it. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Ce fichier contient du code lié au projet Débrouillarduino. * * Lit une instruction à travers le WiFi puis l'exécute. */ #include <ESP8266WiFi.h> #include <dummy.h> // ESP8266 library #include <Servo.h> const char ssid[] = "Debrouillarduino"; const char password[] = "1234567890"; WiFiServer server(80); /** * Servos initial positions. * Positions initiales des servos. */ const uint8_t INIT_SERVO_LEFT = 90; const uint8_t INIT_SERVO_RIGHT = 90; // /** * Since servos are disposed symmetrically they need to have opposite values. * Puisque les servos sont disposés symétriquement ils doivent avoir des valeurs opposées. */ const uint8_t SERVO_LEFT_FORWARD = 180; const uint8_t SERVO_LEFT_BACKWARD = 0; const uint8_t SERVO_RIGHT_FORWARD = 0; const uint8_t SERVO_RIGHT_BACKWARD = 180; Servo servo_left; Servo servo_right; void setup() { Serial.begin(115200); /** * Create a WiFi access point. * Créé un point d'accès WiFi. */ WiFi.mode(WIFI_AP); WiFi.softAP(ssid, password, 7); server.begin(); servo_left.attach(D5); servo_right.attach(D6); /** * Initialize servos's default position. * Initialise la position par défaut des servos. */ servo_left.write(INIT_SERVO_LEFT); servo_right.write(INIT_SERVO_RIGHT); } /** * Waits until a client connect then retrieves the command through * url and execute it. * Finally, send the HTTP code 200 to the client. * * Attend qu'un client se connecte puis récupère la commande à travers * l'url et l'exécute. * Enfin, envoie un code HTTP 200 au client. */ void loop() { WiFiClient client = server.available(); if (!client) { return; } String req = client.readStringUntil('\r'); client.flush(); if (req.indexOf("/s") != -1) { // Stop servo_left.write(INIT_SERVO_LEFT); servo_right.write(INIT_SERVO_RIGHT); } else if (req.indexOf("/a") != -1) { // Forward / Avancer servo_left.write(SERVO_LEFT_FORWARD); servo_right.write(SERVO_RIGHT_FORWARD); } else if (req.indexOf("/r") != -1) { // Backward / Reculer servo_left.write(SERVO_LEFT_BACKWARD); servo_right.write(SERVO_RIGHT_BACKWARD); } else if (req.indexOf("/g") != -1) { // Left / Gauche servo_left.write(INIT_SERVO_LEFT); servo_right.write(SERVO_RIGHT_FORWARD); } else if (req.indexOf("/d") != -1) { // Right / Droite servo_left.write(SERVO_LEFT_FORWARD); servo_right.write(INIT_SERVO_RIGHT); } client.print("HTTP/1.1 200 OK\r\n"); delay(100); Serial.println("Client disconnected"); client.flush(); }
Nous avons notamment ramené les branchements sur une unique plaque d'essai dans laquelle l'ESP8862 vient s'imbriquer pour simplifier les branchements, le montage et démontage du dispositif au besoin.
Si vous disposez d'une imprimante 3D, vous pouvez télécharger et imprimer ces modèles de jetons sur la page de l'auteur : Lien. Ou à ce lien : Télécharger
Vous pouvez en imprimer autant que de jetons que vous souhaitez utiliser avec votre tableau de bord (mais vous serez limité à 9 ordres consécutifs sur le tableau de bord).
Définissez un code couleur pour chaque direction. Dans chaque type de jeton, vous devrez insérer une résistance d'une valeur bien précise Nous avons choisi ce code couleur :
Si vous ne disposez pas d'imprimante 3D, pas de problème !Pourquoi ne pas tester avec des bouchons de boissons gazeuses de différentes couleurs. L'avantage du modèle à imprimer, ou le point de vigilance pour la version « récup » est d'avoir un système de détrompeur empêchant toute mauvaise orientation du jeton dans le tableau de bord.
Pour la pose des résistances, ces dernières doivent être insérées à l'intérieur des jetons. Leur 2 broches des résistances doivent traverser a face inférieur des jetons, espacés dans notre cas de 7,5mm et repartent à l'intérieur. ATTENTION, les 2 broches d'une résistance ne doivent jamais entrer en contact sous peine de créer un court circuit d’empêcher la reconnaissance par le tableau de bord.
Enfin insérer à l'intérieur de chaque jeton un aimant en faisant attention à ce qu'il ne rentre pas en contact avec les broches de la résistance. A caler ou coller. ATTENTION à la polarité pour s'assurer que le jeton soit bien attiré par l'aimant qui sera sous le tableau de bord, et attention à ce que tous les aimants de vos jetons soient oienté dans la même polarité.
Pour la version « découpe laser », voici le patron de découpe à télécharger ici [ Lien]. Les pièces sont faites pour s’emboîter, fixer le tout avec le la colle à bois. Ne pas coller le fond (!). 4 coins peuvent être imprimés pour protéger le boitier et le refermer sans colle.
Sans découpeuse laser, la solution la plus pratique et rigide reste un boîtier en bois. Voici les dimensions de notre boîtier : minimum 260x170x50mm, épaisseur du bois : 3mm Pour les trous pour insérer les jetons, cela dépendra de la dimension de vos jetons et de leur forme, il est plus facile dans ce cas de partir sur une solution de jeton en bouchons de bouteilles.
...percer la face supérieur et un bord de façon à insérer votre interrupteur et votre bouton poussoir de validation.
Il vous faut une planche de dimension inférieur à votre face supérieure (moins l’épaisseur des faces latérales). Fixer à l'aide de serre joints la planche à votre face supérieure de manière à pouvoir percer de part en part les 2 plaques en vue d'y insérer des vis/boulons qui à terme tiendrons les 2 plaques solidement ensemble. De la même manière, percez les orifices destinés à recevoir les LED de validation (ces led serviront à valider la bonne insertion des jetons dans leur orifices).
A l'aide d'un crayon, dessinez le pourtour des ouvertures destinées à vos 9 jetons. Ces marques vous permettrons de définir le parcours de vos bandes de cuivre avec précision. Retirez les serres joints, séparer les 2 plaques. Collez les bandes de cuivre adhésives pour former un circuit comme le modèle suivant. Les bandes doivent être positionnées à cheval sur les 2 faces. Attention à bien positionner les bandes suffisamment proches pour permettre le contact entre les broches des résistances.
Répartir les LED comme dans l'exemple illustré ci-dessous. Plier la broche – de chaque LED et la souder à la bande de cuivre adhésive longue.
C'est la partie laborieuse du projet (!). Pour ce câblage nous avons fait le choix de réutiliser de vielles nappes de connexions de disques durs pour limiter la place prise par les câbles dans le boîtier et simplifier les connexions à l'Arduino Mega. Ce n'est pas une obligation et vous pouvez également effectuer le câblage avec de simples câbles à extrémités mâles type wire. Quelques compétences ou entraînement en soudure vous seront utiles pour cette étape...Voici le schéma de montage et quelques photos :
Enfin coller les aimants à l'aide d'un pistocole (ATTENTION à la polarité ! il faut que les jetons soient attirés par le tableau de bord et non l'inverse...)
Comme pour la voiture, nous avons préféré créer une mini-plaque de montage dans laquelle insérer l'ESP8862 du tableau de bord. Le tout se raccorde à l'Arduino Méga selon le schéma de montage vu plus haut. Voici les photos du montages :
Rien de bien nouveau au schéma de montage ci-dessus. Une photo du montage final. Nous avons collé à l'aide d'adhésif double face une plaque de mousse afin e caler les composants à l'intérieur du boitiers.
Voici les 2 programmes à téléverser dans les cartes :
Coins de fermeture à télécharger et imprimer : Lien
En plus des ressources accessibles sur le Wikidébrouillard, nous vous invitons à découvrir le site Pixees de l'Inria, rassemblant des centaines de contenus pédagogiques autour de l'informatique et le numérique :
Si vous souhaitez vous former à la médiation numérique, nous vous invitons également à découvrir la formation Class Code, un mooc hybride proposant gratuitement des cours en lignes (menant à une certification) et organisant sur tout le territoire des rencontres autour du mooc pour partager ses difficultés, ses astuce et se former à plusieur en présentiel : Lien
Nous travaillons à faire évoluer le projet. Dans l'objectif de démocratisation de l'outil et sa simplification nous cherchons à nous affranchir totalement tu tableau de bord. De maintenir l'idée de programmation tangible mais de s'orienter sur un système de reconnaissance visuelle via webcam ou appli smartphone. Si le projet vous intéresse, n'hésitez pas à nous contacter.
© Graphisme : Les Petits Débrouillards Grand Ouest (Patrice Guinche - Jessica Romero) | Développement web : Libre Informatique