Mala

Projet EM10 USD Arduino

Recommended Posts

Comme évoqué dans un précédant post en fin d'année dernière, je travaille à l'amélioration drastique de ma monture Takahashi sur la base d'un Arduino. Le projet avance tranquillement mais surement. Pour ceux que cela intéresse je viens de mettre en place un blog dédié... http://em10-usd-arduino-takahashi.eliotis.com/blog/index.html

Le prototype de travail a un peu évolué pour être plus fonctionnel et nomade. Je peux ainsi bosser dessus n'importe où dès que j'ai 5 minutes à perdre...

La raquette de commande finale pourrait ressembler à quelque chose comme ça...

J'ai aussi revu les specs à la hausse avec l'adjonction d'un GPS intégré et d'une connexion Bluetooth.

Dans l'immédiat je travaille sur le bouquin de Jean Meeus afin de concevoir une librairie adaptée au Arduino pour les éphémérides planétaires.

Voilà pour les dernières news.

[Ce message a été modifié par Mala (Édité le 19-01-2017).]

  • Like 2

Share this post


Link to post
Share on other sites
Publicité
En vous inscrivant sur Astrosurf,
ce type d'annonce ne sera plus affiché.
Astronomie solaire : la bible est arrivée !
400 pages, plus de 800 illustrations !
Les commandes sont ouvertes sur www.astronomiesolaire.com

bonsoir mala,

super projet

je vois qu'on utilise la même télécommande
http://www.astrokit.fr/drupal-7.38/node/105

bon moi j'utilise pas une arduino mais un raspi temps réel linux
Je fais du micro pas avec, pour les coordonnées planétaires, j'ai une librairie si ça t'intéresse,

j'ai adapté le code source pour en faire une "libsyssol.a" (linkable avec un Makefile)

ça me donne les coordonnées de toutes les planètes en equatorial et azimutal,

ps c'est du C

stef

[Ce message a été modifié par amateurAstro64 (Édité le 19-01-2017).]

Share this post


Link to post
Share on other sites

Merci tout plein Stef! Génial aussi ton projet AstroKit!

Je me pose la question du gain apporté par le micro stepping avec la démultiplication. As-tu eu l'occasion de quantifier le gain réel "micro stepping vs half step" sur une monture équatoriale? Au passage, l'article "une roue dentée de fortune utile pour des tests de précision" n'est pas accessible sur ton site (Accès refusé).

Dans mon cas, j'ai bien peur que ta librairie ne soit pas transposable au Arduino. Le PI c'est le grand luxe à côté! Lol Pour te donner un ordre d'idée, avec le Arduino Mega:
- 8Ko de SRAM.
- nombre flottant en simple précision uniquement.
- pas de possibilité de linker des librairies externes.

Pour le calcul des postions des planètes cela oblige à ruser. Par exemple pour les coordonnées héliocentriques avec la théorie VOSP87, je suis obligé de:
- Stocker les tables de termes en mémoire flash et les charger à la volée car sinon je fais exploser la RAM.
- Modifier certains termes des tables dont les valeurs sont trop grandes pour des flottants 32 bits.

Mais bon c'est amusant (si on aime jouer avec les contraintes de l'embarqué Lol) et ça avance. Je viens de terminer les calculs héliocentriques pour l'ensemble des planètes. Les résultats semblent cohérents entre le Arduino et le PC. Je mettrais le code à dispo quand ce sera terminé.

PS: mon mail pour échanger si tu veux -> sebastien[à rio base]marscaper.com

Share this post


Link to post
Share on other sites

Le premier jet de ma librairie C++ Ephemeris est dispo sur github...
http://github.com/MarScaper/ephemeris

Elle est conçue avant tout pour le Arduino Mega mais codée pour rester multiplateforme. On peut ainsi obtenir les coordonnées équatoriales (R.A/Dec), les coordonnées horizontales (Alt/Az), la distance en AU et le diamètre apparent des planètes du système solaire ainsi que du Soleil pour une date et un lieu donné.

>> Coordinates for Mars (10/04/2014 19:21:00)
>> R.A: 13h10m55s.10
>> Dec: -4d54'45".09
>> Azi: 111.50°
>> Alt: 11.62°
>> Dist: 0.62 AU
>> Diam: 15.13"

Il ne manque que la Lune que j'attaque dans la foulée.

[Ce message a été modifié par Mala (Édité le 29-01-2017).]

Share this post


Link to post
Share on other sites

salut Mala,

désolé j'avais pas vu la suite de ton post,

d'abord félicitations pour les calculs !!

tu as fait comment tu as récupéré les formules sur internet ou bien tu es parti de zéro ?

si tu es parti de zéro chapeau bas c'est loin d'être trivial !

je vais aller voir ton git c++

ta question : oui évidemment le gain est énorme ,

A titre d'exemple j'ai commencé mon projet avec des contrôleurs du commerce de type DRV8835 etc.. qui sont tous en 1/16eme de pas ou bien en 1/32 eme de pas,

même avec ces contrôleurs en micro-pas, j'avais des résidus de vibrations : 1/16eme de pas ce n'est pas suffisant.

Ce sont ces constations qui m'ont lancé dans un travail de recherche sur la modulation PWM et sa mise en oeuvre

est tout aussi important la recherche d'une fonction pseudo-sinusoidale de quantification des pas (que va donc suivre cette modulation pwm)

sur ma Vixen GP je n'ai absolument aucune vibrations (j'utilise des moteurs des NEQ32) et le suivi est quasiment parfait.

Revenons aux calculs : je vais comparer tes résultats aux miens avec ma librairies ça sera amusant

PS juste j'ai vu que tu utilises des double darlington pour la commande en puissance de tes moteurs ? il me semble qu'avec des double pont en H tu auras de meilleurs résultats, surtout pour les moteurs bipolaires

stef

Share this post


Link to post
Share on other sites

bonjour,
j'ai piloté une monture avec des pas a pas, pour ma par, j'ai acheté des drivers de moters tout fait, on peut les avoir a environ 40 euros, il font les µpas jusqu'a 256 ca vaut pas le coup de se prendre la tete a faire des ponts en H
Pierre

Share this post


Link to post
Share on other sites

bonjour Pierrot,
il s'agit d'un monture équatoriale ?
la carte que j'ai développée fonctionne également avec des contrôleurs externes, mais ça me rajoute de l'électronique pour rien, vu que je fais le micro-stepping de façon logiciel,
stef

Share this post


Link to post
Share on other sites

Salut Stef,

t'inquiète c'est pareil pour moi. Je loupe souvent des posts. Ca manque cruellement de notifications automatiques sur le forum.

J'ai tout codé sur la base des formules de l'ouvrage de Jean Meeus "Calculs astronomiques à l’usage des amateurs". Il y a passé une partie de sa vie alors autant que cela serve. Le bouquin est pas mal dans l'ensemble même si certains passages manquent de clarté. Et puis c'était l'occasion d'approfondir mes connaissances sur le sujet. Il a tout de même fallu ruser un peu pour l'adapter en flottant 32 bits (certains termes des coefficients VSOP87 dépassant largement la dynamique d'un flottant simple précision).

Je pense que tu dois confondre avec un autre projet pour le double Darlington. Je n'en suis pas encore à l'électronique de puissance. Je suis surpris qu'en 1/16e tu es des vibrations. Moi je dois voir pour caractériser mon électronique actuelle avec un électronicien de mon Fab lab local mais, entre la naissance de ma petite dernière et les fêtes de fin d'année, j'avais un peu été contraint de temporiser cette partie.

Share this post


Link to post
Share on other sites

salut mala,

j'ai regardé un peu ton code C++ : félicitations, pas impossible que je la teste quand j'aurai le temps

Excellent ce bouquin "Calculs astronomiques à l’usage des amateurs" !

De mon côté je me suis basé sur "calculs astronomiques et informatique" un livre rouge "destiné aux débutants" acheté à la Maison de l'astronomie à Paris il y a une trentaine d'année, je n'arrive pas à le retrouver sur internet.. (??)

Ecrit par un astrophysicien de l'observatoire de Besançon ce livre est déjà d'un bon niveau et propose également toutes les formules de calculs vectoriels/réduction (vecteur héliocentrique, réduction topo-centrique, etc..) à partir des équations de Gauss.

J'ai commencé mes calculs avec l'aide de ce livre et puis terminé (par manque de courage, et aussi parce que les formules directes ne sont pas données) grâce aux algorithmes de la nasa sous forme de code C, que j'ai réadapté (et je t'explique pas la façon de coder du gars qui a fait ça aux USA : goto ... dans du C... beuurkk)

J'ai juste un questionnement / interrogation concernant le calcul du Jour Julien, car après mise en forme des formules, j'ai toujours une incertitude d'une ou deux minutes sur l'obtention du JJ, pourtant je travaille en précision double,

juste pour le jour Julien, il me semble qu'on utilise les mêmes formules (plusieurs façon de calculer existe),

voilà,

stéphane

Share this post


Link to post
Share on other sites

La librairie est achevée avec les calculs Lunaires.

J'ai aussi ajouté un fichiers logs montrant les résultats obtenus avec le Arduino Mega sur le système solaire pour la date de test utilisée dans le projet d'exemple…

>> Coordinates of Solar system objects (10/4/2014 19:21:0)
>> _____________________________________
>> Sun
>> R.A: 01h17m00s.98
>> Dec: 08d08'02".08
>> Azi: 292.39d
>> Alt: -8.15d
>> Dist: 1.002 AU
>> Diam: 31.93'
>> _____________________________________
>> Mercury
>> R.A: 00h23m29s.51
>> Dec: 00d07'25".01
>> Azi: 298.56d
>> Alt: -22.53d
>> Dist: 1.268 AU
>> Diam: 5.31"
>> _____________________________________
>> Venus
>> R.A: 22h28m09s.01
>> Dec: -9d30'17".36
>> Azi: 323.05d
>> Alt: -45.30d
>> Dist: 0.826 AU
>> Diam: 20.19"
>> _____________________________________
>> Earth
>> Look under your feet...
>> _____________________________________
>> Earth's Moon
>> R.A: 09h56m34s.76
>> Dec: 07d40'11".96
>> Azi: 154.47d
>> Alt: 46.27d
>> Dist: 401178.68 Km
>> Diam: 30.13'
>> _____________________________________
>> Mars
>> R.A: 13h10m55s.00
>> Dec: -4d54'44".73
>> Azi: 111.60d
>> Alt: 11.62d
>> Dist: 0.619 AU
>> Diam: 15.13"
>> _____________________________________
>> Jupiter
>> R.A: 06h53m55s.53
>> Dec: 23d08'27".81
>> Azi: 231.00d
>> Alt: 56.04d
>> Dist: 5.281 AU
>> Diam: 37.33"
>> _____________________________________
>> Saturn
>> R.A: 15h21m21s.89
>> Dec: -15d54'18".00
>> Azi: 94.27d
>> Alt: -17.57d
>> Dist: 9.033 AU
>> Diam: 18.40"
>> _____________________________________
>> Uranus
>> R.A: 00h48m42s.53
>> Dec: 04d31'20".58
>> Azi: 295.89d
>> Alt: -15.28d
>> Dist: 21.019 AU
>> Diam: 3.35"
>> _____________________________________
>> Neptune
>> R.A: 22h34m38s.13
>> Dec: -9d42'10".24
>> Azi: 320.87d
>> Alt: -44.82d
>> Dist: 30.690 AU
>> Diam: 2.22"
>> _____________________________________
>> Benchmarking...
>> Elapsed time: 1.55s

https://github.com/MarScaper/ephemeris/blob/master/ephemeris.logs

Cela semble cohérent. Le Arduino n'est pas une foudre de guerre mais il fait le job.

Cela ne me parle pas non plus le bouquin que tu cites. J'avais repéré aussi "Pratical Astronomy with your Calculator" de Peter Duffett-Smith qui a l'air pas mal mais pas tout jeune non plus.

Pour le jour Julien, peut être que cela vient tout simplement des formules. On reste sur des calculs amateurs donc en toute logique des modèles assez approximatifs.

Share this post


Link to post
Share on other sites

Je continue à peaufiner et à enrichir un peu la librairie. J'ai ajouté des méthodes publiques pour les transformations de coordonnées équatoriales (RA/Dec) vers horizontale (Alt/Az) et vice et versa.

Un test sur l'étoile polaire montre une erreur cumulée (equa->hori->equa) d'à peine 1,5"...
>> Testing coordinates transformations:
>> R.A: 02h31m49s.00
>> Dec: 89d15'51".00
>> Convert RA/Dec to Alt/Az:
>> Azi: 358.89d
>> Alt: 48.79d
>> Convert Alt/Az back to RA/Dec:
>> R.A: 02h31m48s.93
>> Dec: 89d15'49".62

L'intérêt à mon niveau sera plutôt les conversions equa->hori afin de déterminer si un astre de la base de données (galaxie, amas, etc) est visible pour le pointage Goto.

Share this post


Link to post
Share on other sites

Je viens de publier un premier jet pour le calcul du lever et coucher des astres. De quoi piloter l'arrosage en automatique après le coucher du soleil. Lol

Il me reste à affiner le cas de la Lune en prenant en compte son mouvement apparent pendant le journée car elle bouge vite et ses coordonnées équatoriales avec.

Share this post


Link to post
Share on other sites

Salut

Un projet très intéressant à suivre.

Pour les bibliothèques de mécanique céleste en C, il existe aussi IAU Sofa, précise, libre, réalisée par l'Union Astronomique Internationale et régulièrement mise à jour. Il existe aussi une version Fortran.

Elle me paraît trop lourde pour un Arduino mais c'est sans doute une référence et une excellente base pour développements dur des cartes un peu plus puissantes.

Les algorithmes de Jean Meeus servent de base à la bibliothèque Libnova, écrite en C, et utilisée entre autre dans Audela et dans le serveur Indi.

Vincent

Share this post


Link to post
Share on other sites

Merci Vincent.

J'avais zieuté quelques projets mais effectivement trop lourds pour un Arduino. Là avec Ephemeris aucun superflu. Que le nécessaire pour de l'embarqué avec moins de 70Ko de mémoire flash utilisée et moins de 800 octets de SRAM.

L'affinage des calculs de lever/coucher pour la Lune est maintenant publié et j'ai intégré aussi la prise en compte de l'altitude du lieu d'observation (autant exploiter l'info de la puce GPS).

Cerise sur le arduino pour les Arduinouseurs, j'ai fait un refactoring du code pour transformer le tout en véritable librairie Arduino pouvant être installée avec l'éditeur (deux projets d'exemple, prêt à compiler, y sont aussi intégrés)…

Je pense que là il y a tout ce qu'il faut pour le télescope de même que pour les calculs d'asservissement d'un dôme finger in the nez.

Share this post


Link to post
Share on other sites

Voici le prototype opérationnel de mon nouvel abaque numérique à côté du logiciel Polaris Finder proposé par Optique Unterlinden sur PC…

Le concept est simple: un arduino, un écran TFT et un puce Bluetooth. Dès que l’on approche l’ensemble à quelques centimètres de la raquette de commande, la liaison Bluetooth s’établie automatiquement et les infos (localisation sur la Terre, date, heure, altitude) du module GPS de la raquette sont rapatriées. Le Arduino calcule alors le positionnement de la polaire et affiche l’abaque numérique.

Pour le calcul de l’angle de l’étoile polaire c’est on ne peut plus simple: j’utilise ma librairie Ephemeris. La longitude est celle de mon lieu d’observation et par contre pour la latitude je me place au pole Nord c’est à dire à +90°. Notre pôle céleste est alors parfaitement au dessus de notre tête et la polaire va réaliser sa ronde autour durant la nuit. Connaissant ses coordonnées équatoriales, on calcule ses coordonnées horizontales avec la librairie ce qui nous donne son angle en azimut. Le tour est joué.

En langage programmeur cela donne quelque chose comme ces quelques lignes…

[Ce message a été modifié par mala05 (Édité le 08-02-2017).]

Share this post


Link to post
Share on other sites

Une version simplifiée du code source de Polaris Finder (sans bluetooth ni GPS) est maintenant à dispo sur mon github…
http://github.com/MarScaper/ephemeris/tree/master/examples/PolarisFinder
L'abaque prend en compte la dérive de l'étoile polaire (precession des equinoxes) par rapport au pôle nord céleste jusqu'en 2030.

La précision des calculs de lever/coucher a été encore améliorée et concorde maintenant parfaitement avec sunearthtools.com à quelques pouièmes de secondes près…

quote:
Paris (UTC+1):
Sunrise: 8h6m57s
Sunset: 18h3m18s
Ref: sunearthtools (10/2/2017): SunRise: 08:07:00 | SunSet: 18:03:19

New York (UTC-5):
Sunrise: 6h55m51s
Sunset: 17h25m8s
Ref: sunearthtools (10/2/2017): SunRise: 06:55:53 | SunSet: 17:25:09

Sydney (UTC+11):
Sunrise: 6h25m24s
Sunset: 19h52m48s
Ref: sunearthtools (10/2/2017): SunRise: 06:25:25 | SunSet: 19:52:49

Sao Paulo (UTC-2):
Sunrise: 6h51m33s
Sunset: 19h49m35s
Ref: sunearthtools (10/2/2017): SunRise: 06:51:35 | SunSet: 19:49:36


Pour le fonctionnel, j'ai ajouté une méthode publique pour les conversions de time zone prenant en compte la circularité sur 24h.

quote:
// Local time UTC+1
float localTime = Ephemeris::floatingHoursWithUTCOffset(sun.rise,+1);

Pour le signe de la longitude, j'ai standardisé le fonctionnement par défaut sur le GPS à savoir: Est positif et Ouest négatif. Par commodité, on peut néanmoins le permuté et revenir à l'ancien mode via la méthode

quote:
Ephemeris::flipLongitude(true);

[Ce message a été modifié par mala05 (Édité le 18-02-2017).]

Share this post


Link to post
Share on other sites

Quelques news du front. Le projet continue tranquillement mais surement.

J'en ai profité pour mettre au point une nouvelle librairie C++ pour Arduino destinée à la communauté. Baptisée RunLoop, c'est un couteau Suisse pour faciliter la parallélisation des traitements…

http://em10-usd-arduino-takahashi.eliotis.com/runloop/index.html

To be continue...

[Ce message a été modifié par mala05 (Édité le 29-03-2017).]

Share this post


Link to post
Share on other sites

Check pour l'étude de l'électronique. Contre toute attente, les moteurs 1 volt / 2 ohms sont alimentés en… 12V.

J'en ai profité pour publier un article détaillé sur l'électronique et la mécanique de la monture…
http://em10-usd-arduino-takahashi.eliotis.com/etude-em10-takahashi/index.html

J'ai aussi terminé une nouvelle librairie pour la gestion de la base de données d'objets célestes avec un Arduino.

http://em10-usd-arduino-takahashi.eliotis.com/librairies-arduino/skycatalog/index.html

Sky Catalog devrait être le parfait complément pour Ephemeris.

[Ce message a été modifié par mala05 (Édité le 10-04-2017).]

Share this post


Link to post
Share on other sites

Ca progresse, ça progresse Stef.

J'attaque enfin la partie motorisation du coup. Je vais faire plus simpliste que toi avec un simple driver A4988 (micro pas 1/16) pour commencer. Les choses concrètes vont pouvoir commencer! lol

J'en ai profité pour me prendre un analyseur logique à moins de 15€ sur ebay…

C'est génial ce bidule pour le prix!

Je vais pouvoir calibrer mes moteurs aux petits oignons.

Share this post


Link to post
Share on other sites

Juste pour le fun, je me suis amusé à faire un gif "pas complet" vs demi pas" avec deux captures d'écran…

Cela donne matière à faire des choses très ludiques pour la compréhension de certains concepts.

Share this post


Link to post
Share on other sites

Ah oui, tres bien !!
Merci pour les infos

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now