Equiper un télescope avec une Arduino 33BLE

Pour le positionner en Bluetooth avec une tablette ou un smartphone

(Difficulté : * facile)


Nous sommes en train d'équiper notre télescope Dobson Strock 250 et sa table équatoriale avec un kit Ez Push to de la société US Romer

Vue du télescope avec la table équatoriale mais sans le kit Ez Push to :

Principe :

Avec un télescope Dobson, il est possible, pour un prix limité, d'observer des objets intéressants et de faibles magnitudes (peu lumineux).

Il ne reste plus qu'à trouver les objets en pointant le télescope dans la bonne direction...

Ce qui n'est pas toujours facile pour des objets de faibles magnitudes.


Une première solution est d'acheter le kit Ez Push to de Romer (US) qui fournit un kit à monter sur un télescope Dobson et constitué de 2 modules avec chacun un capteur magnétique : un à monter sur l'axe vertical de l'azimut et l'autre sur l'axe horizontale de l'altitude.

Cette solution toute faite permet, avec une tablette ou un téléphone et le logiciel de Romer ou Stellarium (gratuits) de positionner le télescope dans la carte du ciel (avec une précision de l'ordre de 0.1 °).

La solution de Romer coûte environ 100 € et nécessite de modifier légèrement le télescope.

C'est ce que nous sommes en train de faire sur notre Strock 250.


Il y a évidemment la 2e solution très simple de fixer le téléphone ou la tablette sur le télescope avec un programme comme Google Sky...

Nous avons testé sur notre petit 115/900.

Il y a plusieurs inconvénients :


Ici, nous voulons tester aussi une 3e solution :

On trouve maintenant à bas coût (environ 25 €) des cartes Arduino Nano 33 BLE, de faibles dimensions (45x18x5 mm). La carte contient :

Nota : la carte équivalente avec Wifi mais sans Bluetooth : Arduino Nano RP2040, est muni d'une IMU qui n'a pas de magnétomètre...


Avec cette carte et une tablette ou un smartphone, sans faire le moindre bricolage, autre que de fixer (par 2 velcros) la carte sur la partie mobile du télescope parallèlement au miroir primaire, loin d'objets en acier ou magnétiques (pour ne pas fausser la lecture du magnétomètre, sans la moindre vis, le moindre perçage, le moindre câblage (à part connecter une batterie ou un adaptateur secteur USB à la carte), sans la moindre soudure, on peut positionner le télescope Dobson dans le ciel !

Pour déterminer l'altitude du télescope (axe horizontal), avec l'accéléromètre et un peu de filtrage logiciel, il ne devrait pas y avoir de problèmes pour atteindre une précision de 0.2 ° ce qui permet, à coup sûr, de voir l'objet pointé dans un oculaire de focale suffisante (au moins 25 mm).

Pour déterminer l'azimut (axe horizontal), avec le magnétomètre, là, c'est nettement plus délicat, il faudra sans doute faire une calibration à la mise sous tension qui devrait simplement consister à positionner le télescope verticalement puis lui faire faire un tour complet autour de sa base.

Il sera peut-être nécessaire de refaire la manip, télescope à l'horizontal.

Il faudra ensuite faire des filtrages mathématiques avec le processeur du Nano BLE 33 :

Nous pensons qu'avec ces précautions, nous pourrons atteindre une précision suffisante...

Mais ça reste à démontrer...

C'est pour cela que nous avons commandé (25/05/2022) une carte Arduino Nano BLE 33 directement chez Arduino, en Italie, pour environ 23 €.

Une fois que notre kit Ez Push To sera installé et opérationnel sur notre télescope Strock 250, Nous installerons, en parallèle, avec juste 2 velcros et un câble d'alimentation micro USB, l'Arduino Nano 33 BLE sur le télescope.

Et on pourra comparer !


Il y a un américain qui apparemment, a déjà réalisé tout ça avec un code simplifié qui est vu en Bluetooth comme un télescope LX200 par le logiciel gratuit Stellarium :

https://community.element14.com/challenges-projects/project14/nano-rama/b/blog/posts/nano-sense-the-night-sky

Le code, (en langage machine Arduino), qui peut être fortement amélioré, est assez simple 109 lignes pour le 1er module, 150 lignes pour le 2e.


Si c'est assez précis, ça fait une solution à 25 €, très facile à installer, où il n'y a rien à faire en hardware et, dans un premier temps, rien à faire en software : épatant !

En fait, il faut probablement rajouter dans le code du filtrage : bruit, offset, elliptique...


(Les deux modules de code sont disponibles sur la page Web ci-dessus).

Le code de calcul de l'angle du champ magnétique terrestre est on ne peut plus simple (2 lignes !) :

IMU.readMagneticField(l, m, n);

yaw = atan2(l, m);

Il doit y avoir moyen de faire mieux :



Sur cette image, nous avons posé un Arduino Nano ordinaire (c'est petit : c'est la même taille que l'Arduino Nano 33 BLE à l'emplacement suggéré :

Dans le pire des cas, on peut installer l'Arduino à mi-chemin sur les tiges de carbone loin de toute pièce magnétique : là, on est tranquille, mais c'est moins pratique...

Concernant la puissance de calcul nécessaire pour un filtrage soigné : la question se pose de la manière suivante : en utilisant toute la puissance de calcul disponible dans un Arduino Nano 33 BLE (qui est largement supérieure à celle d'un Arduino Nano conventionnel), peut-on atteindre une précision angulaire suffisante (0.2 °) sur l'azimut (magnétomètre) (dans de bonne conditions style Strock : très peu d'objets magnétiques) :

Il faut essayer...

C'est ce que nous allons faire...

Nous avons reçu la carte Arduino... (27/05/2022)

Pour info, la carte seule pèse... 4 g !

Voici déjà l'instrument de mesure de l'azimut : La carte Arduino Nano 33 BLE est maintenue sur la partie mobile. Nous estimons la précision de l'instrument égale ou meilleure que 0.2° :

Vis en inox, écrous et entretoises en laiton (Le câble microUSB ne contient pas de pièces magnétiques...).

En posant l'instrument, à plat, sur une table en plastique et en faisant tourner l'index sur lequel est fixée la carte Arduino, un mince fil collé sur l'index devrait permettre de mesurer précisément l'angle réel.

Pour un instrument encore plus précis, il faut utiliser le télescope mais bon, si déjà on arrive à obtenir quelque chose de correct là-dessus, ça voudra dire que le système est utilisable pour pointer un télescope...

Il faut maintenant charger, compiler et envoyer le code dans l'Arduino et faire les premières mesures de magnitude brutes : sans filtre ni correction.

Nous allons probablement faire tourner le curseur tous les 20° pile sur un tour complet et noter le résultat brut fourni par le magnétomètre.

Nous mesurerons aussi les résultats des accéléromètres qui ne devraient pas poser de problèmes de précision. (Il faut juste installer notre instrument contre une paroi verticale non magnétique...)


Nous avons programmé la carte pour lire uniquement le magnétomètre en  X, Y, Z.

Nous récupérons une valeur toutes les 47 ms.

Le bruit représente un peu moins de 1 °.

Nous allons faire un moyennage sur 10 valeurs pour voir...

Pour le moment avec un filtrage très sommaire, précision de l'ordre de 2 ou 3° (très insuffisant) mais les filtres sont très simplifiés.

Après filtrage, Il y a +-0.5° de bruit que j'ai du mal à éliminer : ça devrait être meilleur...

En principe le bruit aurait dû descendre en dessous de 0.2°... Une erreur dans l'algorithme ?

Comme prévu, l'accéléromètre fonctionne beaucoup mieux que le magnétomètre : le bruit des deux angles d'inclinaison, après un filtrage simplifié, est de l'ordre de 0.01°, la précision à l'air bonne, à mesurer.

Ce qui nous fait dire que les accéléromètres seuls pourraient sans doute convenir à une monture équatoriale (puisque dans une telle monture, le déplacement vers l'Est ou l'Ouest fait pivoter le télescope...)

Les résultats des mesures ne sont pas très bons : par algorithme, on peut compenser le bruit, les offsets, les corrections elliptiques, les erreurs de calibrage... Mais il reste les problèmes de répétabilité : la même mesure refaite un moment après ou à la suite d'une série d'autres mesures peut présenter, après toutes les corrections possibles, des erreurs de 2 ou 3° que l'on ne peut, par définition, pas corriger...

Il reste à modifier les registres du magnétomètre de l'IMU pour modifier sa sensibilité...

Mais apparemment, le magnétomètre ne semble pas utilisable pour pointer l'azimut d'un télescope Dobson.

Nous allons faire des mesures d'accéléromètre pour pointer l'altitude, pour voir.

Résultats des mesures d'accéléromètres : on atteint facilement une précision inférieure à 0.3 ° avec un bruit de l'ordre de 0.01 ° et une répétabilité de l'ordre de 0.03°. Ce qui est bon, nous pensons, qu'avec un algorithme adéquat, on doit pouvoir atteindre une précision de 0.1 ° largement suffisante pour pointer un télescope. En plus avec un accéléromètre, contrairement aux codeurs non absolus, il n'y a pas besoin de faire de 0.

Dommage que le magnétomètre ne permette pas de faire aussi bien :-(

Mais, dans ces conditions, il faudra au moins un capteur pour l'azimut.

Et alors, la solution la plus simple, dans ce cas, c'est le kit Ez Push to (100$) de Romer ("garanti" à 0.1 ° sur les deux axes), que nous avons, d'ailleurs, commandé...

A vendre : carte Arduino Nano 33 BLE, occasion, très peu servie (Je plaisante :-)

A suivre...


Nota : s'il n'y a pas moyen d'obtenir un angle d'azimut suffisamment précis, il y a d'autres solutions :

Une caméra et une reconnaissance automatique du ciel...

Mais tout ça, pour le hardware, est beaucoup plus compliqué que notre solution...


D'autres idées ?

à suivre


Créé le 25/02/2022

A jour le 20/03/2022

.