Conception du détecteur de l’imagerie oxymétrique

Pour pouvoir mesurer le signal dans chaque fibre, je devais trouver un moyen de les imager avec ma caméra à haute sensibilité. J’ai tout d’abord réussi à trouver une lentille en ménisque convergent qui a une distance focale de 35 mm, en la collant directement sur l’objectif de la caméra, cela permet de rapprocher l’objet de la distance hyperfocale (approx 30 cm je crois) jusqu’à 35 mm, en diminuant le champ de vue par la même occasion.

J’ai donc imprimé deux pièces s’emboîtant en une boite en prisme cubique. La première est une plaque comportant 49 trous afin de faire passer toutes les fibres et de les aligner sur un même plan. La deuxième a un trou au centre pour y insérer la caméra ainsi qu’un petit remontant cylindrique afin d’y fixer la lentille. Le tout permet de bien maintenir toute l’optique solidement en position et dans l’obscurité, autant les fibres que la lentille et la caméra.

Une fois la boîte refermée, cela donne le détecteur assemblé visible sur les deux photos ci-dessus. D’un côté, il y a la caméra, bien insérée et collée, et de l’autre, le paquet de 49 fibres formant l’image. On peut voir le résultat capté par la caméra ci-dessous. L’espacement entre les fibres est tel qu’il permet à chacune d’être bien résolue et échantillonnée sur un bon nombre de pixels, même lorsque l’intensité lumineuse dans la fibre optique est très élevée. Dans le cas présent, j’avais pointé quelques fibres directement sur une ampoule incandescente. Bien évidemment, comme je n’utilise pas de lentille de champ à la sortie des fibres, celles sur le bord de l’image vont avoir une intensité captée par la caméra beaucoup plus faible que celles au centre, il va donc falloir faire une calibration pour appliquer la correction sur le signal mesuré.

 

Assemblage mécanique pour le traitement laser de l’asclépiade

J’ai terminé l’assemblage mécanique de mon laser 3W. L’objectif était de le monter à la verticale, de manière à ce que le faisceau pointe vers le sol, puis de l’aligner sur la sortie de ma buse par laquelle sort la fibre. Pour cela, j’utilise principalement des extrusions d’aluminium. Il y avait plusieurs trous filetés dans le boîtier du laser, dont le diamètre était parfait pour y visser mes vis de 2mm. J’ai donc simplement imprimé en 3D une plaque avec des trous aux bons endroits (3e photo). Un arduino connecté sur l’entrée TTL de la carte de contrôle du laser permet de sélectionner la puissance de sortie du laser. Pour faire l’alignement, j’utilise la puissance la plus basse possible, en deçà du 1mW (non mesuré pour de vrai). Je porte tout de même des lunettes classées OD5 à 450nm en tout temps, les lunettes fournies avec le laser lors de l’achat sont une vraie blague, mais vraiment pas drôle en fait, puisqu’elles ne bloquent (à peu près) rien, elles sont très probablement fausses, mais bon, au prix que m’a coûté le laser, c’est normal. On peut voir sur la 4e photo le faisceau vu par la caméra à cette puissance. Le focus se fait en tournant la petite lentille à la sortie du laser. Sur la 5e photo, c’est le laser lorsqu’il est à pleine puissance (supposément 3W, non mesuré). On peut voir que c’est amplement suffisant pour passer au travers d’une feuille de papier en une fraction de seconde (dernière image). Le tout sera utilisé dans une boîte fermée, pour limiter les risques laser au maximum.

Monture optique du télescope LCD

L’ensemble des pièces utilisées pour la conception de mon télescope LCD : en haut à gauche, un raspberry pi avec un shield d’écran LCD, en haut à droite, les 4 lentilles (lentille érectrice, oculaire ainsi que 2 field lenses), à droite, un objectif à focale variable et en bas en noir, toutes les pièces imprimées en 3D pour obtenir un télescope fonctionnel : 4 tubes exactement de la bonne longueur pour correspondre aux distances focales des lentilles, et 4 paires de demi-montures circulaires pour fixer et centrer les lentilles aux bons endroits.

J’y suis allé fort avec mon imprimante 3D cette semaine, passant environ 500g de plastique noir afin de créer toutes les pièces nécessaires à la monture mécanique de l’optique de mon télescope LCD. J’y suis peut-être allé un peu fort avec mon 3mm d’épaisseur, mais je voulais être sûr de la robustesse de l’ensemble.

La première pièce a été intéressante à faire, puisque j’ai copié l’attache de mon objectif à focale variable, qui tenait avec 4 petites vis déjà présentes, à même des filets déjà faits dans l’objectif. J’ai donc imprimé une pièce de test pour voir si mes dimensions fonctionnaient, avant d’imprimer ma vraie pièce comprenant un tube de 150mm (ce fut sans nul doute l’impression la plus haute que j’ai réalisé à ce jour, mon imprimante se rendant à 180mm maximum en z). Ça a été tout juste pour le diamètre interne du tube, parce que je voulais pouvoir le visser par l’extérieur tout en laissant suffisamment de place à l’intérieur pour les rayons et la lentille de champ.

 Parlant de lentille de champ, la voici, positionnée à la première image produite dans mon système. Elle est fixée à l’aide d’un anneau imprimé en deux parties, verticalement, qui permet de maintenir la lentille en place par simple pression, sans avoir besoin de colle, de vis, ou d’ajustement en position. Je suppose qu’elle est placée au centre de l’axe optique, et malgré les tolérances assez élevées que j’ai dû mettre pour tenir en compte des défauts d’impression (surtout dans la partie supérieure de l’arche du cercle), je pense que c’est la méthode la plus précise à ma disposition pour monter une lentille dans un tube.

Je place ensuite un second tube du même diamètre avec une hauteur calculée pour correspondre à ma distance objet de ma seconde lentille (lentille érectrice). Le même principe de monture est utilisé, sauf que cette fois-ci se rajoute un adaptateur de diamètre de tuyau, d’un côté, il y a le petit diamètre, et de l’autre, le plus gros diamètre.

 

Ensuite, je place un des deux gros tubes de 100mm de haut, afin de placer mon système d’écran LCD. Celui-ci est composé de mon classique écran LCD modifié (voir ma vidéo CrystalCam pour plus d’informations) et d’une seconde lentille de champ plano-convexe du plus gros diamètre que j’ai pu trouver à cette courte focale (D=45mm, f=50mm).

 

 

Pour imprimer la monture en 3D, j’ai dû faire une fente juste assez grande pour y insérer l’écran LCD, tout en donnant le plus strict espace pour donner une petite pression sur la lentille pour la maintenir en place. Le côté plat de la lentille aide beaucoup à la positionner directement en contact avec l’écran, sauf que l’autre côté, très bombé, provoque des aberrations importantes qui ne sont pas corrigées par mon système. Je n’ai pas le choix de placer la lentille uniquement de ce côté, puisque je veux pouvoir observer l’écran LCD directement avec mon oculaire de l’autre.

Pour l’oculaire, j’ai continué avec ma méthode super efficace des moitiés de montures centrées retenant la lentille. On peut en voir les détails sur la photo ci-contre. Deux petites bandes de plastique permettent de retenir la lentille en z, tandis qu’elle est confinée dans un cylindre qui fait un cheveu de plus que sa dimension (un cheveu en tolérance de ma vieille prusa i3, soit 1mm au total sur le diamètre). J’ai rajouté un petit cache-oeil de 6mm avec un diamètre légèrement plus gros afin d’être confortable pour visionner l’écran et de s’assurer que peu de lumière externe entre par l’oculaire dans le système. Puisque l’écran LCD atténue beaucoup la lumière provenant du télescope, c’est important si l’on veut voir quelque chose.

Voici le résultat, une fois monté sur le second tube de 100mm. Bien que la majorité des pièces tenaient simplement par contact, j’ai rajouté de la colle chaude entre toutes les pièces. La pièce critique est l’adaptateur entre les deux diamètre de tuyau, il fallait absolument le coller et en essayant de lui donner un angle nul par rapport à l’axe optique (pas facile). Je n’ai pas pris de chance et j’ai mis de la colle chaude partout, ce qui fait que la monture est extrêmement solide. Afin d’éviter toute intrusion de lumière dans le montage, j’ai rajouté du duct tape noir pour boucher les mini-fentes (surtout celles entre les deux moitiés de monture de lentille). Le tout est un petit peu overkill, mais je me disais que ce ne serait pas un vrai montage d’ingénierie physique sans quelques bâtons de colle chaude et quelques longueurs de duct tape.

Le résultat final est surprenamment beau et aligné, pour des pièces imprimées en 3D. Le télescope est à peine plus long qu’une longue vue standard, à cause de l’ajout de l’étage du LCD et de l’érecteur pour avoir une image à l’endroit. Il fait environ 400cm, ce qui reste très maniable avec les bras. L’ajustement du focus se fait avec la rotation de l’embout de l’objectif, qui déplace l’une des deux lentilles à l’intérieur, modifiant la longueur focale du premier système d’imagerie.

La présence des lentilles de champ dans le système fait toute la différence pour un télescope aussi long et ayant autant de transformations optiques. On peut voir un aperçu du résultat ci-contre, bien que cette photo ait été prise rapidement avec ma caméra sans retirer l’oculaire. À l’oeil, c’est franchement plus impressionnant. L’image arrive directement sur l’écran LCD, à l’endroit et bien nette (lorsque l’on ajuste le focus). Elle occupe approximativement 23 degrés du champ de vue, ce qui est très satisfaisant sans être exceptionnel, mais d’autres contraintes ont eu préséance dans la conception du système. La principale aberration est la courbure de champ, elle est vraiment très forte dans les coins de l’image. Les autres aberrations sont sans doute masquées par la présence de l’écran LCD qui induit lui-même quelques modifications à l’image, entre autres une atténuation forte ainsi que l’ajout du micro-grillage des pixels. Une étude plus formelle des aberrations produites par les lentilles serait nécessaire pour identifier des solutions. Mais comme d’habitude, tout est affaire de compromis, puisque sans lentille de champ pour imager l’ensemble des rayons sur les autres lentilles, on ne verrait tout simplement rien à cause de l’atténuation trop importante du système.

On se laisse sur cette merveilleuse photo de moi-même en train d’utiliser de manière ludique ce télescope :

Hack du module optique d’une imprimante laser

Ceci va être un long article, puisque c’est la première entrée sur le sujet et que je suis rendu pas pire avancé. J’avais déjà démonté, dans ma tendre adolescence, une imprimante laser. Le module optique n’y avait pas échappé, malheureusement, je n’avais alors pas assez de connaissances en optique pour bien saisir l’importance de tous les petits miroirs et lentilles de plastique aux formes étranges que l’on y retrouve, si bien qu’il ne me reste en ce moment de ce lointain carnage que le polygone à miroirs, que j’avais réussi à hacker et à faire fonctionner avec un petit circuit il y quelques années.

Avec mes stages au Centre de neurophotonique et à Laserax, j’ai compris l’importance d’avoir une optique qui corrige le focus du faisceau laser selon la différence de parcours optique, afin d’avoir un balayage sur un même plan qui soit toujours au maximum de l’intensité du faisceau. Il s’avère que ce genre de patente est généralement énormément dispendieux et compliqué à construire par soi-même. Heureusement, il y a une solution (comme d’habitude) lorsque l’on se tourne vers la technologie de masse et que l’on fait preuve d’assez de débrouillardise pour détourner les produits à notre avantage.

J’ai acheté cet été un module optique d’imprimante laser pour la modique somme de 23$US sur ebay (ce modèle-ci pour être précis), qui contient : un laser infrarouge d’une coupe de mW (pas encore testé) un polygone à miroirs, des miroirs et des lentilles. Et ce qui vaut vraiment tout l’or du monde, c’est que tout est déjà aligné, ce qui m’a évité ainsi des jours de plaisir.

Remplacement du laser

À droite, la carte laser extirpée du module, à gauche, une pièce imprimée en 3D pour imiter le support de la diode laser afin de placer mon propre laser.

Pour l’instant, j’aimerais voir ce que je fais (i.e. utiliser un laser visible), et je vais commencer par un projet de harpe laser. Mon but final est de pouvoir placer le faisceau laser à une position voulue et contrôlée sur la ligne d’impression. Pour cela, j’ai dû remplacer le laser de l’imprimante par un module laser vert de 5mW. J’ai donc soudé l’alimentation à deux fils pour pouvoir les sortir du boîtier, puis j’ai soudé le bouton poussoir afin qu’il soit constamment allumé. Je l’alimente avec une source d’alimentation variable de 6W avec le voltage placé à 3V.

J’ai fabriqué avec mon imprimante 3D une petite pièce qui tient exactement dans l’espace du module laser afin de conserver l’alignement qui a déjà été fait pour le reste de l’optique. Je m’y suis repris à 3 fois pour avoir une pièce parfaite.

J’ai donc pu insérer mon module laser vert à la place, et le faisceau frappe les miroirs du polygone exactement de la bonne manière. J’ai dû replier un peu la carte de contrôle du laser afin qu’elle rentre dans l’espace étroit du boîtier.

Tout rentre en place, et on peut replacer le couvercle du boîtier pour s’assurer d’une petite sécurité laser de plus (oui oui, je porte des lunettes quand même, soyez sans crainte).

Hack du contrôle du polygone

J’avais déjà réussi à hacker un polygone à miroir d’un autre modèle, donc j’étais quand même très bien parti. Le connecteur a 5 broches. Je savais déjà qu’il y avait 4 broches d’utiles (la dernière, je n’ai jamais compris à quoi elle sert) : VCC, GND, CLK et EN. Autrement dit, une alimentation, une vitesse définie par un signal d’horloge et une broche qui sert à allumer ou éteindre la rotation.

J’ai rapidement remarqué un gros condensateur polarisé, il doit (et il l’est effectivement) être relié aux deux bornes d’alimentation. En partant de la droite vue du dessus (#5 dans mon ordre d’identification), la première broche est VCC, ensuite la deuxième (#4) est le Ground (elle est aussi reliée à la grosse trace de la carte, c’est toujours un bon indice). Par la suite, j’ai eu beaucoup de misère à identifier les autres broches. Un court-circuit a emporté mon générateur de fonction sur mon mini-oscillo (pas tant utile puisqu’on pouvait juste avoir quelques fréquences, mais ça va me faire chier à le réparer), j’ai donc dû à la va-vite générer un signal d’horloge avec mon arduino. Heureusement, le code est ridiculement simple puisque je suis à très basse fréquence et que pour l’instant, c’est un test préliminaire et que je m’en fous de la légère imprécision de cette méthode :

void setup() {
// put your setup code here, to run once:
pinMode(3,OUTPUT);
}

void loop() {
// put your main code here, to run repeatedly:
digitalWrite(3,HIGH);
delay(1);
digitalWrite(3,LOW);
delay(1);
}

Ce qui donne une fréquence d’à peu près 500 Hz.

Pour la source d’alimentation du polygone, je me suis rendu compte que ça prend plus de 7V et qu’elle doit fournir un bon courant. En ce moment, j’utilise une alimentation d’ordinateur portable, qui donne 15V et 5A, c’est vraiment overkill mais ça fonctionne comme un charme, on peut faire tourner le polygone à une vitesse qui donne froid dans le dos (il va falloir que je la mesure un de ces jours).

Donc après avoir gossé un peu j’ai trouvé que la première broche en partant de la gauche (#1) est l’entrée de l’horloge (CLK) et que la troisième (celle du milieu, #3) est la broche d’enclenchement (ENABLE) qui doit être reliée en permanence au ground (elle est donc ENABLE LOW) pour que le moteur du polygone se mette à tourner.

Un petit test lorsque tout est en marche et on voit que le faisceau laser se promène le long de la ligne de sortie du module de l’imprimante laser!

Impression 3D avec mon nouveau plastique noir

Ah, les joies de l’impression 3D… Avec ma vieille version de Prusa i3, c’est toujours un peu une aventure à chaque fois que je change de sorte de plastique. C’est la première fois que j’utilise du PLA noir, j’ai découvert un plastique fait au Québec : Materio3D! Après plusieurs essais où je montais sans cesse la température du lit chauffant et où la pièce décollait toujours (ce LEGO est dans les pièces les plus difficiles à imprimer d’un point de vue de l’adhésion de la base). En mettant la première couche à 70 degrés et les autres à 50 degrés, ça a finalement tenu bon! Comme quoi, il faut vraiment que l’extrusion refroidisse exactement à la bonne vitesse à la sortie de la buse, sinon ça ne colle pas! (À gauche, mes nombreux essais, à droite, le résultat final) Alors tout est fin prêt pour que je commence mes montures d’optique, j’ai un réfractomètre et un télescope à imprimer!

Finalisation du bloc batterie pour ma station raspberry pi portative

Voici le résultat. J’ai rajouté un couvercle imprimé en 3D qui laisse un espace suffisant pour brancher le port USB et l’interrupteur. Un câble permet de le relier à une source de 5V pour le recharger. Il faudrait que je le mesure précisément, mais selon l’état des batteries qui sont tout de même usagées, l’autonomie du système devrait être au-delà de 5 heures, peut-être même probablement 10 heures. Ça reste à tester.

La dernière chose qu’il manque est un petit script sur le raspberry pi connecté à l’indicateur de batterie faible, qui permettrait d’avertir l’utilisateur d’éteindre le tout et de recharger les batteries. Mais sinon tout est fonctionnel et prêt à utiliser sur le terrain!

Fabrication d’un boîtier pour mon bloc de batteries

Afin de rendre pleinement portatif mon raspberry pi avec écran tactile, j’ai décidé de lui rajouter un bloc de batteries fait maison à partir d’une vieille batterie de mon ordinateur portable. Après l’avoir démonté et rechargé individuellement toutes les cellules, j’ai constaté qu’elles étaient toutes encore en très bon état. J’ai donc divisé les 6 cellules en deux blocs de 3, un bloc pour alimenter l’écran et un bloc pour alimenter le raspberry pi. J’utilise des PowerBoost 1000C de Adafruit, donc le courant max qu’ils peuvent donner est de 1A seulement, c’est pourquoi je sépare les alimentations.

Le programme utilisé sur OpenScad est le suivant :

ep = 2;
difference(){
cube([62+2*ep,42+2*ep,106+ep]);
translate([ep,ep,ep]) cube([62,42,106]);
translate([ep,0,80+ep]) cube([62,42+2*ep,26]);
}