Commande moteur suivant position angulaire

Bonjour à tous,
je débute sur Arduino, j'ai pour le moment réalisé quelques projets basiques pour me roder un peu.
Je souhaiterais maintenant réaliser un montage en particulier.

L'idée est de commander un petit moteur CC en fonction de la position angulaire de l'objet dans lequel le dispositif est embarqué (un cylindre de la taille d'une boite de balle de tennis).
J'aurais besoin de votre aide pour savoir si un tel dispositif est faisable via arduino, et si oui, quels composants sont nécessaires. En dehors du moteur CC, de la carte Arduino UNO, j'aurais surement besoin d'un gyroscope pour mesurer la position angulaire, et peut être d'un motor shield ?

Merci d'avance pour votre aide
Bonne journée

Je présume qu'il s'agit de commander la vitesse de rotation, dans ce cas le moteur se commande en PWM (largeur d'impulsion variable).

La position angulaire peut se mesurer avec un potentiomètre si elle reste comprise entre 0 à 270° environ, sinon avec un encodeur continu pour des tours complets.

Caractéristiques du moteur ?
Des contraintes sur la vitesse de réaction de l'asservissement ?

Bonjour Tamrielson,

Beaucoup de choses sont réalisables.
Avec un objectif clairement exposé.

Tamrielson:
L'idée est de commander un petit moteur CC en fonction de la position angulaire de l'objet dans lequel le dispositif est embarqué (un cylindre de la taille d'une boite de balle de tennis).

J'avoue que j'ai du mal à appréhender la fonction que vous souhaitez réaliser. (la position angulaire de l'objet dans lequel le dispositif est embarqué)

Quel genre d'objet ?
Position angulaire par rapport à quoi?
Quelle genre de commande au moteur?

En dehors du moteur CC, ..., j'aurais surement besoin d'un gyroscope pour mesurer la position angulaire, et peut être d'un motor shield ?

De quel genre de moteur avez vous besoin ( puissance , rotation continue , commande position angulaire , retour de position , ...) ?

Comment (et/ou pourquoi) envisagez vous l'utilisation d'un gyroscope ? Quelles mesures ?

Serait-ce pour un hélicoptère?

Cordialement,
bidouilleelec

Merci de vos réponses, je vais essayer de vous répondre à vous deux le plus clairement possible.

Tout d'abord, le dispositif :

Dans une boite de balles de tennis (cylindre de hauteur 30cm, diamètre 8cm), je voudrais placer le moteur, commandé par une carte Arduino. L'axe du moteur serait solidaire d'une vis qu'il entraînerait en rotation, l'objectif étant de réaliser un système vis écrou (un écrou translate le long de la vis lorsque celle ci tourne).
L'écrou serait relativement massif (l'idéal serait 500g mais peut être est ce trop pour la capacité d'un moteur commandé par Arduino), de sorte que son déplacement ait une influence significative sur la position du centre de gravité de l'ensemble.
Pourquoi ? Pour le rééquilibrer. D'où le besoin d'un capteur de position angulaire.
Par exemple, si je pose un cylindre en son centre sur une barre, il ne tombera pas puisque le centre de gravité est justement en son centre, maintenant, si je déplace légèrement le cylindre, il basculera, c'est la qu'intervient mon dispositif, je voudrais que la position angulaire du cylindre permette de commander le moteur, de sorte à déplacer l'écrou, donc le centre de gravité, afin que le cylindre ne bascule pas.

Dans un second temps, l'objectif serait que si je lance le cylindre, le dispositif permette de le rééquilibrer en vol afin qu'il retombe droit. Je sais qu'on touche la à quelque chose de plus compliqué que ce que j'ai présenté précédemment, d'où le "second temps".

Voilà, j'ai détaillé afin d'être le plus compréhensible possible. Ce projet paraîtra sûrement farfelu..
Je me doute qu'il est compliqué en terme de code, puisqu'il fait intervenir des lois physique, mais c'est pour l'aspect matériel que j'ai besoin de vous.
Est ce qu'il est possible avec Arduino, de réaliser un dispositif qui permettrait de commander un moteur en fonction de la position angulaire de l'ensemble, telle que je l'ai définie précédemment. Si je dois abaisser mes attentes (par exemple rester sur le projet du "premier temps" et abandonné celui du "second temps"), pas de problèmes. Pour ce qui est du moteur, j'en ai un basique compris dans le kit arduino uno, mais je peux m'adapter (dans la limite du raisonnable).

J'espère avoir répondu à vos questions, sinon n'hésitez pas, j'ai bien conscience d'en demander beaucoup

C'est très différent de ce que j'imaginais.
Là, c'est une sorte de stabilisateur (chercher "gimbal" sur le web)

Bonjour,

L'arduino ne permet pas de commnder directement un moteur electriques CC ou pas pas à pas, il faut obligatoirement passer par une interface de puissance, le plus classique est :

  • moteur shield (pont en H) pour moteur Courant Continu
  • controleur type A4988 pour moteur pas à pas.

Par la suite il faut choisir (dimensionner) le moteur shiel ou controleur en fonction de la puissance du moteur.

Pour déterminer la position angulaire du moteur ou de vis du système vis écrou, il faut utiliser un codeur rotatif qui est souvent implanter avec le moteur.

Le moteur shield de base :

Moteur pas à pas avec controleur :

Moteur CC avec son codeur :


Voila
@+

hameau:
Pour déterminer la position angulaire du moteur ou de vis du système vis écrou, il faut utiliser un codeur rotatif qui est souvent implanter avec le moteur.

Qu'on soit bien d'accord, c'est la position angulaire du cylindre, le dispositif entier qui m'intéresse, pas la position angulaire de l'arbre moteur par rapport à son axe. Ce dont vous me parlez, le codeur rotatif, c'est seulement pour obtenir la position angulaire de l'arbre non ?

Merci en tout cas, il me semblait bien que j'aurais besoin d'un motor shield. Auriez vous un site à conseiller pour faire ces achats (moteur et motor shield) ? Sur le site d'arduino, les articles qui m'intéressent sont en rupture de stock ..

Christian_R:
C'est très différent de ce que j'imaginais.
Là, c'est une sorte de stabilisateur (chercher "gimbal" sur le web)

Oui l'idée est là, un stabilisateur, seulement je m'intéresse personnellement au déplacement du centre de gravité. Dans le cas du gimbal, la caméra est directement redressée par des moteurs il me semble.
Vous pensez donc que c'est faisable ? En terme matériel

Bonjour,

Pour le moteur shield, ca se trouve facilement sur le Net, Amazon, ou chez les vendeurs Chinois.

https://www.ebay.fr/i/263395998294?chn=ps&dispItem=1

Pour la position angulaire du cylindre, il installer sur celui-ci un codeur incremental .

Concernant le choix du moteur, la cela depend de la charge à deplacer , de la vitesse de celle-ci, etc..., aprés voir site conrad, RS,...

Voila

Pour la position angulaire du cylindre, il installer sur celui-ci un codeur incremental .

Je crois que Tamrielson cherche plutôt quelque chose ressemblant à un gyroscope.

hbachetti:
Je crois que Tamrielson cherche plutôt quelque chose ressemblant à un gyroscope.

Exactement, j'ai pas du être suffisamment clair la dessus.
C'est en fait la principale raison de ce sujet, je ne sais pas si ce que je cherche (sorte de gyroscope) se trouve/est faisable avec Arduino. Alors si quelqu'un a une idée la dessus !

hameau:
Bonjour,

Pour le moteur shield, ca se trouve facilement sur le Net, Amazon, ou chez les vendeurs Chinois.

https://www.ebay.fr/i/263395998294?chn=ps&dispItem=1

Ok merci je vais regarder ça. J'en avais trouvé quelques uns mais c'est compliqué de savoir parfois si c'est du bon matériel.

hameau:
Bonjour,

Pour la position angulaire du cylindre, il installer sur celui-ci un codeur incremental .
https://fr.rs-online.com/web/p/codeurs-rotatifs/7140237/

Comme le dit hbachetti, un codeur incrémental permet de déterminer la position angulaire de l'arbre d'un moteur non ? Ce que je cherche moi, c'est déterminer la position angulaire de tout mon dispositif. Est ce possible avec un codeur incrémental ?

Merci à tous pour votre aide en tout cas

C'est clair qu'un codeur incrémental devrait être fixé sur un support fixe dans l'espace. Or si ton engin envisage de voler, c'est plutôt difficile.

Gyroscope accéléromètre : MPU6050

Le gyro détermine une vitesse de rotation, pas une position angulaire absolue, donc il doit être référencé avant de tourner par rapport un axe fixe pour déterminer une horizontale.

Oui, tout à fait. Il faut bien lui donner une horizontalité de référence.

D'accord. Donc si je veux la vitesse de rotation de mon cylindre sur lui même, c'est à dire autour d'un axe qui passe par son centre, je lui donne celui ci comme référence et le tour est joué ?

On trouve beaucoup de littérature à ce sujet.
L'idéal est de se documenter auprès de gens qui développent des drones.

@+

Ok, merci pour tout.
Je sens que je vais avoir beaucoup de boulot de documentation si je veux m'en sortir :slight_smile: