123Tourelle

Auteur avatarChristophe M | Dernière modification 10/02/2022 par 2XCs

Introduction

Réalisation d'une Bentolux dans le cadre de la formation IMT, à Alès - Initiation à la Fabrication Numérique.


Il s'agit de réaliser une Bento qui aura plusieurs fonctionnalités :

  • Un mode "Normal" avec affichage de la température et de la pression atmosphérique
  • Un mode "Détection" qui indiquera sur les 10 dernières secondes (via la LED Ring) si un mouvement a été détecté et affichera un message si un certain niveau sonore est dépassé
  • Un mode "Jeu", basé sur le principe du jeu "1, 2, 3 Soleil", dans lequel il faudra non pas toucher la personne qui dit "1, 2, 3, Soleil !" mais faire "exploser" la tourelle via un détonateur (qu'il faudra préalablement activer par branchement de 2 fils) pendant une phase de mouvement (lorsque la tourelle est retournée). Ceci, sans se faire repérer pendant les phases d'immobilité (tourelle face au joueur). 4 niveaux de jeu, de difficultés croissantes, sont codés (utilisation de 1 à 3 capteurs de mouvements, tourelle plus rapide, angles de rotation différents et aléatoires, phases de mouvement plus ou moins raccourcies, pertes plus ou moins importantes de boucliers ou d'énergie). A chaque fois que le joueur se fait repérer, il perd des "boucliers" (1 à 3, selon le mode de jeu et le nombre de capteurs l'ayant détecté) et une perte d'énergie (plus ou moins aléatoire et selon le niveau et de plus en plus importante à mesure que le nombre de boucliers diminue).

Le joueur gagne s'il faire exploser la tourelle pendant une phase de mouvement.

Il perd s'il n'a plus de bouclier (sauf niveau 1) ou plus d'énergie (dans tous les modes).

Étape 1 - Découpe laser et collage des éléments de la Bento

Dans le cadre de notre formation, les éléments bois nous ont été donnés prédécoupés. Dans les fichiers joints, le fichier "123Tourelle_Fichier_decoupe_bois_BENTO.pdf" indique les découpes à réaliser.


Concernant le panneau central du second niveau (celui de la LED Ring) de la Bento, il a été découpé en séance afin de voir les possibilités d'une découpeuse laser : découpe laser (double passe) de la façade et personnalisation de celle-ci par gravure de motifs (simple passe, passe rapide et puissance laser diminuée).


Le découpage laser s'effectue selon les directives des fichiers GCode. Ces fichiers ont étés générés via Inkscape et son plugin "J Tech Photonics Laser Tool", après avoir converti les contours de l'image en chemins. Les fichiers utilisés dans Inkspace sont joints à ce tutorial (fichiers .svg)


Tous ces éléments bois sont à coller (avec colle bois de préférence - ou pistolet à bâtonnet de colle), selon le guide montage Bentolux (voir guide de montage fourni).



Étape 2 - Impressions 3D

3 impressions 3D sont à réaliser :


  • Le cache écran, élément nécessaire à la fixation de l'écran sur la Bento (fichier stl joint aux fichiers)
  • La tourelle, élément semi décoratif du 3eme étage, car il permet aussi la visualisation de l'état de la Bento pendant le jeu : phase de mouvement (tourelle retournée) ou d'immobilisation (tourelle face à soi). Lien ThinkerCAD : https://www.tinkercad.com/things/3wK0G7hVzjL
  • Le détonateur, élément essentiellement décoratif /fun, car il pourrait être remplacé par un simple bouton pressoir, plus fiable et moins soumis à controverse (explication plus bas dans ce tutorial). Lien ThinkerCAD : https://www.tinkercad.com/things/21ObtVLrXG0-detonateur


Le cache écran a été réalisé avec le logiciel de modélisation 3D Sketchup, qui permet la réalisation de formes complexes.

La tourelle et le détonateur ont été réalisés avec ThinkerCAD 3D, qui permet une prise en main et des réalisations simples et rapides d'objets 3D pouvant être réalisés avec des formes basiques (pavé, cylindres, dôme, ...).

Les fichiers 3D utilisés sont joints au format STL pour l'impression 3D.

L'impression de la tourelle nécessite la création de supports pour la réalisation du canon ainsi que la tenue du dôme, un travail de nettoyage des supports est donc à prévoir.


Étape 3 - Préparation au câblage électronique

Avant de procéder au câblage des divers composants, des étapes de préparation de la Bento sont nécessaires :


  • Décoration/peinture de la Bento (facultatif mais fort appréciable pour la valorisation de votre travail et l'attrait pour travailler dessus). Voir étape 6 pour plus de détail de ce qui a été fait au niveau décoratif.
  • Fixation de l'Arduino sur la base de la Bentolux ; attention, les trous de l'Arduino ne correspondaient pas aux trous de la plaque de bois, un perçage a été nécessaire
  • Fixation de l'écran sur le cache puis fixation de l'écran sur la Bento par collage
  • Découpe de la base de la Bento afin de pouvoir insérer la fiche du chargeur fourni avec petite scie et cutter (pas d'ouverture pour la fiche chargeur par défaut)
  • Découpe rectangulaire du haut du second étage afin de créer un espace pour pouvoir insérer la base du servo moteur. Cette découpe a été effectuée par perçage puis scie et cutter. Elle pourrait aussi être effectuée par découpage laser (création d'un nouveau GCode ou ajoutée au modèle d'origine de découpe de la Bento). Autre solution, la réalisation de ce "trou" par fraisage.
  • Perçage au forêt bois sur le haut du second étage afin d'insérer un bouton poussoir
  • Réalisation des soudures (ajout de fils électriques, si nécessaire ; par exemple pour la LED RING ou les capteurs de mouvement) de tous les composants requis pour la réalisation et donnés dans la liste des matériels du tutorial.
La LED RING est située juste au-dessus de l'écran ; du coup lors des soudures, réfléchissez bien à comment éviter la sortie des 4 fils de l'écran en amont (personnellement j'ai soudé avec un angle de 90° par rapport à la LED RING et fait passer mes fils par le centre de la boite)
La soudure des LED RING pose souvent problème aux débutants (casse fréquente des fils). Cette difficulté peut être réduite par la soudure de broches (plus solides) au lieu de souder directement les fils sur la LED RING
La LED RING a un sens, la LED N°0 est normalement indiquée par une petite étoile à l'arrière, pensez-y avant de la fixer




Étape 4 - Réalisation du câblage électronique

Pour l'organisation et une bonne répartition des composants (et fils associés), prévoir de positionner :


  • Au premier étage de la Bento :
    • Capteur humidité/pression
    • Ecran OLED
    • Interrupteur on/off
    • Potentiomètre
  • Au second étage :
    • Raccord de type Wago pour l'alimentation électrique
    • Wago pour les liaisons à la masse
    • Led Ring
    • Capteur sonore
  • Au 3eme étage
    • Les 3 capteurs de mouvement
    • Le servo moteur
    • Le capteur capacitif
    • Et/ou le bouton pressoir

Tous ces éléments sont à raccorder selon le plan de câblage joint (NB: les photos jointes ne devraient pas vous être de grand secours mais sait-on jamais...)

Le choix technique pour les capteurs de mouvement s'est porté vers les capteurs Micro-ondes.

Les capteurs IR ont étés considérés comme trop limités et trop aléatoires, car leur portée dépasse rarement 5 mètres et sont trop sensibles à la luminosité.

Les capteurs MOO présentent l'inconvénient de ne pas être directionnels (couvrent 360°) et ne permettent pas de détecter qui a bougé. L'idée ayant convergé vers un jeu convivial et collaboratif (tout le monde gagne ou tout le monde perd - on jouable seul), cela ne pose pas de problème. Ils ont ensuite l'avantage de disposer d'une bonne fiabilité de détection, de pouvoir repérer le joueur quel que soit sont angle "d'attaque", de pouvoir être utilisé de jour, comme de nuit, en intérieur ou extérieur, de disposer d'une très bonne sensibilité et d'un portée plutôt longue (8 à 9m) pour un cout relativement accessible (- de 2€/capteur).

Evitez d'utiliser la breadboard pour le câblage final, celle-ci est volumineuse et ne devrait servir qu'à la réalisation de tests
Raccourcissez les fils en n'oubliant pas de se laisser une marge si l'on doit ouvrir la Bento pour investiguer une panne/un défaut ou pour faire une amélioration (ajout composant, ...) et évitez les entrelacements pour faciliter l'insertion des nombreux fils dans la Bento et sa maintenance
Au dernier étage, un capteur capacitif et un bouton poussoir ont été installés mais il est possible de n'installer qu'un seul des deux : le bouton pressoir peut être installé sous le détonateur et l'appui sur celui-ci actionnerai le bouton poussoir mécaniquement (les fils présents sur le détonateur seraient alors purement décoratifs cependant). Cette solution est plus correcte (d'un point de vue électronique) que l'utilisation du capteur capacitif.

L'utilisation du capteur capacitif est fonctionnelle mais plus soumise à controverse d'un point de vue électronique (mais utilisation intéressante dans le cadre de la formation), car il fonctionne grâce à une astuce : un fil électrique a été largement dénudé des deux côtés (10 cm de chaque environ) : un de ces côté a été enroulé en spirale et collé avec ruban adhésif sur le capteur capacitif afin de créer une surface conductrice suffisamment importante contre le capteur. L'autre côté largement dénudé est enroulé autour du levier du détonateur. L'appui avec le doigt sur le détonateur fait contact avec le fil du levier, information qui est transférée grâce au fil vers le capteur qui passe ainsi actif. Cette méthode est donc aussi moins fiable de celle mécanique du bouton poussoir. Evitez de jouer dehors, en hiver, avec vos moufles, il y a fort à parier que ça ne marchera pas avec le capteur capacitif ! Utilisez le bouton poussoir pour les puristes et la fiabilité dans le temps ou le capacitif pour le fun de devoir raccorder le câblage du fils pour pouvoir faire exploser la tourelle (après le système de raccord de fil peut facilement s'intégrer avec la solution du bouton poussoir).

Si vous ne savez jamais vous décidez, faites comme moi, installez les deux...


Étape 5 - Code Arduino

Code Arduino commenté en fichiers joints ; voir le code pour les détails (fichier 123Tourelle_IMT_Bento_123Soleil.ino)

Le programme nécessite l'installation de plusieurs librairies Adafruit (voir lignes "include"), pensez à les installer
Le code comprend toute une mécanique pour sélectionner le mode via le potentiomètre. L'utilisation du potentiomètre a été essentiellement choisie pour les besoins de la formation (mais apporte aussi un feeling plus agréable pour ma part) ; cependant un simple bouton poussoir ou capteur capacitif aurait été plus adapté et plus précis.

La vérification de la victoire du joueur pourrait être améliorée (plus propre) par l'utilisation des interruptions (bouton poussoir ou récepteur capacitif), au lieu de tester dans une boucle. Cependant, côté ressenti utilisateur, peu de différence à prévoir.
Le code occupe plus de 90% de la mémoire de l'Arduino. Des actions ont du être effectuées pour réduire l'impact mémoire : chaines de caractères mises dans mémoire intégrée à l'Arduino, suppression de quelques animations plus ou moins superflues, suppression de certains "define", suppression de tous les messages de type Serial.print

Pour éviter les "tremblements" du servo, celui-ci est activé (fonction "attach") à chaque besoin, puis désactivé ("detach") lorsque l'on n'en a plus besoin immédiatement




Étape 6 - Mise en place des décors et du détonateur

  • Peintures de la Bento : utilisation d'une peinture acrylique avec les couleurs rouge, orange et jaune. Pour donner l'aspect un peu métal, usé (voir un peu sale), utilisation d'un peinture à l'huile "bleu de nuit" (quelques coups de pinceaux), puis nouvelle couche d'acrylique : la peinture à l'huile ne peut pas être recouverte par l'acrylique et ressort par dessus, par "tâches" floues
  • Décoration de la Bento et de la tourelle par rubans adhésifs (multiples découpes nécessaires pour faire le dôme de la tourelle)
  • Palissade autour de la tourelle : carton sur lequel j'ai collé des piques en bois pour faire des brochettes en cuisine, coupées grossièrement
  • Barrière extérieure : vis et/ou baguette chinoise coupée en morceau dans les trous déjà existant de la Bento et ruban adhésif décoratif entre ces "poteau"
  • Pile électrique usagée + ruban adhésif utilisé en électricité pour cacher la marque et n'afficher que ce que je voulais faire apparaitre, qui peut jouer le rôle de la citerne que le détonateur doit faire exploser


  • Détonateur : décoré par ruban rouge utilisé en électricité + ruban adhésif décoratif. Sous le détonateur est positionné le capteur capacitif. Un câble électrique, dénudé sur une dizaine de centimètre de chaque côté est roulé (style bobine) et collé sur ce capteur capacitif d'un côté, sort de dessous le détonateur. L'autre côté du fils dénudé (10 cm aussi environ) est entouré autour de l'actionneur du détonateur afin de faire "contact" lorsque le joueur appui sur le détonateur. Le petit câble du détonateur est donc à la fois décoratif et fonctionnel. Sous le détonateur est positionné un ressort ; un écrou est fixé au milieu de la tige du détonateur pour pouvoir "coincer" le ressort. Le détonateur est ensuite collé sur le capteur capacitif (et donc au-dessus du câble dénudé mis en place).



Étape 7 - Mise en route et manuel d'utilisation

  • Appuyez sur le bouton "ON" :-)
  • La tourelle effectue un mouvement vif et se met lentement en position initiale, fading des LED et affichage d'une demande de sélection du mode voulu
  • Le potentiomètre permet de sélectionner le mode : Normal, Détection, 123 Soleil niveau 1, 2, 3 ou Poulpe (Squid). Si l'utilisateur reste plus de 2 secondes sans changer de mode, on considère qu'il a fait son choix. On affiche une animation LED et on exécute le mode correspondant.
  • A tout moment, on peut faire bouger le potentiomètre vers une autre valeur, la Bento retourne en mode initial et renvoi une demande de sélection du mode
  • Mode Normal : Affichage de la température, pression, altitude (pas particulièrement fiable) et taux d'humidité. Ce mode reste actif temps que l'utilisateur de demande pas un changement de mode.
  • Mode Detect (Détection) : Affichage d'information de détection de mouvement : chaque seconde, une LED est allumée :
    • Vert si aucun mouvement (+ affichage message à l'écran)
    • Jaune si un seul capteur a détecté un mouvement (+message écran)
    • Orange si deux capteurs ont détecté un mouvement (+message écran)
    • Rouge si les trois capteurs ont détecté un mouvement (+message écran)
    • La LED suivante est éteinte pour préparer le futur résultat de détection et indiquer à l'utilisateur ou se situera la prochaine information de détection
    • Cela permet de garder un historique visible des 10/11 dernières secondes via la couleur des LEDs
    • Ce mode reste actif temps que l'utilisateur de demande pas un changement de mode.


  • Jeu 1,2,3 Soleil :
    • Niveau 1 : utilisation d'un seul capteur de détection, perte d'un seul bouclier (Shield) et élimination uniquement lorsque l'énergie est à zéro
    • Niveau 2 : utilisation des 3 capteurs mais le joueur n'est considéré détecté que si au moins 2 capteurs sont "HIGH". Vitesse identique mais angle de rotation de la tourelle et durée de la phase de mouvement plus courts (en moyenne car ils sont aléatoires). Perte de 1 ou 2 boucliers et perte d'énergie plus importante. La perte de tous les boucliers ou de l'énergie met fin à la partie.
    • Niveau 3 : utilisation des 3 capteurs et détection dès le premier capteur "HIGH", perte de 1 à 3 boucliers selon nombre de capteurs "HIGH", perte d'énergie plus importante, vitesse plus rapide, angles de rotation et phases de mouvement encore plus courtes
    • Niveau 4 (Squid / Poulpe) : idem niveau 3 + perte d'énergie et boucliers plus importants. Angles de rotation et phases de mouvement encore plus courtes et possibilité de feintes de retournement de la tourelle
    • Détection : démarre 2 secondes et affichage d'une éventuelle détection après retour à la position initiale de la tourelle. Cependant la détection est bien active dès le retour en position initiale de la tourelle (à 100ms près) - et cela rajoute un peu de suspense de savoir si on a été détecté pendant l'attente du résultat. Ensuite, pendant 3s, la détection est immédiate. La tourelle se retourne à nouveau ensuite.
    • Fin de jeu :
      • Perte totale énergie/boucliers : affichage du message "Game Over" et tourelle qui "nargue" le joueur (mouvement ressemblant à un ricanement)
      • Victoire par appui sur le bouton poussoir ou activation du détonateur. Une difficulté supplémentaire peut être ajoutée en débranchant le fil du détonateur : le joueur doit alors réactiver le détonateur (en rebranchant les deux fils) pendant une phase de mouvement pour pouvoir ensuite l'actionner afin de détruire la tourelle et gagner le jeu. Les scores sont ensuite affichés (score maximum : 99% d'énergie, vous pouvez passer au niveau suivant :-))
      • La Bento affiche les résultats pendant quelques secondes puis retourne en mode initial avec demande de sélection du mode souhaité.

L'affichage des LEDs rouges pour signifier la détection d'un mouvement lors d'une phase d'immobilité ne démarre que 2s (et quelques, voir code) après la retour de la tourelle en position initiale. Cela est du au fait que les capteurs détectent le déplacement de la tourelle et sont actifs pendant 2s (minimum) et il n'y a apparemment pas de solution pour les désactiver temporairement et les réactiver lors du retour de la tourelle. Lors du retour en position initiale, si le joueur est détecté 1 seconde avant la phase d'immobilité, il serait positif encore 1 seconde après l'arrêt de la tourelle. Malgré cela, selon mes essais, avec cette attente de 2 à 3s, la détection reste précise et les détections se jouent au centième de seconde. Pour le côté utilisateur, ça laisse un petit côté "suspense" d'attendre les 2s pour savoir si on a été détecté, ensuite la détection et son résultat est affiché immédiatement.




Notes et références

Matériel nécessaire :


  • 1 Plaque MDF 3mm : 3€
  • 1 Arduino UNO : 25€
  • 1 Potentiomètre : 1€
  • 1 Interrupteur : 1€
  • 1 Breadboard + câbles prototypage : 10€
  • Ecran OLED SSD1306 : 5€
  • Capteur Température/Pression/Humidité BME280 : 6€
  • Capteur sonore : 2€
  • Led Ring 12 LEDs WS2812 : 5€
  • Servo moteur : 3€
  • Bouton poussoir + capteur capacitif TTP223B : 3€
  • Lot de 3 détecteurs Micro-Ondes RCWL-0516 : 6€
  • 2 bornes de raccordement de type Wago : 2€
  • Peinture, ruban adhésif (dont décoratif) , consommable imprimante 3D, petite visserie, colle, divers : 10€

Soit environ 70 à 80€ pour une seule unité ; pour plusieurs unités, avec achat de lots, les tarifs devraient être bien revus à la baisse.


Outils

  • 1 découpeuse laser (pour découper les plaques de bois et personnalisation par gravure et logiciel adapté
  • 1 imprimante 3D (pour imprimer le cache écran, la tourelle et le détonateur) et slicer 3D adapté
  • 1 fer à souder + étain (pour souder tous les câbles sur les composants le nécessitant (LED Ring, bouton poussoir, ...)
  • 1 perceuse
  • éventuelle fraiseuse si on veut faire le trou pour le servo moteur par ce moyen
  • pince coupante, cutter, scie
  • colle à bois, colle plastique, ruban adhésif


Logiciels :

  • Inkscape + plugin "J Tech Photonics Laser Tool" pour la découpe du bois et gravure
  • Sketchup pour la modélisation 3D du cache écran (facultatif, fichier fourni)
  • ThinkerCAD pour la modélisation 3D de la tourelle et du détonateur (facultatif, fichiers fournis)
  • IDE Arduino pour l'écriture du code et téléversement vers l'Arduino

Commentaires

Published