Projet BV séquentielle avec palettes au volant

11 sujets de 1 à 11 (sur un total de 11)
  • Auteur
    Messages
  • #3007
    akoirium
    Maître des clés

      Salut…

      Comme mon gp3 est pratiquement prêt pour le 4T, et qu il me reste un peu de temps…
      Je viens d avoir eu l idée de transformer la commande de vitesse en commande séquentielle avec palettes au volant 😉

      J ai fouiller un peu sur le net et je pensse avoir trouver la solution…

      Il suffit d utiliser un gros servomoteur de modelisme de 70kg/cm² comme celui ci :

      https://a.aliexpress.com/_mL58S5Z

      Une carte arduino uno a 10€…

      2 boutons poussoirs… et un peu de programmation à l aide de ce tuto :

      Piloter un servomoteur avec deux boutons poussoirs – Arduino

      Donc voilà… je vais faire quelque tests… et avec un peu de chance ça donnera quelque chose de sympa et exploitable 😉

      • Ce sujet a été modifié le il y a 2 années et 9 mois par akoirium.
      #3018
      akoirium
      Maître des clés

        Salut…
        Bon changement d approche en ce qui concerne le servomoteur…

        Ce qui se fait en modélisme est relativement chère et pas forcément assez caustaud pour cette fonction…

        Je vais donc me fabriquer mon propre servo à l aide d un motoreducteur 12v :

        D un pont en H pour commander la puissance moteur :

        Et de l electronique d’un petit servo modélisme donc la mécanique est HS pour commander le pont en H et récupérer l information de position de l axe du motoreducteur 😉

        Il ne me reste plus qu a faire un montage test pour vérifier le fonctionnement de la programmation puis passer aux choses sérieuses…

        #3021
        akoirium
        Maître des clés

          Salut…

          Quelques news du projet…

          Ca s annonce plustot bien…
          Grâce à un peu d aide sur le forum arduino… j ai un programme qui fonctionne et qui est simple a mettre en application 😉
          Il me reste à tester ça en conditions réelles et améliorer le programme pour ajouter l afficheur au tableau de bord… ainsi que 2 boutons de réglages dans le cas d un changement de boite sur site et ne pas avoir à utiliser un pc pour régler les débattements du servo 😉

          Donc la suite bientôt 😉

          #3022
          akoirium
          Maître des clés

            Re …
            bon ça avance… :

            servobv

            Impression d’une pièce en 3D qui supporteras le servo de modélisme 9g standard ( dont j’ai virer les engrenages et le moteur) sur le motoréducteur que j’ai mis en lien plus haut 😉

            Bref… encore quelques tests sur la table … et je pourrais monter le tout sur le tracteur et tester ca en conditions réelles ;)…

            • Cette réponse a été modifiée le il y a 2 années et 9 mois par akoirium.
            #3025
            akoirium
            Maître des clés

              Salut…

              Des news du projet…

              Bon dejas il faut oublier le motoreducteur que j ai mis en lien…
              Il n est pas asser puissant…

              Je repart donc sur un montage à base de moteur d essuie glace…

              Par contre … ça avance côté programmation…

              Je mettrais le code final ici pour ceux que ça intéresse…

              Pour le fonctionnement… :
              Passage des vitesses avec 2 boutons pousoirs ou palettes au volant
              Afficheur 7 segments à mettre au volant ou au tableau de bord qui affiche la vitesse sélectionnée…
              Et cerise sur le gâteau… 2 autres boutons pousoirs permettant le reglage du programme sans avoir besoin de pc…

              On sélection une vitesse… et avec les bouton de réglages +/- on règle l angle du servo pour cette vitesse… puis avec un double click + ou – , on valide le reglage et on le met en mémoire… 😉

              Le pc ne seras donc utile que si l on passe d une boite 5 à une boite 6 ( un chiffre a modifier dans le programme) 😉

              La suite bientôt 😉

              #3026
              akoirium
              Maître des clés

                Voici le code provisoire pour qui veut tester ….

                Au passage un GRAND MERCI à J-M-L du forum arduino pour ce code :

                
                
                /*
                    Câblage
                
                  PIN
                   0  NC                        (Rx)
                   1  NC                        (Tx)
                   2  pinPalettePlus            pin 2 --- bouton --- GND
                   3  pinPaletteMoins           pin 3 --- bouton --- GND
                   4  NC
                   5  pinServo                  pin 5 --- pin contrôle angle servo
                   6  7 Segment 'a'             Prévoir résistance de limitation de courant (cf https://eskimon.fr/tuto-arduino-205-afficheurs-7-segments)
                   7  7 Segment 'b'             Prévoir résistance de limitation de courant
                   8  7 Segment 'c'             Prévoir résistance de limitation de courant
                   9  7 Segment 'd'             Prévoir résistance de limitation de courant
                  10  7 Segment 'e'             Prévoir résistance de limitation de courant
                  11  7 Segment 'f'             Prévoir résistance de limitation de courant
                  12  7 Segment 'g'             Prévoir résistance de limitation de courant
                  13  NC                        Led interne
                  A0  pinReglagePlus            pin A0 --- bouton --- GND
                  A1  pinReglageMoins           pin A1 --- bouton --- GND
                  A2
                  A3
                  A4
                  A5
                
                */
                
                #include <Servo.h>
                Servo levierVitesse;
                const byte pinServo = 5;
                
                #include <simpleBouton.h> // cf @bricoleau @ http://forum.arduino.cc/index.php?topic=375232.0
                // le changement de vitesse
                const byte pinPalettePlus  = 2;  //Cablage : pin 2 --- bouton --- GND
                const byte pinPaletteMoins = 3;  //Cablage : pin 3 --- bouton --- GND
                simpleBouton boutonPlus(pinPalettePlus);
                simpleBouton boutonMoins(pinPaletteMoins);
                // le réglage de l'angle du servo
                const byte pinReglagePlus = A0;
                const byte pinReglageMoins = A1;
                simpleBouton boutonReglagePlus(pinReglagePlus);
                simpleBouton boutonReglageMoins(pinReglageMoins);
                
                const byte pin7Seg[] = {12, 11, 10, 9, 8, 7, 6};
                const byte chiffres7Seg[] = {0b1110111, 0b0010101, 0b0110000, 0b1101101, 0b1111001, 0b0110011, 0b1011011, 0b1011111, 0b0, 0b0};
                
                void affichageChiffre(byte chiffre) { // de 0 à 7 seulement
                  if (chiffre >= sizeof chiffres7Seg) chiffre = (sizeof chiffres7Seg) - 1;
                  for (byte b = 0; b < sizeof pin7Seg; b++) digitalWrite(pin7Seg[b], bitRead(chiffres7Seg[chiffre], b) ? HIGH : LOW);
                }
                
                int boite[] = {700, 930, 1160, 1390, 1620, 1850, 2080}; // les valeurs d'angles en µs
                const byte nombreDeVitesses = sizeof boite / sizeof boite[0];
                byte vitesse  = 1;  // vitesse par défaut
                
                inline void reglerVitesse() {
                  levierVitesse.writeMicroseconds(boite[vitesse]);
                  Serial.print(F("Vitesse ")); Serial.print(vitesse);
                  Serial.print(F("\tangle ")); Serial.println(boite[vitesse]);
                  affichageChiffre(vitesse);
                }
                
                void vitessePlus() {
                  if (vitesse < nombreDeVitesses - 1) {
                    vitesse++;
                    reglerVitesse();
                  }
                }
                
                void vitesseMoins() {
                  if (vitesse > 0) {
                    vitesse--;
                    reglerVitesse();
                  }
                }
                
                void reglagePlus() {
                  boite[vitesse]++;
                  reglerVitesse();
                }
                
                void reglageMoins() {
                  boite[vitesse]--;
                  reglerVitesse();
                }
                
                void gestionPalettes() {
                  boutonPlus.actualiser();
                  if (boutonPlus.vientDEtreEnfonce()) vitessePlus();
                  else {
                    boutonMoins.actualiser();
                    if (boutonMoins.vientDEtreEnfonce()) vitesseMoins();
                  }
                }
                
                void gestionAngle() {
                  boutonReglagePlus.actualiser();
                  if (boutonReglagePlus.vientDEtreEnfonce()) reglagePlus();
                  else {
                    boutonReglageMoins.actualiser();
                    if (boutonReglageMoins.vientDEtreEnfonce()) reglageMoins();
                  }
                }
                
                void setup() {
                  for (byte b = 0; b < sizeof pin7Seg; b++) pinMode(pin7Seg[b], OUTPUT);
                  Serial.begin(115200);
                  reglerVitesse();
                  levierVitesse.attach(pinServo);
                }
                
                void loop() {
                  gestionPalettes();
                  gestionAngle();
                }
                

                Il me reste à le tester et a le peaufiner mais c est dejas une bonne base 😉

                • Cette réponse a été modifiée le il y a 2 années et 9 mois par akoirium.
                #3028
                akoirium
                Maître des clés

                  Salut…

                  Bon… bonne nouvelle !…

                  Le code fonctionne merveilleusement bien 😉

                  Me reste plus qu bidouiller mon moteur d essuie glace et d installer tout ce monde sur le tracteur 😉

                  Une fois le système fonctionnel… je vous ferais un petit tuto…
                  De la bidouille du servo a la programmation… en passant bien sûr par le câblage 😉
                  Et si tout vas bien, j ajouterais un petit module bleutooth pour pouvoir modifier la programmation directement depuis son smartphone 😉

                  • Cette réponse a été modifiée le il y a 2 années et 8 mois par akoirium.
                  #3032
                  akoirium
                  Maître des clés

                    Petite pièce en impression 3d pour l afficheur de vitesse au volant 😉 …

                    20210803-062600

                    • Cette réponse a été modifiée le il y a 2 années et 8 mois par akoirium.
                    • Cette réponse a été modifiée le il y a 2 années et 8 mois par akoirium.
                    • Cette réponse a été modifiée le il y a 2 années et 8 mois par akoirium.
                    #3036
                    akoirium
                    Maître des clés

                      Premier essai du servo version 2.0 :

                      Ca fonctionne impec !…
                      Il est largement asser puissant pour manipuler la boite 😉

                      Il reste plus qu’à monter tout ce petit monde sur le tracteur et passer aux choses sérieuses 😉

                      #3049
                      akoirium
                      Maître des clés

                        Petit essai de l enssemble avant le montage sur le tracteur 😉 :

                        #3059
                        akoirium
                        Maître des clés

                          Salut 😉

                          Bonne nouvelle !!!

                          Ca fonctionne merveilleusement bien !!!
                          Je ne pouvais pas rêver mieux !!!

                          Voici la vidéo du premier essai :

                          Bon un léger souci de parallélisme depuis la dernière session de roulage… mais rien de méchant !
                          Et du coup… c est super agréable a piloter !…
                          Plus besoin de batailler avec le levier de vitesses mal placé et trop sensible 😉 …

                          • Cette réponse a été modifiée le il y a 2 années et 8 mois par akoirium.
                        11 sujets de 1 à 11 (sur un total de 11)
                        • Vous devez être connecté pour répondre à ce sujet.