Projet IMA3 P7, 2017/2018, TD1

De Wiki de Projets IMA
Révision datée du 17 juin 2018 à 21:21 par Bgridean (discussion | contributions) (Travail supplémentaire)

Projet IMA3-SC 2017-2018- Replica

Pour ce projet, nous déposerons tous nos programmes et documents pour la partie informatique ainsi que pour la partie électronique sur un dépôt GIT[1].
Ce dépot sera régulièrement mis à jour et il sera partagé avec les encadrants du projet afin de permettre la visualisation du travail réalisé.


Description du système

INSERER LA PHOTO FINALE

Replica est un objet connecté capable de réaliser un scan en 3D d'une pièce et de la reproduire sous un format STL imprimable sur une imprimante 3D. La commande du scanner se fait à travers une interface web sur laquelle un utilisateur pourra s'authentifier et choisir les paramètres du scan. Après avoir déposé préalablement la pièce à reproduire sur le support, l'utilisateur peut lancer le scan depuis le site. Le dispositif fait alors des acquisitions de points sur les contours de la pièce. Après l'acquisition,il transforme ce nuage de points en une representation 'maille de triangles' (triangle mesh) sous un format STL. Ce fichier pourra être téléchargé une fois le processus terminé.

Cahier des charges

Ce projet a pour but de :

 1. Acquisition de mesures de distance 
2. Pilotage des moteurs pas-à-pas
3. Transmission des points de mesure depuis l'arduino à la Raspberry en liaison série.
4. Reconstruction de la géométrie de l'objet scanné
5. Génération d'un fichier STL
6. Réalisation de l'interface web et mise en place de la communication

Objectif global: un système capable de fonctionner pour une catégorie d'objets solides plus ou moins uniformes.

Séance 1

Préparation de la séance

Préalablement à cette séance, nous avions:

1. formé notre groupe et avons déjà réfléchi a notre idée de projet.
2. étudié la faisabilité et les éventuelles difficultés.
3. récupéré sur internet des modèles 3D du support d'un projet similaire sur internet que nous avons adapté à notre cas.
4. préparé une liste des composants et du matériel nécessaire.

Partie électronique

Calculs
Schéma du Conditionneur

Nous avons défini deux sous-objectifs pour cette partie:




  • Le conditionnement du signal du capteur:

En effet, le capteur de distance fourni revoie, d'après la datasheet (Ref: 2Y0A21F7Y), un signal variant entre 0.3V et 3.1V. Pour plus de précision nous allons conditionner ce signal pour que la valeur varie entre 0V et 5V. Pour réaliser cette transformation, nous utilisons un montage à base d'amplificateurs opérationnels. Après avoir effectué les calculs des paramètres, nous validons l'approche et entamons la simulation.




  • Pilotage des moteurs pas-à-pas :

Nous avons besoin de piloter deux moteurs pas-à-pas pour reproduire les mouvements du scanner. La rotation du support et le balayage vertical du capteur.
Après l'analyse de la datasheet des moteurs qui nous ont été fournis, nous avons relevé les caractéristiques de courant et de tension ainsi que la configuration du moteur.

Partie informatique

Durant La première séance nous avons entamé l'installation et la configuration de la raspberry.

Travail supplémentaire entre les deux séances

Lancement des impressions 3D du support du scanner.

Parties mécaniques imprimées


Séance 2

Préparation de la séance

Nous avons défini les sous-objectifs suivants à réaliser pendant la séance:

  • Calibrage du controleur moteur et mise en marche du moteur
  • Conception physique du conditionneur de signal et test
  • Configuration de la Rasberry pour fonctionner en hotspot

Partie électronique

Circuit pour controler le moteur

Le capteur de distance

Circuit conditionneur de signal

Apres nous avons etudie les traits des moteurs et du controleur moteur, on a essaye de calibrer le controleur pour n'avoir pas un courant qui peut endommager le moteur. Pour faire ca, nous avons cherche comment limiter le courant avec ce type de controleur. Nous avons trouve la methode suivante:


  • calculer la valeur optimale pour le courant de sortie de controleur, en utilisant la formule specifique pour nos composants ( Controleur A4988, Moteur pas-à-pas)
  • mettre le courant (en entournant le potentiometre) qui sort du controleur a la valeur que nous avons calcule
  • ajouter le moteur, le circuit pour controler le moteur, l'Arduino pour une source de 5V et la source de 12V
  • allumer les sources
  • verifier si le moteur tourne comme prevu
  • sinon, tourner le potentiometre jusqu'a le bon mouvement du moteur, comme s'il n'y a pas assez ou trop de courant, le moteur ne tourne pas facilement

Finalement, nous avons calibre le controleur pour avoir en sortie 0.6A.



Pour verifier que notre circuit conditionneur convertit correctement le signal, nous avons ajoute le capteur de distance dans notre montage.




Sur le logiciel Arduino, nous avons cree un code qui nous donne les valeurs recus par le capteur et nous avons les mettre en temps reels sur un graphe. Dans le video au-desous, on peut voir que la sortie du capteur est entre 0V et 5V, donc que notre circuit fonctionne correctement.



Nous avons réalisé un test du circuit de conditionnement pour l'acquisition de la distance : Video

Travail supplémentaire entre les deux séances

Le scanner, forme initiale

Travail supplémentaire .... pas 3eme seance ?!?!

Partie programmation: Arduino

Dans cette partie nous allons vous détailler notre code Arduino 
Le programme attend de recevoir l'information sur la précision (envoyé par l'interface web) du scan puis la validation pour commencer.

En fonction de la précision le programme va faire plus ou moins de capture de point de l'objet par rotation. Vu que nous avons pas pu avoir de contrôleur moteur fonctionnel, nous faisons une acquisition de points toute les X microsecondes. Avec les contrôleurs nous aurions fait la prise de point tout les X degrés de rotation de l'objet (X sera calculé en fonction de la précision envoyé).

Les points sont ensuite envoyé un a un par liaison série jusqu’à la Raspberry pour être traité. On envoie dans un premier temps les paramètres du scan, c'est a dire la précision et la hauteur de l'objet, puis tout les points renvoyés par le capteur.

Reconstruction 3D

Les points arrivent un a un via la liaison série sur la Raspberry, un programme python récupère les deux paramètres puis l'ensemble des points et les ajoutent a la ligne dans un fichier texte.

20
2
655
640
625
610
620
623
610
...
..
.

Fichier de récupération liaison série : Fichier:Recup fichier.zip


C'est ensuite un programme en C qui récupère le fichier texte précédent et pour chaque points calcule les coordonnées cartésienne et stocke le tout dans un autre fichier texte.

10
5.000000
0.000000
0.000000
 
4.755282
1.545085
0.000000

4.045085
2.938926
0.000000
 
2.938926
4.045085
0.000000

1.545085
...
..

Fichier de conversion : Fichier:CylindriqueTOcartesien.c.zip

Ensuite, on convertie ce fichier texte en .stl :

A toi Arezki...

Interface web

Démonstration

Bilan