Aller au contenu


Keuronde

Inscrit(e) (le) 01 mai 2025
Déconnecté Dernière activité août 27 2025 09:05
-----

Sujets que j'ai initiés

Encore une présentation des servomoteurs Feetech

05 août 2025 - 05:02

Alors, pourquoi "encore" une présentation ? Parce que EVRIS en a déjà faite une première ici. Qu'il y a un article de Marilux sur comment s'interfacer avec les Feetech.
 
Et que malgré ça, j'ai transpiré un peu pour me servir des Feetech. J'ai donc deux possibilités, vous présenter rapidement ce qui m'a posé soucis et ma solution ou repartir de zéro et faire une présentation en profondeur des Feetech. J'opte pour la seconde solution. Attendez-vous alors a certaines re-dites par rapport aux articles cités plus haut.
 
Note: Tous les essais réalisés lors de la rédaction de ces posts on été fait avec un Feetech STS3032, un TTLinker et un Raspberry Pi Pico.
 
Introduction

Les servomoteurs de modélisme

Les servomoteurs de modélisme sont des actionneurs assez intéressants car ils sont simples et sont commandés en position. Contrairement à un moteur à courant continu, où le moteur tourne dès que vous appliquez une tension, un servomoteur de modélisme va "attendre", en plus de l'alimentation, une consigne de position. C'est le servomoteur, qui en fonction de sa position et de la consigne envoyée, va commander son moteur pour atteindre la position demandée.

Pour les mettre en œuvre, le schéma est assez simple. Sur les trois broches, deux servent à l'alimentation et la troisième est directement reliée au signal du microcontrôleur. Contrairement à un moteur à courant continu, vous n'avez pas besoin de pont en H pour les piloter. Tout est intégré dans le servomoteur.

Les servomoteurs de modélisme présentent quelques limitations :
- Leur course est généralement limitée à 180°
- Il faut une broche de microcontrôleur par servomoteur. C'est peut-être un détail, mais ça peut empêcher de réutiliser une carte électronique d'une année sur l'autre.
- Difficile de piloter finement la vitesse du servomoteur
- Et surtout, le servomoteur ne renvoie pas d'information sur son état

Les servomoteurs Feetech

Les servomoteurs Feetech reprennent la base du servomoteur de modélisme, en comblant une grande partie de ses défauts.
- Leur course est réglable, et illimitée dans certains mode d'utilisation
- Ils sont chaînables, sur un port vous pouvez brancher tous vos servomoteurs
- Leur vitesse et leur accélération sont paramétrables
- Ils renvoient des informations détaillées sur leur état, position, vitesse, effort...
 
Ces servomoteurs existent en 2 gammes. L'une communique avec un protocole RS485, ce qui est certainement un inconvénient pour un petit projet. En effet, vous aurez besoin d'une carte d'adaptation car vous ne trouver pas (ou très difficilement) de microcontrôleurs qui intègrent le protocole RS485. L'avantage est que ce protocole, utilisant un signal différentiel, est résistant aux perturbations.
 
L'autre gamme utilise un signal TLL, en half duplex. Cela signifie que l'émission et la réception des données se fait sur la même broche. Si pour ce protocole, une grosse bidouille logicielle semble possible, le plus simple sera d'utiliser une carte de conversion.
 
Le fabriquant vend une carte de conversion UART <-> RS485 ou UART <-> TTL Half Duplex pour simplifier l'intégration de servomoteur de vos projets que vous trouverez chez Robot Maker. Nous utiliserons celle-ci :
https://www.robot-ma...er-mini-69.html

mais vous pouvez utiliser celle-là si vous souhaitez utiliser un ordinateur pour communiquer avec vos servomoteur : https://www.robot-ma...-urt-1-460.html
 
 
Première étape - S'installer

Câblage

Vous devez connecter sur la carte d'adaptation :
  • L'alimentation de puissance (5V)
  • L'alimentation logique (3,3V)
  • Les signaux UART (RX/TX) sans les croiser
Installation de l'IDE

On va supposer que vous avez un IDE d'installé, que ce soit celui d'Arduino, VSCode + PlatformIO, ou autre.

Récupération de la bibliothèque

Robot Maker fourni une bibliothèque servomoteurs feetech qui offre les principales fonctions. Nous en aurons besoin dès le début car la bibliothèque permet de construire les trames.

Adaptation de la liaison série

Même avec Arduino, la configuration de la liaison série peut demander un peu de travail. En général, Serial.begin() démarre le port série qui communique avec votre ordinateur en USB. Serial1.begin() va ouvrir un autre port série de votre microcontrôleur. Savoir lequel est parfois compliqué :
  • Pour les cartes officielles, la documentation est ici : https://docs.arduino...ication/serial/
  • Sur un ESP32, vous devez également préciser les broches à utiliser : Serial1.begin(1000000, SERIAL_8N1, RX, TX); RX et TX étant les numéros des broches. Ce sont parfois des constantes définies par le fichier décrivant votre carte.
  • Sur un RP2040 (Raspberry Pi Pico), PlatformIO ne laisse pas le choix, TX sera la broche 0, RX la broche 1.
Dans tous les cas, vous devez donnez le baudrate, qui est de 1000000 pour communiquer avec les Feetechs

Ping du servomoteur

Voici un programme qui teste la présence d'un servomoteur qui aurait l'adresse 1 (notez que c'est l'adresse par défaut).
Si ça marche, vous être prêt à passer à la suite !
#include <Arduino.h>

#include "SCServo.h"
SMS_STS sms_sts;


void setup() {
  // Configure la led en sortie
  pinMode(LED_BUILTIN, OUTPUT);


  // On ouvre 2 liaisons séries, 1 pour communiquer avec le PC, 1 pour les Feetech
  Serial.begin(115200);
  Serial1.begin(1000000);
  sms_sts.pSerial = &Serial1;
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
  test_ping();
  digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
  test_ping();
}

void test_ping()
{
  int ID = sms_sts.Ping(1);
  if(ID!=-1){
    Serial.print("Servo ID:");
    Serial.println(ID); 
    delay(100);
  }else{
    Serial.print("Ping servo ID error!\n");
    delay(2000);
  }
}
Alors, ce n'est que l'intro, dans les épisodes à venir, nous pourrions avoir :
  • Le détail du protocole
  • Les différents mode de gestions des Feetech (Servo, roue, multitours)
N'hésitez pas à faire part de vos remarques, critiques, propositions d'amélioration ici !

Keuronde de Poivron Robotique

08 mai 2025 - 04:03

Bonjour à tous !

 

Je suis nouveau sur le forum, mais j'ai déjà quelques réalisation roboticiennes à mon actifs. Ce sont quasiment toutes des robots pour la coupe de France de Robotique.

Je participe à cette compétition avec l'équipe Poivron Robotique dont je suis l'un des deux membres permanents.

Pour donner une idée de mon âge, je dirais que ma première participation à la coupe de France de Robotique était en 2005.

 

Compétences

 

J'aime bien la programmation sur microcontrôleur, en C, après des expériences avec les PIC18F2550 / 4550, j'ai découvert le RP2040 de la fondation Raspberry Pi. C'est une bête que j'affectionne particulièrement. Sa fréquence élevée, le double cœur, les PIOs en font vraiment un bel outil. J'en suis encore plus convaincu depuis que j'ai testé les ESP32 dans un environnement Arduino :dash2:...

 

Je conçois mes cartes électroniques avec Kicad (et ça, c'est un bel outil aussi !), ce qui est électronique numérique ne me pose pas de soucis, mais je ne me frotte qu'avec prudence au reste (dès que le transistor n'est pas saturé).

 

Coté mécanique, j'ai les robots en bois. Je perce à la scie à colonne, je découpe des baguettes (8 - 10 mm) et depuis peu, je découpe à la scie à chantourner. Mais ça s'arrête là. Avant de construire, j'aime bien faire une modélisation en 3D avec FreeCad, que j'aime bien mais qui n'est pas encore au niveau de la référence du marché.

 

Philosophie

 

Je n'aime pas les empilements de technologie sans fin, d'où mon affection pour les microcontrôleurs.

Afin de partager ma passion, j'ai fondé - pas tout seul - un club robotique dans ma ville où nous animons des ateliers hebdomadaires (ou presque).

Je pense aussi que le vrai web est important et qu'il est nécessaire d'avoir du contenu en dehors de Facebook, X, Discord, et consorts... D'où ma venue ici :)

 

Ces jours-ci, je tâche de terminer un robot pour fin mai 2025 pour la coupe de France de Robotique. Je travaille notamment avec des servomoteurs Freetech.

 

À bientôt !