123Tourelle : Différence entre versions

Ligne 142 : Ligne 142 :
 
*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.
 
*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
 
*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 à 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 indiqué à l'utilisateur ou se situera la prochaine information
 +
**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.
  
 
<br />
 
<br />
Ligne 149 : Ligne 158 :
 
**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 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, angle de rotation et phases de mouvement encore plus courtes
 
**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, angle de rotation et phases de mouvement encore plus courtes
**Niveau 4 : idem niveau 3 + perte d'énergie et boucliers plus importante. Angle de rotation et phases de mouvement encore plus courtes et possibilité de feintes de retournement de la tourelle
+
**Niveau 4 (Squid / Poulpe) : idem niveau 3 + perte d'énergie et boucliers plus importante. Angle 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 rejoute un peu de "stress" 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 de retourne à nouveau ensuite.
 
**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 rejoute un peu de "stress" 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 de retourne à nouveau ensuite.
 
**Fin de jeu :
 
**Fin de jeu :

Version du 4 février 2022 à 14:53

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

Pas encore d'image

Introduction

Réalisation d'une Bentolux dans le cadre 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 à nous). 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és 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 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), 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 fac à 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 base 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 est nécessaire :


  • Décoration/peinture de la Bento (facultatif mais fort appréciable pour la valorisation de votre travail et l'attrait pour travailler dessus)
  • 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 (ruban adhésif utilisé) 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) de tous les composants requis pour la réalisation, donnés dans la liste des matériels du tutorial.
La LED RING est située juste au-dessus de l'écran, lors des soudures réfléchissez bien à comment éviter la sortie des 4 fils écrans 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 au 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.

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és 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 soumis à controverse d'un point de vue électronique, car il fonctionne selon une astuce : un fils électrique a été largement dénudé des deux côtés : 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 les fils 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 à 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.

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.

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

É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 voulue
  • 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 à 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 indiqué à l'utilisateur ou se situera la prochaine information
    • 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, angle de rotation et phases de mouvement encore plus courtes
    • Niveau 4 (Squid / Poulpe) : idem niveau 3 + perte d'énergie et boucliers plus importante. Angle 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 rejoute un peu de "stress" 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 de retourne à nouveau ensuite.
    • Fin de jeu :
      • Perte totale énergie/boucliers : affichage du message "Game Over" et tourelle qui "nargue" le joueur (mouvements ressemblant à un ricanement)
      • Victoire par appui sur le bouton poussoir ou activation du détonateur. Une difficulté supplémentaire peu ê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 la phase de mouvement pour pouvoir ensuite l'actionner pour 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 sera positif encore 1 seconde après l'arrêt de la tourelle. Malgré cela, selon mes essais, 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.

Commentaires

Draft