Le marteau de Thor
Sommaire
Cahier des charges
Description du projet
L'objectif de ce projet est de réaliser un marteau digne du marteau de Thor, héros Marvel. Ce marteau dénommé Mjolnir a pour caractéristique de ne pouvoir être soulevé que par une personne digne de lui. Pour ce projet, l'objectif est de créer un marteau qu'une seule personne puisse soulever. Pour cela on se basera sur un électroaimant et un lecteur d'empreintes digitales.
Problématiques
Sur ce projet nous pouvons rencontrer diverses problématiques qui touchent aussi bien la spécialité SC que la spécialité SA. En effet il nous faut une solution communicante interne au marteau pour gérer l'activation ou non de l'électroaimant. Il est aussi nécessaire de réfléchir à une solution de communication entre le marteau et un élément extérieur afin de gérer une phase où le marteau ne répond qu'à une personne d'une phase où on cherche à créer le profil de cette fameuse personne. D'autre part, le marteau étant confiné et embarquant un système autonome et un électroaimant, il nous faut réfléchir à une gestion d'énergie optimale pour obtenir une autonomie maximale.
Premières propositions de solutions
En ce qui concerne la partie communication du marteau il semble possible de se baser sur un arduino. L'arduino permettrait de récupérer les informations du lecteur d'empreinte digitale et de les traiter avant de renvoyer une information d'activation ou de désactivation de l'électroaimant bloquant le marteau au sol. En ce qui concerne la communication avec l'extérieur nous avons pensé dans un premier temps à utiliser un téléphone androïd avec une puce NFC. Au travers d'une application on pourrait se connecter en NFC au marteau pour en prendre le contrôle. Cette application permettrait notamment de passer le marteau dans un mode d'apprentissage pour enregistrer une nouvelle empreinte digitale.
Concernant la partie gestion d'énergie on pense dans un premier temps utiliser des batteries entourant l'ensemble du système arduino et donnant du poids à la tête du marteau. Pour les économiser nous avons vu sur internet qu'il pouvait être intéressant d'utiliser un capteur de pression au niveau du manche du marteau pour n'activer l'électroaimant que lorsqu'une personne essaie de le soulever. Cependant cette solution permet à quelqu'un de soulever le marteau en l'attrapant par la tête et non le manche. Cette première solution nous parait donc convenable mais ne résout pas tous les problèmes. Il nous reste enfin à réfléchir à une solution pour recharger ces batteries. En effet même s'il est possible de recharger les batteries sur secteur, il nous semble intéressant de réfléchir à une possible récupération de l'énergie cinétique emmagasinée par le marteau lors de mouvements initiés par son maître.
Matériels nécessaires
- un arduino UNO
- un lecteur d'empreintes digitales : http://www.mouser.fr/ProductDetail/MikroElektronika/MIKROE-1722/?qs=GJ%2F2ZGcr5uOW3uiL4M9shA%3D%3D
- une puce NFC (un shield Arduino NFC)
- un téléphone sous androïd
- un électroaimant
- un alimentation électroaimant de 24V
- une alimentation arduino : bloc alimentation de 5V.
Solution finale et réalisation
Suite à des remarques sur le besoin en matériel et sur la complexité de la mise en place de charge/décharge des batteries, nous avons décidé de changer de solution pour plutôt nous orientez vers une solution composée d'un marteau et d'un socle.
Dans le marteau nous retrouverons donc l'arduino, son bloc d'alimentation et le lecteur d'empreintes digitales. Dans le socle nous retrouverons une alimentation secteur ainsi que l'électroaimant. Pour créer une communication entre les deux éléments il nous a été proposé d'utiliser des petits aimants qui assurerons le bon contact.
Création du marteau
Pour créer ce marteau avec son socle nous avons choisi d'utiliser la découpe laser pour créer un marteau en bois. Nous avons décidé de créer un marteau d'une taille correcte, soit 300x200x250 et un socle pouvant accueillir quelqu'un dessus soit 700x500x150. Nous avons choisi d'utiliser un bois de 6mm pour trouver un compromis entre l'épaisseur et la solidité du marteau.
Nous avons donc dessiné les plans suivants :
Déverrouillage du marteau
Pour déverrouiller le marteau, lorsque l'arduino reçoit l'information il alimente un transistor permettant de couper l'alimentation de l'électroaimant.
Par lecture d'empreinte digitale
Une première solution pour déverrouiller le marteau est d'utiliser le lecteur d'empreinte digitale présent sur le manche. Ce lecteur d'empreinte digitale vient comparer l'empreinte de l'utilisateur avec celle préalablement enregistrée. Si cette condition est vérifiée, le fingerprint envoie cette information à l'arduino qui vient désactiver l'électroaimant comme indiqué précémment.Cette piste a été abandonné faute d'avoir su exploiter le composant commandé. En effet la documantation concernant celui-ci est fragmentaire et nous n'avons pas pu trouver de moyen d'utiliser le composant dans le temps du projet
Par application android
Une autre solution pour déverouiller le marteau est d'utiliser une application android couplée à un shield NFC. Le shield NFC se trouve sur le marteau à côté du manche. Pour déverrouiller le marteau, il faut donc poser le téléphone à proximité de l'emplacement de la puce et appuyer sur le bouton prévu à cet effet. Encore une fois une piste qui n'a pas pu être explorée à cause de l'incompatibilité des technologies NFC utilisées par le téléphone Android et le shield arduino. En effet si la communication du shield vers l'android est possible la réciproque, elle, est impossible.
Par carte étudiante
Une troisième solution est d'utiliser la puce présente dans la carte étudiante pour valider ou non le déverrouillage du marteau. Il s'agit de développer un code arduino qui commandera au shield NFC de lire les UID de toute carte étudiante présentée. Ainsi à l'allumage, la première carte lue devient l'UID de Thor, gardée en mémoire par l'arduino. Ensuite les cartes présentées seront comparées à cet UID et si l'UID lu est le même l'arduino enverra un signal pour déverrouiller le marteau le cas inverse rien ne se passera au niveau de l'aimantation. C'est la solution utilisée, elle est certes très simple à mettre en place mais reste un moyen sûr d'avoir un moyen d'identification effectif plutôt que n'avoir qu'un marteau collé sans possibilité de déverrouillage.
Par bluetooth
Enfin la dernière solution qui a été évoquée mais pas explorée par faute de temps consiste à coupler une application android et un shield Bluetooth arduino dans le but de réaliser un déverrouillage à distance du marteau par l'envoi d'un UID NFC par bluetooth. Linformation reçue sera alors traitée comme si le shield NFC l'avait reçu et l'UID sera comparée à celle de THor pour autoriser ou non la libération du marteau.
Planning
16/12/2015 : Réunion avec Emmanuelle Pichonat pour affiner le cahier des charges
07/03/2016 : Apprentissage des bases d'utilisation de l'imprimante 3D avec une personne du Fabricarium
Prévisionnel
fevrier 2016 : réalisation d'un premier système fonctionnel : lecteur d'empreinte digital, alimentation, électroaimant.
objectif : coller/décoller correctement
mars 2016 : mise en place de communication entre marteau et exterieur, mise en place de batterie et recharge.
objectif : rendre le marteau autonome en alimentation et mettre en place une communication entre marteau et appli android
avril 2016 : fabrication de l'enveloppe du marteau, mise en place des composants à l'intérieur
objectif : rendre le marteau présentable lors de Portes Ouvertes par exemple
mai 2016 : Vidéo et soutenance
Selon avancement : amélioration de la recharge (possibilité de recharge par induction lorsque le marteau est posé au sol), amélioration de l'enveloppe du marteau (possibilité de le rendre plus esthétique aux couleurs de Thor ou de l'école)
Avancée
Semaine 1 : Nous avons récupéré quasiment l'intégralité du matériel nécessaire à l'exception du lecteur d'empreinte qui est en commande. Nous avons aussi réfléchi sur les étapes de travail à suivre pour atteindre les objectifs fixés en février. Dans un premier temps nous allons tester l'alimentation de l'électroaimant commandé par l'arduino au travers d'un transistor en mode bloqué/saturé. Pour simplifier cette phase, le lecteur d'empreinte digital sera remplacé par un switch.
Nous savons que l'électroaimant s'alimente en 12V DC et offre une force de maintien de 180Kg. L'arduino s'alimente en 5V et permet de délivrer une tension proche de 5V sur les sorties digitales. Pour alimenter l'arduino nous disposons d'un bloc d'alimentation qui ressort 5V sur un port USB. Pour l'adapter il nous faut câbler un port USB jusqu'aux PIN d'entrée de l'arduino.
Semaine 2 :
Nous avons changé d'électroaimant suite à la constatation de modification dans l'électroaimant précédemment donné.
Nous avons effectué les soudures pour l'alimentation de l'Arduino et vérifié l'état de fonctionnement de celui-ci ainsi que le bon fonctionnement de l'électroaimant.
Le premier constat était l'impossibilité d'aimanter avec une alimentation 12V, nous avons donc testé l'alimentation 24V qui fût un succès.
Nous avons donc fait des recherches concernant à un montage nous permettant, grâce à l'Arduino, de commander l'alimentation ou non de l'électroaimant.
Nous avons opté pour un montage à transistor (TIP29) qui nous permet lorsque la base est alimentée en 5V d'avoir une alimentation de 24V sur l'aimant et 0V lorsque la base n'est pas alimentée.
Suite à cela nous avons établi un morceau de code Arduino nous permettant d'envoyer un signal par l'une des pin de l'Arduino mais ce signal semble ne pas délivré de différence de potentiel suffisante pour commander l'alimentation de l'électroaimant par le 24V au collecteur.
Semaine 3 : Suite à discussion avec monsieur Boé et madame Pichonnat nous avons repris la réflexion sur la solution de base que nous avions pensé pour noter système. En effet, mettre l'électroaimant dans le marteau implique l'utilisation de batterie ayant un coût et complexifiant le système de par la nécessité de sa recharge. Nous avons donc travaillé durant cette séance sur le pour et le contre des deux solutions :
- batterie dans le marteau avec système de recharge
- électroaimant dans un socle à réaliser.
Semaine 6 : Nous avons effectué des recherches approfondies sur le lecteur d'empreintes que nous allons utiliser même si celui ci n'est malheureusement pas encore arrivé. Nous avons trouvé des sources d'informations nous renseignant sur les pins du lecteur d'empreintes mais il reste cependant un problème : le site sensé contenir des codes exemples de l'utilisation du lecteur d'empreintes n'est pas clair du tout et nous n'avons pas encore réussi à trouver un exemple pour le composant ... Il semble cependant que le site comprenne ces codes exemples ainsi que des codes sources permettant de développer des applications smartphones pour gérer le lecteur d'empreintes . Il ne reste plus qu'à trouver le moyen de les consulter. Une autre avancée à noter est le choix d'établir le contact Socle--> Arduino par le biais d'aimants.
D'autre part, nous avons contacté les personnes compétentes au Fabricarium pour savoir comment fonctionne la découpe laser. Nous prévoyons dans un premier temps de réaliser une maquette du marteau en bois. Nous avons donc pu travailler sur les plans nécessaires pour la découpe.La fabrication du marteau et du socle est donc prévue la semaine prochaine avec quelques ajustement pour placer l'électroaimant ainsi que des aimants permettant la communication entre les deux éléments.
Semaine 7 : Durant cette semaine, nous avons testé plusieurs éléments avec l’électroaimant avant de lancer une découpe laser. Après avoir refait le câblage de l’électroaimant, nous avons pu tester différent matériaux au travers duquel l'aimant devrait adhérer. Un premier soucis est vite apparu. La première plaque de métal que nous avions ne permettait pas une aimantation correcte, même sans aucun élément entre l'aimant et cette dernière. Nous avons donc fouillé de nouveau au Fabricarium pour trouver des plaques de métal plus adaptées. Dans un second temps, nous avons remarqué que peu importe la quantité de bois présente entre l'électroaimant et le métal, l'aimantation devenait quasi inexistante (nous sommes descendu jusqu'à 3mm de bois).
Nous avons donc décidé de refaire les dessins de découpe laser pour inclure une encoche pour les plaques de métal. Cette dernière permet d'avoir le métal et l'électroaimant directement en contact. Côté électronique des soudures ont été effectué pour finir la connectique du lecteur d'empreintes. Au niveau du code il semble cependant que la documentation fournie avec le "fingerprint click" soit pratiquement nulle les "codes exemples" sensés se situer sur le site libstock sont indiqués comme "coming soon".
De plus amples recherches seront effectuées en semaine 8 avec l'aide de Mme Pichonnat pour voir si des solutions sont trouvables et dans le cas contraire il nous faudra alors configurer ce lecteur d'empreintes par nos propres moyens en tâchant de trouver comment fonctionne le composant et quelles sont les fonctions utilisables ...
Semaine 9 Durant cette semaine, nous avons appronfondi une piste suite aux recherches de la semaine 8. Nous avons pu trouver des exemples de codes pour un fingerprint GS511C3 qui semble similaire à notre fingerprint GS511E2. L'objectif était donc d'adapter un premier code simple qui fait clignoter le lecteur d'empreinte digital. Après avoir récupéré les différentes bibliothèques propres au GS511C3, nous avons voulu adapter les I/O en se basant sur la documentation technique et le schéma électronique de notre fingerprint. Ces essais se sont montrés infructueux, en effet il y a de grandes différences au niveau des pins, notamment plusieurs informations présentes sur l'un mais pas sur l'autre.
Nous prévoyons donc de continuer dans ce sens d'une part mais de prévoir une solution supplémentaire en parallèle. Nous allons donc nous pencher sur le développement d'une application android pour pouvoir déverouiller le marteau grâce à une puce NFC. Pour cela, nous nous baserons sur le shield NFC etle téléphone récupérés en début de projet.
Semaine 10 Nous nous sommes dirigés vers notre objectif de réaliser une application android permettant de communiquer avec le shield NFC arduino que nous avons à notre disposition. Nous avons ainsi séparé le travail en deux parties : La programmation de l'arduino et le développement de l'appli. Nous avons donc installé les logiciels spécialisés dans le développement sur ces deux plateformes (respectivement Arduino ide et Android Studio avec le package sdk). Ainsi après avoir réussi à programmer l'arduino nous avons effectué des tests avec les cartes étudiantes et nous avons réussi à déterminer une carte comme étant celle de Thor et à le reconnaitre à chaque fois tout en refusant l'accès aux autres cartes présentées. Cette partie est donc un succès. Toutefois survient un problème que nous avons découvert en testant ce programme avec des smartphones... La technologie NFC utilisée par les smartphones n'est pas lue par le shield NFC de notre arduino... Nous avons recherché la source du problème et avons trouvé l'explication. La technologie NFC n'ayant aucune convention établie, il se peut que différents appareils NFC soient tout à faits incompatibles. Le projet de développer une application gérant les messages NFC pour dévérouiller le marteau est donc impossible à réaliser pour ces raisons de compatibilité... Nous voyons donc Mme Pichonnat vendredi 29 avril pour tenter de trouver une autre solution.
Nous sommes cependant capables de dévérouiller le marteau de Thor grâce à sa carte étudiant !
Pour cela, nous utilisons les commandes nfc présentes dans la bibliothèque NfcAdapter. Les commandes de bases que nous utilisons sont nfc.begin pour l'initialisation, nfc.tagPresent pour détecter un tag nfc et nfc.read pour la lecture des informations présentes sur une puce nfc. Nous réalisons un programme simple mais fonctionnel dans un premier temps, à savoir :
- Lecture d'une carte pour initialiser Thor
- Boucle de test des cartes présentées : Si elle est identique à celle de l'initialisation, on déverrouille, sinon on laisse verrouillé.
Conclusion
Ce projet nous aura permis de nous orienter vers différentes pistes et d'explorer différentes possibilités. Même si nous nous sommes confrontés bon nombre de fois à des recherches infructueuses, nous avons appris pas mal de choses sur des technologies que nous n'avons pas utilisées. Le marteau final, bien que loin du cahier des charges initial niveau technologique, est fonctionnel et clé en main.
Nous aurions aimé pouvoir utilisé le lecteur d'empreinte digital afin d'améliorer grandement notre projet mais nous n'avons pas su en tirer parti. Nous pensons cependant que cela est faisable et encourageons des recherches dans ce sens à l'avenir.
Nous pensons aussi qu'une alimentation sur batterie serait préférable afin d'améliorer la portabilité de ce marteau.
En conclusion, ce projet nous aura permis de travailler de différentes manières et d'apprendre, à nos dépens, les méthodes de travail à ne pas utiliser. Avec un résultat fonctionnel, nous en sommes quand même satisfait car le résultat nous semblait inatteignable par moment.