Partage
  • Partager sur Facebook
  • Partager sur Twitter

MOOC Arduino Perfectionnement

Perfectionnez-vous dans la programmation Arduino

    13 mars 2016 à 21:46:08

    Bonsoir,

    Alors la question est épineuse. 

    Tout d'abord, il est souvent plus simple d'utiliser des Shields prévus pour l'arduino. En effet la connectique est simplifié, et des bibliothèques sont prévues pour vous aider à gérer la bébête.

    De plus, le shield proposé par thermo_nono contient un emplacement pour une carte SD.

    Donc personnellement, j'opterai pour cette solution.

    Maintenant, je comprends votre point de vue : vous avez déjà un GPS.

    La difficulté va donc être double dans votre cas : comment connecter correctement votre GPS avec l'Arduino (depuis l'usb ou la rs232), et comment gérer le protocole de communication (trame GCA ou RMC ou autre, vitesse d'envoi des infos, codage et décodage, stockage) avec un programme Arduino.

    S'il existe une bibliothèque Arduino pour votre GPS, vous la trouverez sur le WEB. Sinon, il vous faudrait explorer le soft qui gère votre GPS sur le PC afin d'y trouver la gestion du protocole. ou enfin, vous pencher sur le protocole et développer une bibliothèque (ou un programme) qui permet de le gérer sur Arduino. 

    Rien de tout ceci n'est infaisable, mais cela nécessite une solide connaissance en programmation et en connectique.

    Je sais, je n'ai pas vraiment répondu à la question, mais il est difficile d'imaginer la somme de travail de recherche que nécessite ce projet.

    En tous cas, l'Arduino est tout à fait capable de répondre à votre besoin.

    J'espère tout de même vous avoir aidé un peu...

    Nanomaitre

    • Partager sur Facebook
    • Partager sur Twitter
    "Personnellement, je suis toujours prêt à apprendre, bien que je n'aime pas toujours que l'on me donne des leçons." (Churchill)
      14 mars 2016 à 14:13:12

      Voici le petit bazar qui me sert à tester toutes les possibilités du shield Adafruit préconisé par notre mentor.

      Au premier plan, un tout petit moteur Pas à Pas. J'ai essayé de le faire fonctionner en m'aidant de la notice du shield trouvée sur le site de Adafruit, mais sans l'aide de Nanomaître :)   je nage complètement. Pour les autres moteurs, ça roule. En tant que modéliste, je pencherai plutôt pour employer des moteurs un peu plus "modernes", les brushless. Mais ils obligent à utiliser un contrôleurs et sont un peu plus coûteux.

      • Partager sur Facebook
      • Partager sur Twitter
        14 mars 2016 à 14:18:24

        Bonjour

        Merci pour votre éclairage.Après quelques recherches il me semble que la solution passe par une carte Uno, un shield carte SD , un convertisseur de tension RS232 TTL et la librairie TinyGPS pour interpréter les messages NMEA . Plus en effet un minimum de programmation . Etant ancien informaticien et faisant à mes heures perdues un peu de Python je devrais surmonter . Après tout qui ne tente rien n'a rien ( N'est-ce pas Lukas 😉?)

        Bertrand

        • Partager sur Facebook
        • Partager sur Twitter
          14 mars 2016 à 15:11:29

          Finalement, en m'inspirant d'exemples trouvés sur le net et en relisant plusieurs fois la notice d'Adafruit, j'ai réussi à faire fonctionner (je n'ai pas dit BIEN fonctionner !) le petit moteur Pas à Pas de récup. avec le bout de programme ci-dessous :

          // Shield Adafruit essai moteur P à P.

          #include <Wire.h> //bibliothèque pour la communication I2C
          #include <Adafruit_MotorShield.h> //bibliothèque pour le shield
          Adafruit_MotorShield shieldAda = Adafruit_MotorShield(); //création de l'objet shield
          Adafruit_StepperMotor *moteur = shieldAda.getStepper(100, 2); //création de l'objet moteur par pointeur et repérage du numéro

          void setup()
          {
            shieldAda.begin(); //On lance la communication avec le shield
          }

          void loop() {
            moteur->step(100, FORWARD, SINGLE);
            moteur->step(100, BACKWARD, SINGLE);

            moteur->step(100, FORWARD, DOUBLE);
            moteur->step(100, BACKWARD, DOUBLE);

            moteur->step(100, FORWARD, INTERLEAVE);
            moteur->step(100, BACKWARD, INTERLEAVE);

            moteur->step(100, FORWARD, MICROSTEP);
            moteur->step(100, BACKWARD, MICROSTEP);
          }

          Mais je n'ai pas pu continuer mes essais longtemps car le moteur chauffe beaucoup. Peut-être la tension d'alim. est-elle trop forte   (Pourtant 1 seul élément lipo soit 4,2V maxi) ou alors la manière dont je l'ai connecté n'est pas la bonne ?

          Mais je ne pensais pas éprouver un jour tant de plaisir à voir tourner une bête vis sans fin !!!:p

          • Partager sur Facebook
          • Partager sur Twitter
            15 mars 2016 à 7:04:11

            Je suis vraiment une bille :'(! Je ne m'étais pas aperçu que la librairie du shield motors Adafruit était fournie avec des exemple d’utilisations !

            C'est pas beau de vieillir ! Lukas, pas de remarques déplacées:colere: ! Toi, tu es né vieux...>_<

            • Partager sur Facebook
            • Partager sur Twitter
              15 mars 2016 à 11:41:13

              Bonjour,

              je suis nouveau sur le forum, et je pense que vous pourrez répondre à mon petit soucis.

              Je m'explique:

              Voilà, je viens d'acheter un écran tactile LCD TFT 2.8" SLD 10261P chez lextronic.

              Est ce que quelqu'un a déjà programmé un écran tactile et si oui, comment faut il faire pour pouvoir dessiner des images sur l'écran (bouton M/A, etc...) et les utiliser pour commander une pompe CC.

              Merci .

              Cordialement.

              Serge.

              • Partager sur Facebook
              • Partager sur Twitter
                15 mars 2016 à 19:07:49

                Bonsoir,

                content que BertrandLedu et MicRoger réussissent à trouver leurs solutions peu à peu. ça montre que les niveaux de chacuns sont suffisants.

                En effet, on oublie trop souvent que les bibliothèques sont fournies avec des exemples de programmes... ça facilite tout.

                Pour répondre à sergic : il existe des bibliothèques pour les écrans (simples ou tactiles) il faut chercher un peu.

                En revanche il y a deux choses à comprendre : l'affichage et la réception de la zone tactile appuyée.

                Tout est question de connexion correcte et de récupération de données pour la zone tactile.

                Pour l'affichage, c'est complètement le principe du repère orthonormé. du coup, il faut se replonger dans les maths pour savoir dessiner des cercles à une position x,y, pour savoir dessiner des rectangles, pour savoir calculer la distance entre deux points...

                Il faut y ajouter la gestion de l'effacement de l'affichage précédent pour le remplacer par le nouveau (dans le cas d'animation)...

                Ce devait être l'objet d'un cours d'approfondissement (avec d'autres points), mais OC n'en n'a pas vu l'intérêt pour le moment.

                Maintenant, il y a, je pense, suffisamment d'exemples sur le web pour réussir à s'en sortir, pour qui programme un peu ;)

                J'espère que ça répond un peu à la question...

                Nanomaitre

                • Partager sur Facebook
                • Partager sur Twitter
                "Personnellement, je suis toujours prêt à apprendre, bien que je n'aime pas toujours que l'on me donne des leçons." (Churchill)
                  16 mars 2016 à 8:50:45

                  Bonjour,

                  oui, merci, je vais chercher et des que j'ai des réponses, je n'hésiterai pas à vous les transmettre.

                  Cordialement.

                  Sergic.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    16 mars 2016 à 18:47:32

                    Bonsoir
                    Svp J ai besoin d un programme qui contrôle la consommation des appariels électrique à l aide de l Arduino et un écran LCD.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      16 mars 2016 à 20:30:16

                      Bonsoir,

                      J'ai juste une question concernant le shield moteur d'Adafruit, que voulez-vous dire par enlever le jumper près du bloc de l'alim?
                      Faut-il déssouder quelque chose?

                      Au passage super cours et merci beaucoup,

                      Noé

                      • Partager sur Facebook
                      • Partager sur Twitter
                        16 mars 2016 à 22:21:06

                        Re-bonsoir et deuxième question de ma part,

                        lorsque je tente de compiler le premier programme pour le shield moteur Adafruit (pas d'erreurs dedans normalement, j'ai essayer en faisant copier/collercelui du cours)

                        #include <Wire.h> //bibliothèque pour la communication I2C
                        #include <Adafruit_MotorShield.h> //bibliothèque pour le shield
                        Adafruit_MotorShield monShield = Adafruit_MotorShield(); //création de l'objet shield
                        Adafruit_DCMotor *monMoteur = monShield.getMotor(1); //création de l'objet moteur par pointeur et repérage du numéro
                        void setup() {
                          monShield.begin(); //On lance la communication avec le shield
                          monMoteur->setSpeed(255); //On définit la vitesse de rotation
                          monMoteur->run(FORWARD); //On fait tourner le moteur
                        }
                        void loop() {
                        }

                        j'obtiens un message d'erreur que je ne comprend pas :

                        Arduino : 1.6.6 (Windows 10), Carte : "Arduino/Genuino Uno"
                        
                        C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware "C:\Program Files (x86)\Arduino\hardware" -hardware "C:\Users\Noé Cornet\AppData\Local\Arduino15\packages" -tools "C:\Program Files (x86)\Arduino\tools-builder" -tools "C:\Program Files (x86)\Arduino\hardware\tools\avr" -tools "C:\Users\Noé Cornet\AppData\Local\Arduino15\packages" -built-in-libraries "C:\Program Files (x86)\Arduino\libraries" -libraries "D:\Documents\ARDUINO\libraries" -fqbn=arduino:avr:uno -ide-version=10606 -build-path "C:\Users\NOCORN~1\AppData\Local\Temp\build222580556da612b8396fbbb354ea53f0.tmp" -warnings=none -prefs=build.warn_data_percentage=75 -verbose "D:\Documents\ARDUINO\exercices OC\2.chapitre 1\partie 3\_1erEssaiShieldAdafruit\_1erEssaiShieldAdafruit.ino"
                        C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware "C:\Program Files (x86)\Arduino\hardware" -hardware "C:\Users\Noé Cornet\AppData\Local\Arduino15\packages" -tools "C:\Program Files (x86)\Arduino\tools-builder" -tools "C:\Program Files (x86)\Arduino\hardware\tools\avr" -tools "C:\Users\Noé Cornet\AppData\Local\Arduino15\packages" -built-in-libraries "C:\Program Files (x86)\Arduino\libraries" -libraries "D:\Documents\ARDUINO\libraries" -fqbn=arduino:avr:uno -ide-version=10606 -build-path "C:\Users\NOCORN~1\AppData\Local\Temp\build222580556da612b8396fbbb354ea53f0.tmp" -warnings=none -prefs=build.warn_data_percentage=75 -verbose "D:\Documents\ARDUINO\exercices OC\2.chapitre 1\partie 3\_1erEssaiShieldAdafruit\_1erEssaiShieldAdafruit.ino"
                        "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -M -MG -MP -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10606 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\cores\arduino" "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\variants\standard" "C:\Users\NOCORN~1\AppData\Local\Temp\build222580556da612b8396fbbb354ea53f0.tmp\sketch\_1erEssaiShieldAdafruit.ino.cpp"
                        "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -M -MG -MP -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10606 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\cores\arduino" "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\variants\standard" "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\libraries\Wire\src" "-ID:\Documents\ARDUINO\libraries\Adafruit_Motor_Shield_V2_Library" "C:\Users\NOCORN~1\AppData\Local\Temp\build222580556da612b8396fbbb354ea53f0.tmp\sketch\_1erEssaiShieldAdafruit.ino.cpp"
                        "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -M -MG -MP -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10606 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\cores\arduino" "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\variants\standard" "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\libraries\Wire\src" "-ID:\Documents\ARDUINO\libraries\Adafruit_Motor_Shield_V2_Library" "C:\Users\NOCORN~1\AppData\Local\Temp\build222580556da612b8396fbbb354ea53f0.tmp\sketch\_1erEssaiShieldAdafruit.ino.cpp"
                        "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -M -MG -MP -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10606 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\cores\arduino" "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\variants\standard" "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\libraries\Wire\src" "-ID:\Documents\ARDUINO\libraries\Adafruit_Motor_Shield_V2_Library" "C:\Users\NOCORN~1\AppData\Local\Temp\build222580556da612b8396fbbb354ea53f0.tmp\sketch\_1erEssaiShieldAdafruit.ino.cpp"
                        "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -M -MG -MP -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10606 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\cores\arduino" "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\variants\standard" "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\libraries\Wire\src" "-ID:\Documents\ARDUINO\libraries\Adafruit_Motor_Shield_V2_Library" "C:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\libraries\Wire\src\Wire.cpp"
                        "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -M -MG -MP -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10606 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\cores\arduino" "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\variants\standard" "-ID:\Documents\ARDUINO\libraries\Adafruit_Motor_Shield_V2_Library" "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\libraries\Wire\src" "C:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\libraries\Wire\src\utility\twi.c"
                        "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -M -MG -MP -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10606 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\cores\arduino" "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\variants\standard" "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\libraries\Wire\src" "-ID:\Documents\ARDUINO\libraries\Adafruit_Motor_Shield_V2_Library" "D:\Documents\ARDUINO\libraries\Adafruit_Motor_Shield_V2_Library\Adafruit_MotorShield.cpp"
                        "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -M -MG -MP -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10606 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\cores\arduino" "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\variants\standard" "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\libraries\Wire\src" "-ID:\Documents\ARDUINO\libraries\Adafruit_Motor_Shield_V2_Library" "D:\Documents\ARDUINO\libraries\Adafruit_Motor_Shield_V2_Library\utility\Adafruit_PWMServoDriver.cpp"
                        "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -M -MG -MP -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10606 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\cores\arduino" "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\variants\standard" "-ID:\Documents\ARDUINO\libraries\Adafruit_Motor_Shield_V2_Library" "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\libraries\Wire\src" "C:\Users\NOCORN~1\AppData\Local\Temp\build222580556da612b8396fbbb354ea53f0.tmp\sketch\_1erEssaiShieldAdafruit.ino.cpp"
                        "C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10606 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\cores\arduino" "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\variants\standard" "-IC:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\libraries\Wire\src" "-ID:\Documents\ARDUINO\libraries\Adafruit_Motor_Shield_V2_Library" "C:\Users\NOCORN~1\AppData\Local\Temp\build222580556da612b8396fbbb354ea53f0.tmp\sketch\_1erEssaiShieldAdafruit.ino.cpp" -o ""
                        *avr-g++: error: missing filename after '-o'
                        
                        Utilisation de la bibliothèque Wire version 1.0 dans le dossier: C:\Users\Noé Cornet\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.10\libraries\Wire 
                        Utilisation de la bibliothèque Adafruit_Motor_Shield_V2_Library version 1.0.1 dans le dossier: D:\Documents\ARDUINO\libraries\Adafruit_Motor_Shield_V2_Library 
                        *exit status 1
                        *Erreur lors de la compilation.

                        (J'ai ici activé les résultats détaillés pendant la compilation, les lignes d'erreur sont les trois que j'ai marqué d'une *)

                        Si l'un de vous peut m'aider, je vous en serais reconnaissant.

                        Merci d'avance,

                        Noé

                        ----------------------------------------------------------------------------------------------------------------------------------------

                        MAJ : j'ai essayé avec des anciens programmes (habituellement fonctionnels) et j'arrive au même problème...

                        -
                        Edité par NoCo16 16 mars 2016 à 22:38:25

                        • Partager sur Facebook
                        • Partager sur Twitter
                          17 mars 2016 à 0:35:12

                          Bonsoir NoCo16

                          Pour le JUMPER, c'est le petit cavalier situé juste devant le bornier d'alimentation externe du (de la ?) shield. Il est noir et on ne le voit pas très bien sur la photo. Dans mon cas, il n'était pas installé sur la carte et j'ai bien failli le perdre en déballant le shield.

                          Il faut le retirer en cas d'alimentation par une source externe.

                          Pour le reste, je ne peux pas t'aider. Il va falloir qu'un expert travaillant sous Windows passe par là.

                          -
                          Edité par MicRoger 17 mars 2016 à 0:36:13

                          • Partager sur Facebook
                          • Partager sur Twitter
                            17 mars 2016 à 7:21:17

                            Bonsoir,

                            pour répondre à SalahOulmouden, l'idée du forum n'est pas de donner un programme tout fait, mais de guider chacun vers une réponse, s'il a déjà cherché de son côté. Donc n'hésitez pas à revenir avec plus d'infos et un problème plus "précis" ;)

                            Pour NoCo16, MicRoger (merci au passage) a envoyé un image claire du jumper de la carte. en revanche, pour l'erreur, j'ai l'impression que l'installation de l'IDE ne s'est pas bien faite, ou simplement que vous n'avez pas importé correctement la bibliothèque. Je vous propose donc de réinstaller l'IDE arduino et d'importer la bibliothèque en utilisant le gestionnaire de bibliothèque (tiens donc ;) ) qui l'installe correctement. 

                            Bon courage ;)

                            Nanomaitre

                            • Partager sur Facebook
                            • Partager sur Twitter
                            "Personnellement, je suis toujours prêt à apprendre, bien que je n'aime pas toujours que l'on me donne des leçons." (Churchill)
                              17 mars 2016 à 21:44:29

                              Merci à vous deux,

                              pour le jumper je ne trouvais rien et, de fait, il était toujours au fond de ma boite. C'est pour cela que je me demandais ce qu'il fallait enlever :D

                              Quand au problème logiciel, la réinstallation de l'IDLE à en effet fonctionné (je suppose que c'était dû à une incompatibilité de versions puisque j'étais toujours en 1.6.6, mais qui sait ;) ).

                              Tout fonctionne donc parfaitement. Merci encore pour le cours et pour ces réponses,

                              Noé

                              -
                              Edité par NoCo16 12 septembre 2016 à 14:59:02

                              • Partager sur Facebook
                              • Partager sur Twitter
                                4 avril 2016 à 16:04:24

                                Bonjour, maître nano.

                                J'ai une question concernant la partie "shield ethernet en local".

                                J'ai réalisé le TP demandé (allumer les 5 leds via la page html), mais cela ne marche bien que sur Edge.

                                Sur chrome, le client envoie une deuxième connexion demandant un favicon, et cela perturbe tout.

                                J'ai testé ton programme, et il souffre du même problème : impeccable sous Edge, mais perturbé sous chrome.

                                Dans ta solution, sous crhome,  modifier l'état d'une led modifie aussi l'état d'une autre des 4... Je pense que c'est dû à cette deuxième connexion, dont la href contient aussi un "=".

                                Comment faire ? Y a-t-il une solution simple ?

                                Merci !

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  5 avril 2016 à 12:05:06

                                  Cher Nano maître, j'ai une autre question.

                                  Je suis toujours sur la partie "Shield Arduino", et le soucis que je rencontre est que les pages html ne s’exécutent pas toujours en totalité.

                                  Parfois, la totalité du code html est lu, et tout va bien.

                                  Parfois, alors que je ne fais que réactualiser la page, seul le début est affiché. (le moment de la page où cela s'arrête semble aléatoire d'un refresh à l'autre).

                                  Et puis "cela remarche" sans raison après un nouveau refresh...

                                  Sais-tu pourquoi ?

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    5 avril 2016 à 19:50:54

                                    Bonsoir MarcMillon

                                    Le code que j'ai réalisé sert d'exemple pour montrer l'utilisation de l'Arduino en serveur. Je ne l'ai pas testé sur chaque navigateur. Ce n'était pas le but. L'important pour moi était de montrer la démarche de création du code.

                                    En fonction des navigateurs, il faut parfois réanalyser le code reçu pour voir ce qui est nécessaire d'ajouter ou d'enlever dans le décodeur que tu vas programmer.

                                    Il est possible aussi qu'une légère temporisation (delay(10) par exemple) permette de mieux transmettre chaque partie des envois.

                                    Il existe enfin des bibliothèques toutes faites (que je n'ai pas testé ;) ) pour l'utilisation de l'arduino en serveur, qui je pense vont te faciliter la tâche. Il te faudra sûrement essayer les exemples de codes fournis avec la bibliothèque et les analyser afin de t'en emparer.

                                    Bon courage à toi !

                                    Nanomaître.

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    "Personnellement, je suis toujours prêt à apprendre, bien que je n'aime pas toujours que l'on me donne des leçons." (Churchill)
                                      9 avril 2016 à 0:14:05

                                      Bonjour! Je suis un peu a cote. Je veux savoir comment je peux créer 12 pwm avec arduino dont les rapport cyclique sont independant l'un de l'autre. Merci

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      De Texas Power
                                        11 avril 2016 à 14:30:51

                                        Bonjour,

                                        l'arduino UNO propose des pins PWM , mais pas 12 ;)

                                        Il est possible de simuler des PWM en utilisant la gestion du temps (fonction millis() ou micros()) pour créer des interruptions, mais pour 12 PWM, ça risque de devenir assez vite un programme compliqué (mais faisable ;) )

                                        Il existe enfin des shields ou des extensions qui communiquent en I2C avec l'Arduino, et qui permettent de gérer plusieurs moteurs (exemple le shield moteur Arduino peut en gérer 4 s'il vont dans un seul sens, ou deux s'il tournent dans les deux sens). en empilant ces shields, on peut facilement atteindre 12 moteurs.

                                        Un sacré projet s'il s'agit en effet de 12 moteurs.

                                        J'espère avoir répondu à votre question.

                                        Nanomaitre.

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                        "Personnellement, je suis toujours prêt à apprendre, bien que je n'aime pas toujours que l'on me donne des leçons." (Churchill)
                                          2 août 2016 à 11:03:52

                                          nanomaitre pouvez nous faire un cours sur les capteur de flexion et sur les IMU(centrale inetetielle )surtout sur les mpu 6050 c'est pour un projet.
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            8 août 2016 à 0:28:48

                                            bonjour je souhaite realiser un journal lumineux 36X8 avec des led,quelqu un peut il maider en me trouvant le code et le schema de cablage.MERCI DAVANCE

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              14 août 2016 à 14:03:22

                                              Bonjour,

                                              J'ai répondu à AaAa67 et JeanRichardAke en privé. Pour faire simple, la philosophie n'est pas de donner une réponse et une solution toute faite à la moindre question posée, il s'agit plutôt de donner un coup de main à ceux et celles qui sont déjà dans un projet avancé.

                                              Les cours vous donnent normalement les bases pour pouvoir ensuite avancer seuls dans les choix matériels et la programmation. L'aide de chacun ne peut venir que ponctuellement.

                                              Donc aux questions du genre "pouvez-vous me donner une solution toute faite pour...", vous n'obtiendrez pas de réponse simple.

                                              et aux questions du genre "voici mon projet, mon montage et dans mon code, j'ai cette ligne qui bloque..." vous obtiendrez alors une aide que je (ou d'autre) vous donnerai avec plaisir ;)

                                              Bonne arduinanisation à tous !

                                              Nanomaitre

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                              "Personnellement, je suis toujours prêt à apprendre, bien que je n'aime pas toujours que l'on me donne des leçons." (Churchill)
                                                18 août 2016 à 1:42:58

                                                Salut, est ce que cette fonction mesure pour un capteur infrarouge est correcte ?
                                                et comment je peut transformer en Cm la vlaeur lier par CAN A0 ? 
                                                int mesure()
                                                {
                                                  unsigned long mesure=0;
                                                  unsigned long cumul=0;
                                                  float distance=0;
                                                   for(int t=0;t<NBMESURE;t++)
                                                 {
                                                 pinMode(pinled,INPUT);
                                                  mesure=analogRead(A0);
                                                  cumul+=mesure;
                                                  delay(50);
                                                }
                                                mesure=cumul/NBMESURE;
                                                distance=2500/mesure;
                                                Serial.println("distance en Cm");
                                                Serial.println(distance);
                                                if(distance<=DANGER)
                                                {
                                                    return 0;
                                                }
                                                else if(distance>DANGER && distance<=PROCHE)
                                                {
                                                  return 1;
                                                }
                                                return 2;
                                                }

                                                -
                                                Edité par KhalilChiha 18 août 2016 à 2:15:14

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  31 août 2016 à 21:42:58

                                                  Bonjour,

                                                  désolé pour la réponse tardive, j'étais en vacances ;)

                                                  Plusieurs choses :

                                                  tout d'abord, que souhaitez-vous que fasse votre fonction ? qu'elle renvoie un entier en fonction d'une proximité ou qu'elle mesure la distance en cm ?

                                                  pour le moment elle fait les deux, ce qui peut-être pratique pour étalonner votre système diode/récepteur. mais par la suite, l'affichage de la distance peut faire perdre du temps à votre programme, surtout s'il analyse correctement la distance de PROCHE ou de DANGER.

                                                  En ce qui concerne la transformation en cm, il faut savoir qu'avec un capteur IR cela reste très aléatoire. Comme je l'indique dans le cours, cette méthode mesure la quantité d'IR reçue, et cette quantité peut varier en fonction de la couleur de l'objet qui renvoie le rayon.

                                                  un objet blanc sera repéré bien plut tôt qu'un objet noir (faites les tests avec votre fonction ;) ) donc il n'y a pas de fonction miracle de transformation en cm.

                                                  enfin, vous mettez comme type de variable un unsigned long sur la variable mesure, alors que vous procédez à une division. vous allez perdre un partie de la valeur obtenue (car ce sera un résultat sans virgule). Même difficulté pour l'utilisation d'un float avec une division d'un int et d'un unsigned long.

                                                  Je vous conseille d'essayer d'abord en utilisant des type 'double' sur l'ensemble de vos variables, d'évaluer la longueur des données et d'ajuster ensuite. enfin pour passer un int en float il est nécessaire de forcer le typage. exemple (pris sur le site arduino) :

                                                  int x;
                                                     int y;
                                                     float z;
                                                  
                                                     x = 1;
                                                     y = x / 2;            // y now contains 0, ints can't hold fractions
                                                     z = (float)x / 2.0;   // z now contains .5 (you have to use 2.0, not 2)

                                                  observez l'utilisation de (float)x qui force l'int en float. et l'utilisation de 2.0 qui est différent de 2

                                                  Dans votre exemple :

                                                  distance=2500.0/(double)mesure;

                                                  serait plus judicieux.

                                                  J'espère vous avoir répondu.

                                                  Bons tests !

                                                  Nanomaitre

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                  "Personnellement, je suis toujours prêt à apprendre, bien que je n'aime pas toujours que l'on me donne des leçons." (Churchill)
                                                    15 septembre 2016 à 22:08:03

                                                    Bonjour,

                                                    merci pour cet excellent cours. J'ai quelques difficultés à faire fonctionner mon écran LCD. Il n'affiche que des carrés blancs et pas le texte.

                                                    J'ai refais et vérifié plusieurs fois le câblage mais rien n'y fait. Le potentiomètre permet bien de régler le contraste.

                                                    Faut-il un potentiomètre spécifique pour voir les caractères? Quel peut être l'origine du problème? Merci.

                                                    EDIT : j'ai fini par acheter un autre Arduino et là oh miracle ça a fonctionné du premier coup. J'ai pourtant fait tout le cours d'initiation avec mon premier Arduino sans problème.

                                                    -
                                                    Edité par julienbreton 29 septembre 2016 à 20:39:46

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      18 septembre 2016 à 17:20:41

                                                      Bonjour,

                                                      je dois avouer que dépanner un LCD à distance sans voir les connections et réaliser les tests n'est pas simple.

                                                      J'allais vous indiquer le potentiomètre, mais vous avez apparemment vérifié (vérifiez tout de même s'il est correctement connecté)

                                                      ensuite, il peut s'agir du mode de communication vers le LCD (4 ou 8 bits) ou d'une inversion des connexions des fils (le 0 à la place du 8...)

                                                      Je sais que je ne vous aide pas vraiment, mais là, je ne peux pas vous être plus utile.

                                                      (il m'est souvent arrivé de bloquer sur un pb comme celui-ci en étant persuadé d'avoir vérifier. je ne m'en suis sorti qu'en vérifiant tout en respectant un protocole précis, et surtout en vérifiant même ce qui me paraissait impossible ;) )

                                                      Bon courage à vous !

                                                      Nanomaitre

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                      "Personnellement, je suis toujours prêt à apprendre, bien que je n'aime pas toujours que l'on me donne des leçons." (Churchill)
                                                        23 septembre 2016 à 23:41:28

                                                        Bonjour nanomaitre

                                                        a propos "servo shield " j'ai une carte" Adafruit 16-channel pwm/servo shield  " et  j'ai utilisé 12 servos , combien d’ampère on a besoin pour alimenter les 12 servos , est ce que batterie 5 A ça marche ?
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          25 septembre 2016 à 18:16:48

                                                          Bonjour KhalilChiha,

                                                          je dirais que tout dépend des limites acceptées par la carte et du type des servos.

                                                          vous devez pouvoir trouver ces infos sur la datasheet des servo et sur le site Adafruit pour la carte (je vous conseille de vérifier l'un et l'autre ;) ).

                                                          quoiqu'il arrive, ce n'est pas possible d'alimenter avec l'arduino directement.

                                                          voici la copie d'une partie de la page Adafruit qui traite du sujet (

                                                          This shield has two power supplies. One is VCC - that is the 5V power from the Arduino, it is used to power the PWM chip and determines the I2C logic level and the PWM signal logic level. When this power supply is working you will see a red LED. The red LED must be lit for the Arduino & shield to work! Plug in the Arduino to USB or a wall adapter to provide it.

                                                          To power servos you will need to also connect the V+ power supply- this is the power supply for the servos. (If you are lighting up single LEDs you may not need this power supply.) This power supply should be 5 or 6VDC. You can connect this power through the blue terminal block. There is reverse-polarity protection in case you hook up power backwards.

                                                          Nearly all servos are designed to run on about 5 or 6v. Keep in mind that a lot of servos moving at the same time (particularly large powerful ones) will need a lot of current. Even micro servos will draw several hundred mA when moving.  Some High-torque servos will draw more than 1A each under load.

                                                          Good power choices are:

                                                          je pense que vous avez votre réponse ;)

                                                          Nanomaitre
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                          "Personnellement, je suis toujours prêt à apprendre, bien que je n'aime pas toujours que l'on me donne des leçons." (Churchill)
                                                            22 janvier 2017 à 9:15:08

                                                            Bonjour,

                                                            Il est précisé dans le cours qu'il est possibile d'empiler des shield motor d'adafruit. Est-il également possible "d'empiler" un shield motor avec un shield ethernet?

                                                            Ou alors faut-il vérifier que les 2 shields n'utilisent pas les mêmes PIN puis faire des connections "à la main" (soudure) ? 

                                                            Merci d'avance pour les précisions :)

                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                              12 mai 2017 à 20:48:45

                                                              Si tes shield n'utilisent pas les mêmes pins tu peux les empiler oui. 

                                                              LudoChar1 a écrit:

                                                              Bonjour,

                                                              Il est précisé dans le cours qu'il est possibile d'empiler des shield motor d'adafruit. Est-il également possible "d'empiler" un shield motor avec un shield ethernet?

                                                              Ou alors faut-il vérifier que les 2 shields n'utilisent pas les mêmes PIN puis faire des connections "à la main" (soudure) ? 

                                                              Merci d'avance pour les précisions :)



                                                              -
                                                              Edité par ElioSchnarrenberger 12 mai 2017 à 20:48:59

                                                              • Partager sur Facebook
                                                              • Partager sur Twitter
                                                              Projet DIY? amentis-online.com

                                                              MOOC Arduino Perfectionnement

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                              • Editeur
                                                              • Markdown