[DevBlog] Starberrypi, le télescope de feignasse

Bon, il est temps de dépoussiérer un l’endroit pour parler d’un truc que j’ai commencé il y a maintenant … un peu plus d’un an. L’idée, c’est d’écrire dessus pour :

  • Partager un peu le sujet, des fois que ça serve
  • Formaliser un peu de doc sur les différents choix techniques

Starberrypi c’est quoi ? A la base c’est une idée inspirée par la récupération in extremis d’une antiquité, le minimover 5, remis à neuf, du moins au niveau des moteurs. Pour vous donner une idée de l’âge du truc, le numéro de téléphone du distributeur français indiqué sur le bras comporte 6 chiffres. L’étiquette était peut-être déjà vieille quand elle a été posé, mais quand même, ça sent le milieu des années 80.

Donc l’idée, c’est de prendre ce bras électromécanique respirant la poussière pour en faire un support de caméra mobile afin de pointer directement devant un machin à prendre en photo, de préférence dans le ciel. Prendre des photos et piloter des moteurs pas-à-pas c’est évidement tout à fait dans les cordes, à première vue, pour un Raspberry Pi.

Techniquement niveau matériel, c’est que du déjà-vu ou presque. Une Picam pour l’image, des moteurs pas à pas, seul 2 sur les 6 du minimover suffisent, un peu d’électronique pour les moteurs et basta.

Le détail qui change un peu, c’est l’optique de la caméra. On pourrait faire de l’astrophoto avec la Picam de base, mais… si on monte un objectif de reflex qui zoom un peu, avec la taille du capteur rikiki on obtient un bon gros zoom de porc pour pas cher. Sur le papier, c’est bien, mais ça va avoir quelques conséquences sur l’image (si tu viens de penser à la taille des photosites et au bruit numérique, c’est dans l’idée). Ceci va donc nécessiter un peu de CAO, et d’abus de bien social pour imprimer un adaptateur d’objectif <que j’ai, de préférence> vers la Picam.

Nouveauté pour moi également, trouver un capteur « quivabien » pour me permettre d’aligner le télescope de façon automatique. En gros, la base en astro, c’est l’altitude (hauteur par rapport à l’horizon) et l’azimut (orientation par rapport au nord). Pour l’un, il faut un accéléromètre, pour l’autre il faut une boussole.

Histoire de penser à tout détailler plus tard, voici une liste de tout ce qui m’est passé par les mains pour ce projet :

  • Un télescope Newton 115mm-900mm
  • Un Raspberry Pi 3
  • Des moteurs pas à pas en pagaille
  • Un ULN2803
  • Un DC+Stepper Motor HAT de chez Adafruit
  • Des drivers de moteur pas à pas A4988, de chez Pololu
  • Un capteur d’orientation BNO055
  • Une boussole CMPS11
  • Une boussole CMPS03
  • Un Sense Hat de chez Raspberry Pi
  • Des meccano
  • Des alims externes diverses (5 et 19V notamment)
  • Une imprimante 3D Ultimaker 3

Tout n’a pas servi, mais disons que l’expérience gagné sur chaque truc m’a fait progresser pour la réalisation. Je n’ai pas encore parler de soft parce qu’on verra plus tard. Mais spoiler, ça va surtout se passer en python.

[RaspberryPi] Premiers pas vers l’astrophoto …

Il y a peu, j’ai récupéré un télescope. Pas de toute première jeunesse, il avait été offert à mon grand-père pour ses … pour son anniversaire d’il y a longtemps, vers la fin des années 80. Je n’étais à peine plus haut que trois pommes et deux beignets avec mes 6 ou 7 ans, mais j’avais été admiratif devant l’objet d’astronomie.

Plus de 25 ans plus tard, suite au départ de ma grand-mère partie rejoindre son amour disparu 20 ans avant (mon grand-père, donc), j’ai mis la main un peu par hasard sur le télescope lors du partage des affaires de mes aïeux.

  • Premier constat : il est vieux.
  • Deuxième constat : j’y connais QUE DALLE en astronomie. Bien que l’espace m’intéresse, je connais que pouic aux télescopes, leur fonctionnement, leurs vocabulaires, et ce qu’on peut en faire.

C’est un Merak fait par Perl, avec un diamètre de 115mm et une distance focale de 900mm, avec un oculaire de 6mm et un de 20mm et un doubleur de focal. D’après ce que j’ai compris, pour commencer, c’est déjà pas mal. Je vous passe la partie mise en place : lecture d’une doc avec une superbe photo bichrome du télescope, bienvenue dans le passé, alignement du chercheur avec l’axe du télescope, et utilisation des deux oculaires.

Voilà, c’est en place, et je fais mes réglages sur la flèche de la cathédrale de Rouen (la plus haute de France à 151m, pour l’anecdote), que j’immortalise avec mon appareil photo un peu à l’arrache, à l’aide du 20mm Panasonic qui a le bon goût d’avoir une lentille frontal pas trop grosse et donc de s’aligner facilement avec l’oculaire du télescope.

Bon, venons en à la partie « geek » du bouzin : l’avantage de faire des réalisations régulières avec un Raspberry Pi, c’est qu’il arrive un moment où on se rend compte qu’on a du stock en rab à la maison. Je récupère donc :

  • l’ancien R-Pi de mon robot, un B+
  • une Camera Pi
  • un dongle Wi-Fi USB
  • la batterie externe de mon robot (que j’ai du aller rechercher dans le sac de maternité de madame, heureux évènement devant arrivé dans les semaines prochaines, promis chérie je le remets chargé dès que j’ai fini)
  • un bout de carton
  • du petit scotch d’électricien

Coût total neuf, surement moins de 100 euros, coût en récup’ : 0€.

L’idée est donc de mettre la caméra devant l’oculaire à la place de mon oeil, et de faire des photos. Evidement, tout cela se fait de jour, parce que c’est plus facile ! Pour faire des photos, j’utilise bêtement la commande raspistill via ssh. Mais il est nettement plus facile de régler l’alignement optique avec une visu en temps réel de la camera.

J’ai donc utilisé MJPG-streamer, qui permet de balancer des captures avec un format préréglé à l’avance via le réseau, soit sur une page web, soit sur VLC. Pour se faire, j’ai suivi le tuto disponible sur le merveilleux site http://www.instructables.com. Attention cependant, pour pouvoir utiliser la Camera Pi avec MJPG-streamer, il faut au préalable charger le module de compatibilité V4L2 dans le R-Pi :

sudo modprobe bcm2835-v4l2

Egalement, à l’étape 3 du tuto on vous demande de téléchopper via svn la dernière version du soft, mais l’adresse est obsolète. Il faut donc récupérer le soft via :

svn checkout svn://svn.code.sf.net/p/mjpg-streamer/code/ mjpg-streamer-code

Une fois que c’est fait, vous pouvez nuancer la fin du tuto d’instructables.com avec quelques options (format de l’image, port de streaming, etc) via la doc faite à l’arrache par le dev de Mjpg-streamer sur son blog.

Vous finissez donc avec un télescope qui prend des photos, et qui peut même faire du streaming sur l’internet mondial (rep à ça Philae et Hubble !).



Alors vous me direz « mais elle est flou ton image ! ». Oui, en effet, j’ai une impression de netteté bien supérieur en vidéo ou en visu direct dans l’oculaire. Deux explications :

  1. J’ai peut être mal réglé la partie optique
  2. J’ai l’impression que cela pourrait être du à des turbulences entre les couches d’air chaud et froid traversées par les rayons arrivant au télescope.

Mais cela dit, dans la notice c’est écrit que ce n’est pas un instrument d’observation terrestre, et je pense que face à un astre le problème devrait être moindre.

Il reste également d’autre point à régler, comme la latence du streaming. Il existe il me semble des solutions bien mieux adapté pour visualiser ce que voit la caméra en alternative à MJPG-streamer, où la réactivité est meilleur. Dernier point, si le mode automatique de raspistill se débrouille pas trop mal de jour, il faudra probablement mieux paramétrer la prise de vue lors de photo de nuit. Ensuite peut-être viendra le temps de l’utilisation de technique plus avancer comme l’empilement d’image pour l’observation plus profonde, ou bien l’utilisation d’une camera sans filtre infra-rouge.

Bref, to be continued comme on dit au pays de la NSA.