Aller au contenu


Photo
- - - - -

Tête en ballons - servos - record des mouvements


44 réponses à ce sujet

#41 Sam Balloons

Sam Balloons

    Membre

  • Membres
  • 25 messages

Posté 12 octobre 2017 - 08:31

Bonjour Ulysse!

 

J'ai qq questions en rapport avec le programme...je m'excuse par avance si elles sont con-cons, mais je ne maîtrise pas du tout le sujet...j'aimerais essayer de comprendre un minimum...

 

- est-ce qu'il y a un endroit ds le programme où on eut choisir l'angle du servo? Si on veut entre 0 et 90° par exemple.

 

- Toute la partie avec "LED", c'était pour les tests avant ceux avec le servo lui-même?

 

- Cette partie?? : "myservo1.attach(pinServo1); // attaches the servo on pin 9 to the servo object

myservo1.write(150);"

 

d'où ma question l'autre jour si le servo devait être connecté au pin9.

 

J'en ai d'autres qui vont venir....mais j'y vais tranquillement :)



#42 Ulysse

Ulysse

    Membre passionné

  • Membres
  • PipPipPip
  • 486 messages
  • Gender:Not Telling

Posté 12 octobre 2017 - 11:13

Hello,

n’hésite jamais à poser des questions ! J'ai souvenir d'une époque où un gars qui maitrisait son sujet m'avait dit "posez-moi dix fois la même question si vous en avez besoin, vous ne m'embêterez jamais".  Moi je ne suis pas du tout expert en Arduino, ce n'est que le 3 ou 4ème programme que je réalise en prenant exemple sur du code pioché par-ci par -là. Il y a sur ce forum des makers très qualifiés qui peuvent prendre la suite haut la main.

 

 

Toute la partie avec "LED", c'était pour les tests avant ceux avec le servo lui-même?

 

Tout à fait. Mais ça veut dire aussi que tu pourrais allumer des leds (des yeux, des lumières...) pour ton projet en envoyant la commande qui va bien avec le séquenceur

Tu diras si tu en a besoin pour le show

 

 

 

est-ce qu'il y a un endroit ds le programme où on eut choisir l'angle du servo? Si on veut entre 0 et 90° par exemple.

 

A la mise sous tension, dans la fonction setup() tu peux régler l'angle que tu veux : 0, 10, 90, ... pour la position 'repos'  du personnage

par exemple 90° :

myservo1.write(90);

Sinon 'en live' c'est la valeur MIDI reçue ( de 0 à 127) qui donne l'angle dans la fonction actionne()

switch(channel)
{
case 0 : // servo 1
            myservo1.write(value);
            break;

Ce qui fait qu'à ce jour tu peux faire varier l'angle de 0 à 127° ... si ton servo accepte ces valeurs ce qui n'est pas toujours le cas suivant les modèles !

A tester les valeurs MIN et MAX supportés par tes servos

 

 

 

 

"myservo1.attach(pinServo1); // attaches the servo on pin 9 to the servo object

 

Effectivement c'est une erreur dans le commentaire, à remplacer par  // attaches the servo on pin 2 to the servo object  puisque int pinServo1 = 2;

 

Les autres servos seront câblés à d'autres Pins : 3,4,5 ...  à toi de choisir

 

La partie du code où tu devras intervenir est actionne() en ajoutant par exemple de nouveaux servos ( 2, 3, 4 ... ).

switch(channel)
{
case 0 : // servo 1
            myservo1.write(value);
            break;

case 1 : // servo 2
            break;

case 2 : // servo 3
            break;

case 3 : // servo 4
            break;

Que les autres makers n’hésitent pas à te répondre aussi, je ne suis pas au top sur les servomoteurs ...

 

As -tu réussi à faire bouger un servo comme tu veux ?



#43 Sam Balloons

Sam Balloons

    Membre

  • Membres
  • 25 messages

Posté 13 octobre 2017 - 09:21

Bonjour!

 

Oui, j'ai réussi en mettant des valeurs à la souris. Maintenant, il faudrait que je puisse connecter un potard sur le servo et enregistrer les mouvements en mode "record" dans Reaper (j'ai ce qu'il faut en potards, fournis dans mon kit de démarrage). Le pin2 peut-il recevoir et envoyer des infos? Ou bien faut-il un pin pour l'envoi et un autre pour la réception? A terme, qd cela fonctionnera, ce serait génial de pouvoir commander à distance. J'ai vu qu'il y avait des modules IR et autres... Je ne sais pas si l'IR sera le mieux???

 

Et pour l'histoire de la course en degré des servos, je comprends bien le rapport entre 0 et 127 en MIDI, et les 0° à 127°. Ce qui veut dire que si le servo a une possibilité de faire 160° par exemple, il faudra rajouter une ligne de code pour que le programme fasse un rapport entre les 2 (valeur 0 = 0° et valeur 127 = 160°) je crois avoir vu ça dans les projets de mon kit de démarrage Arduino, mais pas sûr...faut que je vérifie....



#44 Ulysse

Ulysse

    Membre passionné

  • Membres
  • PipPipPip
  • 486 messages
  • Gender:Not Telling

Posté 15 octobre 2017 - 05:55

Ce que tu pourrais faire c'est d'abord ajouter un 2nd, 3ème, 4ème servo pour voir si tout ça est assez précis et fluide pour ton application

Pour faire ça :

  • ajouter du code dans l'arduino
case 1 : // servo 2
            break;

case 2 : // servo 3
            break;
  • ajouter des pistes dans le séquenceur ( comme la piste 1 mais en changeant de canal : 2 pour servo 2, 3 pour servo 3 ..

Et voir si ça fonctionne comme tu veux.

pouvoir commander à distance

C'est à dire entre le séquenceur et le module arduino du personnage ? ( sinon il y a des rallonges USB de 20 mètres... )

 

 

Sinon pour l'enregistrement :

 

tu as je choix :

  • un autre module aduino qui ne fait que ça ( c'est le plus simple à faire ) avec en boucle : la lecture d'une valeur de potentiomètre(s) en envoie vers le port série
  • sur le même module arduino : la même chose mais le programme évolue : il faut décider si on est en mode 'record' ou en mode 'play'

Ce qu'il faut envoyer :

 

3 octets

  1. B0 pour le canal 1, B1 pour le canal 2, B2 pour le canal 3, etc ...
  2. 07 (c'est le volume)
  3. la laveur entre 0 et 127

Le tout à la vitesse de Serial.begin(115200)

 

.. vais être un peu pris quelque temps mais je reviendrai, le temps pour toi que ça murisse !



#45 Sam Balloons

Sam Balloons

    Membre

  • Membres
  • 25 messages

Posté 13 novembre 2017 - 11:34

Bon....je n'arrive pas à faire fonctionner 2 servos.... J'ai créé une 2ème piste sur Reaper. J'ai rajouté les ligne de code....mais rien ne se passe... Pas assez calé pour comprendre ce qui ne va pas....

 

Pour commander à distance oui, ce serait pour ne pas avoir de câble entre l'ordi et le personnage.





Répondre à ce sujet



  


0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users