Sous les étoiles...

Petite séance hier soir sous le ciel des Alpes. Le beau gosse en action avec son joli bonnet de pirate « Au rat qui pète»...

jardin-640

Le temps était clair mais trop turbulent pour shooter la Lune. J’en ai donc profité pour prendre quelques échantillons de test pour mon algorithme de détection d’image et comparer quelques images avec ma base de donnée. :)

seance-astro-polar-scope

Calibration de l'axe polaire

Comment déterminer le centre optique réel de la la monture sur le capteur de la caméra du viseur polaire en réalisant trois photos en faisant tourner de +-90° l'axe d'ascension droite? Maths niveau collège!

« Médiatrice: en géométrie plane, la médiatrice d'un segment est l'ensemble des points équidistants des deux extrémités du segment. Cet ensemble est la droite passant par le milieu du segment et qui est perpendiculaire au segment. »

On commence par déterminer des points de référence entre les clichés...

test-rotation-ra-640

Lors d'une rotation de 90° les points de référence tournent en rond autour de l'axe mécanique d'ascension droite (l'axe qu'on aligne avec le pôle nord céleste). Si l'on trace la médiatrice de chaque segment, l'intersection des médiatrices nous montre le point de rotation. Ici on constate qu'il est un peu plus haut que le centre du capteur.

axe-optique

CQFD.

Test de détectivité de la camera PI

Maintenant que je maîtrise la prise de vue pleine trame, il est temps de vérifier la détectivité de la caméra. Le ciel n’était pas exceptionnel mais déjà avec un temps de pause de 2s, je passe le cap de la magnitude 7.5 avec l’objectif de 25mm F/1,2.

La détection des étoiles est effectuée ici sur mon Raspberry Pi 3 de développement en approximativement 1,4s de traitement. Cela me semble raisonnable pour une image brute de 5 mégapixel. Mon idée serait d’intégrer l’axe polaire en réalité augmentée avec les constellations proches du pôle. Il faudra voir ce que cela donne avec le PI Zéro plus limité.

Évènement exceptionnel: Conjonction Lune / Lampadaire!!!

Qu’on se le dise! Un moment historique: conjonction Lune/Lampadaire! ;)

raspistill-on-mac-shoot

Plus sérieusement, j’avance sur le pilotage de la caméra du Raspberry PI. Il existe bien le projet picamera en Python mais je souhaite quelque chose de plus performant, que ce soit au niveau des ressources CPU que mémoire, afin de tourner correctement à terme sur un PI Zéro. C’est donc le C/C++ que je privilégie. Et là les choses se gâtent sous Raspbian. Par exemple, la librairie de traitement d’image OpenCV propose bien le support de la cam mais uniquement en flux vidéo automatisé. A noter qu’il est possible de modifier certains paramètres via la méthode set (ex: CV_CAP_PROP_SATURATION) de la classe VideoCapture. Elle fait appel au driver V4L mais dans les faits c’est très limité. Impossible par exemple de régler l’exposition de ma caméra: « HIGHGUI ERROR: V4L: Property Exposure(15) not supported by device) ». Hors dans mon cas, il est nécessaire d’accéder à l’ensemble des pixels de l’image (mode « still ») avec une gestion manuelle de la caméra (exposition, balance des blancs, réglage du gain analogique, etc). Bref, pour arriver à mes fins, je suis donc contraint de coder une version modifiée à ma sauce de raspistillyuv.

Niveau IDE de développement il n’y a pas grand chose de potable à mon goût. J’ai donc décidé de faire comme sur Arduino et d’utiliser l’IDE Xcode sur mon Mac pour avoir un éditeur digne de ce nom (code completion, refactoring, recherches avancées, etc). La mise en oeuvre est un peu plus complexe car cela nécessite de mettre en place des scripts de compilation à distance via un canal SSH mais ça y est ça tourne... :)

raspistill-on-mac-with-xcode

Cerise sur le gâteau: XQuartz me permet d’avoir la fenêtre de l’application PI directement sur le Mac (le code s’exécute sur le PI mais l’interface graphique est déportée sur le PC). Je peux maintenant coder sur mon PI avec un minimum de confort! :)