Essai : équiper notre télescope
Strock 250 avec une Arduino Nano 33BLE
pour le
positionner avec Stellarium 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 :
- II faut se contorsionner pour lire l'écran
- Ce n'est pas assez précis (mais avec
un programme comme SkEye, on peut pointer une étoile proche de l'objet
cherché, corriger la position sur la carte dans SkEye puis aller sur
l'objet cherché...)
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 :
- Un connecteur microUSB pour
alimenter (USB 5V) ou programmer (PC + système de développement
Arduino gratuit) (en bas à gauche sur la photo)
- Un microprocesseur 32 Bits
relativement puissant (pour ce type de carte) : nRF52840 à 32 MHz ; en tout cas beaucoup
plus puissant que celui de la carte Arduino Nano de base, nettement
moins chère (environ 5 €). (le gros rectangle noir)
- Un module Bluetooth qui permet la
connexion à un smartphone ou une tablette qui servira, avec un
programme adéquat comme Stellarium (gratuit) d'interface graphique et
de carte du ciel (le boitier en métal)
- Une IMU (Inertial Measurement Unit)
(la boite noire à droite du bouton poussoir) : un circuit intégré qui
contient
- Un accéléromètre 3 axes XYZ qui
permet de mesurer (avec la gravité) l'inclinaison de l'IMU
- Un gyroscope 3 axes XYZ (a priori
inutile ici) qui permet de mesure l'accélération angulaire
- Un magnétomètre 3 axes XYZ qui permet la
mesure du champ magnétique terrestre et donc de définir l'orientation
/ verticale de l'IMU
- La carte
est minuscule : environ 45 x 18 x 5 mm :

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 un 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 :
- Correction d'offset
- Correction elliptique
- Filtrage de bruit HF...
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 :
- Du filtrage HF (les magnétomètres MEMS ont
pas mal de bruit HF) en moyennant (le déplacement du télescope est assez
lent...)
- De la correction d'offset (en
calibrant en faisant faire un tour complet au capteur) : il faut sommer
et moyenner pour déterminer l'offset X et Y
- De la correction elliptique : les capteurs
X et Y n'ont pas forcément exactement les mêmes amplitudes
- Faire tout ça en coordonnées
sphériques : X, Y, Z : quand on incline le télescope, le champ
magnétique terrestre, lui est immobile...
- Ajouter un filtre de Kalman
adaptatif ?
A terme, je vais installer cette solution
en // avec le Ez Push to sur le télescope de 250 pour comparer...
En plus, contrairement à la plupart des télescopes et à celui utilisé dans
le lien ci-dessus, sur un Strock, il y a très peu d'éléments magnétiques :
- Les roulements à billes du primaire
- Quelques vis et axes pour le
primaire (que l'on pourrait remplacer par de l'inox)
- Les tiges filetées et écrous de
réglage du primaire (que
l'on pourrait remplacer par de l'inox)
- Les vis de fixation des tiges
carbones (que l'on pourrait
remplacer par de l'inox)
- Quelques vis à bois
Qui ne devraient pas beaucoup perturber le
magnétomètre...
Pour info, nous avons récemment fait des mesures: pour que l'influence
d'une tige filetée en acier Ø6x40 soit négligeable
(non mesurable) pour la mesure du
champ magnétique terrestre, il faut qu'elle soit à une distance d'au moins
100 mm du capteur...
Dans le Strock 250, nous pourrions installer l'Arduino Nano 33 BLE à côté
du primaire, à plat sur la base (avec 2 Velcros) en haut à gauche (ou à
droite) quand on regarde le télescope incliné...
Mais techniquement, on pourrait installer le machin n'importe où : à côté
du miroir secondaire :-) ...
Ici, le plus proche objet magnétique, c'est le petit ressort
(antidesserage) de la vis (en Nylon) du miroir, puis l'écrou M4 (qui
pourrait être en inox), puis les 2 vis écrous M4 de fixation du profilé
alu (qui pourraient être en inox) puis la tige filetée et les écrous des
butées des tiges carbone (ce pourrait être en inox).
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 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 du
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 au codeurs non
absolus, il n'y a pas besoin de faire de 0.
Dommage que le magnétomètre ne permet 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 :
- Ajouter un
encodeur optique
: on trouve des encodeurs 600 ppr autour de 10€ pièce. environ Ø40x40
qu'il faut monter sur chaque axe... et relier à un Arduino Bluetooth
?... Précision théorique : 0.6 °. Un encodeur 2000 ppr coûte autour de
35 € pièce : précision : 0.2°. (un peu moins cher en 1800 ppr)
- Installer le système
Ez Push to de Eric Romer
avec des capteurs magnétiques 4 quadrants AS5600 et un aimant entraîné
par l'axe. Précision 0.1°. (La meilleure solution actuelle, à notre
avis, si la précision filtrée d'un magnétomètre n'est pas suffisante...)
- Installer une souris optique qui lit la surface du
bois ou du métal : nous avons fait des essais : ça fonctionne mais on
ne revient jamais deux fois au même point de départ... On peut tester
avec une règle graduée le long de laquelle on fait glisser la souris du
PC (sans sortir de l'écran).
- Imprimer une feuille A3 (un peu comme notre outil de mesure
ci-dessus), sur un support plastique avec un grand cercle et des
secteurs noir et blanc, par exemple, tous les 5e de degrés, le découper
et mettre un capteur optique. Précision théorique : 0.2°
- 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

http://spt06.perso.libertysurf.fr
Commencé
le
25/05/2022

A jour au 01/07/2022