Tableau de bord à programmation Tangible

De Wikidebrouillard.

Article incomplet en cours de rédaction
La vidéo "Tableau de bord à programmation Tangible"

Sommaire

Avant propos

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…

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 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.

Matériel

Pour le tableau de bord :

  • 1 Carte Arduino Mega
  • 1 Cartes ESP8266, type Wemos
  • 1 Boîtiers de 4 piles LR6
  • 4 Piles LR6 (ou équivalents rechargeables + chargeur le cas échéant)
  • Jeu de cables Wire
  • 2 Vieilles nappes de connexion de disques durs
  • 1 bouton poussoir type borne d'arcade (type façade)
  • 1 interrupteurs Switch (type façade)
  • 10 LED
  • Borniers broche mâle (4x8 broches)
  • Bande de cuivre adhésive de 0,5 cm de diamètre
  • 10 Petits aimants néodyme
  • Boitier (idéalement plaque de bois de 3mm d'épaisseur, minimum 30x70cm)
  • Jeu de résistances (1 kOhm x1, 2 kOhm x1, 100 Ohm x10)

Pour le robot téléguidé :

  • 2 Servo moteurs
  • 1 Boîtiers de 4 piles LR6
  • 4 Piles LR6 (ou équivalents rechargeables + chargeur le cas échéant)
  • 1 interrupteurs Switch (type façade)
  • Jeu de cables Wire
  • Chassis et roue(à imprimer en 3D ou réaliser avec des matériaux de récupération)

Pour les jetons :

  • Petits aimants néodyme (1 par jeton, au moins 10)
  • Jeu de résistances (8,2 kOhm x10 unités, 22 kOhm x10, 56 kOhm x10, 150 kOhm x10)

Outillages :

  • Un ordinateur (toute distribution)
  • Jeu de tourne vis, vis, perceuse, limes et outils classiques
  • Colle à bois
  • Fer à souder, fil de soudure, fil de cablage

Bonus si vous être proche d'un fablab ou très bien équipés (https://www.fablabs.io/labs) :

  • Une imprimante 3D pour la fabrication des jetons, du chassis du robot et des angles protecteurs du tableau de bord
  • Une découpeuse laser pour le boîtier du tableau de bord

Quelques liens de fournisseurs pour commander le matériel :

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 : 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): Lien

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 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 ?

  • Robot du lab : Lien
  • MiniSkybot  : Lien
  • Print Bot Rhino : Lien
  • Proto Bot : Lien

à 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). Voir exemple
  • 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
  • Une fois votre montage terminé et le code téléversé, vous pouvez tester votre Robot Téléguidé en vous connectant avec un ordinateur sur son réseau wifi « Debrouillarduino » (mot de passe : 1234567890) puis ouvrir un navigateur et vous connecter à l'adresse 192.168.4.1 dans la barre d'adresse de votre navigateur. De la même manière qu'avec le Petit Bot, vous pourrez piloter le robot avec les croix directionnelles qui s'affichent dans votre navigateur ou encore avec les flèches de votre clavier.

Code pour l'ESP du robot téléguidé


/**
 * 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.

Fabrication des jetons de direction

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 :

  • Avancer = vert = 8,2 kOhm
  • Reculer = orange = 22 kOhm
  • Tourner à Gauche = rose = 56 kOhm
  • Tourner à droite = bleu = 150 kOhm
  • 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é.

Fabrication du tableau de bord

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. 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.


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.


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).

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.

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.

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 :

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...)

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 :

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.

8 – Téléversement des programmes

Voici les 2 programmes à téléverser dans les cartes :

  • Programme de la carte Arduino Mega : Lien
  • Programme de la carte ESP8862 : Lien

9 – Fermeture du boitier

Coins de fermeture à télécharger et imprimer : Lien

10 – tests :

Contenus pédagogiques associés

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 :

  • PixeeLien
  • Dont des activités pour les plus jeunes, ici : 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 : Lien

Expériences sur Wikidébrouillard

Les ressources

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

Portail des ExplorateursWikidébrouillardLéon DitFLOGPhoto mystèreJ'ai FaitPortraitsAnnuaire
AR
É

Tableau de bord à programmation Tangible

Rechercher

Page Discussion Historique
Powered by MediaWiki
Creative Commons - Paternite Partage a l

© Graphisme : Les Petits Débrouillards Grand Ouest (Patrice Guinche - Jessica Romero) | Développement web : Libre Informatique