====== Journal de Bord ======
\\
FIXME indiquer les dates dans le journal pour qu'on voit quand vous travaillez sur le projet.
\\
DELETEME Elles sont indiquées ici [[wiki:projets:telemetre:roles|Rôles]]
\\
Voici notre page principale, vous pourrez y suivre l'avancement du projet, nos problèmes, nos résolutions, nos idées de génies 8-) etc...
\\
* [[ :wiki:projets:telemetre:jdb#semaine1|Semaine 1]]
* [[ :wiki:projets:telemetre:jdb#semaine2|Semaine 2]]
* [[ :wiki:projets:telemetre:jdb#semaine3|Semaine 3]]
* [[ :wiki:projets:telemetre:jdb#semaine4|Semaine 4]]
* [[ :wiki:projets:telemetre:jdb#semaine5|Semaine 5]]
* [[ :wiki:projets:telemetre:jdb#semaine6|Semaine 6]]
* [[ :wiki:projets:telemetre:jdb#semaine7|Semaine 7]]
* [[ :wiki:projets:telemetre:jdb#semaine8|Semaine 8]]
\\
Tout d'abord la partie "Initiation":
* Le 27/01 : Initiation à Arduino
* Le 03/02 : Initiation à la conception 3D avec le logiciel Openscad, et réalisation et impression de notre 1er objet 3D
* Le 10/02 : Formation du groupe et attribution du projet
Maintenant il est tant de connecter nos neurones, d'échauffer nos doigts, de faire chauffer nos ordis, et c'est parti, le projet attaque ;-)
-----------------------------------------------------------
{{anchor:semaine1}}
===Semaine 1 : Travail bibliographique===
Nous ne nous attarderons pas sur cette semaine, notre projet ayant changé
En effet au début nous avions choisi de réaliser un télémètre ultrasonique, nous avions donc préparé une documentation dessus. Mais les professeurs ont changé notre projet la semaine suivante.
----------------------------------------------------------
{{anchor:semaine2}}
===Semaine 2: Travail bibliographique (durée 1-2h par personnes)===
Suite à un changement de projet nous nous attelons désormais à la réalisation d'un profilomètre. Nous repartons donc de notre entrevue du 17/02 avec un nouveau travail de recherche a faire.
Nous trouvons qu'il existe différents profilomètres, les principaux étant les profilomètres optiques et les profilomètres à contact. Nous ne savons pas vraiment lequel choisir, et ne trouvons pas énormément de support internet et de DIY pour nous aider. Nous avons juste décidé que le profilomètre se présentera sous une forme de "voiture" c'est a dire d'un châssis sur roue, qui avancera à très faible vitesse pour avoir le temps de détecter correctement les aspérités de la surface. Nous aurons donc 4 grandes parties dans notre projet, une partie "motrice", une partie "détection", une partie "analyse" et une partie "conception 3D". Mais nous nous rendons vite compte que ce sera un projet dur à réaliser et apercevons les nombreuses difficultés, notamment pour pourvoir capter de très faibles variations de surface de l'ordre de la dizaine de micromètre. Étant un peu égarés et ne savant pas trop comment partir nous avons gardé toutes nos recherches en tête et avons attendu notre nouvelle entrevue avec les professeurs pour se faire conseiller.
-------------------------------------------------------------
{{anchor:semaine3}}
===Semaine 3: Étude des différentes solutions (durée 8h)===
Exposant nos difficultés aux professeurs ils nous ont conseillé et donné des idées pour détecter les aspérités de la surface. La détection de la variation de la hauteur d'une surface étant le point central de notre projet, nous allons y consacrer une grosse partie de notre temps.\\
Pour commencer nous décidons que pour la détection nous utiliserons une sorte de "tête de lecture" qui sera en contact avec la surface.
Mais pourquoi une tête de lecture et pas tous simplement un laser qui serait réfléchi sur la surface et relié à un photo-capteur comme pour la lecture de cd? \\ Parce qu'on veut pouvoir étudier n'importe qu'elle surface, et il y a des surface qui réfléchissent plus que d'autre ce qui ne renverra pas les mêmes données au capteur...
Avec Malissa et Julien (Théo) nous avons donc recherché les différentes solutions possibles avec leurs avantages et inconvénients.
Tout d'abord nous voulons que la tête de lecture se présente comme une tige accrochée au châssis au bout de laquelle il y aura une aiguille en contact avec la surface, qui va "lire" ses variations (voir photo ci dessous). Pourquoi une tige et pas tout simplement une aiguille en liaison glissière verticale avec le châssis? Parce que la force de réaction du support et les forces de frottement sur l'aiguille créent un moment par rapport au centre de la liaison pivot de la tige avec le châssis, il y aura donc moins de contraintes horizontales sur l'aiguille, elle aura donc moins de chance de casser par rapport à une simple liaison glissière verticale.
{{ :wiki:projets:telemetre:dessin2.png |}}
**__Etude de solutions: lecture aspérités__**\\
Nous avons fait de nombreuses recherches et études de systèmes, la plupart aboutissant à de nombreux problèmes et des choses nous dépassant complètement. Nous détaillerons ici très succinctement celles sur lesquelles nous nous sommes le plus attardés.
__Tête de lecture disque vinyle :__ C'est la solution qui nous a paru la plus facile au début. En effet cette tête de lecture peut détecter des variations de quelques dizaines de microns, le capteur est déjà "tout fait" il suffirait juste de l'acheter. Mais en cherchant plus précisément nous avons remarqué que la cellule phonographique (la cellule, le plus souvent magnétique, qui détecte les "vibrations" de l'aiguille) détecte 2 signaux, un radial et un vertical, or nous nécessitons seulement d'un signal vertical. Cela a donc comme inconvénients: travail de décomposition des signaux qui peut être difficile, des documentations souvent très difficiles à saisir à notre niveau, il faut coupler le capteur à un ampli RIAA qui va amplifier le signal ce qui implique un travail de recherche poussé sur ce genre d'ampli, tête de lecture qui risque de rayer certaines surfaces, prix élevé.
Les avantages sont: tête de lecture très résistantes (si on prend du diamant synthétique), détection des aspérités de l'ordre de grandeur que l'on veut, facile a mettre en place, tête de lecture "toute faite".
__Tige piézoélectrique/ capteur de pression: __ Nous regrouperons ici 2 études en une. La première serait que la tige serait flexible, et piézoélectrique (qui change de résistance sous l'action d'une contrainte mécanique), ce serait donc un capteur peut coûteux et il serait facile d'analyser le signal renvoyé. Mais il serait difficile d'accrocher une aiguille au bout de cette tige. De plus les variations de quelques microns ne représenteront qu'une flexion très faible et donc une variation de résistance, je pense, trop faible pour être détectée. L'autre solution sera d'attacher la tige au châssis non pas par le bout, mais a peu près à 1/3 de la tige (côté aiguille). Une variation de hauteur de l'aiguille créerait donc une variation plus grande de l'autre coté de la tige et cette variation serait détectée par un capteur de pression (tige qui appuierait plus ou moins dessus). Cette solution parait facile à réaliser, le problème le plus dur à résoudre serait de mettre en équation la force de pression de la tige sur le capteur par rapport a la hauteur de variation de la surface.
__Détection optique: __
Nous développerons en particulier cette solution puisque c'est celle que nous avons choisi.
Ne voyant que des problèmes dans toutes nos solutions (mais attend elle veut rien dire ta phrase ? -Oui mais vous m'avez compris :-P ) il a bien fallu nous lancer dans quelque chose. Et nous avons choisi une détection optique.
Alors comment ça marche ? Sur le papier ça a l'air simple, on reste sur une tige attachée par l'extrémité à un châssis par une liaison pivot d'axe, et une "aiguille" de lecture de l'autre côté, mais sur cette aiguille on rajoute un miroir posé horizontalement (ou angle a calculer), on attache au châssis un laser, et une photodiode. Le laser pointera vers le miroir avec un certain angle (lui aussi a calculer), le faisceau sera alors réfléchi vers la photodiode qui captera l'intensité lumineuse de celui-ci. Quand l'aiguille de lecture changera de hauteur, l'angle incident du faisceau sera alors modifié et la photodiode ne captera plus la même intensité lumineuse. Nous pensons que c'est la meilleur solution pour détecter de très faibles variations de l'ordre du micron tel que nous le voulons. Il y aura néanmoins une grosse partie de calcul pas très amusantes, et bien sûr ces calculs ne représenterons que la théorie, il faudra ensuite faire toutes une série de tests pour les vérifier, car il nous faut une très grande précisions sur l'analyse du signal.
Bref comme un schéma est mieux qu'un long discours voici globalement ce que nous comptons faire.
{{ :wiki:projets:telemetre:dessin3.png |}}
\\ \\
On vient de parler de photodiode? mais qu'est ce que c'est que ça? Nous le verrons plus précisément plus tard quand on fera une analyse complète dessus, pour l'instant contentez vous de la définition Wikipedia: Une photodiode est un composant semi-conducteur ayant la capacité de détecter un rayonnement du **domaine optique** (d'où l'utilisation d'un laser (rouge? -> a voir)) et de le transformer en signal électrique.
\\
Afin d'avoir du concret nous sommes donc allés Malissa, Julien et moi (Théo) au Fablab afin de faire un test de détection laser et vérifier qu'une photodiode pourra détecter des variations de luminosité. Je vous invite donc à aller voir notre page Test :-D [[wiki:projets:telemetre:tests|Diférents tests]]
\\
**__Etude de solutions: Motorisation du système__**\\
Pour le moment, je (Tristan) me suis renseigné sur les différentes techniques de pilotage d'un moteur. Dans notre cas, un simple moteur à courant continu pourra faire l'affaire. Cependant, il convient d'obtenir une très faible vitesse de rotation (et donc de translation par la suite) pour exploiter notre profilomètre. La méthode de PWM (MLI en francais pour “modulation de largeur d'impulsion”) semble être une solution intéressante. Cependant pour obtenir une vitesse très faible, je crains que le moteur produise des à-coups qui perturberaient évidemment l'analyse de la surface étudiée et donc l'utilisation globale de notre système. J'en conclus donc qu'il faudra certainement, en plus d'un pilotage par PWM, utiliser un ou plusieurs réducteurs. Enfin, je me suis également informé sur l'utilisation de cartes Arduino pour le pilotage de moteur à courant continu, solution tout à fait possible.
-------------------------------------------------------------------------------------------------
{{anchor:semaine4}}
===Semaine 4: Étude des différentes solutions (2)(durée 15h):===
Maintenant que nous savons que nous allons détecter les aspérités avec notre système laser/photodiode, il faut étudier le système à fond (calculs mathématiques). D'une part cela nous permettra de le réaliser, mais d'autre par cela nous permettra de connaître les dimensions de notre profilomètre, pour pourvoir débuter la conception 3D. Notre groupe étant constitué de 7 personnes, 3-4 personnes s’occuperont des calculs, 1-2 personnes de l'étude et de la conception de la tête (aiguille + miroir), pendant que je (Théo) m'occuperai de l'étude des photodiodes, et que j'assisterai (programmation Arduino) Tristan dans tous les tests qu'il réalisera pour permettre de motoriser notre châssis. \\
__**Étude du récepteur de lumière:**__\\ \\
Ayant très peu de connaissance dans le domaine de l'électronique je me lance dans mes recherches et je trouve principalement 3 types de photorécepteur: la LDR (photorésistance), la photodiode, le phototransistor.
Après avoir lu cet article [[http://mchobby.be/wiki/index.php?title=Photo-r%C3%A9sistance|Photo-résistance]] je décide de ne pas choisir une photo résistance puisque elle est instable.
Mais donc photodiode ou phototransistor? Après avoir visité plusieurs sites et forum, tous sont catégoriques un phototransistor est beaucoup plus sensible qu'une photodiode (de 100 à 400 fois plus selon Wikipédia), mais il dispose d'un temps de réaction plus lent. Cependant en discutant avec un chercheur en physique aujourd'hui (04/03) celui-ci m'a appris qu'il était beaucoup plus précis au niveau de très faible intensité lumineuse, or un laser est puissant. Il m'a donc conseiller d'utiliser une photodiode, en particulier la BPW34, sans filtre dans l'IR.
Rappel : Qu'est ce qu'une photodiode? \\
Une photodiode est un composant semi-conducteur ayant la capacité de détecter un rayonnement du domaine optique et de le transformer en signal électrique.
Je choisis d'utiliser un laser rouge, puisque c'est le moins cher et le plus courant, de plus c'est celui qui dispose de la longueur d'onde la plus élevée ce qui est le mieux pour notre photodiode qui a le plus souvent une plus grande précision dans des longueurs d'onde autour de 800nm. De plus nous ne voulons pas un laser dans l'infrarouge puisque on ne pourra alors pas voir le faisceau à l’œil nue ce qui posera de nombreux problèmes lors des tests.
Nous choisissons donc une diode laser rouge d'une longueur d'onde de 650nm (la plus courante) de 5mW (classe 1: la moins dangereuse) comme celle-ci [[http://www.miniinthebox.com/fr/6mm-3v-5mw-point-laser-diode-tete-rouge-650nm-module-wl_p391001.html?currency=EUR&litb_from=paid_adwords_shopping&utm_source=google_shopping&utm_medium=cpc&adword_mt=&adword_ct=75464231922&adword_kw=&adword_pos=1o3&adword_pl=&adword_net=g&adword_tar=&adw_src_id=4196617767_325125042_22935537762_pla-145578157242&gclid=CLqC35-Fp8sCFeoBwwodhTwAEw|Diode laser rouge 650nm 5mW]].
Comme je l'ai dit au dessus j'ai abandonné l'idée d'utiliser un phototransistor après avoir discuté avec des personnes compétentes en électronique de plus comme nous allons utiliser 2 photorécepteurs (voir juste un peu plus bas) il en faudra 2 identiques, or les photorésistances sont instables et les valeurs mesurées changent d'une à l'autre. De plus on m'a conseillé d'utiliser un BPW34, dont on dispose au lab, je ne me lancerai donc pas dans des études comparatives de photodiode, la BPW34 étant une référence dans le domaine de la photodétection. [[http://www.selectronic.fr/photodiode-bpw34.html|La BPW34]] [[https://www.google.fr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&ved=0ahUKEwjIs_6U-qfLAhUHPxoKHR4BDusQFggrMAI&url=http%3A%2F%2Fwww.physique.ens-cachan.fr%2Flaboratoire%2Fcomposants%2Ffichiers%2Fbpw34vishay.pdf&usg=AFQjCNH5lIP4kdx4GxAlQhW-GpSAqjmt4Q&bvm=bv.116274245,d.d24&cad=rja|Le datasheet]]. Elle ressemble a ceci: \\ {{ :wiki:projets:telemetre:photodiode-pkg-19-bpw34.jpg?100 |}} \\
Après avoir discuté de notre projet avec le physicien (je n'est pas pensé à lui demander son nom :-X). Il m'a conseillé de mettre 2 photodiodes (BPW34) côte à côte. Et c'est une idée de génie! en effet au repos le laser pointerai entre les 2 photodiodes, elle capterai donc normalement le même signal et quand on soustrait les signaux sur la carte on obtient zéro (en théorie). Quand la pointe de détection bougera, l'angle incident changera et le laser éclairera donc plus une photodiode qu'une autre, en soustrayant le signal on pourra faire la relation entre le signal obtenue et le relief de notre surface. De plus avec Julien et Malissa on nous nous étions posés des questions quand à la détection de la luminosité de la pièce. En effet la photodiode capte la lumière, notre système ne renverrai donc pas les même valeurs si on s'en servait dans une pièce sombre ou très éclairé. La solution? Brancher la diode laser non pas en permanence sur le 5V mais sur une broche digital de la carte Arduino. Mais pourquoi? parce qu'on pourrait faire une première mesure le laser éteint, puis l'allumer faire une mesure et la soustraire a la valeur d'avant, la lumière ambiante ne nous embêterai donc plus puisqu'elle serait soustraite a chaque mesure 8-).\\
Voici donc a quoi ressemblera notre système de détection final!!!! :-D (nous avons choisi de mètre le laser vertical et le miroir sur la tige qui tien l'aiguille pour nous simplifier les calcul et nous faciliter la mise en place du laser).\\
{{ :wiki:projets:telemetre:dessin1.png |}}
\\
Il faut maintenant voir comment brancher ces 2 photodiodes. Tout d'abord il est important de savoir qu'une photodiode crée **un courant I (en A)** dès quelle est traversée par des radiations lumineuses. Or notre carte ne détecte que des variations de tension (en V). La solution? une résistance! en effet **U=R*I** comme I va changer en fonction de la luminosité, U va changer aussi, il suffira donc de brancher la résistance à une entrée analogique et de lire les variations de tension. Il faudra donc refaire des tests cette fois ci avec une photodiode. \\ \\
__Branchements:__ \\
{{ :wiki:projets:telemetre:untitled_sketch_2_bb.png?200 |}}
\\
__Test:__ \\
[[wiki:projets:telemetre:tests#test_photodiode|Test BPW 34]]\\
\\
__Résultats: __ \\
Comme je le dit dans ma partie tests pour avoir un signal bien plus précis j'ai changer la valeur analogique de référence.
{{anchor:moteur}}
Je vous renvoie vers ma page [[wiki:projets:telemetre:programation|Partie Programation]]\\
Et ma page test [[ :wiki:projets:telemetre:tests#moteur|ici]]. Nous nous servons d'un moteur bipolaires, afin de mieux comprendre mon programme je vous invite très fortement à aller faire un tour sur cette page [[http://eskimon.fr/290-arduino-603-petits-pas-le-moteur-pas-pas|moteur pas à pas]].
__**Etude de la motorisation**__ \\
Je (Tristan) m'intéresse à présent à la forme (grossière) finale qu'aura notre profilomètre. En effet, ceci est nécessaire pour déterminer le positionnement du moteur. Pour commencer, j'avais tout d'abord pensé à un système en forme de "pont". A partir de la, j'aurai fait translaté l'aiguille directement entre les 2 "pylônes" du châssis. Cependant, après avoir étudié cette solution , je me suis rendu compte qu'il faudrait également piloter le laser ainsi que la photodiode à la même vitesse que l'aiguille se déplaçant sur la surface. Cette solution n'étant à priori pas efficace, nous avons alors pensé à une autre solution. Il s'agit alors de déplacer non pas l'aiguille seule sur la surface étudiée mais de déplacer l'intégralité du système comme s'il s'agissait d'une voiture télécommandée. Pour cela nous avons pensé à utiliser un châssis plat en dessous du quel nous aurions placé 4 roues (roues du style roues de trottinette ou de rollers). Nous aurions alors placé un moteur sur le châssis et aurions piloté les roues avant par arduino en utilisant un système de tige filetée en guise de vis sans fin. Cependant pour obtenir une trajectoire bien rectiligne, il aurait probablement fallu utiliser un système de différentiel des roues. J'ai alors pensé à installer trois roues et non pas quatre sur notre système en plaçant une seule roue à l'avant que je motoriserai. J'ai alors été discuter avec Laurent Teixeira pour avoir son avis sur cette solution. Il m'a alors proposé de ne pas utiliser de vis sans fin mais de raccorder le moteur directement à la roue avant motrice, en positionnant le moteur sous le châssis. En effet la vitesse de translation finale souhaitée étant très faible, cette solution est bien adaptée. Cependant le moteur étant assez conséquent, il faudra donc dimensionner la hauteur du châssis ainsi que celle des roues en fonction de la taille du moteur. De plus, j'ai pensé à un problème de répartition des masses... En effet, le moteur possède une masse conséquente par rapport à celle de notre système finale, ainsi en le plaçant à l'avant de notre système, sur un des côtés du moteur, celui ci serait déséquilibré et risquerait de ne plus suivre une trajectoire bien rectiligne lors de sa mise en mouvement, ce qui nuirait ainsi considérablement à l’exploitation des données et donc à la précision de notre système. Il faudra donc placer une masse environ égale à celle du moteur à l'opposé du moteur, de manière à rendre notre système le plus homogène possible d'un point de vue massique. Je me suis alors procuré le matériel dont nous aurions besoin, à savoir un shield moteur arduino, un moteur "RS 5350401" ainsi que des roulements de manière à ce que les roues tournent en ayant le moins de frottements possibles. Ci-dessous les photos du matériel ainsi que de croquis du système. \\ \\ \\
{{:wiki:projets:telemetre:12776739_1145419178804386_705298930_o.jpg?direct&300|}}
{{ :wiki:projets:telemetre:schema_tristan_1.png?direct&300|}}
{{ :wiki:projets:telemetre:schema_tristan_2.png?direct&300 |}}
__**Calcul de la distance variable en fonction de l'angle réfléchi **__\\
{{ :wiki:projets:telemetre:fablab_calcul.jpg?400 |}}
Le but est de déterminer la distance (l'écart) entre les deux différents angles réfléchis, le premier lorsque l'on ignore les 10 micromètres et le deuxième quand on le prend en compte (par exemple pour le cas d'un creux sur la surface travaillée). Pour cela on doit tenir compte également des dimensions du moteur.Vu qu'il s'agit de l'ordre du micro, la variation qu'on appellera (Δα) sera assez faible (d'ordre 10^(-4)) mesuré en degré. En prenant l'exemple de 2 centimètres et 3 cm de longueur par exemple, Simon et moi (Patrick) avons trouvé un α("avant")=48.1896851° et un α("après")=48.1894288°, soit un (Δα) = 2.56*10^(-4)°. \\
\\
{{anchor:semaine5}}
----------------------------------------------------------------------------------------------------------
===Semaine 5: Premières réalisations (durée 10h) ===
\\
__**Détermination de la distance miroir/photodiode:**__\\
\\
Comme il faut que le projet avance, il nous faut un châssis, mais pour ça il faut savoir de quel taille on le fait, mais pour ça il fallait finir les calculs. C'est pour ça que je suis allé (Théo) au Fablab avec Julien pour discuter des différents calculs et commencer a imprimer quelques pièces en 3D. Nous avons tout d'abord fait des calculs en nous appuyant sur de la trigonométrie basique pour arriver a un résultat qui nous disait que notre projet était irréalisable. En effet nous trouvions une distance miroir/photodiode de plus d'1 mètre. Mais en vérifiant nos calculs nous nous sommes aperçus que nous nous étions trompés dans une puissance de 10. Puis nous nous sommes enfin rendu compte que nos calculs étaient complètement faux puisque nous disions que le laser tapait le miroir exactement en sont milieu en tout instant or c'est faux puisque quand la pointe va se mettre dans un trou, comme la longueur de la tige reste la même, le laser n'éclairera plus le miroir en son milieu. On pense donc tout d'abord que le calcul et beaucoup trop compliqué et on commence à douter de la faisabilité de notre projet.
Mais en rentrant chez moi je repose calmement le problème et j'arrive à une solution. \\
{{ :wiki:projets:telemetre:12833424_1794641400562184_1407906313_n.jpg?300 |}}\\
\\
On a donc l = Δx - [cos(Δα)sin(2α2)*(tan(α2)cos(α1)*L/2 - H/2)]/tan(Δα)\\
avec:
* l = longueur miroir/photodiode au point "zéro"
* Δx = la variation maximal de notre faisceau sur les photodiode
* Δα = la variation maximum d'angle de la tige
* α2 = l'angle entre le châssis et la tige au point le plus bas
* α1 = l'angle entre le châssis et le tige au point "zéro"
* L la longueur de la tige
* H la hauteur entre le haut de l'aiguille et le châssis
/!\ Il est important de remarquer ici que la formule et faite pour un laser qui tape le miroir en L/2, pour changer cette valeur par exemple pour le faire taper en 2L/3 il suffi de cahnger L/2 en 2L/3 et H/2 en 2H/3 dans la formule.
\\
Comme il nous faut une variation d'angle Δα maximum il faut un H et L petit. Nous avons décider que L=2cm et H=1cm était le plus petit que nous puissions faire pour que cela reste "facile" a réaliser. Je fait donc l'application avec une profondeur max (h sur le schéma) de 100 micron. Et je trouve un l=0,1628133m soit environ 16,3 cm. Ce qui est assez grand mais ça reste réalisable. Julien et moi décidons alors de faire un programme sur Python pour tester différentes valeurs de H et de L pour essayer de trouver la forme la plus "optimisée": la plus compacte. \\
\\
Voici le programme et les résultats (le laser tape le miroir en 2L/3 puisque c'est le plus simple a réaliser):
{{ :wiki:projets:telemetre:capture_programme_python.png?300 |}}
{{ :wiki:projets:telemetre:capture_resultat_programme.png?300 |}}
\\
\\
__**Réalisation du circuit imprimé de photodetection**__:
\\
\\
Pour simplifier la vie lors du montage et que ça soit plus propre, je décide (Théo) de réaliser mon "capteur de détection" sous forme de circuit intégré. Pour cela je me sert du logiciel kiCAD, et consulte de nombreux tutoriels pour apprendre à m'en servir. Mon "capteur de détection" comporte donc tout simplement 2 photodiodes BPW34 et 2 résistances de 100kohms. Le problème c'est qu'il n'existe pas de librairie qui contienne la bpw34. Je me fait donc conseiller par plusieurs personnes qui me disent qu'ils ne savent pas se servir du logiciel, par chance je tombe aujourd'hui (15/03) sur un électronicien qui va réaliser le circuit, je lui donne donc mes références et toutes les côtes.\\
\\
\\
__**Réalisation du châssis :**__
\\
\\
Julien et moi (Théo) sommes allés au fablab afin de réaliser le châssis, les roues et différents supports. Je m'occupe d'abord des calculs (voir photos ci dessous) pendant que Julien modélise les pièces sur Openscad. \\
\\
Voici les calculs: (insérer photo) \\
\\
Voici les pièces réalisées: \\
{{ :wiki:projets:telemetre:12380522_1796556380370686_241136501_n.jpg?300 |}}
{{ :wiki:projets:telemetre:12421297_1796581843701473_2061178701_n.jpg?300 |}}
\\
Une fois les calculs terminés nous avons toutes les dimensions de notre profilomètre. Nous nous occupons donc de la conception du châssis à la découpeuse laser, ainsi que des roues arrières. Pour que le châssis avance, il faut que les roues tournent (#génie 8-) ), pour cela nous avons choisi de les mettre sur roulement (voir 2ème photo ci dessous) \\
{{ :wiki:projets:telemetre:12421304_1796556493704008_1592300905_n.jpg?300 |}}
{{ :wiki:projets:telemetre:12336107_1796556317037359_805793440_n.jpg?300 |}}
\\
\\
__**Modification du positionnement du moteur :**__
\\
\\
D'après les calculs de mes camarades sur les dimensions du profilomètre, je (Tristan) vais devoir modifier ce qui était prévu, à savoir le positionnement du moteur. En effet, jusque ici, j'avais prévu, comme indiqué précédemment de le coupler directement à la roue avant motrice en le fixant sous le châssis. Cependant, le moteur à la forme d'un cube de 42.3mm d'arêtes tandis que pour une bonne exploitation des informations fournies par la tête de lecture, le châssis doit se trouver à environ 1cm du sol... Il va donc de soi que je vais devoir placer le moteur au dessus du châssis. Ceci ne change cependant pas grand chose en soi puisque l'axe de la roue motrice sera situé au dessus du châssis. Il suffira donc de coupler la roue au moteur de manière direct comme prévu initialement.\\
\\
\\
__**Roues libre arrières (premier essai) :**__
\\
\\
Je (Julien) suis allé au Fablab pour créer les roues libres arrières à partir des pièces qui ont été découpées. J'ai donc collé les 4 cylindres deux par deux pour ne former que 2 roues plus épaisses et je les ai limées pour éviter que le châssis vibre une fois les roues fixées dessus. En parallèle, j'ai redécoupé le châssis pour permettre aux roues d'entrer entièrement (les trous étaient trop petits) et j'ai fait un plus grand espace pour placer la tête de lecture qui ne rentrait pas à cause des dimensions du miroir qui n'avaient pas été prises en compte.\\ J'ai ensuite percé les roues pour les faire passer dans la tige métallique et je les ai fixées à celle-ci à l'aide d'écrous.\\ J'ai finalement placé les roulements aux extrémités de la tige et je les ai fixés de la même manière.\\ Après un test sur une surface plane, j'ai remarqué que les roues vibraient beaucoup trop et que cela allait avoir un impact néfaste sur la "lecture" de la surface. J'ai donc trouvé un revêtement en caoutchouc qui devrait résoudre le problème. Cependant n'ayant pas pris en compte l’épaisseur du revêtement, je vais devoir redécouper de nouvelles roues aux bonnes dimensions et les percer de nouveau, etc ...
\\ \\ __Voici les photos du châssis et des roues avec les roulements fixés à la tige:__
\\
Avant: {{:wiki:projets:telemetre:12026604_1796556583703999_915771799_n.jpg?200|}} Après: {{:wiki:projets:telemetre:chassis2.jpg?200|}}
\\
{{:wiki:projets:telemetre:rouesarrieres1.jpg?200|}} {{:wiki:projets:telemetre:rouesarrieres2.jpg?200|}}
\\
\\
__**Transmition de l'information :**__
\\
\\
Une fois les variations de surface détectées, il faut que notre profilomètre communique avec l'utilisateur pour lui renvoyer les valeurs. Je (Théo) m’intéresse donc a cette partie puisque c'est moi qui m’occupe de la programmation. \\
Plusieurs choix s'offrent a nous, le 1er et le plus facile étant la communication filaire avec l'ordinateur via le moniteur d'Arduino. En effet il suffit d'utiliser la librairie Serial comme utilisée jusqu’à maintenant lors des différents tests. Le problème c'est qu'il faut un ordinateur à proximité avec le logiciel Arduino et qu'il faut tirer le câble de connexion ce qui peut entraîner des perturbations de la lecture de surface. Je ne choisirai donc pas cette solution, puisqu'on a choisi de faire un profilomètre dont la qualité est la mobilité. \\
La deuxième solution et d'utiliser un module de communication sans fils tel que le module Xbee [[http://www.lextronic.fr/P5455-module-radio-xbee-xb24-awi-001.html|Module Xbee]], pour justement enlever le problème du câble. Mais le problème d'avoir un ordinateur a proximité reste, et il se crée un nouveau problème qui est cette fois ci celui de la programmation. En effet il faut tout d'abord apprendre à ce servir du module grâce a plusieurs tutoriels, ce qui sera déjà long, mais ensuite il faut créer un programme qui lira les valeurs renvoyées par le module pour ensuite les afficher sous forme de graphique (puisqu'on veut un graphique 2D de la surface scannée). Or pour cela il faut surement ce servir d'un deuxième langage de programmation. C'est donc réalisable mais il existe plus simple.\\
La dernière solution, celle que j'ai choisi, est d'afficher la courbe sur un petit écran LCD de ce genre [[https://www.adafruit.com/products/2719|| Ecran oled monochrome 128x64]], puisqu'il est assez facile de les programmer avec Arduino sans qu'ils prennent beaucoup d'entrées à la carte, ça enlève également le problème de tirer un fils, et il n'est pas nécessaire d'avoir un ordinateur a proximité. Je cherche donc plus précisément des sujets en rapport avec un affichage de courbe, et je fini par tomber sur ce tuto [[http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.ArduinoExpertTFTGraphiqueCouleurOscilloRvarx1Texte|| affichage d'une courbe]], qui réalise exactement ce que je veux, je devrais seulement légèrement modifier le code (le fusionner avec celui de lecture des photodiode). Je me pose cependant la question de la taille de l’écran, il utilise ici un écran TFT 65536 couleurs Graphique 132x176 type S65, qui a une petite résolution, donc la fonction map, réduira notre précision puisqu'elle transformera des valeurs de 0 à 1023 en valeurs de 0 à 130. Mon seul problème est donc de trouver un écran plus grand avec une librairie similaire aux TFT 65536. \\
\\
Je me pose aussi des questions quand à la "fusion" des différents programmes (programme final). En effet chaque programme se sert de la fonction delay, or cette fonction met entièrement en pose la carte Arduino. Mes différents programmes ne marcheront donc pas tous ensemble. La solution? utiliser la fonction millis! [[http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.Millis |fonction millis]]. \\
\\
---------------------------------------------------------------------------------------------------------
{{anchor:semaine6}}
===Semaine 6: Dernière réalisation et montage (durée h)===
__**Réalisation de la plaque de détection**__ \\
\\
Comme je n'arrive pas a faire un circuit imprimé et que personne ne peut me le faire pour l'instant, je décide de réaliser mon circuit avec une plaque de bois de 3mm d'épaisseur. Je fais un croquis des dimensions qu'il me faut et je le donne à Simon et Patrick. Ils me réalisent la pièce à l'aide du logiciel CorelDraw. Je lui rajoute ensuite les trous des résistances puis découpe la pièce à l'aide de la découpeuse laser. Je soude ensuite le tout et j'obtient finalement ceci :-D \\
{{ :wiki:projets:telemetre:12900160_1805233766169614_2044256363_n.jpg?300 |}}
{{ :wiki:projets:telemetre:12900131_1805233749502949_1863406960_n.jpg?300 |}}
\\
Il reste plus qu'a faire le test : [[ :wiki:projets:telemetre:tests#test_plaque|Test plaque de détection]]
\\
\\
__**Réalisation de la roue avant et couplage du moteur :**__
\\
\\
Aujourd'hui je (Tristan) m'occupe du couplage du moteur à la roue avant motrice avec Théo. Pour cela, je me rends au GreenLab pour obtenir des conseils concernant le couplage. Au passage, en étudiant le système, on voit que les bandes en caoutchouc collées sur les roues créent une vibration... C'est pourquoi je suggère l'utilisation d’élastiques plats, en effet, ils sont lisses et surtout continus... Revenons-en au couplage du moteur à la roue : la tige du moteur est cylindrique et lisse et il faut la relier de manière solide à la roue pour éviter tout patinage entre les deux. 2 solutions sont possibles : je peux par exemple réaliser la roue en mettant en son centre un trou en forme de demi cercle et limer le moteur de sorte à lui donner à peu près la même forme. Cependant, compte tenu du faible couple que le moteur va exercer sur la roue et de la difficulté à limer correctement le moteur je choisis une autre solution : le diamètre de l'axe du moteur est de 5mm, nous allons donc réaliser la roue avec un trou au centre d'un diamètre de 4,8mm. Pour commencer, nous réalisons donc la roue avant qui est différente des 2 roues arrières. En effet, la position de l'axe du moteur est à prendre en compte et nous contraint de réaliser la roue avec un rayon plus grand que celle des petites roues. En réalisant les mesures, on trouve qu'il faut la réaliser avec un diamètre de 66mm. Nous réalisons donc la roue à la découpeuse laser et je lime légèrement l'axe du moteur pour qu'il agrippe mieux lorsqu'il sera dans la roue. A partir de la je rentre en force l'axe du moteur dans le trou de la roue prévu à cet effet. C'est (très) serré et il n'y a aucun frottement, le tour est joué !
{{ :wiki:projets:telemetre:img_3279.jpg?200 |}}
\\
\\
\\
__**Montage du moteur, châssis complet:**__ \\
\\
Je suis (Théo) allé au Fablab avec Julien afin de refaire les pièces, (roulement et tige) puisque les supports des roulements ont fendu après les avoir cloué, et une des attaches du miroir sur la tige a également légèrement fendu (très petites pièces). Julien a donc modifié le support des roulements afin de le visser et non de le clouer. La vis rentre donc parfaitement sans imposer trop de contrainte au plastique (voir photo ci-dessous). \\
\\
{{ :wiki:projets:telemetre:12899805_1812977255395265_1135794406_n.jpg?300 |}}
\\
\\
Nous somme aller au Fablab avec Julien afin de voir comment nous allons accrocher le moteur. Tous d'abord nous remarquons que le moteur crée d'importantes vibrations si on le fait tourner lentement, or il faut les limiter au maximum pour que notre aiguille ne les détecte pas et que ça ne fausse pas nos mesures. Pour cela nous décidons d'utiliser de la mousse très aérée et molle, que nous mettrons entre le châssis et le moteur. Le problème c'est que ça rajoute une épaisseur alors qu'on a déjà découpe toutes les pièces aux "bonnes" dimensions. Je grave donc à l'aide de la découpeuse laser, un rectangle, de la taille du moteur, dans le châssis. Je le fait d'une profondeur de 1,5mm, puisque c'est la largeur de la mousse une fois aplatie (mesurer au pied à coulisse).\\
(Insérer photo châssis avec rectangle gravé)\\
Pendant ce temps Julien crée la pièce qui viendra plaquer le moteur contre le châssis afin qu'il ne bouge plus.
\\ Je vous rappelle que vous pouvez trouver tous les fichiers 3D sur la page [[wiki:projets:telemetre:ressources|Ressources]]
\\
{{ :wiki:projets:telemetre:12899901_1812977038728620_1243636751_n.jpg?300 |}}
\\
\\
__**Réalisation du programme final sans affichage lcd:**__ \\
Je vous renvoie encore une fois vers ma page [[ wiki:projets:telemetre:programation#prog_nolcd|partie Programmation]] afin de ne pas surcharger cette page qui est déjà bien remplie.
\\
-------------------------------------------------------------------------------------------------------------
{{anchor:semaine7}}
===Semaine 7: Dernière réalisation et montage (2) + premiers tests (durée: h)===
\\
Le Fablab est très peu ouvert en ce moment, cela nous rend encore plus en retard.
__**Montage des roues arrières et du moteur:**__\\
\\
Je suis (Théo) allé au Fablab afin que notre châssis puisse enfin rouler. Pour cela j'ai attaché les roues à la tige, mis des élastiques (pour l'adhérence) autour de chaque roue et j'ai vissé les supports de roulement au châssis. Bien qu'ayant mis la force de la visseuse au plus bas, les supports on encore une fois fendu, il faudrait en fait que la parois entre le trou pour la vis et le bord du support soit un peu plus épaisse. Mais les roues arrières tiennent quand même bien donc je décide de ne pas réimprimer les supports. Je m’intéresse ensuite a la fixation du moteur sur le châssis. Comme dit plus haut j'ai gravé un rectangle de la taille du moteur enfin d'insérer de la mousse entre le châssis et celui-ci. Afin de limiter encore plus les vibrations je décide de graver des rectangle de la taille des pattes de fixation du moteur afin qu'il y est également une couche de mousse entre la fixation (qui tiens le moteur) et le châssis. Je rajoute également une fine bande de mousse entre la fixation et le moteur. Je visse le tout et j'obtiens finalement ceci.
{{ :wiki:projets:telemetre:12899994_1816004571759200_1680017907_n.jpg?400 |}}
{{ :wiki:projets:telemetre:12935399_1816004505092540_1300418184_n.jpg?400 |}}
\\
\\
Il y a un problème: comme le pensait Tristan lors de son étude moteur, le moteur est lourd, et il déséquilibre en effet le châssis qui se pose sur l'angle où se situe le moteur (c'est pour ça que je fait contre-poids sur chaque photo). Il faudra donc penser a un contre-poids qui viendra équilibrer le châssis. \\
Je branche quand même le moteur à la carte Arduino, je mets le programme moteur dedans, et je teste voir à quel vitesse avance notre châssis avec le temps entre chaque pas qui nous paraissait le mieux (100ms). Et la je remarque qu'il y a un gros problème, le châssis avance très bien, et à une vitesse suffisante (mais presque trop rapide), mais il vibre énormément malgré tous mes effort afin de limiter les vibrations. Je doit malheureusement partir car le Fablab ferme mais je réfléchi à plusieurs solution. La première est de trouver une mousse plus adaptée pour amortir les vibrations, et d'en rajouter entre le moteur et sa fixation (quitte à la limer). La deuxième serait d'essayer de réduire la puissance du moteur, en effet vu que notre moteur a beaucoup de couple et que nous en avons surement pas entièrement besoin, peut-être que si je baisse la puissance du moteur (grâce aux pins PWM de la carte) les vibrations seront moins fortes. Je peux également essayer de tester d'autres vitesses moteur, car il est possible que le nombre de pas qu'il fait soit proche de la résonance de notre système moteur + châssis. Enfin si aucune de ses solutions ne marchent, j'ai lu plusieurs posts sur internet qui parlent d'une carte "micropas". Je me renseignerai plus en détails dessus si on en a besoin. Enfin la dernière solution serait de créer un réducteur, car le moteur vibre beaucoup moins si on le fait tourner plus vite, mais il faudrait revoir à ce moment là toute la fixation et créer ce réducteur mais nous manquerons de temps.
__**Résolution du problème de répartition des masses:**__ \\
Il est temps de m'intéresser (Tristan) au problème de répartition des masses. En effet, mes camarades ayant quasiment fini de réaliser les dernières pièces manquantes de notre système, je dois résoudre le problème de la répartition des masses. A ce jour, le moteur étant déjà fixé sur le châssis (voir section précédente), je parviens à me procurer la datasheet complète du moteur RS 5350401. Ce qui m'intéresse est bien évidemment la masse du moteur... Celle-ci est donc égale à 350g, ce qui représente une proportion élevée de la masse totale du système. (peser le système complet pour déterminer pourcentage). Je dois ainsi trouver une masse de 350g à placer de manière symétrique sur notre système. Ci-joint la datasheet de notre moteur.
{{:wiki:projets:telemetre:dsars0030567.pdf|datasheet RS5350401}}
__**Résolution du problème de vibration, montage du miroir et du laser:**__ \\
\\
Je suis (Théo) allé au Fablab avec Julien où nous nous sommes interessés au montage du système de détection.
J'ai tout d'abord testé mes différentes solutions afin de réduire les vibrations et j'ai combiné les 3. C'est à dire que j'ai démonté le moteur afin de mettre une mousse plus aérée mais qui garde sa forme d'origine même après une grosse compression, comme vous pouvez le voir ci-dessous. \\
\\
{{ :wiki:projets:telemetre:1.jpg?200 |}}
{{ :wiki:projets:telemetre:fetch.jpg?200 |}}
\\
J'essaye également de réduire la puissance du moteur en envoyant un signal créneau (broche PWM) et je constate qu'effectivement les vibrations deviennent légèrement moins fortes, mais elles restent toujours beaucoup trop importantes pour des mesures précises. Avec Julien nous décidons enfin de réduire considérablement le temps entre chaque pas du moteur, pour qu'il aille vraiment doucement, cela réduit d'une part les vibrations de manière assez importante mais de plus ça laisse le temps au châssis de ce stabiliser pour pouvoir faire les mesures juste avant le pas suivant. Je modifie donc mon programme final sans affichage LCD [[ wiki:projets:telemetre:programation#prog_nolcd|ici]], vous comprendrez peut-être mieux après y avoir jeter un coup d’œil.\\
\\
Nous essayons ensuite de répondre à la question: Comment accrocher la tête de lecture au châssis?
Nous essayons tout d'abord de refaire la tête de lecture pour pouvoir y accrocher l'aiguille, en effet l'imprimante laser n’étant pas assez précise elle n'a pas réussi à faire un trou d'1mm de diamètre. Julien agrandi donc le trou et nous réimprimons la pièce, sans plus de succès. Nous nous rendons compte également que nous nous somme trompé dans la conception de la pièce, en effet en enfonçant (avec un marteau pour tester) l'aiguille à l'endroit prévu a cet effet, nous nous rendons compte que l'aiguille n'est pas perpendiculaire au sol et qu'il n'y a pas les 1cm qu'il faut entre le haut de l'aiguille et le châssis (liaison pivot). En reprenant mes calcul je donne donc à Julien les bonne orientation a donner à la pièce. Pendant qu'il la modifie je réfléchi à comment accrocher cette tête de lecture a notre châssis. Nous pensons finalement a graver une rainure dans le châssis on viendra s’emboîter une tige qui rentrera dans le trou de la tête de lecture pour former une liaison pivot avec celle ci. Puis nous décidons finalement que la tige sera lié à la tête de lecture et que c'est donc la tige qui tournera dans la rainure du châssis. Pendant que Julien modifie la pièce et lance l'impression, je m’occupe de graver la rainure, je redécoupe également le trou dans le châssis pour que le miroir passe car il est légèrement trop petit. On teste et la pièce est parfaite, mais l'aiguille ayant cassé nous ne pouvons pas la tester avec. Pendant que je fait des calculs pour savoir ou exactement placer le laser sur le châssis c'est a dire pour que le laser tape à 2/3 de la longueur de la tête de lecture (qui fait 2cm), Julien crée le support laser sur Openscad. Nous attendons ensuite l'impression de la pièce. Une fois imprimer nous accrochons la pièce au châssis, insérons le laser dedans. Tout est parfait. Nous testons donc d’allumer le laser pour voir où il sera à peu près capté par les photodiodes et si c'est la ou nous le pensons (calcul de trigonométrie en fonction des résultats trouvés grâce a ma formule: hauteur d'environ 8cm du sol, à une distance de 14cm du miroir) et c'est effectivement à peu près ça. \\
\\
{{ :wiki:projets:telemetre:2.jpg?300 |}}
\\
\\
Il ne restera plus qu'à savoir si on a une variation de 1mm sur les photodiode pour une variation de 100microns de la surface, une fois tout notre système monté. En tout cas si on fait légèrement tourner le miroir on observe une variation nettement visible du laser sur la feuille. \\
On aura finalement un système qui ressemblera à ceci. \\
{{ :wiki:projets:telemetre:3.jpg?600 |}} \\
\\
Il ne reste plus qu'a réaliser le support pour les photodiode afin de les fixer au châssis, ainsi que de fixer le contre-poids et de faire les premiers tests. Je suis assez confiant pour la suite bien que nous soyons légèrement en retard. Je ne peux cependant pas encore attaquer la programmation de mon écran LCD étant donné qu'il n'est pas encore arrivé :-( :-/ \\
\\
\\
__**réalisation du support pour les photodiode :**__ \\
\\
Avec Julien on (Théo) on s'est penché sur le problème de l’accroche des photodiodes. Tout d'abord il faut savoir que les calculs nous servaient à avoir une idée de la taille de notre châssis et une vague idée de la distance miroir/photodiodes. Mais les calculs et la réalité c'est pas la même chose, en effet nous n'avons pas par exemple un châssis de niveau au millimètre près, peut-être pas une tête de lecture d'exactement 2cm sur 1 etc... et tout cela fait que nous pouvons avoir des décalages entre la réalité et les calculs (d'environ 2 à 3cm max). Il faut donc pouvoir faire un support amovible, c'est a dire qu'une fois monté au châssis, on pourra le configurer pour que le faisceau laser tape exactement au milieu des photodiodes avec un angle de 90°. Nous décidons avec Julien que le support soit amovible pour également pouvoir changer la résolution de notre profilomètre, en effet plus on approchera les photodiodes du miroir, plus on pourra détecter de grosses variations (de l'ordre du millimètre), et plus on l'éloignera plus on pourra détecter de petite variation (on l’espère de l'ordre de quelque dizaine de microns). On réfléchit donc longuement pour savoir comment faire ce support. On décide finalement de le faire en 3 parties. La première est une sorte de mat, accroché au châssis, d'une taille d'environ 10cm (pour se laisser une marge d'erreur pas rapport aux calculs), qui comporte une fente pour pouvoir régler la hauteur de la 2ème pièce ainsi que l'orientation. La 2ème piece est enfaite une sorte de raille ou on pourra coulissé la 3ème pièce (celle qui tient le photodiodes), pour pouvoir avancer et reculer les photodiodes face au miroir. Julien crée donc les pièces sur Openscad chez lui, puis on se revoit, nous en rediscutons et apportons quelques modifications et lançons les impressions. Le problème c'est que il n'y à plus qu'une imprimante qui fonctionne et nos 3 pièces mettent plus d'1h30 d'impression chacune. Nous n'avons donc eu le temps d'en imprimer que 2 pour l'instant (pièce 1 et 3). Je vous mets déjà les photos, vous comprendrez beaucoup mieux notre système une fois la 2ème pièce imprimée et les pièces toutes assemblées entre elles. \\
{{ :wiki:projets:telemetre:4.jpg?300 |}}
{{ :wiki:projets:telemetre:5.jpg?300 |}}
\\
\\
On est allé au Fablab avec Julien pour imprimer la dernière pièce. Le problème c'est que l'imprimante ne l'a pas fait très droite... Mais cela n'a pas l'air de poser de problème pour le moment. On a donc monté toutes les pièces entre elles, c'est a dire que nous avons passé une tige filetée dans la fente du "mat" qui vient tenir la 2ème pièce (rondelle + écrou). Nous avons enfin fait glisser la 3ème pièce dans la 2ème. Elle coulisse très bien, il suffit juste d'un peu forcer, exactement ce qu'on voulait. On obtient finalement ceci: \\
\\
{{ :wiki:projets:telemetre:12965957_10207809801874242_203219412_n.jpg?500 |}}
\\
__**affichage lcd : **__ \\
\\
Ça y est, j'ai enfin reçu mon écran LCD 8-), je vous rappelle que j'ai choisi [[http://eu.banggood.com/Wholesale-Warehouse-2_8-Inch-TFT-LCD-Shield-Touch-Display-Module-For-Arduino-UNO-wp-Uk-989697.html|Celui-ci]].
Maintenant passons au plus dur: lui faire afficher quelque chose. Il faut tout d'abord savoir que pour faire afficher du texte par exemple à un écran LCD, il vaut mieux trouver une librairie adéquate si on ne veut pas avoir à afficher pixel par pixel. Le problème c'est que c'est un écran pas cher parce que c'est un écran chinois (sans mauvaise blague ^_^), c'est à dire que c'est une copie de l’écran fabriqué par Adafruit ([[https://www.adafruit.com/products/376|Celui-ci]]), et donc il n'existe pas de librairie développée par le fabriquant. Et vous me direz pourquoi ne pas utiliser les librairies développés par Adafruit si c'est un copie de cet écran? Tout simplement parce que ce n'est pas tout a fait exactement le même écran, et les librairies développées par Adafruit ne fonctionnent pas si elle ne reconnaissent pas l’écran officiel d'Adafruit.
J'ai donc un énorme problème, j'ai un écran mais je ne trouve pas de librairie compatible. Puis en cherchant longuement je tombe finalement sur ce site [[http://www.instructables.com/id/How-to-use-24-inch-TFT-LCD-SPFD5408-with-Arduino-U/?ALLSTEPS|instructables]], et je dit un grand merci à celui qui a fait ce post. Il à repris les librairies officielles d'Adafruit et fait le long travail de les modifier pour qu'elles marchent sur les écrans "copiés". Je télécharge donc ses librairies modifiés ici [[https://github.com/JoaoLopesF/SPFD5408|Github]], je les copies dans le dossier librairies d'arduino. Puis je lance le logiciel d'Arduino, je branche mon écran LCD à ma carte (comme photo ci dessous), et j'ouvre l'exemple "Graphictest", et le téléverse dans la carte. Résultat l’écran fonctionne super bien et ses librairies modifiées permettent de se simplifier énormément la vie par exemple pour tracer un cercle il suffit juste d’appeler la fonction fillCircle(). \\
{{ :wiki:projets:telemetre:6.jpg?300 |}}
Résultats: \\
{{ :wiki:projets:telemetre:7.jpg?300 |}}
\\
\\
J'ai un petit problème en revanche sur les broches, mon écran LCD utilise de sur les broches analogique de A0 à A4, je peux couper les fils du shield moteur qui se sert de ces broches (puisqu'on ce sert pas de cette fonction) mais pour mes photodiodes j'ai besoins de 2 broche analogique, or il m'en reste qu'une. Je vais donc regarder a quoi sert chaque broche, il y en à peut-être une qui sert pour le tactile de l’écran, et donc je ne m'en servirai pas et je pourrai la libérer pour mes photodiodes. Si non, comme on a déjà acheté la carte UNO, on ne va pas changer pour une Mega, je regarderais donc comment rajouter des broches (je sais qu'il existe des shields). \\
Je ferais mes premiers tests d'affichage des valeurs d'une photodiode surement dans la semaine. Et je réfléchirai où placer l’écran une fois tout notre châssis monté.\\
\\
\\
J'ai programmé mon écran pour qu'il m’affiche d'abord une "page présentation", puis je lui ai fait afficher des axes gradués et je l'ai programmé pour qu'il m'affiche une courbe. Puis j'ai enfin branché une photodiode à l'entré analogique A5. Et mon écran trace bien la courbe.
Il faut savoir que j'ai modifié mon programme photodiode, il n'y aura pas de mesure le laser éteint, car c'est inutile et si je le fait on a des valeurs illogique. [[ :wiki:projets:telemetre:programation#program_ecran| (Voir programmation écran LCD ici)]]. Je mettrai tout mes programmes finaux [[ :wiki:projets:telemetre:programation#prog_finaux| ici]].
Il faut également savoir que je ne pourrais pas tout lier. En effet, le shield moteur + l’écran LCD + les photodiodes, ça fait trop pour une carte UNO, ou alors il faudrait passer pas des réseaux de transistors et ça serait trop long, on a plus le temps, pour que le châssis avance et qu'on ai un affichage sur l’écran en même temps il faudrait alors une carte Arduino MEGA.
-----------------------------------------------------------------------------------------------------------
__**Calculs des dimensions de la pièce nécessaire à la répartition des masses**__ \\
Ce matin, je (Tristan) me rends au Fablab pour équilibrer noter système. Pour cela je commence par réfléchir au choix du matériau. Il me faut une masse de 350g, je pense tout de suite à utiliser une canette remplie d'eau : en effet leur volume de 33cL résout parfaitement à notre besoin, cependant, en étudiant l'endroit où je pourrai le placer sur le châssis de notre système, je me rends compte que c'est absolument impossible. Je pense donc à réaliser à l’imprimante 3D une pièce parallélépipédique qui se situerai à droite du châssis (dans le sens de la marche) dans lequel je pourrai y mettre divers pièces permettant de réaliser le contrepoids. Je commence par utiliser un paquet de vis mais celles ci sont trop grandes et utiliseraient trop de volume dans la pièce que je compte concevoir et cela diminuerai ainsi sa masse finale. Je décide donc d'utiliser de petites vis (référence :M4*16 POZI). Je place un sachet à l'endroit ou se situera le contrepoids et je le remplis de ces petites vis jusqu'à ce que je constate que l'équilibre se fasse, je rajoute quelques vis en plus pour avoir de la marge. Je relève la masse de visses versée qui est égale à 159.5g. Je vérifie ensuite que ces petites vis pourront bien rentrer dans le boîtier que je prévois de faire. Je dimensionne le boîtier : celui ci fera 135*41*15mm avec une épaisseur de 2mm (le moins possible réalisable à l'imprimante 3D). Julien réalise ensuite la pièce aux dimensions voulues sur Openscad. Je lance ensuite l'impression 3D de la pièce.
En parallèle je (Julien) m'occupe de fixer l'aiguille en l'enfonçant avec un marteau dans la tige, puis je la coupe aux dimensions voulues et je fixe le miroir par dessus avec de la colle a chaud pour que le tout ne bouge plus. La tête de détection est maintenant opérationnelle ! Je l'emballe dans un papier bulle pour éviter de casser l'aiguille en attendant de la fixer au châssis.
--------------------------------------------------------------------------------------------------------------
{{anchor:semaine8}}
===Semaine 8: Finalisation et derniers tests (durée )===
\\
__**Assemblage du contre-poids**__ \\
Je (Tristan) me rends au Fablab pour récupérer la pièce imprimée servant de contre poids avec Julien et Théo, nous hésitions à la fixer à l'aide de vis mais nous décidons plutôt de la fixer à l'aide de colle à chaud. Nous remplissons alors le boîtier à l'aide des vis que j'avais mises de côté. Ci-dessous le résultat final :
{{:wiki:projets:telemetre:img_3421.jpg?300|}} {{ :wiki:projets:telemetre:img_3422.jpg?300|}}
\\
\\
__**Mise en place des boutons on/off :**__ \\
\\
Je (Théo) m'occupe du réseau électronique, je branche donc tout les câbles a la carte Arduino, je m’occupe également de mettre un simple bouton on/off à la pile (sur le fil - (noir)), et je soude également la broche d'un petit bouton poussoir sur la broche 13 de mon écran LCD et l'autre broche sur le GND. Le premier bouton permet d'alimenter ou nous la carte et donc de faire avancer le moteur etc... Le deuxième bouton et présent dans le programme d'affichage LCD, il permet de crée une attente avant que le moteur ce mette en marche une fois le premier bouton actionné (mais uniquement en théorie puisque les 2 carte ne sont malheureusement pas reliés entre elles). C'est a dire que tant qu'il n'est pas actionné, le moteur ne se met pas en marche. Cela permet de pouvoir allumer le profilomètre mais qu'il ne ce mette pas à avancer tout de suite.
__**Fixation de la carte et de l’écran :**__ \\
\\
Nous nous occupons maintenant de tout assembler. Nous collons tout au châssis a la colle a chaud puisque c'est facile a mettre en place, ça sèche très vite, et il suffit de forcer dessus pour décoller le composant sans que ça arrache le châssis ou quoi que ce soit d'autre. Voici le résultat, et voici donc notre châssis final: \\
\\
{{ :wiki:projets:telemetre:12992798_10207809801914243_1139958136_n.jpg?700 |}} \\
{{ :wiki:projets:telemetre:12969307_10207809801954244_668269522_n.jpg?700 |}} \\
{{ :wiki:projets:telemetre:12988173_10207809802074247_856523357_n.jpg?700 |}} \\
\\
Après réalisation des premiers tests nous nous rendons compte que le châssis vibre toujours beaucoup trop, et la tête de lecture également, mais en plus amplifié puisque il est tenu au châssis par un tige assez souple (faite à l'imprimante 3D), qui "sort" de temps en temps des rainures ou elle est. On décide donc de coller des petite languette de bois de 3mm d’épaisseur sur le châssis la ou cette tige rentre dans les rainures, de manières a ce qu'elle ne sorte plus (on peut les voir en bas de la dernières photo ci-dessus). Et ça réduit légèrement les variations non-voulues sur les photodiodes. \\
\\
\\
On voit donc que le châssis avance beaucoup trop par à-coup, et qu'on a donc des mesures non exploitables (traceur série d'Arduino). On détecte juste quand l'aiguille est dans un trou et y reste (le laser éclaire qu'une photodiode, pour finalement en ressortir quelque seconde plus tard et revenir taper approximativement entre les 2 photodiodes). Donc on est quand même assez fière de nous puisque la gravure "test" fait 200micron, et quand l'aiguille tombe dedans ça fait une énorme variation sur les photodiodes (d'environ 2-3mm). Sans les vibrations on pourrait donc avoir quelque chose de très précis.
Faisons maintenant un zoom sur chaque composant de notre profilomètre, pour vous montrer qu'ils fonctionnent tous très bien.
__**Zoom sur chaque composant: **__ \\
\\
__Tête de lecture :__ \\
Dans cette vidéo, l'aiguille tombe dans un trou de 200micron, c'est donc peut visible on la voit surtout remonter vers la fin de la vidéo. \\
{{:wiki:projets:telemetre:video-1460469821.mp4|}}
\\
__Motorisation :__ \\
{{:wiki:projets:telemetre:media1.mp4|}}
\\
__Détection :__ \\
Ici une vidéo quand nous faisons balader le rayon laser sur les photodiodes, et le résultat direct sur la photo juste à coté. \\
[[http://fr.tinypic.com/r/2zqu70w/9|Video photodiode]]
{{ :wiki:projets:telemetre:image1.png?300|}}
On voit donc bien des variations à chaque fois qu'on bouge le laser (plusieurs palier) les différents pics sont tout simplement dus aux vibrations de la main qui tient le laser (on a un capteur extrêmement précis quand le lasser tape exactement entre les 2 photodiode, puisque la moindre petit variation crée une variation de valeur très grande).
\\
__Affichage LCD :__ \\
Comme je vous l'est dit, Nous avons d'abord une "page de présentation" puis ensuite l’écran attend qu'on appuie sur le bouton, dès que le bouton est enclenché, l’écran affiche la courbe (normalement celle renvoyée par les photodiodes, mais ici une fonction "créneau" que nous lui avons demandé de tracer). \\
{{:wiki:projets:telemetre:video-1460470807.mp4|}} \\
\\
\\
__**Coût :**__ \\
Nous avons un coup total de 115,5 euro, sans compter la matière (plaque de bois même si nous avons utiliser a chaque fois des chutes, et impression 3D (coût du plastique). Il faut savoir que le plus cher est le moteur (60€) ainsi que le shield moteur (25€). \\
\\
\\
__**Conclusion**__ \\
\\
En conclusion nous avons réaliser un profilomètre "ou presque". C'est à dire qu'on détecte des variations qui peuvent être très petites, de l'ordre de la dizaine de micron (l'épaisseur d'un cheveux), Mais à cause des vibrations trop importantes du moteur, nous ne sommes pas précis du tout. Nous n'avons également pas un affichage de la surface sur un écran LCD puisque j'ai programmé trop tard l’écran (Théo) et je me suis donc rendu compte trop tard qu'il nous fallait une carte Arduino MEGA (puisqu'il nous manquait des broches analogiques). Nous sommes quand même fières du résultat que nous avons obtenu. En effet, nous avons démarré de rien, avec aucune ressource sur internet, nous avons dû tout créer de nous-même et nous avons quand même réussi à détecter de très petites variations de hauteur. \\
\\
En amélioration possibles? Si on repartait du début, on ne ferait peut être pas un profilomètre mobile, c'est a dire que le profilomètre serait fixe et que c'est la surface qui bougerait sur lui et non pas l’inverse, on aurait comme ça plus besoin d'un gros moteur qui cause toutes le vibrations. Ou alors si on gardait notre profilomètre mobile, on changerai de moteur, pour qu'il n'y ait plus aucune vibration. Enfin comme nous l'avons déjà dit, on prendrai une carte Arduino MEGA.\\
\\
\\
\\
Après la présentation finale. On m'a demandé si je pouvais finir le projet si on me donnait une carte MEGA. J'ai tout de suite dit oui puisque j'ai déjà fait le programme final pour l'Arduino MEGA, il ne me restait plus qu'a poser l’écran LCD sur la MEGA (comme pour la carte UNO) puis ensuite tirer des fils entre le shield moteur et la carte MEGA. Nous somme donc aller au lab avec Julien, mais la c'était vraiment incompréhensible: l’écran fonctionnait très bien, on a donc tiré les câbles qu'il fallait entre le shield et la MEGA, et on à mis le programme moteur (qui marchait très bien sur la UNO) dans la MEGA, résultat? le moteur faisait 2 pas en avant puis un grand pas en arrière (alors que c'est exactement le même programme que sur la UNO on a juste changé les broches). On vérifie donc nos branchements plusieurs fois, mais ils sont bons. On essaye ensuite de changer les pôles du moteur sur le programme c'est a dire d'inverser les LOW et HIGH quand le moteur va dans le mauvais sens. Sans succès puisque le moteur ne tourne plus du tout. Après de longues réflexions et de longues heures a ne pas comprendre ce qui ce passe on pense finalement qu'il y a des problèmes de tension. Puisqu'on a alimenté le moteur et l’écran en même temps par le câbles 5V qui relie la carte a l'ordi. On branche donc la pile, et la finalement... ça marche toujours pas mais cette fois le moteur tourne bien comme nous voulons (c'est a dire qu'il fait des pas dans le bon sens) cependant le 4ème pas fait un bruit vraiment bizarre (on dirait presque que le moteur va exploser) et il vibre énormément. On réessaie différents changements de programme, on revérifie les branchements, on demande au staff du lab, sans succès. Après avoir passé 5h, pour au final n'avoir aucun résultat on décide d’arrêter la, puisqu'on ne comprend pas du tout ce qu'il se passe. Il faut quand même savoir que c'est possible de faire fonctionner a la fois l'ecran et le shield moteur sur la carte MEGA, on n'y est pas arrivé mais avec plus de temps on y serait peut-être arrivé, on a peut-être oublier de brancher un cable important au fonctionnement du shield ou quelque chose du genre.
En tout cas le programme est fait et je suis presque certain qu'il marche, le seul travail a faire dessus et de changer les broches de la partie moteur (en fonction de la on elle sont brancher sur la carte MEGA) ainsi que les broche ou sont branchées les photodiodes.
\\
-------------------------------------------------------------------------------------------------------------
* [[wiki:projets:telemetre:roles|Rôles]]\\
* [[wiki:projets:telemetre:tests|Différents tests]]\\
* [[wiki:projets:telemetre:programation|Partie Programmation]]\\
* [[wiki:projets:telemetre:ressources|Ressources]]\\
* [[wiki:projets:telemetre:matériel|Matériel]] \\