Démo d'avancement du goto prédictif...
L'ATmega2560 de la MKS MINI au taquet...
Interprétation de la mesure à l’analyseur logique:
Le code exécuté dans l’interruption en elle même prend 3,375us (remise à zéro du compteur du timer comprise) avec une périodicité d’à peine 8us soit plus de 123 000 impulsions par seconde!!! On arrive ici à la limite extrême en se limitant à un seul moteur. En prenant un peu de marge cela signifie qu’en déplacement bi moteurs (A.D. et déclinaison en simultané) pour du goto on peut sans complexe espérer atteindre les 50Khz avec encore un peu de temps CPU pour le reste du programme.
Pour atteindre de telles performances, le code des interruptions moteur a été réduit à sa plus simple expression (comptage de pas + envoi impulsion moteur). Toutes les fonctions d’écriture -digitalWrite()- ont été optimisées avec l’excellente librairie Arduino-GPIO. Enfin, la gestion des accélérations/décélérations, changement de direction, activation/désactivation moteur, ont été dévolues à un timer dédié servant de « modulateur de fréquence » comme le montre cette capture...
Les avantages:
- Le fonctionnement des moteurs à vitesse constante est très peu gourmand en temps processeur.
- Cela ouvre la porte pour faire sans souci du goto en microstepping 1/16 là où d’autres projets sont contraints de basculer à la volée en 1/2 pas voire même en fullstep pour tenir la cadence.
- L’intégration du rattrapage de jeu et la correction d’erreur périodique pourront se faire au niveau du timer d’accélération sans impacter les performances des interruptions moteur.
Démo gestion des moteurs pas à pas du télescope
https://www.youtube.com/watch?v=dwV1hC2yCYI
Le résultat est sans appel en terme de performances mais aussi de simplicité de code. L’ajout du rattrapage de jeu et la modulation de fréquence pour la correction d’erreur périodique devrait être une partie de plaisir par la suite. :)
Dans l’immédiat, je travaille maintenant sur le goto car j’en ai besoin pour d’autres projets. Mon idée serait de ne pas compter les pas à la volée en regardant si on est pas trop loin mais plutôt de créer un modèle mathématique permettant de déterminer le temps de déplacement nécessaire à la milliseconde près pour chaque axe. L’idée est séduisante sur le papier mais dans les faits cela demande beaucoup de précision.
Affaire à suivre...
Contrôle de l'accélération et estimation des pas pour le goto
Reprenons l’exemple d’une accélération comme celle que j’utilise pour ma monture...
Dans la réalité, pour obtenir un tel résultat, je dois progressivement augmenter la fréquence des pas moteur de 0 à 100% de la vitesse souhaitée. Le graphique ci-dessous montre des paliers de 0.1s d’accélération pour passer de 0 à 400Hz (vitesse solaire de ma monture avec micro stepping de 1/16) en 2 secondes.
Astuce: Après avoir étudié la question, j’ai fait le choix sur Arduino d’utiliser le Timer 0 pour gérer les accélérations/décélérations/inversions de mes moteurs. Il faut savoir que ce timer matériel est notamment utilisé par les fonctions delay(), millis() et micros() sur Arduino. On peut néanmoins l’utiliser pour peu de ne pas modifier sa fréquence (calée à 1ms ) en le programmant pour lever une seconde interruption sur la même base de temps...
// Timer0 is already used for millis() - we'll just interrupt somewhere
// in the middle and call the "Compare A" function below
OCRA = 0xAF;
TIMSK |= _BV(OCIE0A);
Le nombre de timers matériels étant très limités sur une carte Arduino (seulement 4 timers sur Uno et 6 timers sur les cartes MEGA) c’est donc un luxe non négligeable de ne pas en monopoliser un juste pour le timing des variations de vitesse. Sur ma MKS MINI, il me reste donc 5 timers matériels soit la possibilité de piloter les 4 drivers de moteur pas à pas avec une grande précision.
A la fin de mon accélération, j’aurais donc théoriquement parcouru la somme des pas des paliers de mon graphique soit... 201 pas. Et le goto dans tout cela? Et bien le comptage de pas c’est la base bien sûr car comme dans la vie: pour savoir où l’on va, il faut savoir d’où l’on vient! -je suis d’humeur littéraire aujourd’hui. Profitez, c’est cadeau.- On peut donc évaluer de façon assez précise, au niveau logiciel, le temps nécessaire pour atteindre un point donné et s’épargner l’achat de couteux encodeurs de position.
Aujourd'hui c'est optimisation...
Et bien oui mais non. Il n’y a pas que la puissance qui compte. Un Arduino ne fait pas grand chose mais il le fait bien. C’est un véritable environnement temps réel. Bien maîtrisé, il est capable de piloter des entrées/sorties avec une régularité et une finesse que n’atteindra jamais un puissant PC qui lui est certes très performant mais qui doit faire beaucoup de choses à la fois (sans même qu’on le sache).
Dans le cadre de moteurs pas à pas par exemple, la régularité est primordiale. La capture ci-dessous montre les pulsations de chaque pas moteur en ascension droite et déclinaison sur mon projet. La précision obtenue est supérieure à la micro seconde.
Voilà c’était la pensée du jour. Je retourne à mon optimisation de code pour grappiller de précieux cycles d’horloge. Au passage, si vous codez sur Arduino de manière un peu avancée, je vous recommande de tester l’excellente librairie Arduino-GPIO de Mikael Patel: https://github.com/mikaelpatel/Arduino-GPIO. Elle permet de remplacer notamment les fonctions digitalRead() et digitalWrite() de la librairie Arduino par des accès hyper optimisés.
MKS MINI aux commandes...
https://www.youtube.com/watch?v=ckrY5U3mfkk
Le projet a bien évolué depuis ses débuts. Simplifions, simplifions, simplifions! Reste à intégrer une led d’éclairage pour le viseur polaire, prévoir une connectique pour le câble de la motorisation de la mise au point et ajouter la deuxième connectique DB-9 pour la future télécommande tactile. A partir de là on sera pas mal niveau matériel côté monture.
Test motorisation mise au point du CN-212
L'analyseur de précision de moteur pas à pas est au taquet!
A titre d’illustration, voici les graphiques X/Y de l’évolution de la position de l’étoile noire centrale (cerclée en rouge dans l’analyseur) sur une période de rotation complète de la mire…
L’effet de sinusoïde est ici tout simplement lié au fait que mon « étoile noire » n’est pas parfaitement centrée sur l’axe moteur. Lors d’une rotation complète, elle oscille donc en horizontale et verticale car elle tourne autour de l’axe avec une amplitude max de l’ordre de 3,5 pixels si on ne prend pas en compte la dérive (le pied photo qui se tasse légèrement notamment en vertical sur le second graph). 3,5 pixels, c’est ridicule me direz vous et cela donne un très bon ordre de grandeur de la précision atteinte. On peut estimer le bruit résiduel à environ 0,05 pixel à peine!
Une fois toutes les positions des mires précisément analysées sur un peu plus d’une période, l’idée est d’analyser la variation de la position angulaire des mires externes par rapport à la vitesse de référence théorique (25Hz soit en sortie d’axe moteur 0,75° de déplacement chaque seconde). Et voici le résultat brute pour mon moteur…
Erratique? Pas tant que cela et même loin s’en faut. Pour s’en convaincre, exportons les données vers l’analyseur d’erreur périodique PECPrep…
Et là: magie du spectacle. L’analyse de fréquence détecte et supprime toutes les fréquences. L’erreur résiduelle relève de l’encéphalogramme plat… :)
Notre signal mesuré est donc parfaitement reproductible. Cerise sur le gâteau, reprenons la table d’engrenages que j’avais calculé il y a quelques semaines…
En y regardant de plus près, presque toutes les fréquences proposées par PECPrep sont clairement identifiables à la seconde près par rapport à ma table…
Voilà qui valide on ne peut mieux le concept de l’analyseur!
Dans les faits, l’analyseur va être un outil particulièrement précieux pour la mise au point de l’algorithme de correction d’erreur périodique avec le Arduino. Je pourrais ainsi contrôler la qualité du correcteur sur des données réelles sans sortir de chez moi. :D
Idéalement, il serait même intéressant de pouvoir faire cela en temps réel et non sur une séquence vidéo enregistrée. A méditer pour les prochaines nuits blanches…
Dans le colimateur de l'analyseur...

Encore quelques détails à améliorer mais cela valide l’analyseur de précision. Le concept fonctionne pas mal. Dommage que le 5D Mk III monte très vite en température et génère un bruit de lecture marqué même à 100Iso. Cela limite la précision des mesures. Avec une vraie CCD le principe deviendrait redoutable.
L'analyseur de moteur pas à pas livre ses premiers chiffres...
- Période de rotation de la sortie moteur: 7,98min (7min 59s) soit 9,98min/dent au niveau de la vis roue dentée de 144 dents)
- Fréquence des pas moteur: 25,063Hz en Fullstep.
- Vitesse angulaire du télescope (tenant compte de la démultiplication supplémentaire de 0,8 et de la roue dentée de 144 dents): 15,04’’/s.

Conclusion rapide: ça cartonne! La vitesse sidérale est quasi parfaite.
Seule ombre au tableau pour le banc d’essai, les vibrations du moteur viennent noyer la précision de mesure sidérale instantanée…

Ce qui me fait dire que ce n’est pas du bruit lié à l’analyse c’est que, quand on y regarde de plus près, ce fameux « bruit » est identique pour chacune des 4 mires périphériques. Je pense que le passage en micropas 1/16 avec la nouvelle électronique devrait solutionner cette incertitude.
Chose intéressante tout de même, le repère centrale rouge semble moins impacté. Du fait de son léger décentrage, ses positions x/y génèrent une légère sinusoïde qui semble laisser entrevoir les « crans » d’une sous période...

Avec un peu de chance, il s’agit de la fameuse sous période d’environ 1,28m que j’ai imputé à l’engrenage 4 de la démultiplication.
Enquête à suivre.
Ebauche d'analyseur de précision de moteur pas à pas
Le moteur et sa mire sont mis en place sur un meuble avec un éclairage…

Dans l’axe à quelques mètres, je mets l’appareil photo en mode vidéo RAW sous Magic Lantern. Je réalise une vidéo sur un peu plus d’un tour complet d’engrenage (période de 8min dans mon cas).

La vidéo RAW MLV est ensuite transférée sur le Mac et convertie en mov sans perte avec le logiciel MLVToMovie que j’ai codé il y a quelques temps pour faire de l’imagerie planétaire.
Reste à analyser la vidéo. J’ai travaillé aujourd’hui sur le suivi des « étoiles noires «. - Ouha!!! Ca claque dit comme ça!!! :D - Il reste à extrapoler les données pour déterminer la vitesse de rotation à un instant t.

L’ébauche du logiciel en action avec incrustation en « presque » réalité augmentée…
La suite au prochain épisode. Je vais faire dormir un peu les neurones pour ce soir.
Platine de test de précision de moteur pas à pas

Voici le résultat...


Le concept est totalement inspiré d’une expérience menée par DBlatte (Christophe), pour caractériser la précision de ses moteurs pas à pas, et présentée sur le forum d’astrosurf…
De la précision des moteurs pas à pas
Reste à y coller une mire d’étoiles, mettre en place un setup de prise de vue et le traitement des données qui va bien derrière. :)
Cablage de l'electronique de puissance de l'EM-10 Taka (suite)
Pour les premiers tests, j’ai utilisé le moteur avec la démultiplication hors service et une alimentation stabilisée. Comme ça aucun risque. L’ensemble est pour l’instant piloté avec un Arduino Uno…

D’un point de vue électronique, rien de bien sorcier sur la platine: en bas un régulateur 12V pour alimenter les moteurs en puissance, un condensateur pour absorber les pics de tension lors des démarrages, un second régulateur UBEC pour l’alimentation 5v de la partie logique et enfin en haut avec leur radiateur les deux drivers A4988…

Vue arrière avec câblage, une led pour l’éclairage du viseur polaire et un potentiomètre de réglage...

Cela peut paraitre un peu touffu car j’ai aussi câblé le microstepping pour une gestion logicielle en temps réel ainsi que l’activation/désactivation des drivers (Enable) pour limiter la conso lorsque les moteurs seront à l’arrêt mais rien de bien sorcier dans les faits...

Accélération/décélération: Sinus or not Sinus?
Soit t un nombre réel compris entre [0,1] représentant le temps d’accélération.
La réponse f(t) est un nombre réel compris entre [0,1] qui représente la vitesse du moteur en pourcentage.
Le graphique ci-après montre:
- Une accélération linéaire.
- Une accélération sinusoïdale parfaite.
- Une accélération sinusoïdale partielle.
La vitesse par accélération linéaire vaut:
f(t) = t
C’est la forme la plus simple. L’accélération est une simple fonction linéaire sur toute la plage. L’accélération est donc constante…
La vitesse par accélération sinusoïdale complète vaut:
f(t) = (sin(t*pi-pi*0.5)+1)*0.5
L’accélération est douce au départ, maximale en 0,5 et vient se radoucir sur la fin...
La vitesse par accélération sinusoïdale partielle vaut:
f(t) = sin(((2*t+1)*pi-pi)*0.25)
L’accélération est maximale au départ et vient se radoucir ensuite...
L’idéal va être des les mettre en oeuvre sur le terrain pour voir le ressenti en terme de confort d’utilisation.
Cablage de l'electronique de puissance de l'EM-10 Taka


Premier test d’un des drivers A 4988 en ascension droite. Rien ne crame… C’est bon signe… ;)
Le temps de mettre tout ça en forme et un article détaillé va venir sur les calculs pour la calibration des drivers avec les moteurs pas à pas d’origine.
Réglage de drivers A4988 StepStick
http://reprap.org/wiki/StepStick
Voici les formules:
Imax = Vref/(8*Rcs) ou reformulé pour Vref: Vref = 8*Imax*Rcs
Avec:
- Vref: tension de référence du potentiomètre.
- Imax: tension maximale globale.
- Rcs: résistance de référence = 0,2 ohm pour les StepStick.
L’intensité max (par bobine) en fullstep peut être calculée par la formule:
Imax = √( (I bobine1)^2 + (I bobine2)^2 )
Comme l’intensité est la même dans les deux bobines:
Imax = √( (I bobine)^2 + (I bobine)^2 )
Imax = √( 2*(I bobine)^2 )
Imax = √2 * I bobine
Imax = 1,4142 * I bobine
En d’autres termes et pour faire simple: en fullstep les bobines sont alimentés à 70% seulement. Cela est dû au fait que le driver n’a pas de mode fullstep dédié. Il se cale simplement sur sa table de microstepping. Un graphique parle plus que de longs discours…
Dans le cadre de mes moteurs pas à pas unipolaires 6 fils (24 pas / 1v / 2 ohms), nous laissons les fils communs (fils rouge) non connectés pour utiliser les moteurs en mode bipolaires...
L’intensité en fullstep biphasé est de 0,354A (70% d’Imax) par bobine.
En appliquant les formules, cela nous donne:
Imax =1,4141*0,354
Imax = 0,500A -> le max que peuvent supporter les bobines de mes moteurs en unipolaire.
et par richochet:
Vref = 8*0,354*0,2
Vref = 0,801v
Il suffit donc de régler Vref à 0,8v (Attention: ce calcul peut être différent en fonction de la résistance Rcs du driver utilisé: StepStick, Pololu, etc).
Seule ombre au tableau, le moteur dispose d’un peu moins de couple en fullstep. Je préfère néanmoins rester sur ce réglage et réduire la vitesse max à 40x/45x la vitesse sidérale au lieu de 50x (la perte de couple se fait sentir et le moteur débraye au bout d’un moment en charge à 50x). En contrepartie, cela me permet de basculer en micropas ce qui donne beaucoup plus de fluidité et moins de vibrations aux moteurs.
Moteur P43GH démonté
De gauche à droite: le couvercle du carter, le moyeu avec son aimant permanent, les deux bobines de cuivre, le carter du bloc moteur avec son axe pour accueillir le moyeu...
Le moteur entièrement clos avec sa démultiplication. Un léger coup de Dremel a été nécessaire pour désolidariser les pattes de la démultiplication…
Démultiplication retirée. On aperçoit le capot du carter…
Retrait du capot. Au milieu, le moyeu en place. C'est en fait un simple aimant qui va tourner en fonction des phases.
Moyeu retiré. On aperçoit 6 petites ailettes qui servent de "ressort" et évitent ainsi que le moyeu ne frotte sur le fond du carter lorsqu'il tourne...
Et voici les petites plaques en métal des phases du moteur. C'est elles qui vont se polariser lorsque le courant passe dans les bobines (parties blanches)…
Sur le principe, cela fonctionne comme ceci…
Moteur a six pas et quatre phases soit 24 pas complets (Source: wikipedia).
Bilan: tout est en parfait état côté moteur. Reste à voir si je peux lui faire une attelle avec un nouvel engrenage en impression 3D pour la pièce cassée de la démultiplication pour le rendre à nouveau opérationnel.
Démultiplication motorisation EM10 USD (suite)
Je constate que cette sous période est confirmée par des mesures de Christophe Demeautis avec une autre EM10 USD sur son site. Ce serait donc un phénomène récurrent avec le modèle USD...
La périodicité est un indice important. Une telle période est incompatible avec les engrenages externes (pignons moteur et pignon roue dentée) car elle est bien trop rapide. Il faut donc s’y coller côté démultiplication.
Partie un peu fastidieuse: le comptage des dents de chaque engrenage et des arbres. Pour me simplifier la tâche, j’ai opté pour de la photo macro de chaque engrenage. Voici un photo montage (engrenage masqués ajoutés en transparence) avec le comptage des dents…
Calcul de contrôle avec le logiciel Soulver pour 500 rotations (logiciel très pratique pour poser ce genre de calculs):
rotation_engrenage_moteur = 500 // 500 rotations
// Mouvement de dents
engrenage_moteur = rotation_engrenage_moteur × 10 // = 5 000 dents
engrenage_1 = engrenage_moteur/30 × 10 // = 1 666,6666666667 dents
engrenage_2 = engrenage_1/40 × 10 // = 416,6666666667 dents
engrenage_3 = engrenage_2/40 × 18 // = 187,5 dents
engrenage_4 = engrenage_3/30 × 10 // = 62,5 dents
engrenage_5 = engrenage_4/25 × 20 // = 50 dents
// Rotations des engrenages
rotation_engrenage_1 = engrenage_moteur/30 // = 166,6666666667 rotations
rotation_engrenage_2 = engrenage_1/40 // = 41,6666666667 rotations
rotation_engrenage_3 = engrenage_2/40 // = 10,4166666667 rotations
rotation_engrenage_4 = engrenage_3/30 // = 6,25 rotations
rotation_engrenage_5 = engrenage_4/25 // = 2,5 rotations
rotation_engrenage_6 = engrenage_5/50 // = 1 rotation
L’arbre moteur doit donc bien faire 500 tours pour un seul tour en sortie soit une démultiplication de 1/500. On est bon par rapport aux spécifications constructeur.
Reste à déterminer la périodicité de chaque engrenage pour recoupement avec l’erreur périodique de la monture. Il faut alors extrapoler sur 10min (période complète de la vis sans fin à vitesse solaire de référence). Avant toute chose, il nous faut le nombre de pas effectués en 10min soit: 25Hz*60*10 = 15 000 pas. Etant donné que nous somme en vitesse sidérale pour les mesures d’EP, le nombre de pas est en fait un peu plus élevé si l’on veut être précis: 15 041,068733 soit un ratio de 1,002738 que nous appliqueront en fin de calcul.
pas = 15000 // 15000 pas pour un tour de vis sans fin (si tout va bien ;) )
pas_moteur = 24 // Nombre de pas du moteur pour un tour complet
rotation_engrenage_moteur = pas/pas_moteur // = 625 rotations
// Mouvement de dents
engrenage_moteur = rotation_engrenage_moteur × 10 // = 6 250 dents
engrenage_1 = engrenage_moteur/30 × 10 // = 2 083,3333333333 dents
engrenage_2 = engrenage_1/40 × 10 // = 520,8333333333 dents
engrenage_3 = engrenage_2/40 × 18 // = 234,375 dents
engrenage_4 = engrenage_3/30 × 10 // = 78,125 dents
engrenage_5 = engrenage_4/25 × 20 // = 62,5 dents
engrenage_sortie_moteur = engrenage_5/50 × 36 // 45 dents
// Rotations des engrenages
rotation_engrenage_1 = engrenage_moteur/30 // = 208,3333333333 rotations
rotation_engrenage_2 = engrenage_1/40 // = 52,0833333333 rotations
rotation_engrenage_3 = engrenage_2/40 // = 13,0208333333 rotations
rotation_engrenage_4 = engrenage_3/30 // = 7,8125 rotations
rotation_engrenage_5 = engrenage_4/25 // = 3,125 rotations
rotation_engrenage_6 = engrenage_5/50 // = 1,25 rotations
rotation_vis_sans_fin = rotation_engrenage_6 × 36/45 // = 1 rotation de la vis sans fin (Oufff!!! On est bon!)
Nous voici à l’heure du bilan. Avec 7,8125 rotations (soit 7,83389 rotations rapporté à la vitesse sidérale) notre coupable semble tout indiqué: c’est l’engrenage 4 le fautif (gear_4 sur la photo) à la jonction entre engrenage alliage et engrenage plastique. La bonne nouvelle, c’est que nous avons maintenant une connaissance très précise de la sous période: 10 min / 7,8125 rotations / 1,002738=1,276506min. La moins bonne, c’est que cette erreur n’est pas sous multiple de l’erreur périodique principale ce qui va la rendre plus délicate à intégrer dans la correction PEC. Mais dans notre malheur, il y a une bonne chose à y regarder de plus près: 15000/7,8125 = 1920 pas. En d’autres termes: la sous période se reproduit tous les 1920 pas entiers.
Pour terminer, voici l’extrapolation de toutes les périodes incluant rotation complète des engrenages (effet potentiel de voilage) et les changements de dents (effet potentiel d’erreur d’usinage des dents)…
Veni, vidi, vici pour cette étape. :D
Démultiplication motorisation EM10 USD
Qu’à cela ne tienne! Je me suis mis en quête d’un moteur hors service d’EM10 USD sur les forums astro. Et pour mon plus grand plaisir, Rémi Petitdemange d’Optique Unterlinden (importateur de la marque Takahashi) a répondu présent et m’a envoyé gracieusement un moteur pour étude. Un big big merci Rémi! ;)
Dès réception, la dissection a donc commencé…

Il y a plus qu’à compter tout ça et voir ce qu’il en ressort…

Affaire à suivre.
Début de prototypage de la partie puissance

A terme les composants seront positionnés vers l’intérieur de la monture pour minimiser l’épaisseur de la façade.
Pour l’instant tout n’y est pas encore. En bas nous avons un régulateur (qui va être remplacé par un modèle plus haut de gamme) et le bouton de mise en marche. Au milieu un condensateur pour amortir les pointes de surtension. Et en haut les deux drivers de moteur pas à pas A4988.
D’ailleurs au passage, voici un article très intéressant qui fait la part belle au A4988…
http://hackaday.com/2016/08/29/how-accurate-is-microstepping-really/
Il reste un peu de place sur le pcb pour la led du viseur polaire, un régulateur pour abaisser la tension 12v à 5V pour l’alimentation du Arduino de la raquette de commande, un connecteur vers la raquette. Je me tâte aussi à installer les connectiques ST4 et l’USB directement sur la monture. Cela éviterait les câblages externe sur la raquette. Réflexion à poursuivre… :)
Présentation vidéo de l'analyseur logique 24MHz 8CH Saleae...
Analyseur logique Saleae à moins de 15€

Le clone est parfaitement compatible avec le logiciel proposé par Saleae qui est on ne peut plus simple d’usage. Mon Mac adore et moi tout autant...

Du coup, je me suis amusé à pousser mon Arduino dans ses retranchements juste pour le fun histoire de voir si l’analyseur suivait. Aucun problème, le Arduino décroche bien avant lui. 8Mhz semble sa limite (optimisation max avec suppression du loop et écriture direct sur les ports d’entrées/sorties) soit 0,125us*2 = 0,250us de largeur de période d’impulsion. Largement de quoi faire clignoter une led quoi… Lol

La mesure de gauche (0,25us) montre le rebouclage de la boucle infinie while.
On voit encore mieux en dézoomant: 16 périodes du fait de la redondance de code dans la boucle sur 3,875us puis un trou lié au rebouclage…

Et voici un lien vers le code source pour les curieux…

arduino_max_blink.zip
Je pense que j’en ferais un article détaillé à l’occasion car cela va être un outil précieux pour une calibration optimale de mes moteurs pas à pas par rapport à la vitesse sidérale.
Edit: non en fait on peut encore mieux faire et monter à 8Mhz par période. On en reparle un peu plus tard. :)
De drôles d'oeufs de pâques

Le fait que les moteurs d’origine soient finalement alimentés en 12v simplifie grandement les choses. Du coup, vu le coût modique, j’ai acheté un lot de cinq (moins de 10€ l’ensemble avec radiateurs inclus). Cela m’en fait deux en plus pour le prototypage et un encore en sus pour par exemple piloter un moteur de mise au point. :)
Lien ebay...
http://www.ebay.fr/itm/252826447862?ul_noapp=true
Article étude mécanique et électronique de l'EM10 USD
http://em10-usd-arduino-takahashi.eliotis.com/etude-em10-takahashi/index.html

Mesures de l'électronique de l'em-10 USD
Je reviendrais dans un prochain billet sur le câblage mais première chose importante constatée: les moteurs 1Volt / 2 Ohms sont en fait alimentés en… 12 volts!!!

Voilà qui explique sans doute la phrase d’avertissement dans la documentation d’origine de Takahashi. Je cite:
« Attention: une sollicitation prolongée (plus d’une minute en continu) des déplacements en vitesse rapide 50 X peut endommager le circuit électronique de votre monture. »
Deuxième mesure intéressante, la période des impulsions en vitesse sidérale au niveau d’une bobine du moteur unipolaire en AD est de 6,244Hz.
Le calcul suivant nous permet de déterminer l’erreur résiduelle:
// Mesures
FrequenceBobine = 6,244 Hz
FrequencePas = FrequenceBobine × 4 = 24,976 Hz
// Caractéristiques moteur
NombreDePasMoteur = 24 pas
Demultiplication = 1/500 = 0,002
VitesseMoteur = 60 × FrequencePas / NombreDePasMoteur × Demultiplication = 0,12488 tr/min
// Engrenages intermédiaires
NombreDeDentsEngrenageMoteur = 36 dents
NombreDeDentsEngrenageVisSansFin = 45 dents
DémultiplicaitionEngrenages = NombreDeDentsEngrenageMoteur/NombreDeDentsEngrenageVisSansFin = 0,8
// Vis sans fin
VitesseVisSansFin = VitesseMoteur × DémultiplicaitionEngrenages = 0,099904 tr/min
NombreDeDentsRouteDentéeAD = 144 dents
// Vitesse sidérale monture
PeridodeVitesseSideraleMonture = NombreDeDentsRouteDentéeAD/VitesseVisSansFin = 1 441,38 min
// Vitesse sidérale parfaite : 23h56m04s
PeriodeVitesseSideraleParfaite = 23*60+56 + 4/60 = 1 436,07 min
// Erreur (ratio théorie/pratique)
(1-PeridodeVitesseSideraleMonture/PeriodeVitesseSideraleParfaite) × 100 = -0,37%
A noter que si l'on prend une « vitesse sidérale parfaite » arrondie à 24h, l’erreur résiduelle tombe à -0,096%. Il est donc probable que les ingénieurs de Takahashi se soient simplifiés la tâche à l’époque.