Auteur Sujet: Animations réseau  (Lu 15009 fois)

PhB22

  • Invité
Animations réseau
« le: octobre 30, 2016, 08:49:31 am »
Ce titre pour ne pas employer des mots du dimanche.

Sur le réseau il y a, pour l’instant, six animations :
-   un classique soudeur,
-    un photographe Preiser avec son flash,
-    un camion de chantier qui a sa benne qui se lève et s’abaisse,
-   une pelleteuse qui creuse, qui creuse…,
-   une toupie à béton qui tourne, qui tourne…
-   un hélicoptère dont l’hélice tourne à vitesse réduite puis à pleine vitesse  et  « lycée de Versailles » (automatique par minuterie).

Sauf  l’hélico, la pelleteuse et la toupie qui tournent en permanence, le reste est activé régulièrement avec un montage sur la base d’un  4017 (compteur décimal).
Quelques photos de ces animations en place.

PhB22

  • Invité
Re : Animations réseau
« Réponse #1 le: octobre 30, 2016, 08:51:55 am »
Je me suis dit que remplacer le système à  4017 (fixe au niveau des temps d’action) par un UNO ( qui me restait) serait certainement plus souple comme principe. On peut modifier l’ordre des animations, gérer le temps de fonctionnement de chacun et faire démarrer doucement l’hélice de l’hélico de 0 à sa vitesse max puis revenir à 0.

C’est donc un montage sans prétention que je vous montre aujourd’hui. Il s’agit d’une simple succession de « ON-OFF » mis en langage Arduino.

Le moteur qui entraîne l’hélice est commandé par PWM via un transistor TIP120 car son sens de rotation ne varie pas, le reste est isolé et commandé par une barrette de relais (qui me restait aussi). Pour chaque état de fonctionnement une LED s’allume.

Sur 3 cycles, la pelleteuse ne fonctionne que sur 2. Idem pour la toupie de béton mais avec un décalage d’un cycle par rapport à la pelleteuse. C’est pour cela que du « loop » on passe directement à la deuxième séquence, celle de la pelleteuse ; par la suite on boucle sue la première séquence, celle de la toupie. On a donc toujours un décalage d’un cycle entre ces deux animations.

Le tableau des séquences et  l’algorithme.

PhB22

  • Invité
Re : Animations réseau
« Réponse #2 le: octobre 30, 2016, 08:52:47 am »
Bref un montage sans prétention, rien que pour s’amuser et remplacer de l’électronique basique (base de temps + compteur+ interface de puissance). Mais ça fait du bien de faire des choses simples de temps en temps.
« Modifié: octobre 30, 2016, 09:06:12 am par PhB22560 »

Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 748
    • Voir le profil
Re : Animations réseau
« Réponse #3 le: octobre 30, 2016, 10:01:24 am »
Très sympa les animations. Je me demande juste si un peu d'aléatoire (http://www.locoduino.org/spip.php?article56) dans tout ça ne t'aurais pas évité de devoir faire des tableaux...

PhB22

  • Invité
Re : Animations réseau
« Réponse #4 le: octobre 30, 2016, 10:17:56 am »
Merci Pour l'appréciation.
C'est vrai qu'avec la fonction "random" on peut faire du pseudo-aléatoire.
Mais l'important c'est que les gens pensent que c'est de l'aléatoire alors que, quoique l'on fasse, c'est cyclique.
Mais je voulais surtout découvrir la commande PWM.
Une bonne excuse  :)

PhB22

  • Invité
Re : Re : Animations réseau
« Réponse #5 le: octobre 30, 2016, 11:31:12 am »
Je me demande juste si un peu d'aléatoire
Effectivement, en y réfléchissant, comme j'ai des détecteurs sur le réseau, rien n'empêche d'arrêter le déroulement du sketch et attendre qu'un train passe dans une autre zone du réseau pour le continuer ce sketch.

PhB22

  • Invité
Re : Animations réseau
« Réponse #6 le: novembre 27, 2016, 12:10:04 pm »
Bonjour à tous,
De quoi s'agit-il?
Dans mes animations il y a un hélicoptère dont les pales sont entraînées par un moteur continu. En utilisant le PWM on fait accélérer au démarrage puis dans une séquence suivante on fait retomber la vitesse à 0.

Hier j'ai installé tout cela et observé que c'était un peu raide tant dans l'accélération que dans le ralentissement du moteur même en modifiant le "delay" pour les "analogicWrite". Bref un peu trop linéaire.
Peut-on faire varier le "delay" en plaçant par exemple une variable à la place d'une valeur fixe en ms dans "delay" et obtenir un courbe de vitesse plus arrondie, plus parabolique?

Comme je n'ai rien trouvé sur le net alors ce matin : essais et... ça fonctionne. :) Pour les essais c'est une LED qui clignote.
A l'aide d'une variable v j'ai mis "delay (v = v +10)" pour l'accélération et "delay (v= v-5)" pour le ralentissent/freinage

Peut être que cela pourra servir à d'autres qui se posent la même question ou alors j'ai réinventé l'eau tiède  :)

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2902
  • 100% Arduino et N
    • Voir le profil
Re : Animations réseau
« Réponse #7 le: novembre 28, 2016, 03:30:13 pm »
Oui c'est tout à fait possible et, la preuve, ça marche.

J'ai réalisé un système similaire dans mon va et vient en jouant sur des incréments et décréments de vitesse pour les accélérations et ralentissement: par exemple le décrément est calculé en fonction de la vitesse initiale et de la distance à parcourir, avec un asservissement pour corriger les écarts.

Plutôt que d'agir sur des delay(), ce qui empêcherait le "multi-tâche", j'utilise une action périodique en testant millis() pour chaque tâche qui a son propre compteur de temps.
Cordialement,
Dominique

PhB22

  • Invité
Re : Animations réseau
« Réponse #8 le: novembre 28, 2016, 07:14:35 pm »
Bonjour Dominique,
Tester le milis est encore inconnu pour moi.  :(
Mais au fur et à mesure et surtout en fonction des besoins on découvre  :)
Preuve en est que cette famille Arduino réserve beaucoup de surprises et possède un sacré potentiel.

Le nouveau fichier est joint car tout est validé et fonctionne sur le réseau.
Pour le PWM je ne commence pas à vitesse v= 0 car suivant le type de moteur cela démarreau valeurs 30 ou 40 et de 0 à 30, on a un sifflement due à la fréquence du PWM.
Idem pour la valeur max ; au lieu d'aller jusque 255, je m'arrête à 200. Non, non, l'hélicoptère ne décolle pas après  :). C'est plus l'impression que ça dégage qui guide la mise au point.

Pour les flash du photographe, par exemple, j'en ai remis une couche car cette animation n'était pas très "repérable"
Au fait pour ce flash, pas besoin d'1 kg d'électronique : un condensateur et 3 résistances plus la micro-led. 8) 8)

Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 748
    • Voir le profil
Re : Animations réseau
« Réponse #9 le: novembre 28, 2016, 08:47:31 pm »
Pour le sifflement en PWM, il faut peut être en changer la fréquence. Un article de Dominique, Jean-Luc et Guillaume parle de ça, mais il n'est pas encore publié... Voici l'extrait qui va bien :
Comment augmenter cette fréquence ?



Citer
On utilise simplement une fonction setPwmFrequency(broche PWM, diviseur) dont l’appel est à placer dans le setup.

void setPwmFrequency(int pin, int divisor) {
  byte mode;
  if(pin == 5 || pin == 6 || pin == 9 || pin == 10) {
    switch(divisor) {
      case 1: mode = 0x01; break;
      case 8: mode = 0x02; break;
      case 64: mode = 0x03; break;
      case 256: mode = 0x04; break;
      case 1024: mode = 0x05; break;
      default: return;
    }
    if(pin == 5 || pin == 6) {
      TCCR0B = TCCR0B & 0b11111000 | mode;
    } else {
      TCCR1B = TCCR1B & 0b11111000 | mode;
    }
  } else if(pin == 3 || pin == 11) {
    switch(divisor) {
      case 1: mode = 0x01; break;
      case 8: mode = 0x02; break;
      case 32: mode = 0x03; break;
      case 64: mode = 0x04; break;
      case 128: mode = 0x05; break;
      case 256: mode = 0x06; break;
      case 1024: mode = 0x7; break;
      default: return;
    }
    TCCR2B = TCCR2B & 0b11111000 | mode;
  }
}
Lorsque l’on souhaite régler cette fréquence, deux choses sont à connaître pour un Arduino UNO (et sans doute aussi pour l’Arduino Mini) :

les fréquence les plus hautes pour les broches 3, 9, 10 et 11 sont de 31250 Hz et pour les broches 5 and 6 : 62500 Hz.
les diviseurs possibles sur les broches 5, 6, 9 and 10 sont 1, 8, 64, 256 et 1024 et sur les broches 3 and 11 : 1, 8, 32, 64, 128, 256 et 1024.
D’autre part, ces broches vont par paire. Il y a donc 3 paires : 5 et 6, 9 et 10 ainsi que 3 et 11 (correspondant aux timers). Changer sur l’une des broches changera les deux !

Attention, pour un autre modèle d'Arduino que le Uno, les broches et les registres changent !

PhB22

  • Invité
Re : Animations réseau
« Réponse #10 le: novembre 28, 2016, 11:30:34 pm »
Bonsoir Thierry,
Merci pour cette explication.
Je vais mettre cela en mémoire car en ce moment je fait un peu de décor sur mon réseau.
Cordialement
Philippe

PhB22

  • Invité
Re : Animations réseau
« Réponse #11 le: novembre 29, 2016, 02:13:41 pm »
Une tit' photo de l'ensemble dans son boitier.
Les fils qui pendent alimenteront les LEDs de repérage.
En attente des faces avant en cours de réalisation.
La plaquette de gauche est un va et vient en courant pulsé ; ça va disparaître au profit du numérique (deux BM1).

PhB22

  • Invité
Re : Animations réseau
« Réponse #12 le: décembre 13, 2016, 06:35:13 pm »
Et c'est en boite  :) :)

C'est avec beaucoup d'intérêts que je suis la partie "module sonore" car il faudrait que je lie les animations à des fichiers son.

Par exemple lorsque les pales de l'hélicoptère commencent à tourner, j'aimerais "lancer" le fichier son qui va bien (trouvé sur internet). On a la turbine qui se lance puis le flap-flap des pales qui s'amplifie.

Je fais des essais dès réception de la carte SD

CATPLUS

  • Sr. Member
  • ****
  • Messages: 408
    • Voir le profil
Re : Animations réseau
« Réponse #13 le: décembre 13, 2016, 08:11:18 pm »
Bonsoir
Le montage de Dominique ou le mien se prête totalement à ta demande
Je vais suivre avec intention ton post
Cordialement
Best Regards