Bien le bonjour !
Je suis en train de préparer une installation d'art numérique qui fera intervenir de petits robots d'allure tentaculaire. Mécaniquement tout se passe bien. J'aimerai avoir quelques conseils sûr la partie du code.
J'aimerai pouvoir contrôler ces robots en utilisant le protocole DMX tout comme n'importe quel projecteur automatique utilisés dans le spectacle. Il s'agit simplement de faire correspondre une valeur DMX avec un mouvement, genre PAN & TILT pour reprendre les termes de l'éclairage de spectacle...
J'utilise des moteurs MG996R à rotation continue: servo MG996R
Est-ce que quelqu'un aurait une idée ?
Je n'ai pas de code à partager pour le moment car je ne sais pas quelle approche avoir pour commencer.
Merci par avance à ceux qui passeront par ici !

Post mis dans la mauvaise section, on parle anglais dans les forums généraux. déplacé vers le forum francophone.
Merci de prendre en compte les recommandations listées dans Les bonnes pratiques du Forum Francophone
Bonjour
quelle topologie mecanique "les tentacules" ?
ce genre la ?
ou là ?
pourquoi de la rotation continue ?
Absolulment ! le premier lien plutôt.
C'est un entrainement par poulies avec deux moteurs.
J'avais pensé à la rotation continue pour avoir plus d'amplitude de mouvement. Je compte tester avec des servo à 180° que je n'ai pas encore reçu.
Un servo à rotation continue n'a que peu de rapport avec un servo 180° C'est un moteur CC asservi en vitesse de rotation et il est impossible d'avoir une position angulaire choisie. Je pense aussi que cela ne peut pas t'être utile.
Bonjour morse-vision
Je ne connais rien dans le domaine DMX. J'ai fait une recherche et ai trouvé une bibliothèque qui traite le sujet, DMXSerial, avec un exemple DmxSerialRecv.ino, si ça peut t'aider.
Si tu as beaucoup de servo à gérer, il y a des modules à 16 ports PWM pour 16 servo.

Cordialement
jpbbricole
Salut jpbbricole !
Merci ! J'ai déjà utilisé cette bibliothèque pour des bricoles de contrôleur pour LEDs. Ça marche super bien.
Je viens de passer la dernière heure à faire un test sur un petit servo qui trainait, en résulte ce code simple. Ça fonctionne !
Si jamais ça peut aider d'autres:
#include <Servo.h>
#include <DMXSerial_megaavr.h>
#include <DMXSerial_avr.h>
#include <DMXSerial.h>
//#define NUM_LEDS 0 //pour inclure des LEDs plus tard dans le projet
#define SERVO_NUM 2
#define DMXSTART 1
//#define DMXLENGTH (SERVO_NUM + (NUM_LEDS*3))
#define DMXLENGTH 2
int channelNumberX = 1;
int channelNumberY = 2;
Servo myServoX;
Servo myServoY;
int valX;
int valY;
int DMXvalueX;
int DMXvalueY;
void setup () {
DMXSerial.init(DMXProbe);
DMXSerial.maxChannel(DMXLENGTH);
myServoX.attach(9);
myServoY.attach(10);
}
void loop() {
if (DMXSerial.receive()) {
DMXvalueX = DMXSerial.read(channelNumberX);
DMXvalueY = DMXSerial.read(channelNumberY);
valX = map(DMXvalueX, 0, 255, 0, 180);
valY = map(DMXvalueY, 0, 255, 0, 180);
myServoX.write(valX);
myServoY.write(valY);
delay(15);
}
}
A propos des moteur à rotations continue, vileroi, tu as tout à fait raison. Suite à mon test je vais simplement les remplacer par les servos adéquats. Merci pour vos précisions !