Babyfoot connecté


Equipe de projet 

  • BERRIAT Théodore (2ème année DUT GEII)
  • ENDLE Antoine (2ème année DUT GEII)
  • HALTER Jérôme (2ème année DUT GEII)
  • HUSSON Stuart (2ème année DUT GMP)
  • MARCHAND Louis (2ème année DUT GMP)

LE CONCEPT : PRÉSENTATION GÉNÉRALE

 

Dans le cadre de nos études en Génie Électrique et Informatique Industrielle (GEII), nous sommes ammenés cette année à réaliser un projet en collaboration avec le département Génie Mécanique et Productique (GMP).  Grâce à notre mixité de compétences, notre babyfoot connecté, à donc pour vocation de renforcer l’espace convivial de rencontre et d’échanges entre tous les étudiants de l’IUT de Mulhouse.


Qu’est-ce que le baby foot ?

Pour faire simple, le baby foot c’est une table avec des rebords, 8 barres, des poignées sur chacune de celles-ci, des joueurs et une balle. Il y a une cage de chaque côté du terrain de jeu. Chaque joueur/équipe utilise ses poignées pour faire bouger leurs joueurs afin qu’ils tapent la balle dans la cage adverse. On attaque toujours vers la droite et l’on défend à sa gauche. Il existe différentes sortes de « tables de jeu », que nous appellerons plus communément « baby-foot », qui ont chacune leur caractéristiques propres, c’est pour cela que l’écartement entre les joueurs, leur taille/proportion, le type de barre… diffère selon le modèle de baby-foot utilisé. Le baby foot est joué dans pratiquement le monde entier.
Le jeu est très rapide, amusant et convient à absolument tout le monde, personne n’est exclu. Vous pouvez jouer des années sans jamais être lassé.


Présentation du projet

Nous avons choisi de rénover un baby foot inemployé car son état était défectueux, pour en créer un baby foot connecté performant et confortable à jouer. Notre démarche favorise la convivialité au seins de notre amical à l’IUT de Mulhouse. Aujourd’hui, l’innovation est au cœurs du monde, c’est aussi pourquoi nous sommes particulièrement motivé sur le fait d’innover un objet « banal » et de le transformer en un objet technologique, cela représente en vrai défi technique. Notre baby foot connecté sera principalement équipé d’un Raspberry PI 3, d’un écran, de capteurs et de leds. Il pourra compter les buts inscrits afin de les afficher sur un écran ainsi qu’allumer les leds de la couleur adéquate lors d’un but selon l’équipe l’ayant marqué, et tout cela de façon autonome ! En parallèle, nos collaborateurs du département Génie Mécanique et Productique s’occuperont de la rénovation et de l’esthétique de celui-ci.


Cahier des charges 

Diagramme bête à cornes

Diagramme Pieuvre

 

Nom de la fonction Désignation de la fonction de service
FP1 Permettre à l’utilisateur de simuler une partie de football sur table et de se divertir
FC1 Permettre une interaction à l’utilisateur
FC2 Permettre la détection de buts
FC3 Permettre d’afficher le score et être réglable par l’utilisateur

Diagramme bloc

 

Diagramme d’exigence

 

Budget

Partie Capteurs

Passons à présent à la détection des buts !

Montage électrique :

Nous avons récupéré des capteurs de proximité dans nos entreprises, ce qui nous permettra d’avoir une plus grande durée de vie, ainsi qu’une robustesse accrue. En revanche, ces capteurs n’étaient pas adaptés pour une utilisation sur un microcontrôleur. En effet, ils délivrent un signal comprit entre 12V et 24V, alors que notre Raspberry PI3+ accepte maximum 5V sur le Port GPIO.

Pour se faire, nous avons du faire un Pont diviseur de tension, pour abaisser la tension de 12V à 5V (les 12V proviennent de l’alimentation qu’on leur fournit). Nous avons utilisé une résistance de 220 Ohm ainsi qu’une Diode Zener  5.1 V, on câblera comme ceci :

Voici en image un test que nous avons effectué avec les composants cités si dessus, ainsi qu’une LED pour vérifier la présence de tension de 5V à la sortie du montage  :

(Le capteur est au niveau logique « 1 », c’est à dire qu’il délivre une tension de 12V que l’on abaisse à 5V)

La LED n’est pas grillée, on peut donc se brancher sur le port GPIO de notre Raspberry !

Voici à quoi ressemble notre « adaptateur » une fois soudé. Nous l’avons placé dans une boite pour éviter des contacts avec d’autres fils, faciliter le raccordement, et le protéger du milieu ambiant.

Notre capteur sera alors relié à notre pont diviseur de tension, et la sortie de celui-ci sera reliée sur les PIN numéro 7 et 37 du microcontrôleur. Passons à présent au software, qui nous permettra de compter les buts marqués par chaque équipe.

Programmation :

Nous avons commencé à programmer en langage python sur l’invité de commande du Raspberry, mais nous avons vite remarqué que la gestion de plusieurs événements ainsi que la surveillance simultanée de l’état des capteurs allait être compliqué.
Voici un exemple de code pour détecter le passage au niveau logique « 1 » d’un capteur :

 

 

Nous avons opté pour une autre solution de programmation, beaucoup plus simple et facile à mettre en oeuvre : Node-Red.
On passe donc du code ci dessus à ceci, pour les mêmes fonctionnalités :

 

Présentation de Node Red : 


Node-RED
 est un langage de programmation graphique par assemblage de blocs fonctionnels qui permet de développer des objets connectés (et beaucoup d’autres choses). Node-Red est un projet Open Source (et gratuit) soutenu par IBM. On programme avec Node-RED en liant des fonctions présentées sous la forme de briques, cela réduit fortement le codage. Le flux de données passe d’un traitement à l’autre (d’une fonction à l’autre). Certaines fonctions proposent des paramètres qu’il suffit de définir à l’aide d’une liste de choix ou d’un champ à remplir (par exemple un clé d’API pour un service météo). Il existe plusieurs centaines de bibliothèques dans tous les domaines : enregistrer les données sur une base de données (MySQL, MongoDB…), piloter les E/S d’un Arduino ou d’un Raspberry, ajouter une interface graphique (UI) pour tracer des graphiques, afficher des jauges, commander un relai à l’aide d’un bouton…

 

 

 

 

 

 

Démarrer Node-Red

Pour démarrer Node-Red sur Raspberry dans Menu -> Programmation

On peut également démarrer depuis le Terminal avec la commande

Une fois lancé, nous avons préféré programmer sur ordinateur.
Pour cela,  il suffit de récupérer l’adresse IP de notre Raspberry sur l’invité de commande puis de saisir sur le navigateur internet :

On arrive ensuite sur l’écran de Node-Red

 

Sur la gauche de l’écran se trouvent toutes les fonctions disponibles. Au centre se trouve la zone de programmation. Le panneau de droite regroupe un onglet info regroupant des informations contextuelles (exemple correspondant à la fonction sélectionnée…) et un onglet debug qui renvoie les messages d’erreurs ainsi que les messages de la fonction debug qui se trouve dans les outils output.

A partir de là, nous avons installé les nœuds nécessaires afin de pouvoir répondre à notre cahier des charges initial.

Ce progiciel va donc nous permettre de gérer la détection des buts, la gestion des rubans de LEDS, mais aussi l’affichage du score sur notre afficheur, par exemple.

Voici à quoi ressemble l’ensemble des blocs afin de gérer l’information des capteurs, ainsi que les compteurs des buts marqués par chaque équipe. On va détailler le rôle de chacun si dessous :

On retrouve en première position à gauche l’entrée du port GPIO du Raspberry :

Le bloc suivant intitulé « Rising Edge » va nous permettre de détecter uniquement le front montant du signal du capteur : autrement dit, on ne va pas tester le niveau logique du capteur (0 ou 1) mais le passage de l’état 0 du capteur, à l’état 1. Ceci va nous permettre de n’incrémenter notre compteur de but qu’une seule fois, car il est initialement programmé pour s’incrémenté à chaque changement d’état à son entrée. Sans ce bloc, lors d’une détection de but, notre compteur s’incrémentait de +2 (+1 lors du passage du capteur de 0 à 1, puis une nouvelle fois de +1 en repassant de 1 à 0). Afin d’obtenir ces deux blocs, nous avons du les installer au préalable, comme ci dessous :

Voici le bloc « compteur » qui se situe après le bloc front montant , avec comme paramètres :

  • Name : le nom du compteur
  • Initial Count : Valeur initiale du compteur = 0
  • Default Step : incrément la valeur, par pas de 1
  • Lower Limit : valeur limite basse = 0
  • Upper Limit : valeur limite haute = 10
  • Mode : increment, car on augmente la valeur de 1 but à chaque événement
  • Outputs : une seule sortie à la sortie de ce bloc

En dernière position nous avons un bloc appelé « set msg.count », qui sera utilisé pour transmettre la valeur actuelle des compteurs vers l’affichage sur le dashboard. Nous détailleront cette partie dans la rubrique « Interface »

 

Partie Interface Graphique Node Red

Nous avons tout d’abord commencé par installer le nœud dashboard. Celui ci nous a permit de gérer l’interface graphique à l’aide de différentes commandes. Chacune d’elle est spécifique, vous trouvez le contenu un peu plus bas.

 

 

 

 

 

 

 

 

 

 

 

 

 

1) Conception de la page d’accueil :

  

La page d’accueil est constitué de deux blocs. Le premier bloc « logo » et le second « Réalisation ». Ce sont tous les deux des « templates », c’est à dire que nous allons pouvoir insérer des images, écrire, décider de l’alignement du texte… grâce à la programmation en html.

2) Menu Règles :

On affiche la page des règles avec un scroll :

3) Menu de match : Score 

  • Nœud But Equipe Rouge => Affiche le texte sur l’interface graphique
  • Nœud Score =>  Récupère la valeur du compteur
  • Nœud Compte Equipe Bleu => Permet de disposer la valeur du compteur au centre
  • Nœud Remise à zéro => Lors d’un appui, il envoie l’info au RAZ et ainsi le RAZ injecte 0 dans le nœud de comptage

Avec le bouton de remise à zéro :

Partie Leds 

 

Les leds dans le projet baby-foot connecté auront comme but de clignoter de la couleur respective à celle de l’équipe afin d’avertir l’utilisateur de la présence d’un nouveau but.

 

Pour répondre à ce besoin nous nous sommes tourné vers l’utilisation d’un ruban de led pour la gestion de la taille des zones à éclairer sur le baby-foot.

Les résistances auront pour but de résister au passage du courant dans les transistors.

 

Le fonctionnement d’un transitor :

 

Le transistor dispose de 3 bornes, le collecteur, l’émetteur et la base. Le collecteur et l’émetteur sont techniquement symétriques. Dans notre cas le collecteur sera la couleur du ruban de leds et l’émetteur le 0V, car nous souhaitons émettre aux leds le 0V afin de les faire briller. La base, notre signal de sortie du Raspberry permet de laisser passer ou non la conductivité du collecteur vers l’émetteur en laissant passer les électrons se trouvant dans le transistor grâce à l’envoie d’une faible tension, ici 3,3V.

 

Schéma d’un Transistor NPN avec 0V à la base

Schéma d’un Transistor NPN avec 3,3V à la base

 

Montage électrique :

 

Mesure courant des leds :

  • Bleu : 0.7A
  • Rouge : 0.8A
  • Vert : 0.7A

 

Matériels utilisés :

  • 1 Ruban de leds BRG de 12V
  • 1 Alimentation 12V/2A
  • 3 Transistors 2N4922 NPN 2A
  • 3 Résistances 270 Ohms

 

Pour s’assurer du bon fonctionnement du montage nous avons simuler le signal délivré par le Raspberry à l’aide d’un générateur de tension réglé sur une tension de 3,3V.

 

 

Nous avons élaboré un boitier comprenant le montage précédent.

Voici des photos du résultat final de la boite.

 

Le programme :

 

Voici une vue d’ensemble du programme sur Node-Red permettant le clignotement des leds.

Le programme est composé d’une succession de 4 temporisations de type trigger lancées lors du passage à 1 du capteur détectant un but. Ces temporisations sont reliées aux sorties des leds de la couleur  du but qui fera ainsi clignoter les leds.

 

Le fonctionnement des différentes temporisations en série nous permet de créer différentes impulsions chacune de la valeur de la plus petite temporisation crée. Ce qui entraîne un clignotement des leds pendant une durée de 1s toutes les 125ms dans notre cas.

 

Trigger :

Module de sortie :

 

 

 

Schéma Electrique du Baby-Foot Connecté :

Schéma électrique Baby-Foot Connecté

 

Câblage du Baby-Foot : 

 

Finalisation de la partie Génie Electrique et Informatique Industrielle en vidéo : 

 

Partie GMP

Dans un premier temps, nous avons procédé au démontage et à la rénovation du baby-foot. L’état initial de la structure était exécrable (trous, visseries abimés, bois enfoncé, saletés…) Cette remise en état fut chronophage et couteuse en matériaux (colles, mastic, pâte à réparer, visseries neuves) et en nouveaux outils (forets, mèche à bois). En disposant uniquement d’une soixantaine d’heures de projets, la partie purement mécanique et industrielle du projet fut un réel contre la montre. Malheureusement, malgré de nombreuse heure supplémentaire, le projet n’a pas pu totalement aboutir, notamment à cause de nombreux problèmes au cours du démontage et de la rénovation, bien que les opérations d’usinage et de conception ce sont quant à elles généralement bien déroulés.

Nous allons maintenant vous présenter notre cahier des charges mis en place début décembre, avec les fonctions mises en place et les tâches restants à effectuer :

Cahier des charges (GMP)

FONCTIONS

CRITÈRES

NIVEAUX

FP1 : Assurer une bonne jouabilité du babyfoot

 

Guidage barres de jeu et confort

 

 

Système de palier lisse

Arrêt axial des barres

 

FC1 : Stabiliser le babyfoot

 

Stabiliser

Renforcer les pieds Double pied
Lier les pieds Tige filetée + écrous

 

FC2 : Assurer l’acheminement des balles vers les capteurs

 

Acheminer

 

 

Guider la balle

 

Lattes + tube PVC

 

FC3 : Loger les composants électroniques

 

Logement

Écran Boitier en bois
Capteurs Sur tube PVC

 

FC4 : Doit être esthétique

 

Esthétisme
Design, formes Formes discrètes
Couleurs Toutes

 

FP1 : Assurer une bonne jouabilité du babyfoot

 

Réalisation de paliers lisses afin d’assurer le bon guidage des barres. Après concertation avec les professeurs, l’idée retenue était de réaliser les paliers lisse en laiton pour éviter le contact entre acier et aluminium (peu favorable au glissement). Après consultation avec l’atelier, le délai d’approvisionnement du tube de laiton correspondant à notre besoin était trop important. C’est pourquoi nous avons décidé de réaliser les paliers en aluminium avec bague plastique et utiliser des barres en acier.

 

Présentation du système :

 

https://e-partage.uha.fr/service/home/~/?auth=co&loc=fr&id=1527&part=4

 

 

 

Modélisation des pièces sous Creo

 

 

https://e-partage.uha.fr/service/home/~/?auth=co&loc=fr&id=1526&part=3https://e-partage.uha.fr/service/home/~/?auth=co&loc=fr&id=1526&part=2

https://e-partage.uha.fr/service/home/~/?auth=co&loc=fr&id=1527&part=3

 

 

 

Réalisation de la FAO (Fabrication assistée par ordinateur)

 

 

 

 

Usinage de la pièce avec une commande numérique

 

 

Résultat obtenu :

 

Préparation du flan pour accueillir les 2 pièces

 

 

Perçage de 3 trous diamètre 3.2 pour faire passer les vis d’assemblage M3 du système de guidage.

 

 

Assemble du système de guidage

 

 

Renouvellement des barres : Démontage des barres actuelles, débitage de ronds d’acier Ø15, perçage et mise en place des nouveaux bonhommes. Montage des anneaux de serrage pour bloquer la barre axialement en translation.

 

https://e-partage.uha.fr/service/home/~/?auth=co&loc=fr&id=1528&part=2

 

 

Nouvelles surfaces de jeux : nouveau tapis et plinthes en bois. Prise de côtes, mise en plan papier puis transmission à GRAUER Construction, spécialiste dans la création de maisons à ossature bois.

Restructuration du fonds de but : « Gamelles » intempestives dus à la forme peu ingénieuse du fond de but : découpe d’une plaque PVC vissées avec un coussinet sur la paroi pour créer un effet d’amortissement.

Rehausse du plateau de jeu : Pour assurer un meilleur confort de jeu avec les nouveaux joueurs plus petits que les anciens modèles, nous avons rehausser le plateau de jeu à l’aide de calles plastiques normalisées fournies par GRAUER Construction.

 

A faire :

  • Découpe & pose du tapis de jeux
  • Ajout de palier cylindrique plastique (type IGUS) pour minimiser le frottement acier-aluminium des barres avec le palier : Bien que la translation des barres dans les paliers soit optimale avec un système correctement lubrifié, cette solution améliorerait d’avantage le confort de jeu.
  • Opération de percage-alesage et montage serré des paliers cylindriques sur 16 pièces déjà réalisées

 

FC1 : Stabiliser le babyfoot

Stabilisation : Ajout de 4 pieds supplémentaires, conception CAO, mise en plan DXF et sous-traité par HUSSON International (Les pièces en bois trop massive ne pouvant pas être usinées à l’atelier)

Nouveau système de solidarisation du bâti : Fixation des pieds deux à deux via une tige filetée. Le maintien de la distance entre les deux mêmes pieds est assuré par une entretoise. L’écart entre les pieds droits et les pieds gauches sont maintenus grâce à un système de contre-écrou.

A faire :

  • Nous avons pu observer une nette amélioration de la stabilité, mais un phénomène de bascule reste présent et problématique pour le confort de jeu et l’endommagement prématuré des composants. Une recherche d’une nouvelle solution ou amélioration du concept est envisageable.

 

FC2 : Acheminer la balle vers les capteurs

 

Goulotte d’alimentation : Assemblage d’une structure bois/PVC permettant de guider la balle de la sortie de but à l’accès de repêche.

 

A faire :

Perfectionnement de la structure, dans de rares positions la balle reste coincée.

FC3 : Logements des composants électroniques

Création d’un logement d’écran : Réalisation d’un logement d’écran en bois permettant le passage des câbles jusqu’au Raspberry

 

Logement des capteurs dans la goulotte PVC : Réalisation d’une rainure dans la goulotte permettant l’insertion des capteurs en position verticale pour une détection de la balle vers le bas.

 

 

FC4 : Doit être esthétique

Visserie non apparente : Réalisation de cache écrou en impression 3D pour cacher la visserie apparente.

https://e-partage.uha.fr/service/home/~/?auth=co&loc=fr&id=1526&part=5

https://e-partage.uha.fr/service/home/~/?auth=co&loc=fr&id=1526&part=4

Habillage : découpe de profil aluminium pour réaliser le haut de but

Ponçage : peinture à réaliser

 

Conclusion : Ce projet fut motivant de par notre intérêt pour le baby-foot mais également dans l’application de nos compétences de génie mécanique. Cependant, il fut trop ambitieux de prévoir la remise à neuf intégrale du baby-foot en 60 heures. Il y aurait Intérêt de reconduire le projet l’année prochaine pour les futurs étudiants de deuxième année : une base fonctionnelle est en place, mais il reste beaucoup de piste d’améliorations pour obtenir un produit optimal. De plus, lors de la création de chaque pièce, par soucis de ne pas abîmer la structure existante et de pouvoir modifier en cas d’échec, chaque pièce a été conçu de manière à pouvoir être démontées facilement, ce qui facilitera la prise en main par d’autres étudiants.

 

État actuel :