Bug avec servo monté sur un microrobot

marc59

New Member
Bonjour, pour un projet en technologie collège, j'utilise le microrobot de chez a4 et un servo embarqué. L'idée est de faire un chargement et déchargement (avec le servo) d'objet automatisé. J'utilise programming editor, car le basic est trop compliqué pour les élèves.

Le bug est le suivant :

Quand je fais un test du servo avec le pg 1 ci dessous ça fonctionne
Quand le robot suit le parcours (détection de ligne) avec le pg 2 ci dessous ça fonctionne aussi
1 et 2.jpg

Quand j'associe les 2 pg (voir pg 3 ci dessous), le servo se met en position, mais dés que le robot suit les lignes, le servo se met à osciller (environ 20°) au lieu de rester en position fixe
3.jpg

Les 2 moteurs du microrobot ont des condensateurs antiparasites.

Si vous avez une idée

merci
 

PapyJP

Senior Member
Désolé Marc, je n' ai que des écrans 10 pouces et suis incapable de lire vos ordinogrammes.
Même en me les envoyant par mail et en les zoomant !
Je pose la question bête à la communautée: Que fait un servo qui ne reçoit aucun ordre ?
En général 50 ordres/seconde.
Car j' ai cru comprendre que lorsque le robot suit une ligne il ne commande pas le servo.
 
Last edited:

PapyJP

Senior Member
Dans mon dernier message, il y a un palindrome !
Il est horodaté ( dernière modification ) : 23h32
Coup de bol, mdr.
 
Last edited:

PapyJP

Senior Member
Encore un coup de bol !
mon dernier message contient aussi un palindrome !
Mais oui ( mdr ) ...
... " dernière modification " : 00h00
J' en peu plus ... le prochain ( sauf erreur ) est à '01h10' !
Bonne nuit à tous en espérant vous avoir décontracté ( s'il y a lieu ) !
 
Last edited:

PieM

Senior Member
Désolé Marc, je n' ai que des écrans 10 pouces et suis incapable de lire vos ordinogrammes.
Même en me les envoyant par mail et en les zoomant !
Bonne remarque. Par principe, merci de joindre au post les fichiers .bas ou .plf, ce qui évite à ceux qui veulent répondre de réécrire le programme !
(personnellement je ne fais plus cet effort !)

Je pose la question bête à la communautée: Que fait un servo qui ne reçoit aucun ordre ?
Pas de question bête !
Si la commande servo est utilisée, elle génère une tâche de fond.
Donc la commande continue à être envoyée.
Le problème maintes fois décrit est que cette commande est sujette au "jitter" (tremblement) du servo. En particulier lorsque le timer1 est sollicité dans le programme.
c'est pour éviter cela qu'on utilise, quand on peut, la commande pulsout qui est à réactualiser toutes les 20 ms environ.
Sinon quand on sait ce que fait le servo (ce qui n'est pas le cas ici...) il est possible de désactiver la commande servo, et le servo reste en position, si l'effort résistant n'est pas trop important.
 

MGU

Senior Member
Bonjour,

Je ne me sert pas de la programmation graphique.
Je n'ai jamais utilisé de servos.

Mais je peux immaginer que la programmation graphique est aussi restrictive pour les servos que pour le reste.
En basic, il y a "Servo" qui sert à l'initialisation et "Servopos", pour la position.
Si , en graphique, on utilise "servo" à chaque passage, au lieu de servpos, que se passe t il du point de vue de la stabilité ?

La version basic du programme peut nous éclairer

MM
 
Last edited:

PieM

Senior Member
Mais je peux immaginer que la programmation graphique est aussi restrictive pour les servos que pour le reste.
En basic, il y a "Servo" qui sert à l'initialisation et "Servopos", pour la position.
Si , en graphique, on utilise "servo" à chaque passage, au lieu de servpos, que se passe t il du point de vue de la stabilité ?
Exact. La commande servo est effectivement génératrice de jitter si elle est utilisée pour le changement de position et non uniquement à l'initialisation. Mais hélas, cela ne résout pas toujours le problème.

Le mode diagramme de P. Editor depuis ver 6.0.8 permet d'utiliser servopos. c'est la même commande servo mais avec un argument "Mode" qui peut prendre la valeur "initialise" (servo)ou la valeur "update" (donc servopos)
Visiblement dans les photos ci dessus ce n'est pas la version de Prog. editor qui est utilisée !
Il y a toujours un risque à utiliser des outils obsolètes...
 

marc59

New Member
Désolé Marc, je n' ai que des écrans 10 pouces et suis incapable de lire vos ordinogrammes.
Même en me les envoyant par mail et en les zoomant !
Je pose la question bête à la communautée: Que fait un servo qui ne reçoit aucun ordre ?
En général 50 ordres/seconde.
Car j' ai cru comprendre que lorsque le robot suit une ligne il ne commande pas le servo.
Le robot suit un parcourt (2 capteurs suiveurs de lignes)et s’arrête 5 secondes devant un distributeur (capteur). Le distributeur charge un objet sur le robot. Le robot repart et suit de nouveau le parcourt.Il s’arrête quand il détecte le lieu de déchargement.Le servo pousse la pièce et le cycle continue. Mais comme le bras du servo oscille il fait tomber l'objet avant son point d'arrivée.
 
Last edited:

marc59

New Member
Ou peut on trouver P. Editor ver 6.0.8 ?

Au départ, j'avais essayé dans logicator (il est mieux que programming Editor), le servo ne tremblait pas, mais avec celui la c'est le robot avait des accélérations incontrôlables et sortait du parcours, peut être que le pb dans logicator n'est pas très compliquer à résoudre? De souvenir il fallait réduire la vitesse des robots et le seul moyen que j'avais trouvé était en prenant les instructions basic de p edidor (speed).

Je vais rechercher mes anciens pg, je pense que ce sera plus simple. Comment mettre les pg autrement qu'en passant par dropbox ?
 
Last edited:

marc59

New Member
Bonne remarque. Par principe, merci de joindre au post les fichiers .bas ou .plf, ce qui évite à ceux qui veulent répondre de réécrire le programme !
(personnellement je ne fais plus cet effort !)


Pas de question bête !
Si la commande servo est utilisée, elle génère une tâche de fond.
Donc la commande continue à être envoyée.
Le problème maintes fois décrit est que cette commande est sujette au "jitter" (tremblement) du servo. En particulier lorsque le timer1 est sollicité dans le programme.
c'est pour éviter cela qu'on utilise, quand on peut, la commande pulsout qui est à réactualiser toutes les 20 ms environ.
Sinon quand on sait ce que fait le servo (ce qui n'est pas le cas ici...) il est possible de désactiver la commande servo, et le servo reste en position, si l'effort résistant n'est pas trop important.
Aucun effort pendant le déplacement du robot, quelle est cette commande magique ?
 

MGU

Senior Member
Bonjour,

Pour le code, il faut aller sur "Allez en mode avancé", en bas à droite. L'onglet # donne accès aux balises "code" CODE et /CODE entre crochets . Il faut placer le code en copier coller entre les deux.

Ex
Code:
code ici
Les fichiers plf et d'autres formats, sont aussi acceptés dans "Gérer les pièces jointes", en bas de page.

Si je comprends, le robot est vendu par A4, le programme aussi, ils ont probablement une solution au problème.

MM
 
Last edited:

PieM

Senior Member
Aucun effort pendant le déplacement du robot, quelle est cette commande magique ?
Rien de magique : c'est servopos 0, OFF

Ou peut on trouver P. Editor ver 6.0.8 ?
chez votre boulanger habituel ...
vous n'avez pas dû chercher beaucoup! c'est en haut de cette page : Free Sofware et sans doute sur le site de A4.

Je vais rechercher mes anciens pg, je pense que ce sera plus simple
Je ne suis pas certain que le principe d'utiliser des versions obsolètes soit la bonne solution de la part d'un enseignant! Logicator n'est plus maintenu et il est intégré à P.E. 6., avec de nombreuses améliorations.
 

marc59

New Member
Rien de magique : c'est servopos 0, OFF



chez votre boulanger habituel ...
vous n'avez pas dû chercher beaucoup! c'est en haut de cette page : Free Sofware et sans doute sur le site de A4.

Je ne suis pas certain que le principe d'utiliser des versions obsolètes soit la bonne solution de la part d'un enseignant! Logicator n'est plus maintenu et il est intégré à P.E. 6., avec de nombreuses améliorations.
Très bien merci beaucoup, je vais voir cela.
 
Top