Boule magique avec Arduino (Open Fabriques 2023/2024)
Tuto de préparation et de suite à l'Open Fabriques du 16 mai : crée ta boule magique avec Arduino !
Sommaire
[masquer]Introduction
Cette séance permet de découvrir la programmation et la réalisation d'un montage électronique. L'objet final s'inspire des "boules magiques", qui lorsqu'on pose une question, nous propose une réponse aléatoire.
Matériel nécessaire
Par participant·e :
- une carte de programmation (D1 mini ?) et son câble d'alimentation
- une breadboard
- un servo moteur
- un bouton poussoir
- une batterie externe
- des câbles dupont
- médium ou carton de -- x -- cm
- fichier .svg pour découpeuse laser
Ce qui est préparé en amont
- ordinateurs du fablab avec Arduino IDE
- clé USB avec les fichiers ino et .svg
- ? prédécoupage de pièces ?
- de quoi customiser
Montage électronique
Simulation en ligne du montage électronique à réaliser :
Le test est réalisé avec une carte Arduino UNO mais on essaiera d'utiliser une carte D1 mini pour la réalisation finale (carte moins coûteuse et plus discrète).
Programme Arduino
Test n°2
Avec la contrainte de servos à rotation CONTINUE, j'adapte mon programme en demandant d'appuyer sur le bouton pour "lancer la roue", puis : attendre x temps (au hasard) pour s'arrêter.
J'ai choisi de faire appuyer deux fois sur l'interrupteur : une première fois pour lancer la roue, et une seconde pour l'arrêter. Lorsqu'on appuie la seconde fois, j'ai demandé dans le code d'ajouter un délai d'attente aléatoire pour faire arrêter le servo (lignes 28 à 30 du code). Ainsi, le servomoteur s'arrêter quelques secondes après avoir appuyé sur l'interrupteur.
Test n°1
Après test EN RÉEL du montage, je me rends compte que les 2 types de servomoteurs qui existent ne permettent pas d'aller aux angles voulus :
- MICRO SERVO SG90 9G : vont à des angles souhaités UNIQUEMENT entre 0 et 180°
- MICRO SERVO DM-S0090D : sont à rotation CONTINUE
Je dois revoir mon programme pour prendre en compte ces contraintes.
En principe, la bibliothèque permettant de contrôler un servo moteur est déjà comprise dans Arduino. Si elle n'y est pas, voilà un tutoriel pour installer une bibliothèque sur Arduino.
Ce programme permet de modifier l'angle du servomoteur de façon "aléatoire" lorsqu'on appuie sur le bouton. "Aléatoire", entre guillemets, car on a déterminé 6 positions dans le code, et qu'on lui demande de choisir parmi ces 6 options à chaque fois. Un léger délai est donné au cycle du code afin d'éviter les tressautements du servo.
Les lignes du code sont commentées afin d'être plus compréhensible.
Fabrication de la "boule magique"
La boule magique originale ressemble à cela :
Ce qu'on va créer aura plutôt l'air d'une "roue magique".
Circuit électronique
Boîte et roue
On a besoin de créer un boîtier où cacher notre circuit électronique, et une roue avec une flèche qui pointera la réponse donnée !
Voici une modélisation faite sur Tinkercad de la roue que l'on va fabriquer :
Ici, le fichier .svg pour découper à la laser le boîtier, la roue et la flèche.
Pour une roue à moindre coûts, on la réalisera en carton, et on imprimera sur papier les réponses, qu'on collera proprement sur la roue.
Il est aussi possible, si on a davantage de temps, de la réaliser "en dur" (médium ou contreplaqué), et de graver à la laser les réponses, voire même de les réaliser à la découpeuse vinyle !