Dans ce forum nous allons nous intéresser aux différents modèles de servomoteurs intelligents de la marque Feetech et nous verrons comment les faire fonctionner.
Les différents servomoteurs Feetech (SCS,STS,FM) :
Nous allons dans un premier temps découvrir les différents servomoteurs et voir les différences entre les modèles.
SCS, STS, SM qu'est-ce que c'est ?
- SCS : Serial Communication Servo
Ces servomoteurs communiquent via une communication UART (communication via 2 fils: 1 Emetteur/1 Récepteur) et sont généralement plus petits que les STS ou les FM. Ils sont donc idéals pour des petits robots nécessitant plus de couple que les servomoteurs 9g bleus et permettent de connaitre la position du servomoteur. - STS : Serial TTL Servo
Communication TTL (même principe que la communication UART mais avec des niveaux logiques plus faibles), ces servomoteurs sont plus précis et plus performants pour une utilisation professionnelle. - SM : Serial Magnetic (Servo)
La gamme FM des servomoteurs utilise aussi un protocole de communication UART. Cette gamme de servomoteur utilise un capteur magnétique plutôt qu'un potentiomètre ce qui les rend plus précis et plus robustes. Ils sont idéals pour une utilisation long terme comme des bras robotisés.
Il en existe d'autres mais Robot Maker ne vend que ceux-là qui suffisent amplement pour la majorité des projets personnels ou professionnels.
Résumé et comparatif des servomoteurs Feetech présents sur la boutique :
Pour conclure sur la présentation des différents servomoteurs Feetech présents dans la boutique Robot Maker, chaque servomoteur peut être utilisé pour différentes applications: le SCS0009 peut par exemple être utile pour de petites pinces sur un robot (Coupe de France de Robotique), le SCS15 pour un robot bipède d'une vingtaine de centimètres...
Bref, ces servomoteurs sont très utiles et peuvent facilement remplacer les servomoteurs classiques 9g, car ils peuvent renvoyer leur vitesse de rotation, le couple résistant et leur position. Ils peuvent aussi être connectés en serie (voir les étapes suivantes).
Contrôler les servomoteurs Feetech avec un logiciel dédié :
Maintenant que vous avez acheté votre servomoteur il faut le faire fonctionner:
Il existe 2 méthodes :
- Utiliser un convertisseur FE-UART-1 dont voici le tutoriel (Compatible : STS3235, STS3032, STS3215, SCS15, SCS0009, SM45BL et SM120BL).
- Utiliser une carte Arduino et un TTLinker (Compatible : STS3235, STS3032, STS3215, SCS15 et SCS0009)
Nous allons nous intéresser à la deuxième méthode ( étant donné que la première a déja été présentée...)
Arduino + TTLinker Mini FEETECH :
Matériels nécessaires :
- 1 Arduino Uno/Nano/Mega.
- 1 TTLinker Mini FEETECH
- 1 ou plus servomoteur
- Quelques câbles arduino
- 1 ordinateur
- 1 câble USB pour relier votre ordinateur et votre arduino
- Optionnel (ou pas selon votre modèle) : une alimentation externe
Note : L'exemple qui suit utilise des servomoteurs SCS0009 mais le principe reste le même pour les autres servomoteurs.
Dans un premier temps, on va contrôler notre moteur via le logiciel présenté sur le tutoriel. Pour cela, branchez comme suit les composants :
Etant donné que c'est le logiciel qui va commander le servomoteur et non la carte arduino, il faut connecter le Rx de la carte arduino au Tx du convertisseur et le Tx de la carte au Rx du convertisseur.
Connecter votre carte arduino à votre ordinateur et téléverser un code Blink pour être sûr de laisser les ports Rx et Tx libres lors de l'utilisation.
Note : Débranchez les ports Rx et Tx de l'arduino pendant le téléversement sinon le code ne pourra pas se téléverser. En effet, lors du téléversement, la carte arduino utilise les ports Rx et Tx pour télécharger votre code ce qui les rend inutilisables le temps du téléversement.
Une fois téléversé rebrancher votre Rx et Tx et lancez le logiciel FT SCSServo si vous ne l'avez pas déjà fait.
Sélectionner le bon port "COM" et rentrer le bon nombre de Baud (voir fiches produits de votre servomoteur). Enfin cliquez sur "Open".
Cliquez sur "Search" dans Servo List et vous devriez voir apparaître votre servomoteur.
Note : Si votre servomoteur n'apparait pas c'est que vous avez probablement inversé le Rx et le Tx ou que votre carte n'a pas été reconnu par votre ordinateur .
Cliquez sur votre servomoteur et voilà vous êtes connecté !
Vous pouvez faire varier la barre horizontale pour faire tourner votre moteur.
Note : Dans l'exemple, le servomoteur est un SCS0009 il peut donc fonctionner sous 5V et donc peut être alimenté avec uniquement une carte arduino. Cependant, il faut noter qu'en changeant la position trop rapidement, le servomoteur risque de ne plus pouvoir suivre. Il faut donc, dans ce cas là faire correspondre le "Goal" du "Servo Control" avec le "position" du "Servo Feedback" pour reprendre la liaison.
Test avec 2 servomoteurs (et plus si affinités):
Si vous branchez un 2ème servomoteur à votre TTlinker, vous pouvez contrôler les 2 servomoteurs en même temps et ils auront la même commande.
Le mieux serait de pouvoir les contrôler indépendamment. Pour cela, il va falloir assigner à chaque servomoteur un ID différents.
Dans l'onglet programming, cherchez dans la liste "ID" et remplacez la valeur en bas à droite par le nombre que vous souhaitez puis cliquez sur "save". Branchez votre second servomoteur, relancez la recherche de servomoteur dans "servo list" et à présent vous aurez 2 servomoteurs qui se contrôle indépendamment et si vous le souhaitez vous pouvez avec un bus en contrôler plus de 200 !
Contrôler les servomoteurs Feetech avec Arduino IDE :
Dans cette partie nous verrons comment contrôler un ou plusieurs servomoteurs Feetech avec l'Arduino IDE et le même matériel que dans la partie précédente.
Branchement :
Cette fois-ci, il faut brancher le Rx de l'arduino avec le Rx du convertisseur et le Tx avec le Tx.
Note: Vous pouvez utiliser la bibliothèque <SoftwareSerial.h> et la fonction SoftwareSerial mySerial(2, 3); // (RX, TX) pour pouvoir rajouter des broches Rx et Tx et ainsi vous éviter de devoir débrancher à chaque téléversement.
Arduino IDE :
Dans votre Arduino IDE il vous faut télécharger la bibliothèque SCServo by FT&WS
Code :
Robot Maker fourni plusieurs exemple de code disponible sur Github qui ont été modifiés que vous pouvez utiliser.
Code SCServo de Robot Maker
Ci-dessous, une petite modification à effectuer selon la carte Arduino que vous utilisez :
Arduino MEGA
Arduino UNO / NANO
Résumé des codes :
- Broadcoast : Envoie la consigne à tous les servomoteurs ( 0xfe = 254: adresse de broadcast)
- FeedBack : Renvoie les informations du servomoteur (couple, tension, courant...)
- Ping : Vérifie si un servomoteur est bien connecté (int ID = sc.Ping(1); )
- ProgramEprom : Définit l'ID des servomoteurs
- RegWritePos : Contrôle 2 servomoteurs indépendamment
- SyncWritepos : Contrôle 2 servomoteurs en même temps
- WritePWM : fait varier la vitesse d'un servomoteur
- WritePos : Contrôle 1 servomoteur
Tous ces codes peuvent être modifiés pour rajouter plus de servomoteurs ou peuvent aussi être fusionnés pour permettre plus de fonctionnalité.
Conclusion :
Les servomoteurs Feetech sont bien plus intéressants que les petits servomoteurs 9g, si pour un premier projet ces derniers sont intéressant pour leur petit prix, les servomoteurs Feetech sont quant à eux beaucoup plus intéressant au vu des fonctionnalités supplémentaires qu'ils ont .... D'autant plus pour des projets robotique où l'information du retour de position et du couple exercé sont des atouts non négligeable aussi bien pour des préhenseurs que des bras robots ou des robots à patte!