IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Besoin d'aide pour un projet de détection de passage avec Laser KY-008 et capteur LDR


Sujet :

Arduino

  1. #81
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    3 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 3 078
    Par défaut
    Dite moi quelle entrée vous souhaitez utiliser que je fasse le câblage ? précisez moi également si le commun est en 0V ou en +5V ?
    Pour l'interrupteur d'activation / désactivation des piste on va utiliser les broches suivantes :

    A12 - ACTIVATION / DÉSACTIVATION PISTE 1
    A13 - ACTIVATION / DÉSACTIVATION PISTE 2
    A14 - ACTIVATION / DÉSACTIVATION PISTE 3
    A15 - ACTIVATION / DÉSACTIVATION PISTE 4

    Le câblage de l'interrupteur PIN Axx --- broche 1 interrupteur ---o ___ o------ broche 2 interrupteur -------- GND
    La pin sera mise en INPUT_PULLUP. Lorsque l'interrupteur est sur ON, il faut qu'on soit connecté à GND.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Il me semblait que pour gérer la luminosité ambiante, il fallait utiliser les entrées analogiques ? sauf si mes capteurs n'ont que des sorties numériques (3 broches)!
    Je pense que vous pouvez rester en numérique, la luminosité ambiante ne devrait pas gêner avec le montage que vous avez effectué. De plus comme vous le dites on dirait que sur votre photo vous n'avez que 3 broches de sortie pour le capteur. Votre capteur dispose aussi d'un potentiomètre de réglage du seuil de déclenchement - normalement on n'a pas besoin d'y toucher mais vous pourriez le mettre assez haut pour que ce soit un éclairage direct fort qui déclenche. Pour le moment ne touchez pas.

    Nom : capteur.jpg
Affichages : 70
Taille : 448,7 Ko

  2. #82
    Invité de passage
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2026
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Janvier 2026
    Messages : 112
    Par défaut
    Ok pas de problème je fais ça
    Merci

  3. #83
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    3 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 3 078
    Par défaut
    Une fois que vous aurez rajouté les 4 interrupteurs et avant de passer à la gestion des moteurs, pouvez vous vérifier une nouvelle fois que tous les boutons fonctionnent avec ce code:

    Escargot2.zip

    Ouvrez le moniteur série à 115200 bauds et testez :

    * les 8 fins de course
    * les 12 passages laser
    * la roue codeuse (vous devez voir le numéro affiché et il doit changer lorsque vous cliquez pour modifier le chiffre - j'ai supposé que c'était câblé dans l'ordre 1 2 4 8)
    * les 4 interrupteurs d’activation / désactivation d’une piste.

    Une piste désactivée aura les 2 bandeaux sur le côté éteints et une croix à la place de son numéro.


    ça reste testable pour ceux qui veulent regarder sur wokwi

    https://wokwi.com/projects/453938120434751489

    Si tout cela fonctionne comme il faut alors on passe au choses sérieuses.



    PS: la liste des broches mise à jour:

    Nom : lesPin.png
Affichages : 65
Taille : 908,1 Ko

  4. #84
    Invité de passage
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2026
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Janvier 2026
    Messages : 112
    Par défaut
    Citation Envoyé par Jay M Voir le message
    Une fois que vous aurez rajouter les 4 interrupteurs et avant de passer à la gestion des moteurs, pouvez vous vérifier une nouvelle fois que tous les boutons fonctionnent avec ce code
    j'ai tout testé, et tout fonctionne à merveille. il y avait juste la variable sur le nombre de led du bandeau qui était à 10. je l'ai remis à 28 et tout est nickel.
    Pour l'afficheur, la croix est une super idée . merci beaucoup
    c'est en bonne voie

  5. #85
    Invité de passage
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2026
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Janvier 2026
    Messages : 112
    Par défaut
    Je viens de me rendre compte que les moteurs chauffe anormalement. Je pense qu’il faudrait couper le ENABLE lorsque l’on utilise pas les moteurs. Merci

  6. #86
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    3 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 3 078
    Par défaut
    Citation Envoyé par jojodu71 Voir le message
    Je viens de me rendre compte que les moteurs chauffe anormalement. Je pense qu’il faudrait couper le ENABLE lorsque l’on utilise pas les moteurs. Merci
    Votre enable doit il être HIGH ou LOW quand les moteurs sont coupés ?
    Dans le fichier Globals.h il y a 2 paramètres (ENABLE_ON et ENABLE_OFF) pour cela, il faut mettre la bonne valeur, peut être est-ce inversé par rapport à mon simulateur.

    Pour le moment c'est comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // Pour les moteurs
    const int ENABLE_OFF = HIGH;
    const int ENABLE_ON = LOW;
    peut-être que vos drivers ils faut mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // Pour les moteurs
    const int ENABLE_OFF = LOW;
    const int ENABLE_ON = HIGH;

  7. #87
    Invité de passage
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2026
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Janvier 2026
    Messages : 112
    Par défaut
    Citation Envoyé par Jay M Voir le message
    Votre enable doit il être HIGH ou LOW quand les moteurs sont coupés ?
    Dans le fichier Globals.h il y a 2 paramètres (ENABLE_ON et ENABLE_OFF) pour cela, il faut mettre la bonne valeur, peut être est-ce inversé par rapport à mon simulateur.

    Pour le moment c'est comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // Pour les moteurs
    const int ENABLE_OFF = HIGH;
    const int ENABLE_ON = LOW;
    peut-être que vos drivers ils faut mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // Pour les moteurs
    const int ENABLE_OFF = LOW;
    const int ENABLE_ON = HIGH;
    bonjour, j'ai effectivement inversé et mis :
    const int ENABLE_OFF = LOW;
    const int ENABLE_ON = HIGH;
    et ils ne chauffent plus.
    merci beaucoup

  8. #88
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    3 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 3 078
    Par défaut
    Citation Envoyé par jojodu71 Voir le message
    bonjour, j'ai effectivement inversé et ils ne chauffent plus.
    Très bien, je prends note.

    Autres petites questions concernant votre driver:

    1/ Couper le pin Enable d’un driver alors que le moteur pas à pas est en train de tourner n’est généralement pas recommandé car pour tout système mécanique il y a une inertie.
    Selon le type de driver et le moteur, cela peut provoquer un mouvement incontrôlé du rotor, des vibrations ou un blocage brutal.

    ==> Savez vous si votre driver supporte un arrêt en sécurité et que le moteur peut être immobilisé mécaniquement ou via frein intégré ?

    2/ Quand on coupe l'enable, le moteur n’étant plus alimenté, il peut aussi perdre sa position mais je suppose que vous avez un montage où ça ne joue pas, le poids des escargots n'entrainant pas le moteur ?

  9. #89
    Invité de passage
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2026
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Janvier 2026
    Messages : 112
    Par défaut
    Citation Envoyé par Jay M Voir le message
    Savez vous si votre driver supporte un arrêt en sécurité et que le moteur peut être immobilisé mécaniquement ou via frein intégré ?
    Je suis incapable de vous renseigner sur ces informations. Tout ce que je peux vous dire c'est que le moteur n'ai pas freiné.
    je vous joint une photo du driver si cela peut vous aider.

    Citation Envoyé par Jay M Voir le message
    2/ Quand on coupe l'enable, le moteur n’étant plus alimenté, il peut aussi perdre sa position mais je suppose que vous avez un montage où ça ne joue pas, le poids des escargots n'entrainant pas le moteur ?
    Lorsque le moteur n'est pas habilité, je peux déplacer facilement le chariot de l'escargot à la main. Le déplacement est aisé, mais pas au point d'avoir un jeu suffisant pour qu'il se déplace tu seul au point de perdre sa position. Quand bien même cela arriverait et qu'il pourrait éventuellement se décaler de quelque millimètres , ça reste un jeu pour enfant où il n'y a aucun enjeux au final si ce n'est que de jouer ensemble, donc pas inquiétude à ce sujet.
    Encore pour une question de limiter les coûts, je n'ai pas opté pour un système mécanique de haute précision, mais simplement un guide en bois avec une rainure sur lequel vient coulisser un chariot à l'aide de deux roues en plastique. le chariot quant à lui est relié au moteur par une courroie crantée qui est maintenue en tension par un dispositif de tension de courroie à l'opposé du moteur.

    Je vous joint également des photos du chariot et du guide pour que vous puissiez vous rendre compte du peu de précision du système ainsi que les moteurs et les systèmes de tension de courroie.

    merci et à bientôt

  10. #90
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    3 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 3 078
    Par défaut
    OK - avec le jeu des courroies crantées ça devrait aller

    Voici une première version du jeu avec la gestion des moteurs.

    Escargot3.zip

    j'ai bien mis 28 leds et mis les ENABLE de façon à ce que ce soit adapté à votre montage donc vous n'avez qu'à compiler et charger sur votre carte.

    Comme c'est le premier test grandeur nature, préparez vous à débrancher la prise au cas où

    le bouton RAZ sur la broche A5 fait un "homing" donc vous devriez voir les escargots aller vers le départ et s'y arrêter.
    le bouton COMMENCER sur la pin 44 lance le jeu, la LED verte doit s'allumer

    Pour la roue codeuse et son influence sur le nombre de pas, voici la formule :

    Quand vous gagnez un point, l'escargot avance de 200 pas que l'on multiplie par la valeur de la facteurVitesse divisé par 3
    le facteurVitesse c'est la valeur de la roue codeuse + 1

    dans le code vous verrez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            targetPosition += nbPasPourUnPoint * facteurVitesse / 3.0;
    ça veut dire que
    - si votre roue codeuse est entre 0 ou 1, le facteur vitesse vaut 1 ou 2 et donc vous ferez moins de 200 pas par point ==> on ralentit le jeu
    - si votre roue codeuse vaut 2, le facteur vitesse vaut 3 et donc vous ferez 200 pas par point ==> vitesse normale
    - si la roue codeuse est entre 3 et 9, le facteur vitesse est entre 4 et 10 et la division par 3 donne un nombre plus grand que 1 et donc vous ferez plus de 200 pas par point ==> vitesse accélérée.

    Pour commencer je vous propose donc de mettre la roue codeuse à 2, vitesse normale.

    la détection de l'arrivée de l'escargot doit aussi être fonctionnelle et la piste gagnante reste allumée alors que les autres s'éteignent. ça dure 5 secondes et ensuite tout se rallume et vous pouvez relancer un homing.

    La gestion des pistes désactivées doit être aussi fonctionnelle.

    Il n'y a pas d'animation pour le moment sur le bandeau lorsqu'on marque des points.


    Dites moi si ça a l'air de fonctionner !

  11. #91
    Invité de passage
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2026
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Janvier 2026
    Messages : 112
    Par défaut
    merci beaucoup pour cette troisième version du code.
    j'ai chargé le code dans l'arduino, et plusieurs soucis sont à noter :
    1- le retour se fait automatiquement dès que l'on appui sur le bouton RAZ, alors que le maintient sur le bouton est nécessaire.(pour des raison de sécurité)
    2- Concernant le retour en arrière, les escargots recule mais en vitesse lente au lieu de rapide
    3- lors du retour en arrière, l'escargot qui est sur la ligne d'arrivée, tente d'avance au delà de la limite maxi de la piste avant de reculer au moment ou un autre escargot est sur la butée de depart. ce qui engendre un effort important sur la courroie avec un risque de casse
    4- Encore sur le retour en arrière, si des escargots sont dejà en position de depart et que l'on commande de RAZ, ils essaient de reculer au dela de la limite maxi en retour ce qui peut également provoquer une dégradation du système.
    l’idéal des butées avant et arrière , au delà des informations pour l'arrivée ou le départ, elles sont surtout là pour servir de fin de course de sécurité. Lorsque la butée avant est actionnée, on ne doit pouvoir commander l'avance du moteur et à l'inverse lorsque la butée arrière est actionnée, on ne doit pas pouvoir revenir plus loin.
    5- lors du lancement du cycle, les 4 escargots quittent les butées de départ ( 200 pas je pense soit presque 10cm). C'est un peu trop, 2 centimètre suffirait. cette solution avait eté donné par Chat GPT car il avait un dysfonctionnement si les escargots étaient sur les butées de départ.et ce nécessaire avec votre code ?
    6- comme pour le retour , l'acceleration et la vitesse est trop faible. j'ai modifié les variables suivante et c'est mieux :
    const float ACCELERATION = 1500;
    const float VITESSE_MAX = 2000;
    7- concernant l'avance par point, il y a des accoups sur le cumul des points pour les rouges et jaunes. en fait, l'escargot se déplace plus vite que la balle.

    les points positifs ( car oui il y en a ):
    la gestion de la roue codeuse fonctionne même si il n'y a pas une grosse variante entre le 1 et le 9 (mais c'est suffisant. j'ai voulu mettre cette option de roue codeuse pour adapter le déplacement des escargots en fonction de l'age des enfants. plus ils sont petits, et plus j'augmente la vitesse des pas, sinon les partie sont interminable . A l'inverse, si c'est des adultes , je diminue la vitesse pour aue la partie soit un peu plus longue.

    le clignotement en vert de la matrice led et l'extinction des rubans led des pistes fonctionnent très bien

    voilà pour l'essai. rien de bien méchant mis à part la sécurisation du déplacement des moteurs en fin de course avant et arrière
    tu avances bien malgré que tu n'ais pas le jeu sur place pour faire les essais, félicitations tu es très fort

  12. #92
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    3 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 3 078
    Par défaut
    OK merci pour le test poussé - je regarde tout cela

  13. #93
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    3 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 3 078
    Par défaut
    voici une version 4 à tester

    Escargot4.zip

    • le maintien du bouton RAZ est maintenant nécessaire
    • la vitesse de jeu est mise à 2000, un point donne toujours 200 pas si la roue codeuse est à 2 (au dessus plus, en dessous moins avec la formule dont on a parlé et qu'on pourra affiner).
    • la vitesse de retour à zéro est 4x la vitesse de jeu donc 8000. En pratique la bibliothèque AccelStepper est incapable de faire cette vitesse, donc je ne suis pas sûr que vous verrez une différence.
    • j'ai implémenté une vitesse constante pour éviter les à coups quand on cumule 2 ou 3 points de suite et que l'escargot est déjà en mouvement suite au premier point. (la bibliothèque AccelStepper recalcule la vitesse lorsqu'on donne un nouvel objectif de position et donc ça influençait le mouvement)
    • il ne devrait plus y avoir de tentative de franchir un capteur de fin de course dans le mauvais sens
    • quand on appuie sur le bouton pour commencer, ça démarre le jeu et la position actuelle des escargots est considérée comme étant la position 0. Ils ne bougent pas et le jeu est prêt.
    • si on appuie à nouveau sur le bouton commencer en cours de partie, ça arrête le jeu.


    Concernant la vitesse, pour le premier test je vous conseille de remettre 250 au lieu de 2000 - à vous d'affiner ensuite en fonction de ce qu'il se passe en réalité.

    QUESTION: votre driver est il configuré en micro-pas ? combien de pas faut-il pour faire un tour de moteur et à quelle distance linéaire cela correspond ?

  14. #94
    Invité de passage
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2026
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Janvier 2026
    Messages : 112
    Par défaut
    Citation Envoyé par Jay M Voir le message
    voici une version 4 à tester
    [*] le maintien du bouton RAZ est maintenant nécessaire
    OK ça fonctionne

    Citation Envoyé par Jay M Voir le message
    [*] la vitesse de jeu est mise à 2000, un point donne toujours 200 pas si la roue codeuse est à 2 (au dessus plus, en dessous moins avec la formule dont on a parlé et qu'on pourra affiner).
    Un peu rapide je pense

    Citation Envoyé par Jay M Voir le message
    [*] la vitesse de retour à zéro est 4x la vitesse de jeu donc 8000. En pratique la bibliothèque AccelStepper est incapable de faire cette vitesse, donc je ne suis pas sûr que vous verrez une différence.
    Cette vitesse me convient parfaitement par contre, c'est peut être l’accélération qui est trop brutale. a voir

    Citation Envoyé par Jay M Voir le message
    [*] j'ai implémenté une vitesse constante pour éviter les à coups quand on cumule 2 ou 3 points de suite et que l'escargot est déjà en mouvement suite au premier point. (la bibliothèque AccelStepper recalcule la vitesse lorsqu'on donne un nouvel objectif de position et donc ça influençait le mouvement)
    Les accoups sont plus importants que sur l'ancienne version étant donné que les escargost avancent encore plus vite que la balle . lorsque j'aurais ajusté la vitesse, le problème devrait s'estomper.

    Citation Envoyé par Jay M Voir le message
    [*] il ne devrait plus y avoir de tentative de franchir un capteur de fin de course dans le mauvais sens
    c'est effectivement le cas. en revanche il n'y a plus de retour en arrière lorsque l'escargot est sur la butée d'arrivée. il n'y a plus d'animation d'arrivée non plus. par contre, lorsque je libère la butée en déplaçant l'escargot à la main, l'animation se met à fonctionner et après le retour en arrière est possible.

    Citation Envoyé par Jay M Voir le message
    [*] quand on appuie sur le bouton pour commencer, ça démarre le jeu et la position actuelle des escargots est considérée comme étant la position 0. Ils ne bougent pas et le jeu est prêt.
    à la première partie lors de la mise sous tension du jeu, les escargots se déplacent d'un pas. ensuite pour toutes les parties suivantes, ils démarrent bien de la butée de départ.

    Citation Envoyé par Jay M Voir le message
    [*] si on appuie à nouveau sur le bouton commencer en cours de partie, ça arrête le jeu.
    Ca , ca fonctionne

    Citation Envoyé par Jay M Voir le message
    QUESTION: votre driver est il configuré en micro-pas ? combien de pas faut-il pour faire un tour de moteur et à quelle distance linéaire cela correspond ?
    oui, le driver est configuerer en micro pas : les commutateur sont réglés ainsi (de 1 à 6) :101110
    les moteurs font 1 tour complet en 400 pas et déplace l'escargot de 40mm

    pour obtenir 1 tour complet avec 1 points, il faut que la roue codeuse soit réglée sur 5

  15. #95
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    3 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 3 078
    Par défaut
    Citation Envoyé par jojodu71 Voir le message
    lorsque j'aurais ajusté la vitesse, le problème devrait s'estomper.
    OK on va conserver comme cela pour le moment, vous me direz si vous n'arrivez pas à adapter la vitesse. au lieu du x4 on pourrait prévoir une vitesse dédiée pour le retour et une vitesse pour le jeu.


    Citation Envoyé par jojodu71 Voir le message
    en revanche il n'y a plus de retour en arrière lorsque l'escargot est sur la butée d'arrivée. il n'y a plus d'animation d'arrivée non plus. par contre, lorsque je libère la butée en déplaçant l'escargot à la main, l'animation se met à fonctionner et après le retour en arrière est possible.
    OK c'est un bug, il faut que je regarde pourquoi.

    Pouvez vous installer cette version (attention j'ai mis la vitesse à 250)

    Escargot5.zip

    et ouvrir le terminal série à 115200 bauds et tester. Si le bug subsiste, activez juste deux pistes (pour limiter les messages) et faites un jeu puis postez le contenu du terminal série pour avoir les traces de ce qu'il s'est passé.

    Citation Envoyé par jojodu71 Voir le message
    à la première partie lors de la mise sous tension du jeu, les escargots se déplacent d'un pas. ensuite pour toutes les parties suivantes, ils démarrent bien de la butée de départ.
    je pense que ce n'est pas dû au code car je ne fais pas de demande en ce sens. Il se peut que ce soit vos drivers qui font cela à la première mise sous tension. Je suppose que ce n'est pas un drame s'il n'y a qu'un pas.


    Citation Envoyé par jojodu71 Voir le message
    les moteurs font 1 tour complet en 400 pas et déplace l'escargot de 40mm
    pour obtenir 1 tour complet avec 1 points, il faut que la roue codeuse soit réglée sur 5
    OK merci pour l'info

  16. #96
    Invité de passage
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2026
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Janvier 2026
    Messages : 112
    Par défaut
    j'ai testé la version 5 et voici le retour :
    - le recul ne se fait toujours pas lorsque la ligne d'arrivée est atteinte, et l'animation ne se lance pas. si je décale l'escargot pour qu'il lâche la butée d'arrivée, le retour fonctionne et l’animation se lance mais ne s’arrête qu'une fois le chariot en position de départ.
    - toujours ce bug à la première mise en route . si pas possibilité de résoudre ce dysfonctionnement cela ne gène pas pour la suite
    - je vous joint le rapport de fonctionnement du moniteur série, par contre, je vous l'ai copié dans un fichier word car il y a énormément de ligne. c'est surprenant car il affiche des lignes avec "Piste 1 - FdC Arrivée" alors que la butée n'est pas actionnée !
    - lorsque je demande un RAZ, les chariots qui ne sont pas sur la butée d'arrivée recul lentement. si je décale le chariot de la butée d’arrivée, tous les chariots recul en rapide

    ce n'est pas simple cette affaire et désolé de ne pas pouvoir vous être d'une aide plus précieuse.
    encore merci à vous pour votre patience et votre dévouement
    A bientôt

  17. #97
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    3 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 3 078
    Par défaut
    Merci pour les détails du debug, ça a mis en évidence une bêtise de copier coller.

    Essayez ce code:

    Escargot6.zip

  18. #98
    Invité de passage
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2026
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Janvier 2026
    Messages : 112
    Par défaut
    Bonjour,
    C’est parfait, tout fonctionne à merveille. Il reste juste à adapter les vitesses et voir pour les animations.
    Par contre, quelle différence il y aura entre votre code et mon ancien code avec mes anciens capteurs infrarouge ? Le système va-t-il fonctionner aussi bien à l’intérieur que en extérieur ? La luminosité risque-t-elle d’influencer le fonctionnement ?
    Merci pour tout.
    Cordialement

  19. #99
    Invité de passage
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Janvier 2026
    Messages
    112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Janvier 2026
    Messages : 112
    Par défaut
    Je viens de me rendre compte d'une chose qui n'ait pas forcément dérangeant en soi, mais en retour rapide, plus il y a de chariot arrivée en position de départ, et plus ceux qui sont toujours en déplacement vont vite.
    voilà , c'est juste pour info
    Serait-il possible également de rajouter des commentaires sur les différentes fonctions et actions du code afin qu'un novice comme moi puisse arriver à comprendre. merci

  20. #100
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    3 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 3 078
    Par défaut
    Citation Envoyé par jojodu71 Voir le message
    Je viens de me rendre compte d'une chose qui n'ait pas forcément dérangeant en soi, mais en retour rapide, plus il y a de chariot arrivée en position de départ, et plus ceux qui sont toujours en déplacement vont vite.
    Oui c'est parce que la vitesse max que vous choisissez est sans doute trop grande pour les capacité de l'Arduino MEGA. Donc chaque appel à la fonction run qui vérifie s'il faut déplacer d'un pas le moteur fait effectivement un pas. Quand vous avez 4 moteurs. Moins vous avez de moteur à faire bouger, plus le code revient vite à la boucle suivante et donc les pas sont plus rapprochés.

    Si vous aviez une vitesse de retour moins élevée la vitesse serait mieux respectée et vous ne verriez pas d'accélération.


    Citation Envoyé par jojodu71 Voir le message
    Serait-il possible également de rajouter des commentaires sur les différentes fonctions et actions du code afin qu'un novice comme moi puisse arriver à comprendre. merci
    Oui je vais faire un peu de nettoyage et commenter.

    Voici une version avec un clignotement du bandeau lumineux pendant que le moteur avance / lorsqu'on marque des points :

    Escargot7.zip


    différence il y aura entre votre code et mon ancien code avec mes anciens capteurs infrarouge ?
    Votre ancien code a une architecture qui bloquait la loop ce qui conduisait comme vous l'aviez dit à

    des fonctionnements parasites et intempestifs (tel que le scintillement ou le clignotement des leds alors qu'elle ne devrait pas, ou l'arrêt du cycle alors que les capteurs de fin de course ne sont pas actionné, etc...).
    vous n'aviez pas vraiment de gestion anti-rebond, les délais absorbaient sans doute ce problème, mais peut être que parfois vous comptiez plus de points que nécessaire.

    Dans le nouveau code je n'ai aucun délai qui bloque la loop. Elle tourne en permanence et une machine à états gère ce qu'il se passe sur une piste donnée. J'ai créé aussi quelques classes pour simplifier la lecture du code ou la déclaration des pistes.

    Pour ce qui est du laser, je pense que vous ne devriez plus avoir de souci avec votre montage et le mode de lecture avec anti-rebond qui a été adopté - mais faudra tester pour voir si c'est le cas.

Discussions similaires

  1. Besoin d'aide pour un projet graphique de concentration
    Par chacha2007 dans le forum LabVIEW
    Réponses: 0
    Dernier message: 21/11/2007, 21h18
  2. besoin d'aide pour un projet en C
    Par chahine59 dans le forum C
    Réponses: 8
    Dernier message: 06/01/2007, 00h23
  3. Besoin d'aide pour un projet en vb6
    Par Tyrael62 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 14/01/2006, 06h25
  4. Besoin d'aide pour un projet
    Par ZiMo dans le forum Linux
    Réponses: 9
    Dernier message: 24/10/2005, 01h28
  5. Besoin d'aide pour un projet de jeu en ligne
    Par FLEO dans le forum Projets
    Réponses: 1
    Dernier message: 21/10/2005, 09h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo