samedi 10 décembre 2016

Imprimante 3D : PRUSA i3 MK2 : Déballage

J'ai découvert les imprimantes 3D il y a deux ans, et depuis je suis convaincu que c'est un outil indispensable à tout bidouilleur ! Par exemple, ça m'a été trés utile pour le développement de ma roue à filtre...

Après pas mal d'hésitations, j'ai finalement acheté le kit PRUSA i3 MK2. D'abord parce que l'imprimante à une super réputation un peu partout sur le net, mais aussi parce que les instructions de montages semblent sérieuses... Le tout est fait en UE, ce qui est assez rassurant, à la fois pour la qualité, et en cas de problème !

Après la commande, il y a eu un mois d'attente avant l'expédition; c'est ce qui était annoncé sur le site, qui est donc fiable.

Le kit est enfin arrivé aujourd'hui et le déballage est carrément prometteur:

Le carton est arrivé en bon état.

Le contenu est bien rangé, avec des manuels papier en couleur : la classe!
Chaque sachet contient les éléments d'une étape d'assemblage, avec modèle à l'échelle... Il va être difficile de se tromper!

L'impression des pièces plastiques du kit est de trés bonne qualité !


La carte RAMBO: Toute l'électronique tient là dedans !

Les éléments de la tête d'impression
Le cadre en métal (de belle finition) et le plateau chauffant


Les moteurs sont bien emballés
Un échantillon d'isopropyle pour le nettoyage ! ça ne tiendra pas longtemps !


C'est donc un vrai plaisir de voir toutes ces pièces rangées avec intelligence. ça augure bien pour l'assemblage !

À très bientôt pour la suite  !

lundi 29 août 2016

Roue à filtre motorisée : la mécanique



Dans un précédent billet je vous présentais mon idée de roue à filtre motorisée... Maintenant, place à l'action !

Pour motoriser une roue à filtre, il suffit de faire tourner la roue !!!

Pour ça, je vais utiliser un moteur pas à pas 28byj-48, pour plein de bonnes raisons:
  •  un moteur pas à pas permettra des mouvements précis
  •  celui là est vraiment bon marché (2/3€ sur internet),
  •  il est assez petit (3 centimètres de diamètre)
  •  je le connais bien (il fait tourner mon focuser depuis quelques mois...). 

Le plus simple pour entraîner la roue à filtre semble d'utiliser des roues dentées :
  • une petite de 24 dents directement montée sur l'axe du moteur.
  • une grande de 150 dents qui viendra en complément du carroussel. Comme le carroussel est quasiment en contact avec le coffre, la roue sera au dessus; elle ne pourra pas faire plus que la hauteur maximale d'un filtre, soit 3 ou 4 mm.
Le moteur retenu est beaucoup démultiplié; à pleine vitesse il a besoin d'au moins une bonne seconde pour faire un tour. Les deux engrenage ayant un rapport d'environ 6, il faudra au moins 6 à 12 secondes pour un tour, soit 1 à 2 secondes par changement de filtre.



J'ai créé le design des deux roues avec le logiciel merveilleux logiciel OpenScad "imprimé" ces pièces sur une imprimante 3D en plastique PLA. La grande roue sera collée sur le carrousel:

La grande roue à coté du carrousel



Précision du déplacement

Il faut biensur que la roue à filtre amène le filtre sur le train optique, dans l'axe. Mais encore plus que le centrage, il faut surtout que le positionnement soit répétable! Une erreur d'un demi millimètre sera acceptable si elle est reproduite à chaque cliché. Dans ce cas les flats corrigeront bien l'éventuel décentrage. Par contre, si chaque cliché a sa propre erreur de positionnement, il sera impossible de produire des flats corrigeant ces imperfections !

Le moteur pas à pas devrait en théorie être capable de positionner précisément la roue à filtre : 4096 micro pas par tour, mutliplié par le rapport des engrenages donne une précision de 0,015°... Il faut néanmoins compter avec le backlash. (le jeu), de quelques degrés sur l'axe du moteur, et certainement aussi au niveau de l'engrenage. Pour limiter les effet du backlash, il devrait suffire de faire tourner la roue toujours dans le même sens, pour que les engrenages soient en appui du même coté du jeu. C'est donc d'abord un problème de firmware!

Pour traiter un changement de filtre, le controleur du moteur pas à pas devra déterminer le nombre de pas à franchir. Le nombre de pas total requis pour faire un tour doit pouvoir être déterminé facilement, et en divisant par le nombre de filtres, on obtient le nombre de pas à franchir (aux irrégularités des engrenages près)

Calibration

Cela fonctionne quand le firmware connait la position de départ de la roue. Mais maintenir cette information à jour dans le temps est plutot compliqué: l'information va se perdre par exemple en cas de coupure de courant pendant un déplacement, ou si le mouvement de la roue est bloqué (par exemple si l'alim n'est pas branchée...). Et sur le terrain ce petit incident peut ruiner la soirée !!!

J'ai donc doté le montage d'un système de calibration automatique basée sur un senseur à effet hall (testé ici). Ce composant détecte le passage d'un aimant devant lui (il en faut un relativement puissant). Plus précisément, il se déclenche lorsqu'un champ magnétique d'intensité suffisante lui est appliqué. Il suffit donc d'incruster un aimant dans l'engrenage collé au caroussel. Le controleur considèrera alors arbitrairement que la position 0 est celle à laquelle le capteur se déclenche.
Il restera à determiner précisément - une fois pour toute - la distance entre ce point 0 et le premier filtre.


Assemblage

Le moteur et le capteur à effet hall sont montés dans une coque imprimée en PLA; l'emplacement du moteur est ajustable pour permettre un bon contact avec la grande roue. Pour faciliter l'impression et le montage, j'ai conçu trois parties : deux autours du moteur (dessous/dessus), et une troisième venant recouvrir les fils (un simple "capot"). Voici les deux premières tout juste imprimées:



Pour rester précis, il est important que le système d’entraînement soit bien fixé à la roue à filtre (sinon, le moteur va avoir du jeu et les positionnements risquent de ne pas être répétables).
J'ai percé deux trous de 3 sur le débord de la roue à filtre (c'est de l'aluminium, ça se perse très bien) et prévu les trous correspondant dans les pièces en plastique. Des écrous à tête large et un bon serrage rigidifient l'ensemble.

Enfin, comme le Arduino qui va piloter le tout est déporté, j'ai prévu une connectique RJ45...

Voici à quoi ressemble le montage avant fermeture du capot:

Le design des pièces est disponible sur github (il y a même le design de la roue à filtre elle même...).

Facture


En résumé, le matériel requis est donc:
  • Le moteur avec son contrôleur (3€ sur ebay)
  • Le capteur à effet hall (2€ chez MC Hobby)
  • Un aimant terre rare de petit diamètre
  • L'Arduino Nano (5€ sur Ebay, mais je l'avais déjà!)
  • Une prise droite RJ45 (1€ pièce chez Gotronic) et un cable

Ajoutez quelques euros pour le plastique, les écrous, la colle... Le budget de cette modification devrait atteindre les 15€ !

Après le montage, il reste à activer programmer tout ça... Ce sera l'objet d'un prochain billet sur ce blog !



Batteries de laptop




Pour pratiquer l'astro en nomade, il faut une bonne alimentation. C'est pour l'instant un service qui m'est fourni par une batterie automobile au plomb, de capacité respectable, mais bien trop lourde.

J'envisage de récupérer et d'assembler des batteries d'ordinateurs portables en remplacement. On trouve pour 20$ des batteries de 80Wh. ça permet de viser 400Wh pour 100$, ce qui serait 5 fois moins cher que les alimentation  spécialisées (telle celle-ci http://www.astronome.fr/produit-alimentations-cordons-batteries-12v-lithium-polymer-tracer-1599.html)


Le hic est qu'elles ne se montent pas facilement en parallèle  : en gros à cause de problème d'équilibrage, les plus puissantes se déchargerait dans les moins puissantes. Il faudrait donc un montage permettant de coordonner tout ça....



La première étape est de voir comment elle fonctionne et ce que l'on peut en tirer. Je suis partit par commodité sur des batteries Dell D6xxx.

On trouve les connection suivante (dans le sens du texte sous la batterie):
  • 1 et 2: +
  • 3 => SCL
  • 4 => SDA
  • 5 => ?
  • 6 => Activation si connecté à -
  • 7 => ?
  • 8 et 9: -

Pour avoir une tension entre + et -, il faut connecter la broche 6 au -.

Les connecteur 3 et 4 sont un canal de communication I2C. En les connectant au ports A5 et A4 d'un Arduino, on peut interroger la batterie et obtenir pas mal d'information intéressante sur l'état de la batterie:
  • sa capacité restante en Ah
  • son niveau de décharge (intensité, tension)
  • son nombre de cycle de décharge
 J'ai utilisé/adapté le sketch disponible ici. Il s'agissait d'un sketch pour un montage complet avec LCD et boutons de controle... ma version fonctionne uniquement avec le port série du Arduino.
Le circuit auquel on s'adresse est un bq 80201dbt, mais il n'y a pas de datasheet disponible... Du coup, je n'ai pas trop exploré les registres en dehors de ceux proposé par le bq2040 (qui semble être l'ancêtre commun...)

Le petit montage:

Et tadam ! la sortie du moniteur série Arduino :



Tout ceci pourrait finalement servir de base à un contrôleur intelligent qui activerait les batteries au fur et à mesure de leur décharge !


Références:






mardi 5 janvier 2016

Focuser Arduino : Interface et driver ASCOM

Maintenant que la mécanique est prête et que le firmware Arduino exécute les ordres sans broncher, il reste à pouvoir le contrôler depuis le PC...
Pour ce faire, il faut créer un driver ASCOM, ce qui permettra d'utiliser le focuser dans n'importe quel soft Astro sous Windows. C'est donc un élément essentiel du montage !

J'aurais pu aussi partir sur un driver INDI, pour la compatibilité Linux/MAC... J'y viendrais peut être un jour !

En théorie, un driver ASCOM seul permettrait de piloter le focuser depuis n'importe quel soft Astro... Mais avec plusieurs limitations:
  • Le focuser ne pourrait pas être utilisé à la fois par deux applications (chacune essayerait alors de discuter en même temps sur le même port série...). Donc par exemple pas possible pour une appli tiers d'enregistrer la position du focuser pendant les prises de vue...
  • J'ai dans la tête d'étendre le montage pour contrôler aussi une roue à filtre, ce qui reviendra à faire tourner deux drivers ASCOM, en retombant dans le premier problème...
  • Les fonctions qui ne rentrent pas dans le modèle ASCOM ne seraient pas accessibles à l'utilisateur... Pour l'instant je vois au moins: 
    • La supervision de la tension d'alimentation
    • Le contrôle du chauffage

J'ai donc choisi de construire un programme d'interface qui tienne aussi le rôle de HUB Ascom...

L'interface se présente sous la forme d'une fenêtre qui permet de gérer la connexion à l'Arduino, en trouvant automatiquement lequel des port série est un Arduino... (attention à avoir brancher le arduino avant...) Un fois connecté, il est possible de visualiser l'état du chauffage, du focuser, et de le contrôler...



Une fois l'interface connectée, on peut lancer le driver ASCOM dans son soft astro préféré (attention à bien respecter cet ordre, le driver ASCOM refusera de se connecter tant que l'interface ne sera pas elle même connectée).
Pour le driver en lui même, je suis reparti d'un driver ASCOM développé par mon inspirateur : http://stargazerslounge.com/topic/218975-arduino-ascom-focuser-mark2/, modifié pour communiquer avec l'interface plutôt que directement avec le hardware.

L'exécutable pour l'interface est ici : ArdFocuserUi-20160501.zip
Le driver ASCOM correspondant est par là : ArdFocuserAscom-20160105.zip

Et as usual, le code source est dispo sur github !

samedi 2 janvier 2016

Motorisation d'une roue à Filtre


Après avoir goutté à la joie du focuser automatisé (voir ici), il me reste encore une intervention manuelle dans mon mode-op de prise d'image : le changement de filtre. En effet, j'image avec une caméra CCD monochrome, et pour une prise de vue réussie, il faut à priori au moins trois couches (Rouge, Vert, Bleu), voir plutôt quatre (LRGB)...

Jusque là, pour limiter les contacts avec l'imageur, je regroupe les clichés en séries d'un même filtre, en planifiant à l'avance la durée sur chaque filtre, pour équilibrer le signal. Mais ça n'est pas souple du tout : Il faut d'une part aller au bout de la séquence pour avoir quelque chose d'exploitable (et la météo est rarement sûre...), et d'autre part ça implique au moins 3 interventions manuelles pendant la séquence (et le sommeil fractionné c'est pas top...).

L'idéal serait de pouvoir tourner les filtres plus fréquemment (par exemple tout les quarts d'heure), et de laisser éventuellement la météo décider de la fin de la séquence...

J'ai donc envisagé l'achat d'une roue à filtre motorisée, notamment la Xagyl (dont j'ai trouvé un bon test ici), mais sur le papier, j'y trouve plusieurs inconvénients:
  • une prise USB requise en plus (et les tracas habituels : sera-t-elle bien reconnue, sera-t-elle compatible avec un hub ? ...)
  • la différence de prix, qui a bien augmentée (on est au alentours de 300€)
  • et surtout, le manque de fun de cette solution!
Motorisation DIY !

Avec un Arduino déjà en place à quelques centimètres de là, l'occasion de démarrer un nouveau projet était trop belle ! 
Me voici donc lancé dans la motorisation de ma vénérable roue à filtre SkyWatcher 5 position en 31.75 (que l'on peut trouver vers 80€ sur le net).
 
La seule difficulté sera de trouver un système d’entraînement pas trop compliqué à fixer, pas trop lourd et suffisamment précis... Mais tout ça devrait être jouable en réutilisant le moteur de mon focuseur, avec pourquoi pas un capteur à effet hall pour la précision ! (que j'ai testé ici...)

Ce sera aussi l'occasion de fermer cette roue à filtre pour éviter la poussière et l'humidité: actuellement, j'utilise un morceau de papier d'aluminium et une ficelle...

Affaire à suivre, donc !