Course servo avec 16-Channel PWM/Servo

Forum traitant des automates industriels de marque Wago et du logiciel codesys
Répondre
Avatar du membre
Digitrain
Code sa première boucle
Code sa première boucle
Messages : 16
Enregistré le : 27 mars 2021, 17:17

Course servo avec 16-Channel PWM/Servo

Message par Digitrain »

Bonjour,
Parce que je veux aussi utiliser des servos dans mes projets, j'ai acheté un Adafruit 16-Channel PWM/Servo pour Raspberry Pi. J'ai ouvert le projet d'exemple "Softmotion Servo Example" livré avec Codesys et je peux voir mon servo fonctionner jusqu'à présent ok. Je remarque que la limite de déplacement du servo est bien en dessous de la limite mécanique (voir fichier joint). Y a-t-il un moyen d'augmenter l'amplitude du mouvement ?
Autre question : J'ai jeté un coup d'oeil au projet et il me semble que tout ça est bien complexe pour juste faire déplacer un servo. N'y a-t-il pas un simple bloc FB ou quelque chose de ce genre prêt à l'emploi ?

D'avance, merci pour vos réponses.
Fichiers joints
servo_limited_run.jpg
Avec mes meilleures salutations
Avatar du membre
Digitrain
Code sa première boucle
Code sa première boucle
Messages : 16
Enregistré le : 27 mars 2021, 17:17

Re: Course servo avec 16-Channel PWM/Servo

Message par Digitrain »

Personne...? :cry:
Avec mes meilleures salutations
AC23
Code sa première boucle
Code sa première boucle
Messages : 17
Enregistré le : 29 mars 2021, 10:59

Re: Course servo avec 16-Channel PWM/Servo

Message par AC23 »

Bonjour,

En cherchant un peu sur internet, je suis tombé sur ce poste : https://forge.codesys.com/forge/talk/Ru ... 50a63227b/

il y a deux messages d'une personne avec le pseudo "eschwellinger" qui pourrait t'aider peut-être.

Le premier où il dit : " généralement ce genre de servomoteur qui est vendu pour faire du +/- 90° fait en réalité du +/- 65°"

Le deuxième message est :" il est possible que ca soit un bug de bibliothèque et qu'il sera patché à la prochaine mise à jour"
Sauf que ce message date de 2015.

dans mes expériences personnelles, même les servomoteurs très entrées de gamme (acheté sur des sites chinois) quand ils sont vendus pour faire du +/- 90°. L'angle en pratique était bien de +/-90°, en revanche la force du moteur... (Mais je ne travaillais pas sur Codesys ni sur du Raspberry)

Pour ce qui est de la simplification du projet en FB, je ne trouve pas ton exemple : "Softmotion Servo Example". Tu travaille sur quel Codesys ? peux-tu mètre le projet en ligne ? (je ne promet rien, j'essaierai voir ce que je peux faire)

Bien cordialement
Jambe
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 114
Enregistré le : 28 mai 2020, 18:38

Re: Course servo avec 16-Channel PWM/Servo

Message par Jambe »

L’usage des signaux de commande des servomoteur c’est un signal PWM de période 20ms. Avec un état haut variant de 1ms à 2ms (rapport cyclique de 5% à 10%) correspondant à la position absolu du servo de -90° à +90°, voir diagramme suivant:
31DE1744-D131-4634-9221-49020D7CDCC6.png
31DE1744-D131-4634-9221-49020D7CDCC6.png (10.31 Kio) Vu 396 fois
Ça c’est pour la théorie, en pratique les chinoiseries de servo ne respectent pas vraiment cet usage et on trouve des servos aux courses variant de 0,5ms jusqu’à 2,5ms sauf que c’est impossible de le savoir à l’avance puisque que tu ne trouveras pas de datasheet digne de ce nom.

Donc il te faudra soit modifier la librairie et toucher au paramètre de course mini ou maxi. Ou peut être il existe un constructeur de classe qui permet de passer en paramètres les mini maxi et tu ajuste selon la course réelle de ton servo. Attention toutefois à ne pas aller jusqu’en butée, faut pas forcer sur la « mécanique », ça reste du fragile.
Avatar du membre
Digitrain
Code sa première boucle
Code sa première boucle
Messages : 16
Enregistré le : 27 mars 2021, 17:17

Re: Course servo avec 16-Channel PWM/Servo

Message par Digitrain »

Bonjour,
Merci pour vos réponses, je me sent moins seul avec mes problèmes...
AC23 a écrit : 09 mai 2021, 14:42 En cherchant un peu sur internet, je suis tombé sur ce poste : https://forge.codesys.com/forge/talk/Ru ... 50a63227b/
il y a deux messages d'une personne avec le pseudo "eschwellinger" qui pourrait t'aider peut-être.
Le premier où il dit : " généralement ce genre de servomoteur qui est vendu pour faire du +/- 90° fait en réalité du +/- 65°"
Le deuxième message est :" il est possible que ca soit un bug de bibliothèque et qu'il sera patché à la prochaine mise à jour"
Sauf que ce message date de 2015.
Oui, donc le problème est là au moins depuis 2015... :? bon au moins je suis pas le seul à souffrir de cette limitation qui m'embête bien.
Comment fait-on pour signaler ce genre de problème aux développeurs?
AC23 a écrit : 09 mai 2021, 14:42Pour ce qui est de la simplification du projet en FB, je ne trouve pas ton exemple : "Softmotion Servo Example". Tu travaille sur quel Codesys ? peux-tu mètre le projet en ligne ? (je ne promet rien, j'essaierai voir ce que je peux faire)
Apparement le forum n'autorise que les fichiers d'images, je ne peux donc pas le mettre ici. Par contre vous le trouverez dans les exemples fournis avec Codesys:

Code : Tout sélectionner

C:\Users\<username>\CODESYS Control for Raspberry PI\3.5.16.20\Examples
J'utilise Codesys v3.5 sp16 patch 2.

J'ai encore découvert un autre problème. À la mise sous tension le Servo se met systématiquement à son point 0. ce qui engendre un déplacement très brusque entre sa position précédente et le "0" central. Est-il possible de remédier à cela?

D'avance merci pour votre aide.
Avec mes meilleures salutations
Répondre