Go Down

Topic: Servo moteur avec menu interactif moniteur serie (Read 751 times) previous topic - next topic

thomas68

Bonjour,

Je suis sur la création d'un bras robotique avec 6 servomoteur et je voudrais les contrôler avec un "menu interactif"

Le menu je voudrait quelque chose comme

*****Sélection moteur*****

1. Moteur 1
2. Moteur 2
3. Moteur 3
4. Moteur 4
5. Moteur 5
6. Moteur 6

Et après un sous menu pour chaque servo pour la sélection de l'angle


*****Sélection de l'angle 0 - 180 degré*****

1. 0
2. 10
3. 20 etc ...


Merci de votre aide

lesept

Tu disposes de quoi pour ce menu : un afficheur LCD (combien de lignes) ? Des boutons, potentiomètres ?
Quel modèle d'Arduino utilises-tu ?

As-tu un début de code ?
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

thomas68

Pour afficher le menu je voudrais utiliser le moniteur série de arduino et sans bouton et potentiomètre juste avec des commande. et j'ai un arduino mega 2560.

lesept

#3
May 11, 2018, 04:14 pm Last Edit: May 11, 2018, 04:37 pm by lesept
Dans ce cas, tu n'as pas besoin de menu, tu dois juste lire la console et décoder les commandes pour appliquer les consignes à tes servos. Par exemple, une commande comme "M2P100*" indiquerait au moteur 2 de se mettre à la position 100 ('*' serait un caractère pour indiquer la fin d'une commande, ça te permettrait d'exécuter plusieurs commandes à la suite, en les tapant en une seule fois, genre M1P20*M3P65*M2P120*).

Tu as juste à écrire un programme qui fait en boucle :
  • lit la console,
  • décode l'instruction,
  • vérifie que la consigne est dans les bornes du servo,
  • et applique la consigne.

Tu peux t'inspirer des tutos en ligne comme celui-ci ou celui-là (et sa suite) :

Code: [Select]
void setup() {
  Serial.begin(9600); // initialisation de la communication
}

void loop() {
  while (Serial.available()) { // tant que des caractères sont en attente
    char c = Serial.read(); // on lit le caractère
    Serial.print(c); // on l'affiche

    // Ajouter ici ton traitement de la commande tapée dans la console

    delay(10); //petit temps de pause
  }
}
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

Go Up