Mala

Projet EM10 USD Arduino

Messages recommandés

quote:
Peut être un problème de consommateurs…

Pas compris l'allusion. Quel est le prix d'un moteur pas à pas de qualité à encombrement réduit (43x43x30) chez Crouzet? Je ne vois aucun tarif public.

Denis, pas de problème pour polluer un peu avec une belle bête comme ça! Beau boulot!

Et bien sinon, ça y est! Mes moteurs prennent vie avec le proto partie puissance.

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…

Je vais maintenant pouvoir attaquer les choses sérieuses avec les moteurs. Je pense que dans l'immédiat je vais faire une platine de fixation pour monter le proto de puissance et un Arduino sur la monture afin de pouvoir développer en "live".

Partager ce message


Lien à poster
Partager sur d’autres sites
Je viens de terminer la documentation du réglage des driver A4988...
Réglage de drivers A4988 StepStick

Je vous recopie l'article ici...

Chose embêtante dans mon cas, la très faible résistance ohmique des moteurs (2 ohm par bobine) rend impossible la mesure d’intensité en série sur une bobine avec mon ampèremètre. Je dois donc me contenter de la consommation indiquée par l’alimentation stabilisée et par les formules de calcul d’Imax en fonction de Vref disponibles sur reprap.org… 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 = sqrt( (I bobine1)^2 + (I bobine2)^2 )

Comme l’intensité est la même dans les deux bobines:
Imax = sqrt( (I bobine)^2 + (I bobine)^2 )
Imax = sqrt( 2*(I bobine)^2 )
Imax = sqrt2 * 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 (à voir à l'usage) 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.

A suivre: phase d'accélération des moteurs.

PS: merci au passage à olivdeso pour ses explications bien détaillées sur le câblage d'un unipolaire en bipolaire dans cet ancien post … http://www.astrosurf.com/ubb/Forum2/HTML/042793.html

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

Partager ce message


Lien à poster
Partager sur d’autres sites
Dans la continuité du projet, j'avais bien envie de m'essayer à la méthode de DBlatte présentée sur ce post pour évaluer la précision de ses moteurs… http://www.astrosurf.com/ubb/Forum2/HTML/042879.html

J'utilise une mire, réalisée en impression 3D, qui vient se fixer sur l'engrange en sortie moteur…

Le moteur est mis en marche posé sur la bibliothèque du salon…

En face, dans l'axe, mon reflex en mode vidéo RAW Magic Lantern…

Et voici l'ébauche de mon analyseur logiciel de précision de moteur pas à pas…

J’ai travaillé aujourd’hui sur le suivi des « étoiles noires «. - Ouha!!! Ca claque dit comme ça!!! - Le voici en action en vidéo… http://www.youtube.com/watch?v=jod4ZFGSK_k

Il reste à extrapoler les données pour déterminer la vitesse de rotation à un instant t. J'aurais aussi besoin à terme d'un trépied plus stable et d'un éclairage plus puissant et homogène mais dans l'immédiat c'est déjà pas mal pour un premier jet.

La suite dans un prochain épisode. Je vais faire dormir un peu les neurones pour ce soir.
Seb.

Partager ce message


Lien à poster
Partager sur d’autres sites
Les premiers chiffres de l’analyseur commencent à tomber et c’est plutôt très encourageant sur les premiers jeux de test avec l’électronique USD d’origine en vitesse sidérale. Sur une échantillonnage de 10 minutes à 30 img/s, les estimations de l’algorithme sont:
- 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.
Carton plein pour le coup. Cela fonctionne très bien!

Et voici la sous période d'1,28min qui apparait après lissage de la vitesse instantanée…

Partager ce message


Lien à poster
Partager sur d’autres sites
A force de persévérance et d’optimisations, mon analyseur de précision de moteur pas à pas dépasse maintenant largement mes espérances. 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 dans mon post au dessus) 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 très légèrement 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'en extraire 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.

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 l'immédiat je vais essayer de pousser le bouchon pour voir si on peut faire une analyse avec la mire directement en sortie d'axe d'ascension droite. Ce serait le top de pouvoir mesurer l'erreur périodique d'une monture à la maison! Mais je suis réservé car on ajoute un facteur de démultiplication de 180x. On va logiquement se retrouver dans le bruit de lecture.

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

Partager ce message


Lien à poster
Partager sur d’autres sites
belle manipe! Miam!! merci de nous les faire partager

Partager ce message


Lien à poster
Partager sur d’autres sites
" Ce serait le top de pouvoir mesurer l'erreur périodique d'une monture à la maison! Mais je suis réservé car on ajoute un facteur de démultiplication de 180x. On va logiquement se retrouver dans le bruit de lecture."

Tu devras faire une vidéo 180 fois plus longue pour enregistrer un tour complet, c'est cela?
Je comprends pas trop cette histoire de bruit de lecture?? je ne comprends pas sur quelles difficultés tu vas tomber??


Partager ce message


Lien à poster
Partager sur d’autres sites
Faire une vidéo 180x plus longue n'aurait pas grand sens. Là le but ce n'est pas d'avoir un tour complet de l'axe d'ascension droite. Ce que l'on veut c'est un ou deux tours de vis sans fin (10 min par tour) pour matérialiser l'erreur périodique sur les changements de dents entre la vis sans fin et la roue dentée d'AD…

Pourquoi est-ce que je parle d'un facteur de 180x? Et bien dans mon cas de l'EM-10, entre la sortie moteur et la vis sans, j'ai deux engrenages qui apportent une démultiplication de 0,8x (36 dents / 45 dents) et la vis sans fin avec la roue dentée et ses 144 dents. Au final, la démultiplication supplémentaire est donc de 144/0,8=180x. En d'autre termes, lorsque l'axe du moteur parcourt 0,75°/s (vitesse solaire -plus pratique pour les arrondis-), l'axe d'ascension droite se déplace à 0,75/180 = 15"/s.

Pour essayer d'améliorer les choses, je code une nouvel algorithme travaillant sur un jeu de test plus rapproché en macro avec uniquement la mire centrale et une mire externe. Mais même là cela ne fait pas lourd à exploiter. A peine 54 pixels de parcourt…

>>>>full ici<<<<
Ce qui nous intéresse pour visualiser l'erreur c'est l'évolution de position entre deux secondes. En considérant une vitesse parfaitement linéaire cela nous fait grosso modo un déplacement de 54/(60*10)=0,09pixel/s. On est très proche du bruit de 0,05 pixel estimé dans mon précédant post. Ce qui complique considérablement la tâche. L'usage de 4 mires externes avait aussi un gros intérêt. En les moyennant, on améliorait non seulement la précision mais aussi leur positionnement annulait quasi parfaitement les erreurs d'alignement entre l'axe optique de l'APN et le centre de la mire. Là ce n'est plus possible avec uniquement deux points. Bref tout devient plus compliqué sur l'axe d'AD.

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

Partager ce message


Lien à poster
Partager sur d’autres sites
tu peux augmenter le déplacement de tes points en augmentant le rayon de ta mire. Reste à pouvoir realiser le truc. Ou alors monter une laser bien focalisé et projeter sur un mur loin avec une règle à coté pour l'échelle et une petite équation pour corriger le mur qui va être plan et pas cylindrique (vu sur le net l'idée du laser).
bonne manip
Christophe

Partager ce message


Lien à poster
Partager sur d’autres sites
Si on augmente le rayon, on doit s'écarter d'avantage pour rentrer dans le champ donc on revient au point de départ. On est contraint par la résolution et le champ du capteur.

Idéalement, j'aimerais pouvoir me passer de la mire centrale pour grossir encore plus mais au niveau algo elle permet de bien dégrossir les statistiques pour le calcul du rayon du cercle du trajet du repère extérieur.

J'avais aussi pensé au laser en cas mais bon. La mesure d'EP en A.D cela reste la cerise sur le gâteau par rapport à mon objectif de départ. C'est juste que j'aime creuser.

Partager ce message


Lien à poster
Partager sur d’autres sites
tu parles de champ pour garder ton point central dans l'image? mais pour l'AD, même si tu n'ai pas très précis sur le rayon l'important c'est la régularité de l'écartement de tes points externes qui devraient rester assez groupés sur le mur pendant 2 périodes, non? en tout cas c'est sympa tes manips!

Partager ce message


Lien à poster
Partager sur d’autres sites
Si on parle de la projection d'un laser sur un mur oui. Dans le cas de la mire, la trajectoire est un morceau de cercle qu'i faut corriger. Le gros avantage de la mire si cela fonctionne c'est qu'on travaille directement en vitesse angulaire.

En parallèle, je continue à avancer sur le proto. Et voici le premier support 3D pour les développements…

Ce montage est temporaire le temps des développements sur les moteurs avec pour l'instant juste un Uno monté en direct. J'ai prévu de pouvoir le remplacer par un Mega à loisir d'où le support un peu plus grand. La version définitive devrait elle être beaucoup plus compacte côté monture car le Arduino Méga final est prévu pour être installé dans la télécommande.

Partager ce message


Lien à poster
Partager sur d’autres sites
si j'ai tout compris , tu veux obtenir une rotation de la vSF sans erreur périodique du tout? ton électro encéphalogramme plat
Mais quid de l'erreur périodique du couple VSF roue AD?
Sur ma monture 1µm de faux rond de la vis entraine +/- 1 " d'arc d'erreur sur la roue... Ce n'est pas beaucoup mais quand même.

Pourquoi ne pas avoir cherché à piloter la VSF en direct drive en virant tous les pignons?
C'est ce qui est en cours sur la monture que je possède.

Partager ce message


Lien à poster
Partager sur d’autres sites
En fait mon idée est simplement de coder un PEC recoupant les fréquences théoriques des engrenages avec la réalité des mesures (et à première vue ça marche très bien). J'espère ainsi avoir un PEC précis nécessitant peu de puissance de calcul (vu qu'il saura où chercher). La vis sans fin et la roue d'AD ne sont qu'un paramètre de plus qui est connu (15000 pas par tour de vis sans fin et 144 dents pour la roue dentée). L'algorithme se concentrera donc sur les calculs de déphasage et d'amplitude des différentes périodes.

Piloter la vis sans fin en prise directe (attention au terme "direct drive" c'est encore une autre approche) ne résout en rien l'EP entre la roue dentée et la vis sans fin. On simplifie juste la chaine mais cela doit se faire au prix d'un moteur pas à pas très précis. C'est ce qu'étudiait DBlate dans son sujet qui m'a inspiré ma manip. Dans mon cas, cela nécessiterait de revoir la partie mécanique en défigurant la monture avec des moteurs externes. Cela n'est pas le but recherché.

Partager ce message


Lien à poster
Partager sur d’autres sites
Dernière nouveauté du prototype qui devrait plaire aux retrogamers: adaptation d'une manette Sega Megadrive pour le pilotage…

J'en ai profité pour en faire une librairie Arduino dispo sur mon github. Plus d'infos ici…

http://em10-usd-arduino-takahashi.eliotis.com/librairies-arduino/genesisgamepad/inde x.html

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

Partager ce message


Lien à poster
Partager sur d’autres sites
Bien compris !
Oui direct drive ou entrainement direct DE LA VSF et non de l'axe AD.

En final, tu auras une rotation parfaite de la VSF et c'est déjà très bien...

Oui, la monture : G11 que je possède a déjà ses moteurs à l'extérieur...

Partager ce message


Lien à poster
Partager sur d’autres sites
Passage au Arduino Mega avec écran tactile…

Encore quelques détails à régler/fixer/souder et la monture pourra attraper ses premiers photons.

Partager ce message


Lien à poster
Partager sur d’autres sites
wouha c'est tout joli mignon avec le tite écran! bravo!

Partager ce message


Lien à poster
Partager sur d’autres sites
Merci les gars!

Yves, dans l'immédiat j'ai prévu de me contenter de le passer en affichage rouge sur fond noir. A terme, si je le valide, je verrais pour essayer de piloter le rétro éclairage avec un fonctionnement du genre appui sur le bouton Start pour allumer/éteindre l'écran.

Bon sinon ça y est. Le bébé est prêt pour le baptême dès que le temps météo et perso le permettront.

Tout a été correctement fixé pour supporter un transport et l'alimentation du Arduino est maintenant repiqué en interne sur le 5v du régulateur de la carte de puissance...

J'en ai profité pour couper l'alimentation USB du Arduino (coupure au cutter du lien vers le polyfuse sur le circuit imprimé) et installer un bouton marche/arrêt pour l'ensemble…

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

Partager ce message


Lien à poster
Partager sur d’autres sites
Début de maquettage de l'interface graphique avec un nouvelle écran TFT offrant un peu plus de pixels (240x400) et une meilleur qualité d'image…

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant