Actualités Projets

Développement d’une tête interactive avec Raspberry Pi 3

Envoyé par le 16 Juil 2019 dans À la une, Blog, Portfolio, Projets | 0 commentaire

Bonjour à tous !
Nous allons vous présenter la conception et mise en oeuvre d’une tête interactive. C’est un projet développé dans le cadre du Projet S4 (P20 : Tête interactive pour le robot Kompaï) en 2émé année à IMT Atlantique.

Contexte

 

L’entreprise Kompaï Robotics se spécialise dans le développement de solutions robotiques telles que la troisième version de leur robot d’accompagnement Kompaï dédié aux maisons de retraite. Ainsi, l’objectif de ce projet est de réaliser une tête interactive qui communique avec le reste du corps du robot et qui permet d’ajouter de nouvelles fonctionnalités pour rendre l’interaction homme-machine plus conviviale.

Résumé

Le projet consiste en la conception et la mise en œuvre d’un modèle de tête robotique interactive pour Kompaï. L’objectif est mettre en place les fonctionnalités nécessaires à une interaction de qualité avec les soignants et les patients qui utilisent le robot. Les différentes fonctionnalités sont intégrées en utilisant ROS (Robot Operating System, version Kinetic) comme système de connexion dans la carte Raspberry Pi 3 sur Debian Stretch.

Ensuite une vidéo avec la démonstration du prototype présenté au forum de l’école:

Pour le développement du projet nous avons découpé la tête en différents fonctionnalités, alors nous avons utilisé des parties de logiciel et du matériel aussi.

Matériel

Reconnaissance des images
– (1) Module de Caméra Raspberry Pi V2
Localisation du bruit et Reconnaissance des commandes vocales
– (1) ReSpeaker 4 microphones for Raspberry Pi
Module Yeux animés
– (2) écrans OLED 128×128, 16-bit Color 1.5″ (adafruit)
Text-to-Speech:
(2) Haut-parleur, Mini, Dynamique, 2 W, 8 ohms
(1) Amplificateur audio 2,8 W TPA2016D2
(1) Connecteur jack 3,5mm mâle stéréo
Raspberry Pi 3

Integration

Pour réaliser l’intégration, nous avons tenu compte du fait que le module ReSpeaker utilise le connecteur Raspberry et occupe toutes les broches de la carte, mais utilise uniquement l’alimentation et l’interface I2C. Nous utilisons donc des mini-platines de prototypage et des câbles femelle-femelle pour tout assembler.

Logiciel

Comme nous l’avons déjà dit, la tête peut interagir avec les utilisateurs par des images et du son. Nous avons développé toutes les fonctionnalités séparément en utilisant Python 2.7 comme langage principal. L’intégration des fonctionnalités est une tâche assez complexe car elle implique du temps réel, pour cela nous proposons une structure dans le système d’exploitation ROS qui contrôle chaque fonctionnalité comme des nœuds séparés et les exécute en même temps.

De plus, toutes les données techniques (codes, rapport, tutoriels, …) sont disponibles dans le dépôt qui est remis aux encadrants techniques. [1]

ARIAS Camila, DESUQUE Leandro, IGLESIAS Fernando,
OUALI Maher, PÉREZ Martín Andrés
Projet 20 Tête interactive pour le robot Kompaï

[1] Encadrants
M. Christophe LOHR Département d’Informatique (ET) christophe.lohr@imt-atlantique.fr
Mme Charlotte LANGLAIS Département d’électronique (ET & EGP)
charlotte.langlais@imt-atlantique.fr
Mme Mathilde MENORET Fablab IMT Atlantique (ET)

Timelapse automatisé sur Ultimaker3

Envoyé par le 4 Juil 2019 dans Trucs & astuces | 0 commentaire

Bonjour à tous !

Dans cet article, vous allez apprendre à faire vos propres timelapses sur une imprimante 3D Ultimaker3 grâce à un petit programme python, nécessitant Python3.5 ou plus et le logiciel FFmpeg. Téléchargez la version adaptée à votre OS.

Maintenant, téléchargez les fichiers suivants, disponibles sur ce git et mettez-les dans le même dossier.

timelapse.py
um3api.py

Ouvrez le fichier timelapse.py, retirez ces lignes (107 et 108) et enregistrez-le :

while not location_check(api.get("api/v1/printer/heads/0/
position").json(), variant) and printing():

sleep(0.5)

C’est tout au niveau des fichiers ! Pour faire fonctionner le script, il faut veiller à relier l’imprimante Ultimaker3 au réseau (wifi ou ethernet) et à connecter le pc sur le même réseau.

Maintenant, si vous êtes sous Linux :

  1. Allumez l’imprimante 3D.
  2. Lancez un terminal dans le dossier dans lequel sont situés les fichiers précédents.
  3. Tapez la commande

    python3 timelapse.py adresseipUM3 1 montimelapse.mp4

    adresseipUM3 correspond à l’adresse IP de l’imprimante (s’obtient grâce à Cura), 1 correspond au nombre de secondes que vous désirez à la fin du timelapse lorsque l’impression est terminée, et montimelapse.mp4 est le nom de fichier et l’extension de la vidéo qui sera enregistrée. Vous pouvez modifier .mp4 par .mkv.

  4. Le script est maintenant en attente du lancement d’une impression. Retournez à l’imprimante et lancez une impression.
  5. Le script est normalement en fonctionnement ! Vous pouvez voir la progression de l’impression directement sur le terminal.

En espérant que cet article vous a servi ! Je vous mets le lien du forum où quelques questions ont été posées à propos de ce git : forum timelapse

Réalisation d’une orthèse permettant la détection et le mouvement robot

Envoyé par le 3 Juil 2019 dans À la une, Blog, Portfolio, Projets | 0 commentaire

Bonjour à tous !

De nombreuses recherches dans la robotique s’orientent de nos jours vers l’aide de l’humain, afin d’aider ce dernier à faire des tâches pénibles à effectuer. Ce domaine s’intitule la cobotique, mot formé de l’association des mots “collaboration” et “robotique”.

Notre projet de Conception et Développement (CODEV) trouve sa place dans la cobotique. En effet, nous avons développé une orthèse qui détecte les mouvements du bras d’un individu pour les faire reproduire par le fameux robot Poppy. Comme une vidéo vaut mieux qu’un long discours, démarrons par une petite vidéo de présentation du fonctionnement du système, disponible en cliquant sur le lien ci-dessous :

Orthèse permettant la détection et le mouvement robot

 

Les objectifs du projet ont été les suivants :

[1] Identifier les mouvements d’un bras humain rendus possibles par les articulations de l’épaule, du coude et du poignet.

[2] Capter efficacement les mouvements identifiés à l’aide d’une structure adaptée.

[3] Communiquer ces mouvements à Poppy pour qu’il puisse les reproduire en temps réel.

 

[1] Nous nous sommes concentrés sur les mouvements de flexion et d’extension des articulations de l’épaule et du coude (Figure 1)  puis du poignet (Figure 2). Nous avons omis les autres mouvements qui seront l’objet d’une étude ultérieure. Ces mouvements sont des mouvements de rotation dans le plan sagittal.

 

Source : Sci-Sport.com

Figure 1 : Mouvements de flexion et d’extension de l’épaule (gauche) et du coude (à droite) – Source : Sci-Sport.com

 

Figure 2 : Mouvements de flexion et d’extension du poignet – Source : https://therapiemiroir.com

 

Figure 4 : MPU9150 dans son socle – Source : Groupe CODEV 65

[2] Les mouvements de flexion et d’extension présentés ci-dessus sont détectés à l’aide de trois accéléromètres MPU9150 disposés dans des socles (Figure 4), et placés sur le porteur de l’orthèse. Un accéléromètre mesure l’angle entre la pesanteur et un axe qui lui est propre. Nous avons mesuré des angles entre les différents accéléromètres.

Les socles pour les accéléromètres ont été modélisés puis imprimés grâce à l’imprimante 3D disponible au Fablab.

 

 

Figure 4 : Poppy, robot humanoïde bio-inspiré – Source : fr.wikipedia.org

[3] Les angles mesurés sont ensuite communiqués au robot Poppy. Le robot humanoïde Poppy présenté sur la Figure 4 est né en 2012 d’un projet appelé Poppy Project dans l’un des laboratoires de INRIA Bordeaux Sud-Ouest, au cours de la thèse de Matthieu Lapeyre. L’objectif de cette thèse était à l’origine d’explorer le rôle de l’incarnation et des propriétés morphologiques sur la cognition et en particulier l’apprentissage de tâches sensorimotrices.

Ce robot est au cœur d’un projet open-source auquel n’importe quel individu peut apporter des données, que ce soit des points de vues, des idées ou des travaux. Deux exemplaires de ce robot Poppy sont disponibles à l’IMT Atlantique, au département IHSEV.

 

 

Cependant, le robot Poppy n’est pas à l’origine doté d’une articulation du poignet (Figure 5). Nous avons donc dû la fabriquer puis la fixer. Les pièces ont été imprimées grâce à l’imprimante 3D du Fablab. Vous trouverez ci-dessous un timelapse de l’impression des mains de Poppy en cliquant sur le lien ci-dessous :

Timelapse de l’impression 3D des mains de Poppy


 

Figure 5 : Bras de Poppy modifié (gris) et bras de Poppy d’origine (blanc) – Source : Projet CODEV 65

 

Ainsi, notre projet propose une solution technique pour la détection de certains mouvements d’un bras humain et le pilotage du robot Poppy. Il pourra être repris ultérieurement pour ajouter les mouvements manquants afin de couvrir l’ensemble des mouvements rendus possibles par les articulations de l’épaule, du coude et du poignet. De plus, toutes les données techniques (codes, rapport, etc.) seront bientôt disponibles sur un Wiki-Robot.

 

 GUILBAUD Loan,  KERMABON Hugo, SCHNEIDER Gilles, TSCHUDY Florian

Projet CODEV Orthèse permettant la détection et le mouvement robot

 

 

 

 

 

 

 

Tutoriel de connexion Eduroam sur Raspberry Pi 3

Envoyé par le 28 Juin 2019 dans Blog, Projets, Trucs & astuces | 0 commentaire

  • Version: 1.0
  • Date: 28/06/2019
  • Auteur: Martín Andrés Pérez
  • Contact: martin-andres.perez@imt-altantique.net / martinandres.perez@gmail.com

Dans les universités d’ingénieurs, il est de plus en plus fréquent que des projets soient réalisés sur Raspberry Pi. Aujourd’hui, démarrer ces projets hors ligne est un problème.

Ici à l’IMT, connecter une Raspberry à Internet dépend beaucoup de l’utilisation du réseau Eduroam. Sur la page web d’Eduroam CAT(link) est disponible un installateur qui configure automatiquement le réseau, vous n’avez qu’à indiquer le nom de l’université où vous voulez faire la connexion. C’est la solution la plus simple, mais elle n’a pas fonctionné.

De cette façon, la connexion au réseau Eduroam est devenue un casse-tête et je vais partager avec vous la solution à ce problème. Pour terminer, je vais vous montrer comment j’ai trouvé cette solution.

Étapes à suivre pour se connecter à Eduroam à l’IMT

  1. Allumer le Raspberry Pi
  2. Modifier le fichier interfaces:
    1. Ouvrir le fichier interfaces:
      sudo leafpad /etc/network/interfaces
    2. Remplacer le contenu par celui de ce document (link)
    3. Sauvegarder
  3. Modifier wpa_supplicant.conf:
    1. Ouvrir le fichier wpa_supplicant.conf:
      sudo leafpad /etc/wpa_supplicant/wpa_supplicant.conf
    2. Ajoutez ces lignes au fichier. Remplacez l’identité et le mot de passe par vos identifiants:
      network={
      ssid="eduroam"
      key_mgmt=WPA-EAP
      pairwise=CCMP
      eap=PEAP TTLS
      identity="YOUR-IDENTITY"
      anonymous_identity="anonymous@imta.fr"
      password="YOUR-PASSWORD"
      phase1="peaplabel=0"
      phase2="auth=MSCHAPV2"
      priority=999
      }
    3. Sauvegarder
  4. Redémarrer et profiter d’Internet

Comment j’ai trouvé la solution

J’ai cherché plusieurs tutoriels sur Internet mais aucun d’entre eux n’a fonctionné pour moi. Les tutoriels CamiGEM2016[1] sur les Instructables et JAN KÜSTER sur leur propre site[2] m’ont aidé à comprendre le processus.

D’autre part, j’ai téléchargé l’installateur proposé par Eduroam CAT. Ce programme d’installation est en fait un fichier Python qui contient tous les paramètres qui doivent aller dans le fichier wpa_supplicant.conf. Donc, pour trouver la solution, j’ai dû analyser le code de python, trouver les paramètres nécessaires et voilà !

Références

Apprendre à programmer avec Cubetto

Envoyé par le 28 Juin 2019 dans À la une, Portfolio, Projets | 0 commentaire

Bonjour,

Nous sommes une équipe de trois étudiants en première année à IMT Atlantique.

Notre projet s’inscrit dans le cadre de l’UE Codev (Projet de première année) et consiste en l’élaboration d’un robot de type Cubetto (Figure2) qui est un jeu pour enfant initiant à la programmation, qui se compose d’un petit robot accompagné d’une tablette pour le diriger et d’un tapis de jeu.

L’objectif de notre projet est donc de reproduire le robot Cubetto à moindre coût.

     

  Figure1: Robot Produit                           Figure 2: Cubetto original

Il s’agit pour l’enfant d’amener son robot d’un point A à un point B et pour cela, il

doit placer sur la tablette l’ensemble des instructions qu’il souhaite donner au robot qui sont représentées par des jetons indiquant chacun une direction(avancer, tourner à droite, tourner à gauche).

Une fois l’ensemble des instructions placées sur la tableau, l’enfant appuie sur le bouton pour transmettre les informations au robot. (Figure 3)

Nous avons choisi une vitesse relativement lente de déplacement, pour assurer

la compréhension de l’enfant.

Après avoir choisi les différentes fonctionnalités en fonction de notre contrainte de budget, nous nous sommes attelés à la fabrication des différents éléments qui constitue ce jeu: le robot, les pièces de déplacement et le boîtier de commande.

               

                         Figure3: Boîtier de commande

Pour la partie traitement de données et communication, nous avons utilisé des cartes Arduino et le module WiFi ESP8266 (1Carte Arduino Mega, 2 Cartes Wemos mini).

Nos choix pour le design ont pour but d’assurer la robustesse du jeu et ont été inspiré du robot Cubetto. Pour la reconnaissance des pièces, partie essentielle du jeu, nous avons associé à chaque pièce un mouvement et une valeur de résistance (Figure4) puis dans la tablette, un pont diviseur de tension est utilisé pour lire cette valeur (Figure5 ).

                 

                       Figure4: Jeton avec résistance à l’intérieur

                           

                   Figure5: Montage pour la reconnaissance des jetons

Enfin, pour visualiser l’impact de notre projet, nous nous sommes rendus à l’amicale laïque de Plouzané le 26 Juin 2019 pour présenter les différents projets de première année.

En guise de conclusion, nous sommes convaincus que notre projet a pu aider les enfants à développer leur pensée logique voire même à se familiariser avec l’esprit de la programmation.

Ce projet a été réalisé a l’aide du wikidebrouillard où un projet similaire a été développé. Vous y trouverez les montages et des explications détaillées.
:http://www.wikidebrouillard.org/index.php?title=Tableau_de_bord_%C3%A0_programmation_Tangible

Pour télécharger les codes utilisés (Arduino Mega+ ESP Wemos):   https://cloud.imt-atlantique.fr/index.php/s/QNLstXWsa7mRJZd/download

                               LEPORINI Marie, EL MALKI Hatim, BEC Thomas

                                          Projet Codev (N°15) Cubetto

Robotique avec NAO pour la médiation scientifique.

Envoyé par le 27 Juin 2019 dans À la une, Portfolio, Projets | 1 commentaire

Bonjour,

nous sommes étudiants en première année à l’IMT Atlantique. Dans le cadre d’un projet de première année, nous avons été amené à réaliser une action de médiation scientifique avec le robot NAO dont est propriétaire l’école.

Comme vous l’aurez compris, notre projet vise à rendre plus attrayante la robotique et la programmation auprès des plus jeunes. Pour cela, nous utilisons le robot humanoïde NAO qui permet de sensibiliser les enfants de primaire à la robotique. Ce robot a la faculté de reconnaître les voix et les visages, de danser et de parler, ce qui permet une grande créativité lors de la programmation.

Pour pouvoir réaliser une petite représentation, nous avons d’abord dû prendre en main le logiciel Chorégraphe qui permet de programmer le robot NAO. Puis, nous avons créé une chorégraphie ainsi qu’une petite interaction sous forme de questions-réponses. Nous avons également choisi d’apprendre à NAO à jouer à pierre-feuille-ciseaux.

Une fois toutes ces applications programmées, nous nous sommes rendus à l’amicale laïque de Plouzané le 26 juin 2019. Avec trois autres groupes, nous avons réalisé une représentation auprès d’élèves allant du CP au CM2.

Il semble que les enfants aient apprécié la représentation de l’ensemble des groupes ! Nous sommes en tous cas satisfait d’avoir pu travailler sur ce projet ! Nous avons mis en lien notre code ce qui peut simplifier le travail de certaines personnes souhaitant reprendre le projet.

Participants : Ludivine LECLERC, Brice ROBERT, Aymeric SCHWEITZER.

Réalisation d’une lampe favorisant l’endormissement par biofeedback

Envoyé par le 27 Juin 2019 dans À la une, Portfolio, Projets | 1 commentaire

Bonjour à tous !

Nous sommes un groupe de 3 étudiants ayant réalisé un projet durant 4 mois.

L’objectif de ce projet était de développer un objet permettant de maximiser la probabilité de succès d’endormissement ou de relaxation de l’utilisateur.  Cet objet doit lui permettre de gagner du temps de sommeil en diminuant le temps mis pour se relaxer et s’endormir.

Cette technologie est déjà présente sur le marché sous le nom de lampe Dodow. Son principe est le suivant : posée à côté du lit, elle diffuse de la lumière bleue qui s’intensifie et s’atténue régulièrement, et de façon imperceptible, de plus en plus lentement. Tel un métronome lumineux, elle ralentit le flux des pensées de l’utilisateur dont le seul rôle est d’essayer de faire coïncider les fluctuations de la lampe et sa respiration. Cependant, elle n’est pas forcément optimisée car la luminosité de la lampe fluctue de la même manière quel que soit l’individu, quel que soit son niveau de relaxation. Elle agit donc de la même manière que la personne soit initialement très calme ou alors très stressée.

Ainsi, l’objectif de ce projet était plus précisément de  développer une technologie de relaxation adaptée à tout type d’individu à partir du modèle de la lampe Dodow.

Il fallait donc développer une lampe dont la luminosité peut fluctuer en fonction de la fréquence cardiaque dans un délai imparti. 

Cette lampe est composée de trois modes de fonctionnement : mode “capteur cardiaque”, mode “manuel”, et mode “sans réglages”.

Le mode “capteur cardiaque” est le mode clé du projet : durant un délai imparti, la fluctuation de la luminosité de la lampe s’adapte à la fréquence cardiaque de l’utilisateur grâce à un capteur.

Le mode “manuel” permet de régler la fluctuation initiale de la luminosité de la lampe. Ensuite, la fluctuation varie automatiquement durant le délai imparti.

Le mode “sans réglages” est un mode semblable au fonctionnement de la lampe Dodow : le rythme de fluctuation de la luminosité est préréglé. La luminosité fluctue ensuite automatiquement durant le délai imparti.

Cette lampe dispose de trois types de boutons. Le premier est un switch, il permet d’allumer ou d’éteindre notre lampe. Le deuxième est un bouton poussoir, il permet de changer le mode d’utilisation. A la mise en route de la lampe, aucun mode n’est défini mais la lampe dispose de trois boutons poussoirs. Chacun d’entre eux permet de mettre en route l’un des modes d’utilisation. Enfin, le dernier bouton est un Slider, il permet de régler le rythme de fluctuation de la luminosité lorsque l’on est dans le mode manuel.

Cette lampe a été développée sous Arduino, vous pourrez donc retrouver le code utilisé ainsi que nos livrables et une vidéo de démonstration dans ce cloud : https://cloud.imt-atlantique.fr/index.php/s/wCQaxKnciQFAGYi

 

L’équipe Codev n°16 : Matthias LE JALLE, Louise DEBUSSCHER et Mathura CHANDRAKUMAR

Développement d’une borne d’arcade

Envoyé par le 27 Juin 2019 dans À la une, Portfolio, Projets | 0 commentaire

Bonjour à tous !

Nous avons aujourd’hui le plaisir de vous présenter la construction d’une borne d’arcade. C’est un projet que nous avons mené dans le cadre du Codev (projet Conception et Développement) en 1ère année du cursus ingénieur d’IMT Atlantique.

Commençons par regarder cette petite vidéo qui en quelques secondes vous montre le système en pleine utilisation par un des groupes d’enfants de l’Amicale Laïque de Plouzané à qui nous avons fait la démonstration.

Si cela vous intéresse d’en savoir un petit peu plus sur la construction de cette borne d’arcade, poursuivez votre lecture.

 

Résumé :

Alors que fait cette borne ? Et bien en plus de la structure et des jeux qu’elle fait fonctionner, nous voulions lui apporter des caractéristiques supplémentaires et ainsi créer un objet original et divertissant.

La première fonctionnalité qui la rend unique est la détection de badge. Le joueur peut avec n’importe quel badge RFID se connecter à la borne d’arcade et avoir son propre compte ! Nous pouvons donc nous connecter avec le badge de l’école. La seconde fonctionnalité découle alors de la première : avoir un compte personnel oui, mais où vont nos données ? Nous avons décidé de stocker toutes les données des joueurs sur une base de données SQL. Ainsi dès qu’un jeu se termine, les scores sont directement envoyés, les classements se mettent à jour, les statistiques s’affinent. Et pour voir tout cela, nous avons finalement développé un site internet via HTML, CSS et PHP. Nous avons eu la chance d’être hébergés par le RESEL (Réseau des Elèves). Nous pouvions alors en nous connectant via shh et avec un FTP comme Filezilla créer le site où tous les joueurs se retrouveraient pour découvrir leurs performances ainsi que celles de leurs camarades. A l’heure actuelle, vous pouvez encore vous connecter sur https://arcade.codev.resel.fr/ nous espérons que cela restera encore possible pour les années futures. Le cas échéant, merci d’apporter une modification à ce papier afin d’adresser correctement notre site.

 

Commençons par vous donner quelques photos de la conception purement matérielle de la borne :

Tout d’abord, voyons le plan que nous avons dessiné pour conceptualiser le système :

 

Voyons maintenant quelques étapes de la construction :

Lors du découpage, certaines problématiques se sont présentées à nous. La principale étant le biseautage nécessaire pour un assemblage harmonieux et solide de l’ensemble. Pour ce faire, nous avons utilisé la
possibilité de mettre un angle sur le plan de travail de la scie à chantourner. Cela nous a permis d’obtenir de bon résultats à quelques précisions près qui ont pu être absorbées par le ponçage.
Par ailleurs, l’assemblage a pu être fait essentiellement grâce à des vis et des anglettes métalliques pour renforcer la structure en bois.

Et le résultat est là comme vous avez pu le constater sur la vidéo de présentation.

Pour les plus curieux, on poursuit avec la partie électronique à l’intérieur de la borne !

 

On y retrouve de nombreux éléments :

  • Les deux cartes qui centralisent les connections des 2 joysticks et des 15 boutons
  • Un hub USB pour gérer tous nos périphériques
  • Deux cartes Arduino, une pour executer les codes de RFID… et l’autre pour le côté esthétique avec les nombreuses animations lumineuses qu’elle contient.
  • Une carte mère et un écran, récupérés sur un ordinateur qui devait finir à la casse !

 

Finissons par aborder la communication entre les différents éléments de la borne. Voyons tout d’abord quel est le petit diagramme SQL que nous utilisons pour structurer notre base de données :

 

Le but final est donc qu’à chaque nouveau passage de badge, si ce dernier n’a jamais été passé, une nouvelle instance de joueur est créée. Sa clef primaire est déduite de son UID sur son badge IMT (qui est logiquement unique et propre à chacun). Ensuite, le joueur a la possibilité de rentrer son pseudonyme qui servira ensuite à l’affichage sur notre plateforme de statistiques.
Après cela, le joueur réalise une partie et une instance de partie est créée à l’aide de la classe ’Jeu’ où sont référencés tous les jeux de la borne, puis de la classe ’Score’ où les scores qui viennent d’être établis ont été stockés à la fin de la partie, et finalement le joueur est associé à la partie grâce à la classe ’Joueur’ où sont stockés tous les UID des personnes ayant déjà joué aux jeux.
Afin d’assurer la communication entre le lecteur RFID et la base de données, nous utilisons un programme python disponible à la fin de cet article que nous vous recommandons de lire en même temps que la suite pour comprendre les fonctions dont nous allons dorénavant parler.
Lorsqu’un joueur passe son badge devant le lecteur celui-ci envoie une chaîne de caractères via le port série au PC, la fonction ser.readline() récupère alors cette chaîne de caractères. Pour s’assurer qu’il n’y a pas
eu de problème lors du transfert serial, on vérifie que la chaîne de caractères est à la bonne longueur. Dans le cas contraire on rappelle la fonction ser.readline() jusqu’à obtention d’une chaîne correcte.
On envoie ensuite une requête à la base de données pour savoir si le badge est déjà connu, si oui on récupère le pseudo du joueur puis on charge ses scores et on lance l’émulateur de jeux d’arcade. Sinon, on demande à l’utilisateur un pseudo qu’il peut rentrer en actionnant le joystick, on insère ce nouveau pseudo dans la base de données et on démarre l’émulateur Attract/MAME.
Ainsi à chaque début de partie on fait communiquer la technologie RFID avec la base de données pour récupérer les informations relatives à l’identité du joueur. Par suite, durant la partie il s’agit de traiter les données relatives à la partie de ce joueur, c’est donc la communication entre l’ordinateur et la base de données qui intervient.
Lorsqu’une partie se termine sur la borne, notre script python détecte la fermeture de l’émulateur grâce à la fonction system() qui permet d’appeler la commande SHELL Ubuntu ’pgrep’. Ensuite, le script cherche quel fichier de score a changé depuis la dernière partie, il dispose pour cela de fichiers txt qui contienne les CRC, identifiants uniques calculés grâce à des opérations binaires, des fichiers en question : si le nouveau CRC est différent de l’ancien, alors il faut traduire le fichier de score en un fichier texte grâce au programme
externe ’hi2txt’. Le script python parcours ensuite le fichier texte et traduit chaque score en une requête MySQL.
Lorsque tout cela est fait, on copie tout les fichiers de scores du joueur dans un dossier personnel pour les sauvegarder.

 

Conclusion : Voilà, la présentation de notre borne d’arcade touche à sa fin, nous espérons que vous aurez pu comprendre son fonctionnement. Comme promis, vous pouvez retrouver tous les codes utilisés, notre rapport détaillé et quelques vidéos de démonstration sur notre espace cloud dont le lien de téléchargement est le suivant : https://cloud.imt-atlantique.fr/index.php/s/8jxarR2xwoFzRgT/download

Allez ensuite dans le dossier Telefab et trouvez votre bonheur 🙂

Merci d’avoir pris le temps de nous lire.

Thomas Claudet pour l’équipe Codev (Julien Aboudaram, Matthias Prevost, Julien Lantrin, Thomas Claudet).

 

Système d’arrosage automatique

Envoyé par le 9 Juil 2018 dans À la une, Applications Android, Blog, Portfolio, Projets | 1 commentaire

Nous sommes deux étudiant à l’IUT (Institut Universitaire de Technologie) et nous avons fait notre stage de fin d’étude à l’IMT Atlantique au sein de Fablab.

nos objectifs du stage :

  • créer des fiches techniques pour plusieurs capteurs utilisés dans le projet.
  • réaliser un système d’arrosage automatique.
  • contrôler le système à distance.

Création du fiche techniques:

Nous avons reçu un colis qui contient « smart plant care Kit »et deux capteurs supplémentaires d’humidité de terre.

Pour voir le contenu du kit, voici le manuel :  http://wiki.seeedstudio.com/Grove_Smart_Plant_Care_Kit/

nous avons tout d’abord créé une fiche technique pour chaque capteur d’humidité de terre (un capteur Grove, GoTronic et DFRobot).

chaque fiche contient les spécifications électroniques, le branchement du capteur sur la carte Arduino UNO et un exemple simple de code.

Le but était de comparait les trois capteurs d’humidité de terre pour choisir le meilleur et de comprendre la fonctionnalité de chaque capteur.

Installation du système:

Ensuite nous avons commencé l’installation d’un système d’arrosage automatique tout d’abord par la création d’une fiche technique pour chaque capteur de système (cliquer ici pour accéder aux fiches techniques).

Exemple: le branchement de capteur humidité de terre

Puis nous avons testé un démo code fournit par Arduino (cliquer ici pour voir le démo code) pour vérifier le bon fonctionnent du système et pour bien comprendre l’algorithme de ce code et afin de créer notre propre code qui respecte les meilleures conditions d’arrosage.

Avant de commencer l’écriture de notre propre code nous avons fait une recherche sur les meilleures conditions d’arrosage pour garder plante en état parfait.

les conditions optimales pour arroser une plante :

• La majorité des plantes doit être uniformément humide, donc elle dépend d’un arrosage régulier.

• Il vaut mieux arroser rarement qu’arroser souvent mais avec peu d’eau.

• Il vaut mieux arroser tard le soir au lieu d’arroser tôt le matin, car l’eau s’évapore moins pendant le soir qu’en pleine journée.

• Il faut garder les feuilles sèches, car des feuilles mouillées devienne en générale des feuilles malades.

• If faut arroser de manière ciblée ce qui signifie que la quantité exacte d’eau atteint les racines.

• Il vaut mieux arroser autant que nécessaire et peu que possible, cela se fait grâce à un système d’arrosage automatique.

Description de l’algorithme du programme:

Un arrosage automatique sera effectué lorsque les mesures nécessaires pour l’arrosage tombent sous un seuil prédéfini respectant la météo autour du système

pour cela nous avons défini les seuils suivants (en considérant que le système sera installé à Brest) :

• Humidité de terre inférieure à 60%

• Humidité de l’air inférieure à 95%

• Température inférieure à 24 °C

• Indice UV inférieur à 2

Cliquer ici pour accéder à notre code.

Contrôle du système à distance:

Notre étape suivante était de créer une application pour faire la connexion entre le système d’arrosage et un portable de système Android afin de contrôler l’arrosage manuellement (l’application a été créé sous « MIT App Inventor 2 ».

La connexion entre le portable et le système d’arrosage se fait grâce au module Bluetooth « HC-05 », Ce module permet d’envoyer les commandes vers le système d’arrosage et de recevoir les mesures venant de ce système et les transmettre vers le portable.(cliquer ici pour accéder à l’application )

Finalement voici une photo de notre produit final.

Voir le manuel pour plus de détails sur le branchement final du système.

Nous avons réussi à créer une fiche technique  pour chaque capteur et installer un système d’arrosage automatique contrôlé  par téléphone via Bluetooth.

 

Réalisé par:

Ali Alkhathami & Khaled Alhowas

 

Fiches techniques: Capteur Humidité de Terre

Envoyé par le 9 Juil 2018 dans Trucs & astuces | 0 commentaire

Le Fablab possède différents capteurs d’humidité de terre. Ce sont des capteurs analogiques et peuvent tous être alimentés en 3.5V ou 5V.

Condition Min Max Unité
Tension 3,3 5 V
Courant 0 35 mA
Valeur de sortie Le capteur dans un sol sec 0 300
Le capteur dans un sol mouillé 300 700
Le capteur dans l’eau 700 950

 

le branchement de capteur humidité de terre

Code d'Exemple pour afficher la valeur d'humidité


int MoisturePin = A1;
int MoistureValue = 0;

void setup() {
Serial.begin(9600);
}
void loop() {
// read the value from the Moistur sensor:
MoistureValue = analogRead(MoisturePin);
Serial.print("Moisture = " );
Serial.println(MoistureValue);
delay(1000);
}