Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - Jean-Luc

Pages: 1 [2] 3 4 ... 90
16
Bibliothèques / Re : Bibliothèque SlowMotionServo
« le: mars 04, 2022, 06:29:20 pm »
Je viens de regarder et ça ne fonctionne pas pour les mêmes raisons : ils utilisent 6 bits pour coder le numéro de broche :

https://github.com/arduino-libraries/Servo/blob/aaaa944c87c4f8b2c827674f90933843a71af19d/src/Servo.h#L95

Donc de 0 à 63. C'est peut-être d'ailleurs pour ça que j'avais moi même limité à un codage sur 6 bits le numéro de broche  :)

Or A10 à A15 correspondent aux numéros 64 à 69

J'ai survolé rapidement le code et je ne vois pas d'autre limitation que ce choix arbitraire. J'ai donc modifié Servo.h et remplacé le 6 par un 7 ...
... et ça fonctionne (j'ai testé A10 et A15).

Ligne 98 :

  uint8_t nbr : 6; // a pin number from 0 to 63
devient

  uint8_t nbr : 7; // a pin number from 0 to 127


17
Bibliothèques / Re : Bibliothèque SlowMotionServo
« le: mars 04, 2022, 05:55:38 pm »
Il reste un soucis avec Servo ?

18
Bibliothèques / Re : Bibliothèque SlowMotionServo
« le: mars 04, 2022, 05:42:06 pm »
Bon finalement j'ai regardé tout de suite.

Et c'est bien une limitation de SMS. Je code le numéro de pin sur 6 bits (de 0 à 63) et 63 est la valeur spéciale NOPIN. Or A9 = 63.

J'avais un bit de rab, J'ai donc porté les numéros de pin à 127, 127 étant la valeur spéciale NOPIN, sans augmenter l'empreinte mémoire d'un object SMS.
Donc ça marche avec A9.

Voilà, c'était bien moi le fautif  :o

La lib modifiée à télécharger ci-dessous.

Je vais faire la release 1.2.1 ce week-end

19
Bibliothèques / Re : Bibliothèque SlowMotionServo
« le: mars 04, 2022, 05:10:45 pm »
Je vais regarder ce WE

20
Bibliothèques / Re : Bibliothèque SlowMotionServo
« le: mars 04, 2022, 04:57:42 pm »
Antoine,

il y a zéro chance que le SlowMotionServo que tu utilisais il y a un an fonctionne mieux que la version actuelle.

Ceci pour la simple raison que SMS a été mis à jour la dernière fois en décembre 2018 !

Par ailleurs, structurellement, il y a zéro chance que SMS soit fautif pour la simple raison que son interaction avec le servo et les broches passent exclusivement par des appels à Servo. Sauf que ... C'est limité à des numéros de pins de 0 à 63 et que 63 est une valeur spéciale pour dire « pas connecté ». Toujours regarder avant de dire n'importe quoi :)

En revanche, il est possible que la bibliothèque Servo ait changé entretemps car la dernière version date de septembre 2021.

21
Bibliothèques / Re : Bibliothèque SlowMotionServo
« le: mars 04, 2022, 12:23:39 am »
Bonsoir Antoine

SlowMotionServo fonctionne là où Servo fonctionne.


22
Bibliothèques / Re : Bibliothèque SlowMotionServo
« le: février 24, 2022, 06:59:34 pm »
Super !

J'ai pas fait grand chose. ESP32Servo a exactement la même API que Servo. J'ai juste mis dans SlowMotionServo.h :

#ifdef ARDUINO_ARCH_ESP32
#include <ESP32Servo.h>
#else
#include <Servo.h>
#endif

à la place de :

#include <Servo.h>

23
Bibliothèques / Re : Bibliothèque SlowMotionServo
« le: février 24, 2022, 03:28:29 pm »
Et donc, Antoine, tu confirmes que SlowMotionServo fonctionne sur ESP32 ?

24
Bibliothèques / Re : Bibliothèque SlowMotionServo
« le: février 23, 2022, 07:09:42 pm »
ESP32Servo est dispo dans le gestionnaire de bibliothèque. L'auteur est Kevin Harrington

Ahhh zut

Je t'ai envoyé une vielle version  :(. Voici la version qui est sur le gestionnaire (et donc avec setReverted)


25
Trucs & astuces / Re : sous-programme répétitifs
« le: février 23, 2022, 06:06:55 pm »
Merci

Bon c'est quand même tout à plat tout ça. Il n'y a pas de mystère. Pour moins dupliquer du code, il faut normaliser les données et sans doute passer les constantes en données.

La première chose que je ferais c'est de définir une struct ou une class (mieux) décrivant les objets que vous utilisez. Par exemple certains canton ont un feu rouge donc :

class Feu {
    byte rouge;
    byte orange;
    byte vert;

...
};


Pour les cantons :

class Canton {
    boolean circuler; //memoire inter "autorisation de circuler canton"
    boolean arret; //memoire pas inter "autorisation de circuler canton"
    byte potar;//consigne de vitesse canton
    unsigned long datetempovitesse;
    ...
public:
    Canton(const byte inPotar, ...) : circuler(false), arret(false), potar(inPotar), datetempovitesse(0), ...
    ...
};

Ensuite on instancie autant de cantons que nécessaire.

Canton G1(A0, ...);
Canton C1(A1, ...);

Mutualiser les interruptions doit être faisable mais il faudrait savoir de quelle broche vient l'interruption (ie l'avoir en donnée). Il faudrait faire une version modifiée de PinChangeInt car la version commune fait exactement ce que vous ne voulez pas : distribuer une interruption commune à 8 pins sur 8 fonctions alors qu'il faudrait  récupérer le canton correspondant à la pin et avec un seul code traiter le canton en question.

Une fois les objets canton créés, c'est facile de mutualisme le code des lignes 312 à 419 mais je vois des irrégularité dans l'init du grafcet
438 à 450, idem

Les aiguilles je sais pas, la topologie de votre réseau est câblée en dur dans le code.

Idem, il semble qu'il ait des cas particuliers dans la gestion de chaque canton (j'ai diagonalisé, il y a plus de 1000 lignes de code) mais les différents cantons appartiennent-il à des catégories en nombre limité ? Si oui, en utilisant une classe de base Canton avec une ou plusieurs méthodes virtuelles et une classe dérivée par catégorie permet  de mutualiser la structure du code et d'en écrire un minimum.

26
Bibliothèques / Re : Bibliothèque SlowMotionServo
« le: février 23, 2022, 05:01:19 pm »
Antoine,

Voici SlowMotionServo modifié pour utiliser la lib ESP32Servo (lib qu'il faut donc installer). J'ai pas trop le temps de tester mais ça compile. Dis moi à l'occasion si ça fonctionne.

27
Bibliothèques / Re : Bibliothèque SlowMotionServo
« le: février 23, 2022, 04:47:40 pm »
Ça n'a pas l'air trop difficile à faire.

Antoine, comment comptes-tu commander le servo, je ne suis pas sur qu'une impulsion en 3.3V soit reconnue, il faudrait un ampli.

28
Trucs & astuces / Re : sous-programme répétitifs
« le: février 23, 2022, 04:44:43 pm »
Bonjour,

Difficile de répondre sans en savoir un peu plus. Les capteurs se matérialisent comment ? Un numéro de broche ?

Pouvez vous mettre ci-dessous une paire d'exemplaire de vos 19 bouts de programme ? (sans oublier les balises code)

29
Vos projets / Re : Re : Mes servos chantent même à l'arrêt
« le: février 23, 2022, 09:32:55 am »
Je ne sais pas ce que fait attach/detach, je n'ai jamais essayé.
Est-ce que le moteur reste alimenté ? Est-ce qu'il continue à consommer du courant ?

detach coupe le pulse de commande. Le servo n'est plus asservi mais reste alimenté.

30
Vos projets / Re : Re : Mes servos chantent même à l'arrêt
« le: février 23, 2022, 09:29:00 am »
Bonjour,

Le montage que j'ai présenté a été motivé par le fait qu'il pouvait y avoir des mouvements incontrôlés du servo lors de la mise sous tension du décodeur.
Le fait de démarrer le signal PWM avant de mettre le moteur sous tension a résolu ce problème,  d'où ce schéma qui permet de contrôler l'alimentation.

J'ai également rencontré ce problème qui se règle est tirant le signal de contrôle du servo au 5V via une résistance de 10k par exemple.

Il semble que ce mouvement incontrôlé soit dû à l'électronique du servo qui pense voir un créneau sur le signal quand la tension monte à l'allumage.

Cordialement.

Pages: 1 [2] 3 4 ... 90