• entries
    3
  • comment
    1
  • views
    2228

About this blog

Blog de Stéphane Planquart à propos d'astrophotographie et de spectrométrie.

 

Entries in this blog

splanquart

Salut à tous les astronomes amateurs et développeurs du ciel nocturne,

 

Aujourd'hui, je suis ravi de vous présenter mon dernier projet: le Cache Calibration Controller. Il s'agit d'un driver ASCOM Alpaca pour le projet UVEX. Pour ceux qui ne sont pas familiers avec UVEX, il s'agit d'un spectroscope imprimé en 3D particulièrement adapté pour la basse ou moyenne résolution en UV et IR. Le Cache Calibration est un cache motorisé pour télescope développé pour les besoins de ce projet UVEX. Il est imprimé en 3D et contient en plus des lampes de calibration pour permettre de faire les différente image calibration particulière à la spectroscopie (Flat, Néon, S10 par exemple).

 

Le Cache Calibration Controller est conçu pour permettre aux utilisateurs de contrôler facilement le Cache Calibration via leur logiciel d'astronomie. Il est basé sur un microcontrôleur ESP8266 et supporte le protocole ASCOM Alpaca (V1.0, la seule disponible actuellement). Pour faire court, c'est un programme qui s'installe directement sur le microcontrôleur du module relais et qui communique en direct avec la plateforme ASCOM. Ce qui permet au final de communiquer avec n'importe quel logiciel d'astronomie.

 

Je tiens aussi à préciser que ce driver ASCOM n'est pas du tout spécifique à l'environnement UVEX, il peut être utilisé seul, c'est à dire sans la version motorisé de l'UVEX4, mais aussi sans l'UVEX, c'est à dire si vous utilisé un autre spéctroscope comme par exemple le StarEX. Mais aussi si vous souhaitez construire un Cache Calibration pour faire de la photographie par exemple... histoire protéger votre téléscope de la poussière après une session automatique par exemple. En cela il diffère un peut de l'architecture de base proposé par le projet UVEX4 initial dans le sens où la communication se fait en wifi en direct depuis l'ordinateur/routeur et non  depuis la carte mère de l'UVEX4 motorisé. (c'est même encore plus générique que ça, mais passons)

 

L'une des fonctionnalités principales de ce projet est la possibilité de découvrir et de configurer automatiquement les appareils connectés à votre télescope. Avec quelques requête simple, la plateform ASCOM peut découvrir tous les appareils connectés et les configurer en conséquence. Ce driver sait gérer la partie du protocole qui permet la découverte automatique. Il y a aussi une page de configuration qui permet de définir le nom des différent relais. Tout cela est totalement conforme au spécification de ASCOM Alapaca, vous ne devriez pas avoir de soucis à l'utiliser. Il est considérer par ASCOM pour un Device de type Switch.


Et bien sûr, comme pour tous mes projets, le Cache Calibration Controller est open source. Vous pouvez trouver le code source sur GitHub. J'encourage tous ceux qui sont intéressés à le consulter, à faire des contributions, ou simplement à l'utiliser dans leurs propres projets d'astronomie.

J'espère que ce projet aidera à faire avancer l'astronomie amateur et la spectrographie. J'ai hâte de voir ce que la communauté va en faire !
 

Les sources du projet Cache Calibration Controller sont dispo ici : https://github.com/splanquart/CacheCalibrationController

Le Cache de Calibration sur le site de l'UVEX4 : https://spectro-uvex.tech/?p=7457

 

splanquart

Dans la suite du billet de blog précédent à propos du Système DIY pour allumage informatique d'une lampe néon, j'ai créé un petite application Caliblite pour éviter de passer par le lancement d'un script à chaque fois que l'on souhaite allumer ou éteindre la lampe de calibration.

 

Il s'agit d'un premier jet qui me permet surtout de faire mes premiers testes en condition réel.

 

Pour l'installer, il faut récupérer le code source sur github et ensuite lancer les commande tel qu'indiquer dans le README.md qui vont visible sur la page principal du projet : https://github.com/splanquart/caliblite.

python ./src/caliblite.py

Donc pour le moment juste un sélecteur pour le port COM à utiliser pour communiqué avec le module relai et un bouton "switch" qui permet d'allumer et éteindre la lampe. Voilà c'est hyper simpliste mais ça fait bien le taf et ça évite de se lever pour aller allumer ou éteindre cette lampe.

62bc0f8241912_Capturedecran2022-06-29a10_37_49.png.69eef8f251b91dbd8fe93c4ebc268922.png

Le rond vert est l'indicateur visuel qui change de couleur (vert ou rouge) pour indiquer si la lampe est allumer ou éteinte.  Au démarrage de l'application, il n'y a pas de couleur car le module relai ne fourni pas l'état du relai et donc il n'est pas possible de le connaitre avant d'avoir envoyer un premier signal pour allumer ou éteindre la lampe.

 

Attention tout de même, les périphérique astro sont assez nombreux généralement et si comme moi tout est connecter au même ordinateur cela peut parfois rentré en conflit. Si une de vos périphérique ne fonctionne pas, ce qui m'est arrivé lors de mes tests première test, il faut simplement se déconnecter du module relai. Pour cela il suffit de fermer l'application et de la relancer.

 

Autre remarque, pour le moment il n'y a pas vraiment de gestion d'erreur donc si l'application crache avec un message comme celui ci-dessus, c'est simplement que vous avez choisit un port COM qui n'est pas le bon. Il suffit alors de relancer et de de choisir le bon pour COM.

62bc1188c77c1_Capturedecran2022-06-29a10_37_07.thumb.png.5127f3c4a84430cb917fddd217ea5d06.png

 

Enfin j'ai ajouter un port appeler Simulator qui est bien pratique pour développer ou test l'application et qui permet de ne pas avoir besoin d'un module relai de connecter pour vérifier le fonctionnement de l'application. Vous pouvez donc tester l'application avant même d'avoir reçu votre module relai si vous en avez envie.

 

splanquart

Dans le cadre du projet Star'Ex (un spectro DIY en impression 3d) nous avons besoin de faire des spectre avec ou sans la lampe néon.

Je décrit ici un petit bricolage que j'ai réalisé afin de pouvoir contrôler l'allumage et l'extinction de ma lampe néon depuis un petit script en python.

 

Le composant de base est un module relais usb. Vous pouvez en trouver facile sur amazon ou aliexpress. Ce sont des module basé sur une puce CH340 qui convertie de l'usb en série ce qui simplifie pas mal la communication. Pour ma part j'ai pris ce model : https://www.amazon.fr/gp/product/B07DJ549LX/

62b4d425bfeac_61DCinQ5PPL._AC_SL1047_300px.jpg.cfe358f7250f7a3be26b28405bbe7a16.jpg

Au niveau du câblage c'est vraiment du basique:

  • on relit le port noté COM à l'ampoule néon
  • le port noté NO à l'arrivé du neutre provenant de la prise.

COM veux dire commun et NO veux dire normalement ouvert. Cela implique que par défaut, le circuit sera ouvert ce qui veux dire que notre lampe néon sera éteinte.

 

Coté informatique j'ai décider de me base sur un script en python en utilisant la lib pyserial. Vous devez donc installer python. Sous windows vous pouvez le faire via Microsoft Store en recherchant "python". Actuellement c'est la version 3.10 que j'utilise. Ensuite pour installer pyserial, tapez dans un invite de commande (ouvrez le menu windows et taper CMD) : 

pip install pyserial

Vous devez aussi connaitre quel port COM est utilisé par votre module relais. Chez moi c'était le COM5. Vous pouvez découvrir cela en allant dans le gestionnaire de périphérique de Windows.

 

Ensuite vous pouvez créer deux fichier : switch_on.py et switch_off.py qui contiennent chacun : 

import serial

on = b'\xA0\x01\x01\xA2'

ser = serial.Serial("COM5", 9600, timeout=2)
ser.write(on)
ser.close()
import serial

off = b'\xA0\x01\x00\xA1'

ser = serial.Serial("COM5", 9600, timeout=2)
ser.write(off)
ser.close()

Ensuite vous pouvez taper dans votre invite de commande : 

python switch_on.py

ou

python switch_off.py

Pour allumer et éteindre l'ampoule néon.

 

Voila prochainement je vais probablement créer une petite application pour que ce soit plus simple à utiliser et je regarderais ensuite autour des script Prism pour voir ce que je peut faire assez facilement.