Ceci est une ancienne révision du document !
indiquer les dates dans le journal pour qu'on voit quand vous travaillez sur le projet.
Elles sont indiquées ici 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
etc…
Tout d'abord la partie “Initiation”:
Maintenant il est tant de connecter nos neurones, d'échauffer nos doigts, de faire chauffer nos ordis, et c'est parti, le projet attaque
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.
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.
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.
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
) 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.
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
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.
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'occupperont 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 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 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. La BPW34 Le datasheet. Elle ressemble a ceci:
Après avoir discuté de notre projet avec le physicien (je n'est pas pensé à lui demander son nom
). 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
.
Voici donc a quoi ressemblera notre système de détection final!!!!
(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).
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:
Test:
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.
moteur
Je vous renvoie vers ma page Partie Programation
Et ma page test 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 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.
Calcul de la distance variable en fonction de l'angle réfléchi
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)°.
semaine5
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.

On a donc l = Δx - [cos(Δα)sin(2α2)*(tan(α2)cos(α1)*L/2 - H/2)]/tan(Δα)
avec:
/!\ 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):
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:
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
), pour cela nous avons choisi de les mettre sur roulement (voir 2ème photo ci dessous)
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:
Après:
Transmition de l'information :
Une fois les variations de surface détectés, il faut que notre profilomètre comunique avec l'utilisateur pour lui renvoyer les valeurs. Je (Théo) m'interesse donc a cette partie puisque c'est moi qui m'ocupe de la programation.
Plusieurs choix s'offrent a nous, le 1er et le plus facile etant la comunication filaire avec l'ordinateur via le moniteur d'Arduino. En effet il suffit juste d'utiliser la librairie Serial comme utilisée jusqu'a maintenant lors des différents tests. Le problème c'est qu'il faut, d'un, un ordinateur à proximité avec le logiciel Arduino, et de 2 c'est qu'il faut tiré le cable de conexion ce qui peut entreiner des perturbations de la lecture de surface. Je ne choisirais donc pas cette solution, puisqu'on a choisi de faire un profilomètre donc la qualité est la mobilitée.
La 2ème solution et d'utiliser un module de comunication sans fils tel que le module Xbee Module Xbee, pour justement enlever le problème du cable. Mais le problème d'avoir un ordinateur a proximité reste, et il ce crée un nouveau problème qui est cette fois ci celui de la programmation. En effet il faut tout d'abord aprendre à ce servir du module grâce a plusieurs tutoriels, ce qui sera deja long, mais ensuite il faut crée 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 2ème language de programation. C'est donc réalisable mais il existe plus simple.
La dernière solution, et celle que j'ai choisi, est d'afficher la courbe sur un petit ecran lcd de ce genre | Ecran oled monochrome 128x64, puisqu'il est assez facile de les programmer avec Arduino sans qu'ils prennent beaucoup d'entrée à 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écisement des sujets en raport avec un affichage de courbe, et je fini par tomber sur ce tuto | affichage d'une courbe, qui réalise exactement ce que je veut, je devrais seulement légèrement modifier le code (le fusionner avec celui de lecture des photodiode). Je me pose cependant la questions de la taille de l'ecran, il utilise ici un écran TFT 65536 couleurs Graphique 132×176 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érent 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 focntion millis! fonction millis.
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
Il reste plus qu'a faire le test : 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é !
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).
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 Ressources
Réalisation du programme final sans affichage lcd:
Je vous renvoie encore une fois vers ma page partie Programmation afin de ne pas surcharger cette page qui est déjà bien remplie.
Le Fablab est très peu ouvert en ce moment, çela nous rend encore plus en retard.
Montage des roues arrières et du moteur:
Je suis (Théo) allé au fab lab afin que notre chassis puisse enfin rouler. Pour çela j'ai attacher les roue a la tige, mis des élastique (pour l'adérence) autour de chaque roue et j'ai visser les support de roulement au chassis. Bien qu'ayant mit la force de la visseuse au plus bas, les support on encore une fois fendu, il faudrait enfaite que la paroie entre le trou pour la visse et le bord du support soit un peu plus épaisse. Mais les roues arrière tienne quand même bien je décide donc de ne pas reimprimé les support. Je m'interesse ensuite a la fixation du moteur sur le chassis. Comme dit plus haut j'ai graver un rectangle de la taille du moteur enfin d'inséré de la mousse entre le chassis et celui-ci. Afin de limiter encore plus les vibration 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 tien le moteur) et le chassis. Je rajoute également une fine bande de mouse entre la fixation et le moteur. Je visse le tout et j'obtient finalement ceci.
Il y a un problème: comme le penser Tristan lors de son étude moteur, le moteur est lourd, et il déséquilibre en effet le chassis qui se pose sur l'angle ou ce situe le moteur (c'est pour ça que je fait contre poid sur chaque photo). Il faudra donc penser a un contre poid qui viendra équilibré le chassis.
Je branche quand même le moteur a la carte Arduino, je met le programme moteur dedans, et je test voir à quel vitesse avance notre chassis avec le temp entre chaque pas qui nous paraissait le mieu (100ms). Et la je remarque qu'il y a un gros problème, le chassis avance très bien, et à une vitesse suffisante (mais presque trop rapide), mais il vibre énormement malgré tous mes effort afin de limiter les vibrations. Je doit malheureusement parti car le fablab ferme mais je réfléchi à plusieurs solution. La première est de trouver une mousse plus adapter pour amortir les vibration, et d'en rajouter entre le moteur et sa fixation (quitte à la limée). La 2è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 surment pas entièrement besoin, peutêtre que si je baisse la puissance du moteur (grâce au pins PWM de la carte) les vibrations seront moins fortes. Je peut également essayer de tester d'autre vitesse moteur, car il est possbile que le nombre de pas qui fait soit proche de la résonance de notres système moteur + chassis. Enfin si aucune de ses solutions marchent, j'ai lu plusieurs postes sur internet qui parle d'une carte “micropas”. Je me renseignerai plus en détails dessus si on en à besoin. Enfin la dernière solution serait de crée un réducteur, car le moteur vibre beaucoup moins si on le fait tourner plus vite, mais il faudrait revoir à ce moment la toute la fixation et crée ce réducteur et nous n'aurons pas le 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.
Résolution du problème de vibration, montage du miroir et du laser:
Je suis (Théo) aller au fablab avec Julien pour nous intéréssé au montage du système de détection.
J'ai tout d'abord tester mes différentes solutions afin de réduire les vibrations et j'ai combiné les 3. C'est à dire que j'ai démonter le moteur afin de metre une mousse plus aéré mais qui garde ça forme d'origine même après une grosse compréssion, comme vous pouver le voir ci-desous.
Je teste également de réduire la puissance du moteur en envoyant un signal créneau (broche PWM) et je constate qu'effectivement les vibrations devienent légérement moins forte, mais elle reste toujours beaucoup trop importante pour des mesure précises. Avec Julien nous décidons enfin de réduire considérablement le temp entre chaque pas du moteur, pour qu'il aille vraiment doucement, çela réduit d'une part les vibrations de manière assez importante mais de plus ça laisse le temp au chassi de ce stabilisé pour pouvoir faire les mesure juste avant le pas suivant. Je modifie donc mon programme final sans affichage lcd ici, vous comprendrai peutetre mieu après y avoir jeter un coup d'oeuil.
Nous essayons ensuite de répondre à la question: Comment acrocher la tête de lecture au chassis?
Nous essayons tout d'abord de refaire la tête de lecture pour pouvoir y acrocher l'aiguille, en effet l'imprimante laser n'etant pas assez précide elle n'a pas réuissi à 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 rendonc compte également que nous nous somme trompé dans la conception de la piece, en effet en enfonçant (avec un marteau pour tester) l'aiguille à l'endroit prévu a cet effet, nous nous rendonc 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 chassis (liaison pivot). En reprenant mes calcul je donne donc à Julien les bonne orientation a donner à la piece. Pendant qu'il la modifie je réfléchie à comment acrocher cette tete de lecture a notre chassis. Nous penson finalement a graver une rainure dans le chassis on viendra s'emboiter une tige qui rentrera dans le troue de la tete de lecture pour former une liaison pivot avec celle ci. Puis nous décidont finalement que la tige sera lié à la tête de lecture et que c'est donc la tige qui tournera dans la rainure du chassis. Pendant que Julien modifie la piece et lance l'impression, je m'ocupe de graver la rainure, je redecoupe également le trou dans le chassis pour que le miroir passe car il est légérement trop petit. On teste et la piece est nikel, 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 chassis c'est a dire pour que le laser tape a 2/3 de la longeur de la tete de lecture (qui fait 2cm), Julien crée le support laser sur openscad. Nous attendons ensuite l'impression de la piece. Une fois imprimer nous acrochons la piece au chassis, insérons le laser dedans. Tout est parfait. Nous testons donc d'alumer le laser pour voir ou il sera à peu près capter par les photodiodes et si c'est la ou nous le pensons (calcul de trigonométrie en fonction des résultat trouver 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.
Il restera plus qu'a 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.
Il ne reste plus qu'a réaliser le support pour les photodiode afin de les fixées au chassis, ainsi que de fixer le contre poid et de faire les 1er tests. Je suis assez confiant pour la suite bien que nous soyont légérement en retard. Je ne peut cependant pas encore ataquer la programation de mon ecran lcd etant 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'acroche des photodiodes. Tout d'abord il faut savoir que les calculs nous servaient a avoir une idée de la taille de notre chassis 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 chassis de niveau au milimètre près, peutêtre pas une tête de lecture d'exactement 2cm sur 1 etc… et tout çela 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 chassis, on poura le configurer pour que le faisceau laser tape exactement au milieu des photodiodes avec un angle de 90°. Nous décidons avec Julien de que le support soit amovible pour également pouvoir changer la résolution de notre profilomètre, en effet plus on aprochera les photodiode du miroir, plus on poura détecter de grosse variation (de l'ordre du milimètre), et plus on l'éloignera plus on poura détecter de petite variation (on l'espere de l'ordre de quelque dizaine de micron). On réfléchi donc longuement pour savoir comment faire ce support. On décide finalement de le faire en 3 partie. La première est une sorte de mas, acroché au chassis, d'une taille d'environ 10cm (pour ce laisser une marge d'erreur pas rapport aux calculs), qui comporte une fente pour pouvoir régler la hauteur de la 2ème piece 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 photiodes), pour pouvoir avancer est reculer les photodiodes face au miroirs. Julien crée donc les pièces sur openscad chez lui, puis on ce revoit, nous en rediscutons et apportons quelques modification et lançons les impréssions. Le problème c'est que il n'y à plus qu'une imprimante qui fonctionne et nos 3 pièce mettent plus d'1h30 d'impressions chacune. Nous n'avons donc eu le temp que d'en imprimer que 2 pour l'instant (pièce 1 et 3). Je vous met deja les photos, vous comprendrais beaucoup mieu notre système une fois la 2ème pièce imprimé et les pièces toutes assemblées entre elles.
affichage lcd :
Ca y est, j'est enfin reçu mon ecran lcd
, je vous rapel que j'ai choisi Celui-ci.
Maintenant passons au plus dur: lui faire afficher quelque chose. Il faut tout dabord savoir que pour faire afficher du texte par exemple à un ecran lcd, il vaut mieu trouver une librairie adéquat si on veut pas avoir a afficher pixel par pixel. Le problème c'est que c'est un ecran pas cher parce que c'est un ecran chinois (sans mauvaise blague
), c'est à dire que c'est une copie de l'ecran fabriqué par adufruit (Celui-ci), et donc il n'existe pas de librairies développé par le fabriquant. Et vous me dirais pourquoi ne pas utiliser les librairies développés par adufruit si c'est un copie de cet ecran? tout simplement parce que ce n'est pas tout a fait exactement le même ecran, et les librairies développés par adufruit ne fonctionnet pas si elle ne reconaissent pas l'ecran officiel d'adufruit.
J'ai donc un enorme problème, j'ai un ecran mais je ne trouve pas de librairies compatbibles. Puis en cherchant longuement je tombe finalement sur ce site instructables, et je dit un grand merci à celui qui a fait ce post. Il à repris les librairies officiel d'Adufruit et ) fait le long travail de les modifiés pour qu'elles marchent sur les ecran “copiés”. Je télécharge donc ses librairies modifiés ici Github, je les copies dans le dossier librairies d'arduino. Puis je lance le logiciel d'arduino, je branche mon ecran lcd à ma carte (comme photo ci dessous), et j'ouvre l'exemple “graphictest”, et le téléverse dans la carte. Résultat l'ecran fonctionne super bien et ses librairies modifiées permettent de ce simplifier énormement la vie par exemple pour tracer un cercle il suffit juste d'apeler la fonction fillCircle().
Résultats:
J'ai un petit problème en revanche sur les broche, mon ecran lcd utilise de sur les broches analogique de A0 à A4, je peux couper les fils du shiel moteur qui ce 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 servent chaque broches, il y en à peutêtre une qui sert pour le tactile de l'ecran, et donc je m'en servirai pas je pourai la libéré pour mes photodiodes. Si non, comme on a deja 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 shield).
Je ferais mes premiers tests d'affichage des valeurs d'une photodiodes surement dans la semaine. Et je réfléchirai ou placer l'ecran une fois tout notre chassis monté.
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éllé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 visses (référence :M4*16 POZI). Je place un sachet à l'endroit ou se situera le contrepoids et je le remplis de ces petites visses jusqu'à ce que je constate que l'équilibre se fasse, je rajoute quelques visses 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 visses 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). Je lance ensuite l'impression 3D de la pièce.
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 :