Controle 2 Servomoteurs

Bonjour a tous,

J’utilise une raspberry pi zero avec deux servo moteur en rotation continue mg 996r (modifier) en alimentation externe et branché sur le gpio 12(pwm0) et gpio 13(pwm1), raspbian buster , jusqu’il y a quelques jours j’arrivais à contrôler simultanément les deux moteurs en même temps que ça soie via le terminal ou via python, mais maintenant, je ne sais pourquoi je n’arrive plus à les contrôler en même temps , seulement un à la fois et quand je lance la commande du deuxième moteur le premier s’arrête, j’ai fais une reinstalle de raspbian avec toute les mise à jour mais rien n’y fait, la derniere mise a jour de wiringpi(2.52) mais rien n’y fait.J’ai lancer gpio readall mais tout a l’air normale.

±----±----±--------±-----±–±Pi Zero–±–±-----±--------±----±----+
| BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |
±----±----±--------±-----±–±—+±—±–±-----±--------±----±----+
| | | 3.3v | | | 1 || 2 | | | 5v | | |
| 2 | 8 | SDA.1 | ALT0 | 1 | 3 || 4 | | | 5v | | |
| 3 | 9 | SCL.1 | ALT0 | 1 | 5 || 6 | | | 0v | | |
| 4 | 7 | GPIO. 7 | IN | 1 | 7 || 8 | 1 | ALT0 | TxD | 15 | 14 |
| | | 0v | | | 9 || 10 | 1 | ALT0 | RxD | 16 | 15 |
| 17 | 0 | GPIO. 0 | IN | 0 | 11 || 12 | 0 | IN | GPIO. 1 | 1 | 18 |
| 27 | 2 | GPIO. 2 | IN | 0 | 13 || 14 | | | 0v | | |
| 22 | 3 | GPIO. 3 | IN | 0 | 15 || 16 | 0 | IN | GPIO. 4 | 4 | 23 |
| | | 3.3v | | | 17 || 18 | 0 | IN | GPIO. 5 | 5 | 24 |
| 10 | 12 | MOSI | IN | 0 | 19 || 20 | | | 0v | | |
| 9 | 13 | MISO | IN | 0 | 21 || 22 | 0 | IN | GPIO. 6 | 6 | 25 |
| 11 | 14 | SCLK | IN | 0 | 23 || 24 | 1 | IN | CE0 | 10 | 8 |
| | | 0v | | | 25 || 26 | 1 | IN | CE1 | 11 | 7 |
| 0 | 30 | SDA.0 | IN | 1 | 27 || 28 | 1 | IN | SCL.0 | 31 | 1 |
| 5 | 21 | GPIO.21 | IN | 1 | 29 || 30 | | | 0v | | |
| 6 | 22 | GPIO.22 | IN | 1 | 31 || 32 | 0 | ALT0 | GPIO.26 | 26 | 12 |
| 13 | 23 | GPIO.23 | ALT0 | 0 | 33 || 34 | | | 0v | | |
| 19 | 24 | GPIO.24 | IN | 0 | 35 || 36 | 0 | IN | GPIO.27 | 27 | 16 |
| 26 | 25 | GPIO.25 | IN | 0 | 37 || 38 | 0 | IN | GPIO.28 | 28 | 20 |
| | | 0v | | | 39 || 40 | 0 | IN | GPIO.29 | 29 | 21 |
±----±----±--------±-----±–±—+±—±–±-----±--------±----±----+
| BCM | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | BCM |
±----±----±--------±-----±–±Pi Zero–±–±-----±--------±----±----+

Via le terminal :
gpio -g mode 12 pwm && gpio -g mode 13 pwm
gpio pwm-ms
gpio pwmc 192
gpio pwmr 2000
Jusque là pas de problème

Un moteur à la fois:
gpio -g pwm 12 50
gpio -g pwm 12 0
gpio -g pwm 13 50
gpio -g pwm 13 0
Cela fonctionne, les moteurs réagisse correctement

Quand j’essaie
gpio -g pwm 12 50 && gpio -g pwm 13 50
Un moteur fais un mouvement puis s’arrête, l’autre démarre tourne dans un sens puis tourne dans l’autre sens puis s’arrête redémarre etc…

Quand j’essaie
gpio -g pwm 12 50 puis gpio -g pwm 13 50
Le 12 démarre puis tout s’arrête .

j’ai rechercher sur internet mais je ne trouve rien
j’ai tester les gpio avec un tester et quand je lance les commandes il y bien des données qui passe et deux autres module i2c gps et boussole sont connecté et fonctionne impeccablement.
si quelqu’un pourrait m’éclairer ,ça m’aiderais beaucoup parce que la je séche

Bonjour,

Avec quelle commande cela fonctionnait-il ? Il faudrait retrouver comment cela fonctionnait. Il faut 2 processus indépendants.
Par exemple, lancer gpio -g pwm 12 50 && gpio -g pwm 13 50 execute la première commande ET(si la première c’est bien déroulée) la seconde.

Essayer plutôt ceci:
{ gpio -g pwm 12 50 & } ; { gpio -g pwm 13 50 & }

Sinon, créer un script et ajouter & en fin de ligne pour les commandes qui doivent s’exécuter simultanément.

EDIT: https://www.lojiciels.com/comment-combiner-deux-commandes-sous-linux/

A+

Bonjour,

Je viens de tester et les moteurs réagissent de la même façon , un après l’autre, pas en même temps , la commande de demarrage du deuxième arrete le premier et le script que j’avais je l’ai modifié et les réactions ne change pas.

Ce que je ne comprend pas c’est pourquoi cela fonctionnait avant et pourquoi cela ne fonctionne plus et je ne vois pas où chercher le pourquoi de ce problème

hello,

es tu sur du câblage ? ça pourrait pas être un problème de masse ? à priori si t"a rien changé au programme reste le problème matériel !

Le câblage est bon puisque indépendamment les commande fonctionne , la masse est ok , la batterie des moteurs ne perd presque rien lorsque les moteurs tournent,
quand je lance mon script ou les commandes pour les deux moteurs et que je branche le testeur je passe du 0v à 0,3 v par contre quand les commandes sont lancée un moteur à la fois j’obtiens 0.15v