Projet IMA3 P5, 2017/2018, TD1 : Différence entre versions
(→Partie Informatique) |
(→Partie Informatique) |
||
Ligne 172 : | Ligne 172 : | ||
===Partie Informatique=== | ===Partie Informatique=== | ||
− | Afin de savoir combien de | + | Afin de savoir combien de points un joueur a obtenu, nous avons choisi de trouver où la fléchette a frappé. Pour ce faire, nous avons donc utilisé 5 capteurs piézo-électrique, un au centre et 4 à 0 + k*pi/2, chacun au maximum des extrémités de la cible. Afin de trouver la position de la fléchette, nous avons fait une analogie avec le calcul du centre de masse sur un système discret, ainsi la cible est munie d'un repère, et en connaissant l'emplacement des capteur et leur amplitude au moment de la frappe, nous pouvons calculer la position, puis le nombre de points obtenu grâce à ce tir. |
== Bilan == | == Bilan == |
Version du 14 juin 2018 à 09:56
Sommaire
Projet IMA3-SC 2017-2018
Cahier des charges
Jeu de fléchettes intelligent
Description du système
Le jeu de fléchettes sera équipé de capteurs piézo afin de détecter les impacts réalisés sur le jeu. Les données seront traitées et envoyées en wifi à un ordinateur.
L'utilisateur aura accès à une interface web pour consulter les données en temps réel :
- le score
- les pressions mesurées sur le plateau
Matériel nécessaire
- Carte Arduino
- Shield pour Arduino
- Carte Raspberry avec adaptateur wifi
- Capteurs piézo (pour le moment nous n'en avons que deux mais c'est suffisant pour faire les tests)
- Breadboard
- Jeu de fléchettes
Séance 1
Nous avons résumé les différentes parties du système afin de nous partager le travail :
Partie Informatique
Carte Raspberry
- Envoi du signal brut en wifi en temps réel
- Affichage en temps réelle du site web
Interface web
- réception du signal brut
- évaluation des points
- visualisation des données de pression et des points
Partie Electronique
Nous avons finalement choisi d'utiliser une carte Arduino pour le convertisseur analogique -> numérique.
Jeu de fléchettes
- minimum 3 zones de touches
- utilisation de capteurs piézo pour déterminer la touche
- plutôt souple pour aider à la localisation de la touche
Carte électronique
- amplification du signal
- filtrage du signal
- CAN (Arduino)
Nous avons constaté des pics de tension détectés par l'Arduino lorsque des chocs étaient infligés au capteur piézo.
Il est important de noter que le capteur piézo était plus efficace d'un côté que de l'autre, ceci était du à une soudure présente que d'un seul côté qui surélevait le capteur. Cette soudure rendait le capteur asymétrique et favorisait la concentration de contrainte, amplifiant ainsi les résultats. Il sera donc important d'avoir ceci à l'esprit sur le système réel en ajoutant un petit objet entre le capteur piézo et le jeu de fléchette afin d'amplifier la sensibilité au besoin.
Séance 2
Partie Informatique
Nous nous sommes aussi occupés de la configuration de la Raspberry pi en point d'accès Wifi.
Pour cela, nous nous sommes connectés à la Rapsberry via ssh et son adresse IP ethernet : 172.26.145.110 (différente de l'adresse IP wifi : 192.168.100.1).
Une fois connectés sur la carte, il nous suffit de configurer cette dernière en pont d'accès.
Pour cela, nous avons utilisé le paquetage hostapd et nous avons modifié les paramètres suivants :
- le nom de notre point d'accès via ssid="..."
- le code de la France via country_code=FR
- le canal pour éviter que toutes les Raspberry soit sur le même canal via channel=5;
- le WPA via wpa=1
- le mot de passe du point d'accès via wpa_passphrase = **********
- la protection de la Wifi via wap_key_mgmt = WPA-PSK
Une fois la configuration terminée, nous avons dû configurer les IP des clients du point d'accès afin d'avoir la possibilité de se connecter sur la Wifi.
Pour cela, nous avons utilisé le paquetage isc-dhcp-server et nous avons modifié les paramètres suivants :
- le nom de notre domaine via option domain-name
- l'adresse du serveur DNS (192.168.100.1)
- l'état de légitimité de notre serveur DHCP via authoritative
Ensuite, nous avons ajouter, dans le code, ce bloc réseau :
subnet 192.168.100.0 netmask 255.255.255.0 {range 192.168.100.100 192.168.100.200; option routers 192.168.100.1;}
Partie Electronique
Nous avons réalisés plusieurs essais avec la carte Arduino afin de mesurer les données envoyées par les capteurs piézo
Le problème que nous avions rencontré à la séance précédente était une impédance trop forte du capteur piézo lorsque aucune variation de pression n'est faite, donnant des valeurs erronées lors d'une mesure de tension.
Solution 1 - utilisation d'un AOP
Ceci est le premier montage essayé, nous avons utilisé un LM324 (non sujet au problème de "phase reversal" dans notre cas) afin de comparer la tension captée à une tension de référence modifiable par un potentiomètre.
Ce montage était supposé augmenter l'impédance d'entrée du montage après le capteur piézo tout en permettant des erreurs de mesures plus fortes (car seulement deux signaux possibles en sortie tout ou rien), cependant cela n'a pas suffit à stabiliser la mesure qui, bien que plus fiable pouvait s'avérer tout de même fausse car on devait parfois ré-ajuster la tension de référence.
Solution 2 - utilisation d'une résistance de faible valeur en parallèle du capteur piézo
Ceci est la solution retenue car elle permet l'utilisation d'une entrée analogique. La résistance ajoutée permet à l'entrée analogique d'être reliée à la masse lorsque le capteur piézo n'est pas sollicité.
Nous avons également trouvé un modèle qui nous à permis, avec deux capteurs posés à la base d'une règle de trouver à quelle coordonnées la pression était faite en analysant les deux signaux trouvés.
Ceci s'avère donc une solution efficace qui permettra d'utiliser plusieurs capteurs pour augmenter la précision de la mesure des coordonnées de l'impact.
Séance 3
Partie Informatique
Durant cette séance, nous avons commencé à créer notre site internet.
Il est composé d'un bloc Menu, avec les entrées, et d'un bloc d'affichage, avec les sorties.
Notre bloc Menu possède 2 boutons :
- Un bouton "RESET"
- Un bouton "JOUER"
Notre bloc d'affichage affiche une cible et le résultat des 2 joueurs.
Partie Electronique
Séance supplémentaire
Partie Mécanique
Pour réaliser notre projet, nous devions faire une cible afin de tester. Pour ce fait, nous avons décidé d'utiliser le Fabricarium (1).
Nous avons utilisé la découpeuse-laser pour créer notre cible.
(1) http://www.fabricarium.fr/mediawiki-1.23.5/index.php/Accueil
(1) https://fr-fr.facebook.com/fabricarium/
Partie Informatique
Afin de savoir combien de points un joueur a obtenu, nous avons choisi de trouver où la fléchette a frappé. Pour ce faire, nous avons donc utilisé 5 capteurs piézo-électrique, un au centre et 4 à 0 + k*pi/2, chacun au maximum des extrémités de la cible. Afin de trouver la position de la fléchette, nous avons fait une analogie avec le calcul du centre de masse sur un système discret, ainsi la cible est munie d'un repère, et en connaissant l'emplacement des capteur et leur amplitude au moment de la frappe, nous pouvons calculer la position, puis le nombre de points obtenu grâce à ce tir.