Aide général pour un projet artistique.

Bonjour,

Pour un projet artistique, j’aimerai pouvoir controler 5 ou 7 moteurs dans les deux sens a des vitesses lentes afin qu’on puisse voir à l’oeil nu (de 0 à 3 tours/seconde) le dephasage de ces moteurs auxquelles j’aurais fixer une sorte d’helice à deux pales.

J’entends par controler : assigner une vitesse egale et constante à chacun d’entre eux ainsi qu’une force de couple et pouvoir interagir sur leur vitesse et la force de leur couple en fonction du frottement, blocage et même inversement du sens d’un ou plusieurs moteurs en même temps.

Precisement j’aimerais voir ce genre de comportement quand on manipule les pales :

  • qu’ un leger frottement sur une pale puisse baisser la vitesse du moteur respectif et augmenter « proportionnellement » sa force de couple
  • qu’un frottement fort ou le blocage d’une pale soit comparé à une valeur critique afin que le moteur s’arrête et tourne dans l’autre sens (une fois cette valeur critique est atteinte)
  • que l’inversion du sens du moteur fasse ralentir (comme un léger frottement si cette inversion est rapide), bloque ou inverse le sens du moteur en fonction de la valeur critique atteinte

Le but etant de voir le comportement général de ces moteurs selon une equation mathématique suivant un modele de physique proche d’une chaine de 5 ou 7 oscillateurs où chaque oscillateur aurait des masses donc des forces différentes.

Voici une animation sur une chaine de 3 oscillateurs où on peut changer le rapport entre les masses (qui seront mes forces de couple) http://ressources.univ-lemans.fr/AccesLibre/UM/Pedago/physique/02/meca/couplage3.html

Il se peut qu’a l’inverse si je bloque un moteur, il faille baisser la force du moteur, mais c'est juste de la programmation.

Merci pour toutes vos idées sur le choix des moteurs, leurs contrôleurs et les differents capteurs possibles ainsi que le choix sur une ou plusieurs alimentations.

Je sais déjà comment faire tourner un moteur dans les deux sens avec un L298N et a vitesse constante grâce l'algorithme de PID. Mais pourquoi pas utiliser des moteurs pas à pas ou des servomoteurs à revolution avec des capteurs de couples?

Généralement on ne pilote pas le couple - c'est une donnée qui dépend du type de moteur et de l'alimentation que vous lui fournissez

Si vous avez un composant qui permet de mesurer le courant consommé (quand vous bloquez un moteur il va quand même essayer de tourner et donc essayer de tirer plus de courant) et si vous pouvez le réguler par commande numérique alors vous pourrez indirectement piloter le couple sans doute (j'ai jamais essayé).

La plupart des driver de stepper ont une gestion de courant max mais souvent ça se limite à un petit potentiomètre qu'on tourne à la main.

Vous pourriez regarder du côté d'un MP6500 Stepper Motor Driver qui offre un contrôle numérique du courant max, en utilisant un paramètre sur 2 pins et donc avec une granularité de 4 possibilités entre 500mA et 2A mais si vous balancez un signal en PWM sur les 2 pins, vous avez plus de contrôle

Différence de comportement entre moteurs classiques et moteurs pas à pas.

Positionnement :

Classiques Pas à pas
Il faut un retour d’information pour assurer
un positionnement exact.
Il faut éviter de les bloquer.
Tant que la charge n’excède pas le couple de maintient
le positionnement est connu en comptant le nombre de pas.

Si la charge excède les capacités du moteur il y aura décrochage
et glissement de pas, la position sera “approximative”.
C’est le risque avec des moteurs pas à pas mal dimensionnés.

Couple :

Classiques Pas à pas
Le couple maximum du moteur est souvent atteint
à la vitesse nominale.

Ajouter un réducteur en sortie de moteur
multiplie le couple dans le rapport de réduction.
Il faut distinguer deux cas :
Le couple avec les bobinages alimentés en
permanence, et le cas avec les bobinages
non alimentés.
Le couple bobinage non alimenté est très faible,
c’est seulement la force exercée par les aimants
permanents, à réserver pour des charges “légères”.

Type de moteurs pas à pas

Modèle unipolaire Modèle bipolaires
Le courant parcoure les bobinages dans un seul sens
Un circuit de la série des ULNxxxx comme un
ULN2803 suffit pour les commander
(exemple à adapter au courant réel dans les bobinages)
Le courant dans les bobinages circule dans les deux sens.
Il faut commander chaque enroulement avec un pont en H

Pour plus de renseignements lire le tuto d’Eskimon.

On note quelques incohérences ou incompréhension du fonctionnement d'un moteur:

  • qu' un leger frottement sur une pale puisse baisser la vitesse du moteur respectif et augmenter « proportionnellement » sa force de couple

si un léger frottement ralenti un moteur c'est que son couple est relativement faible. Si tu augmentes son couple, cette augmentation du couple va permettre de vaincre (au moins partiellement) le frottement et donc le moteur va accélérer.

  • qu'un frottement fort ou le blocage d'une pale soit comparé à une valeur critique afin que le moteur s'arrête et tourne dans l'autre sens (une fois cette valeur critique est atteinte)

Pour piloter le couple d'un moteur on joue sur le courant. Donc tu peux imaginer mettre un seuil sur la mesure du courant.

  • que l'inversion du sens du moteur fasse ralentir (comme un léger frottement si cette inversion est rapide), bloque ou inverse le sens du moteur en fonction de la valeur critique atteinte

là, je comprends pas la question

fdufnews:

  • que l'inversion du sens du moteur fasse ralentir (comme un léger frottement si cette inversion est rapide), bloque ou inverse le sens du moteur en fonction de la valeur critique atteinte

là, je comprends pas la question

je pense que l'OP a en tête la notion d'inertie et qu'il se dit "si je tourne dans le sens + et que j'envoie une impulsion pour tourner dans le sens - qui n'est pas trop longue alors ça ralentit le moteur" mais bien sûr ce n'est pas comme cela que ça fonctionne....

@bvking --> il faudrait comprendre quel bricolage technique vous voulez faire et si vous parlez vraiment des moteurs ou si ces moteurs donnent en fait des petites impulsions dans un sens ou l'autre sur des solides reliés par des ressorts comme dans votre lien... mais je ne vois pas trop les hélices...

bref - un bon dessin serait bien...

Merci pour les réponses.

Pour l'instant, j'essaie de gérer le sens de rotation et la vitesse de rotation d'un moteur qui normalement va à vitesse constante dans un seul sens grâce à un algorithme PID. J'ai essayé des trucs pour que le moteur ralentisse ou accélère et même change de sens en freinant ou forçant la rotation et bloquant le moteur et ça fonctionne un peu.

Je joue avec les données de tension de sortie, de vitesse relle et vitesse à assigner

Si quelqu'un à un programme simple pour intégrer un compte à rebours dans une boucle if, afin que si le temps passé dans cette boucle est supérieur à 3 secondes et qu'un seuil est dépassé alors quelquechose devient quelquechose.

Merci

Je posterai mon programme plus tard dans un nouveau post.

Si quelqu'un à un programme simple pour intégrer un compte à rebours dans une boucle if, afin que si le temps passé dans cette boucle est supérieur à 3 secondes et qu'un seuil est dépassé alors quelquechose devient quelquechose.

euh.. if c'est pas une boucle, c'est un test... vous voulez dire un while ?

Quelque chose comme cela ?

  unsigned long topChrono = millis();
  boolean tempsEcoule = false;
  const unsigned long tempsMax = 3000ul; // Nb de millisecondes max dans cette boulce

  while (condition) { // définissez la condition que vous voulez et que "des trucs" vont modifier
    // on fait des trucs qui ne sont pas bloquants
    // .....

    // est-ce que notre temps imparti est écoulé?
    if (millis() - topChrono >= tempsMax) {
      tempsEcoule = true; // pour savoir qu'on force la sortie
      break; // force la sortie du while
    }
  }

  if (tempsEcoule) {
    // on est sorti par temps écoulé
  } else {
    // on est sorti tranquillement du while
  }

Merci, je garde précieusement ce code.

Pour l'instant, j'ai réussi à contrôler mon moteur en utilisant sa tension et je peux avoir ces comportements.

En le freinant (en bloquant à peine le moteur sa tension augmente), il baisse sa vitesse.

A vitesse basse, si je le freine il change de sens.

A l'inverse, en forçant le moteur (en accompagnant le sens de son mouvement la tension baisse), le moteur se fixe à une vitesse supérieur.

Tout ça en jouant avec les données d'un algorithme PID.

D'ailleurs j'ai une question ci-après:

Pour contrôler un moteur à vitesse à vitesse constante et précise , j'utilise un algorithme PID "tout fait" de DFrobot. J'ai ce moteur TT Motor with Encoder (6V 160RPM 120:1) et j'utilise l'algorithme mis sur leur site

https://www.dfrobot.com/wiki/index.php/Micro_DC_Motor_with_Encoder-SJ01_SKU:_FIT0450#Encoder_Sample_Code_1.

Ce moteur fait du bruit à vitesse lente et j'ai besoin qu'il tourne à 5 tours max par secondes.

Je pense donc acheter ce moteur

https://media.digikey.com/pdf/Data%20Sheets/DFRobot%20PDFs/FIT0481_Web.pdf

Mais j'aimerai savoir s'il y a un algorithme PID que DFRobot a fait, car apparemment c'est plutôt difficile de régler un algorithme PID soit même.

Est ce qu'il serait "facile" d'adapter l'algorithme du moteur FIT0450pour le moteur FIT0481???

Merci pour vos aides!!