Carte de pilotage 16 servomoteurs simultanés

Utilisation de capteurs et composants électroniques avec Arduino.
Une fiche de tutoriel pour chaque.

Carte de pilotage 16 servomoteurs simultanés

Messagepar tiptop » Sam 14 Déc 2013 20:26

Carte programmable de commande de 1 à 16 servomoteurs simultanés.

Image

Composants utilisés

Principe de fonctionnement
Cette carte programmable peut contrôler la position et la vitesse de 1 à 16 servomoteurs simultanément.
Elle fonctionnement de façon autonome (off line), ou commandée en direct depuis un PC, ou encore pilotée par un autre processeur (Arduino, etc...).
Sa mémoire flash intégrée lui permet de mémoriser les mouvements, que l'on peut assembler par groupes de commandes. 512 ko de mémoire permettent d'enregistrer plus de 500 commandes pour 16 servos.

Cette carte se programme depuis un ordinateur (branché par câble USB) avec le logiciel de contrôle, ou depuis un micro contrôleur MCU (51, PIC, AVR, ARM, FPGA, Arduino...) ou encore en communication UART (port série TTL) pour envoyer les commandes directement vers les servomoteurs.

Les commandes des servomoteurs sont en format texte facile à éditer. Le logiciel pour PC (fourni) génère ces commandes directement depuis une interface graphique.
On peut aussi utiliser une communication sans fil (avec un module bluetooth).
Les signaux de commandes sont standard et modulés en PWM.

Caractéristiques techniques
  • Alimentation 6.5 - 12V pour le pilotage des servomoteurs, 4.5-5.5 V pour les signaux de commande.
  • Driver de 1 à 16 servomoteurs en simultané, avec contrôleur USB, pour robotique.
  • Mémoire flash de 512 ko.
  • Le branchement des 16 servos (3 fils standard) se fait par pins.
  • Branchement de l'alimentation électrique de la carte par bornier à vis.
  • La carte reconnaît automatiquement le port USB.

Alimentation électrique
Image
La carte de commande utilise deux alimentations, une pour les servos et l'autre pour la puce, sur le bornier bleu à vis (3).

  • Alimentation de puissance des servos, +V sur la borne de gauche et GND au centre.
    L'alimentation des servomoteurs dépend de leurs caractéristiques, par exemple de 4,8 à 7.2V pour le TR213.
  • Alimentation de la puce, +Vss sur la borne de droite (+6.5 à 12V) et GND au centre.

Le port USB (2) peut alimenter directement la puce, à la place de Vss externe.
Les pins (1) peuvent aussi servir à alimenter la puce, en +5V et GND dans ce cas..
La LED témoin (4) est allumée verte si la puce est bien alimentée.
L'autre LED témoin (5) est allumée verte si les servomoteurs sont bien alimentés.

Installer le pilote de carte
Le pilote est disponible ici http://www.torobot.com/down/usc_driver.exe
Choisir "toujours installer ce pilote " et "continuer".

Une fois le pilote installé, le gestionnaire de périphériques de l'ordinateur doit afficher le matériel et le numéro de port qu'il lui a attribué (COM).

Raccorder le servo à la carte de commande (servo-contrôleur)
Image

Les connecteurs à 3 pins des différents servos (marqués S1 - S16) sont indiqués en rouge (attention au sens de branchement).
En jaune ce ne sont pas des connecteurs du servo.

Télécharger le logiciel de pilotage
http://www.torobot.com/down/rios_usc.exe
Lors du premier lancement si le programme est en chinois, changer la langue dans les options (pour passer en anglais)
Image

Contrôler un seul servo
Exécuter RIOS_USC.exe, choisir le bon numéro de port , puis cliquez sur le bouton " Open"
Image

Le numéro du servo (S1) et l'angle de position (0-180 ou -90 à 90°) s'affichent dans la boite de commande, la souris permet de faire glisser le curseur. Une lettre (A), modifiable, sert de raccourci clavier pour sélectionner ce servo.

Contrôler simultanément plusieurs servos
Le bouton "PANNEL" permet de choisir les servos à afficher et commander.
Par exemple ici j'active 4 servos, respectivement S1 S2 S4 et S5.
Image

Régler le temps de rotation, par exemple 1000 ms (entre 100 et 9999). Plus cette valeur est élevée plus la rotation sera lente.
Cliquer sur "ADD" , le logiciel va produire une ligne de commande (affichée dans la fenêtre en dessous)
Par exemple
Code: Tout sélectionner
#1P1500#2P1500#4P1500#5P1500T1000

ce qui signifie : servos 1 2 4 et 5 positionnés au centre (1500) et temps de 1000 ms.

Glisser le curseur de servo 2 vers la droite et cliquer ADD, une nouvelle ligne de commande apparaît :
Code: Tout sélectionner
#2P1922T1000
Ce qui veut dire : Servo 2 en position 1922 (à droite) et temps de 1000 ms.

  • DELETE et MODIFY permettent d'éditer ce fichier de commandes, ligne par ligne.
  • ALL permet de bouger tous les sservos en même temps.
  • INITIAL VALUE remet tous les servos à leur position de départ
  • On peut cliquer une ligne de ce fichier texte de commandes pour voir les curseurs des servos, et éditer la ligne.


Télécharger le Groupe d'actions

Quand le fichier de commandes est prêt, l'enregistrer sur son PC avec le bouton EXPORT.
Image

On obtient un fichier en format texte (RIOS_USC.txt par exemple) que l'on peut ouvrir avec un éditeur de texte et modifier si besoin (en respectant bien sûr la syntaxe des commandes).

Le bouton RUN permet de lancer les actions des servos (1 ligne de commande par seconde dans notre exemple).
Ceci permet de visualiser en direct la validité de son programme.

"CIRCULATION EXECUTION" fait tourner le programme en boucle, cliquer STOP pour l'arrêter.

Le bouton DOWNLOAD envoie les commandes du PC vers la mémoire flash de la carte pour actionner les servos.
Ce programme reste en mémoire hors tension.
Le logiciel indique à la fin du téléchargement : "téléchargement est terminé, n° = 1 ".
Le groupe d'actions porte un numéro de groupe (ici le n°1) et peut être exécuté d'un seul bloc.

Exécuter le Groupe d'action
Toutes les commandes du groupe peuvent être exécutées par l'exécution du groupe d'action .
Cliquer sur RUN pour lister les numéros des groupes en mémoire, puis entrez le nombre de répétitions à exécuter.


Utiliser le travail hors-ligne
Choisir un numéro de groupe d'actions, un nombre de répétition, puis cliquer sur "OFF LINE".

DISABLE permet de désactiver cette fonction.

ERASE Flash efface tous les groupes d'actions déjà téléchargés dans la programmation de la carte.

Commandes externes
La carte de servo-contrôleur est un dispositif esclave. Elle peut soit accepter des commandes externes, soit exécuter des commandes prédéfinies enregistrées dans sa mémoire.
Le protocole de communication série (niveaux TTL) utilise une vitesse de transmission de 9600 , aucun bit de contrôle , 8 bits de données , 1 bit d'arrêt.

On peut commander la carte 16-servos depuis un MCU, par exemple une carte Arduino programmable pour envoyer des commandes au dispositif de commande d'asservissement.

Syntaxe des commandes :
Image

Le format des commandes à utiliser est le suivant :
Contrôler un seul servo , par exemple
Code: Tout sélectionner
#1P1500T100 \ r \ n

1 indique le canal de servo (1-16).
1500 indique la position du servo, dans la plage gauche-droite de 500-2500 (1500 = au centre)
100 est le temps d'exécution, dans la gamme 100-9999 (ms)

Commande de plusieurs servos, par exemple
Code: Tout sélectionner
#1P600#2P900#8P2500T100 \ r \ n

1 , 2 et 8 se réfèrent aux canaux des servos
600 , 900 , et 2500 positionnent les servos sur ces trois canaux
100 est la vitesse d'exécution des trois servomoteurs, tous les servos fonctionnent simultanément quel que soient leur nombre.

Exécuter un seul groupe d'action, par exemple
Code: Tout sélectionner
#1GC2 \ r \ n

1 est le numéro de série du groupe d'actions.
2 est le nombre de cycles à répéter.

Exécuter plusieurs groupes d'action, par exemple
Code: Tout sélectionner
#1G#3G#1GC2 \ r \ n

On exécute ici le 1er, puis le 3ème, puis à nouveau le 1er groupes d'actions.
On fait 2 cycles de répétitions. (réglabe de 1 à plusieurs).
Un groupe particulier d'action peut apparaître à plusieurs reprises.
La commande est exécutée en séquence, les groupes d'action sont exécutés dans l'ordre spécifié.

Toutes les commandes ci-dessus contiennent \ r \ n . Cette marque de fin de la commande est obligatoire. Toutes les commandes sont sans espaces.
\ r \ n représente le retour chariot et le saut de ligne , 0x0D 0x0A en hexadécimal, ou Chr (13) et Chr (10).

Connections au micro contrôleur MCU
Image
On branche le contrôleur de servomoteurs sur la carte Arduino avec les pins GND, TXD, RXD à partir du connecteur ou des pins de la carte.
tiptopboards - admin
Avatar de l’utilisateur
tiptop
Administrateur du site
 
Messages: 93
Inscription: Mar 13 Aoû 2013 20:38
Localisation: 38

Retourner vers Capteurs et composants

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 7 invités