LOCODUINO

Monter une bibliothèque !

Une clé de dix et un marteau ? Non ! Un explorateur de fichiers et un décompresseur zip....

. Par : Thierry

Dans le petit monde de l’Arduino, le savoir et l’expertise passent soit par des sites comme Locoduino ou Arduino.cc, soit par des bibliothèques destinées à simplifier la vie de l’utilisateur lambda. Si vous êtes là, c’est que le premier mode de transmission d’information vous est connu. Concentrons nous sur le second... Une bibliothèque (…)

Retourner à l'article

Vous répondez à :

Bibliothèque alternative à Arduino pour l’ATmega328P 30 septembre 2016 14:38, par Thierry

Bonjour. Je ne saisis pas bien ton intervention. L’article décrit l’art et la manière de créer proprement et complètement une bibliothèque pour l’Arduino IDE. Il ne s’agit pas de remplacer l’IDE...

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.

Lien hypertexte

(Si votre message se réfère à un article publié sur le Web, ou à une page fournissant plus d’informations, vous pouvez indiquer ci-après le titre de la page et son adresse.)

15 Messages

  • Bibliothèque alternative à Arduino pour l’ATmega328P 30 septembre 2016 11:54, par sylvainmahe

    Je pense que c’est ce que j’ai créé ici :
    http://sylvainmahe.xyz/

    C’est une bibliothèque parmi d’autres ;)

    Répondre

    • Bibliothèque alternative à Arduino pour l’ATmega328P 30 septembre 2016 14:38, par Thierry

      Bonjour. Je ne saisis pas bien ton intervention. L’article décrit l’art et la manière de créer proprement et complètement une bibliothèque pour l’Arduino IDE. Il ne s’agit pas de remplacer l’IDE...

      Répondre

      • Bibliothèque alternative à Arduino pour l’ATmega328P 30 septembre 2016 15:36, par sylvainmahe

        Bonjour,

        Et bien dans ce cas on dira que j’ai été plus loin c’est tout ;)

        Souhaitant débuter l’électronique il y a 2 ans, j’ai vu ce qu’était Arduino, ça ne m’a pas convaincu, j’ai donc créé une bibliothèque en C++ pur et les cartes électroniques associées à cette bibliothèque, ça va un peu plus loin que la simple bibliothèque en surcouche d’Arduino c’est sûr, Arduino étant lui même en surcouche d’Avr-c, et etc...

        Mais je pense que mon post est légitime de la part d’un amateur qui ne connaissait rien à l’électronique il y a 2 ans, et qui a souhaité faire de l’électronique à partir d’un compilateur gnu, du c++ pur, et de composants pris au détails dans la boutique du coin.

        Enfin après, chacun son point de vue...

        Répondre

        • Bibliothèque alternative à Arduino pour l’ATmega328P 30 septembre 2016 16:06, par Thierry

          Tous les points de vues sont respectables, évidemment. Je ne vois juste pas le rapport avec un tuto pour créer une bibliothèque dans le bon format compatible avec l’IDE Arduino...
          Parce qu’Arduino, c’est une plateforme matérielle, pas une bibliothèque. L’IDE Arduino n’est pas non plus une bibliothèque, c’est une surcouche de simplification d’un compilateur gratuit (avr-gcc) ajoutée à un éditeur de texte Java minimaliste. Et mon article ne propose pas de bibliothèque, juste une façon de travailler pour convertir un source perso en une bibliothèque partagée... Je ne propose pas de code.
          Alors je persiste, je ne vois pas le rapport avec un travail (très honorable par ailleurs) qui vise à complètement remplacer l’IDE Arduino (si j’ai bien compris).

          Répondre

          • Bibliothèque alternative à Arduino pour l’ATmega328P 30 septembre 2016 16:40, par sylvainmahe

            Oui je comprends, après je prenais la création de bibliothèque au sens large du terme...

            En fait c’est même pas remplacer l’IDE Arduino, c’est remplacer Arduino tout court (bibliothèque + sous couche + ide + partie matérielle).

            Répondre

            • Bibliothèque alternative à Arduino pour l’ATmega328P 30 septembre 2016 20:33, par Dominique

              Bonjour,

              J’ai regardé MODULE par curiosité : c’est loin de remplacer l’Arduino, son IDE et ses bibliothèques construites, testées et utilisées par des milliers de développeurs sur la terre entière, donc mises au point et optimisées en général.

              C’est un peu comme réinventer l’eau chaude pour la plupart des modélistes qui visitent ce site.

              Mais je salue l’initiative. Je comprend qu’on ne soit pas en phase avec un environnement et que l’on développe le sien personnel. Surtout si, au départ, on a une bonne dose d’expérience et de compétence.

              Mais ce n’est pas une solution pour la grande majorité.

              Répondre

              • Bibliothèque alternative à Arduino pour l’ATmega328P 1er octobre 2016 10:12, par sylvainmahe

                Il ne s’agit pas de remplacer, il s’agit juste d’une alternative plus performante (vitesse d’exécution/mémoire), et également plus facile à utiliser, ce uniquement pour l’ATmega328P (donc optimisé pour cet uc).

                Avec je réalise tous mes projets sans être limité :
                http://sylvainmahe.xyz/projectQuadc...
                http://sylvainmahe.xyz/projectGeige...

                J’ai essayé d’en présenter deux le mieux possible, j’en ai bien d’autres à présenter, mais il faut avoir le temps d’écrire un article à chaque fois, de faire des photos, etc...

                Module n’est pas plus dédié au modélisme qu’à un autre domaine, c’est une bibliothèque générale. Avec la carte principale, si vous avez envie de la mettre dans un système pour ouvrir la porte du poulailler a telle heure, vous pouvez, ou si vous avez envie d’envoyer un ballon dans la stratosphère avec ce qu’il faut à bord, vous pouvez aussi, c’est pas dédié à un domaine.

                Répondre

  • Monter une bibliothèque ! 1er octobre 2016 10:15, par sylvainmahe

    C’est pas remplacer, je me suis mal exprimé dans mon avant dernier commentaire, c’est une alternative pour ceux qui veulent, et pour un seul uc.

    Répondre

    • Monter une bibliothèque ! 1er octobre 2016 10:39, par Dominique

      Bonjour,

      j’ai bien compris.

      Et quel logiciel utilisez-vous pour programmer vos "Modules" ?

      Votre projet est très intéressant et c’est sympa de le partager. Il se trouve que moi aussi j’ai fait un drone et un compteur Geiger (c’est ça qui m’a amené à l’Arduino). Donc je le regarde avec intérêt.

      Par contre votre environnement de développement ne va pas à tout le monde et je n’ai trouvé "que" 25 bibliothèques dans votre environnement :
      Gestion des entrées/sorties :
      GpioRead.h
      GpioWrite.h
      AnalogRead.h
      InterruptRead.h
      PwmRead.h
      PwmWrite.h
      SoundWrite.h
      Gestion du temps :
      Timer.h
      Delay.h
      Mathématiques, filtres, cycle d’hystérésis, génération de nombres aléatoires :
      Math.h
      Iteration.h
      Average.h
      Filter.h
      Hysteresis.h
      Random.h
      Afficheurs à dels, gyroscopes, magnétomètres, baromètres, communication sans fil :
      Max7219.h
      Mpu6050.h
      Bno055.h
      Hmc5883L.h
      Bmp180.h
      Nrf24L01P.h
      Communication filaire entre les différents automates :
      Network.h
      Sauvegarde de données dans la mémoire interne, gestion de la veille du microcontrôleur, outils de diagnostique :
      Memory.h
      Power.h
      Tool.h

      C’est peu comparé à celles de l’Arduino Arduino

      Mais je ne conteste pas que vos performances soient meilleures.

      Nous vous suggérons maintenant de décrire un projet ferroviaire pour nous faire comprendre tous les avantages de votre environnement.

      Bon courage.

      Répondre

      • Monter une bibliothèque ! 1er octobre 2016 11:20, par sylvainmahe

        Je comprend votre point de vue.

        J’explique parce que je pense qu’il y a quiproquo ;)

        Ce que vous appelez bibliothèque, ce sont en fait des classes.
        Module est une bibliothèque qui contient 25 classes.

        Arduino est une bibliothèque, et ces classes sont ici :
        https://www.arduino.cc/en/Reference...

        Avec Arduino, et seulement Arduino, on ne peut pas faire grand chose, tout reste à programmer (ça peut être positif comme négatif). Il n’y a que de la gpio basique, de la lecture analogique, un peu de pwm avec tone et analog write, la gestion du temps, communiquer en série avec l’usart, et les interruptions. Tout le reste c’est à dire la partie mathématique (Math, Trigonometry), la partie aléatoire (random), la partie "Bits and Bytes" etc... du lien que je vous est donné, est en fait une redondance de math.h, de stdlib.h, etc... c’est à dire les classes considérés comme standard (que je n’utilise pas soit dit en passant puisque j’ai tout refait) du langage c++.

        De fait, pour aller plus loin avec Arduino, il faut télécharger d’autres classes (que eux appellent bibliothèques) faites par des pros, des amateurs, par l’équipe initiale Arduino ou des particuliers, bref, par toute la communauté Arduino.

        Certaines de ses classes étant utilisés de plus en plus par beaucoup, ont étés maintenant intégrés dans l’archive, et donc accessibles depuis l’ide Arduino, on peut noter servo.h et bien d’autres encore.

        Voila en gros pour l’explication, mais il ne suffit pas d’avoir des 100ènes de classes voir des milliers pour réaliser pleins de projets et être non limité. Moi ce que je constate c’est que, prenons par exemple l’exemple de la classe Arduino qui permet la gestion du max7219 et donc l’affichage à led que je connais bien, cette classe utilisée par tous, et donc soit disant optimisée et bien programmée, est en fait pour moi juste une honte... Et tout l’univers Arduino est comme ceci, tant sur le plan software que hardware.

        Aillant fait un stage dans la robotique, j’ai vu des ingénieurs utiliser Arduino et devoir faire une coupure dans une piste sur toutes leurs Arduino UNO parce que celle-ci étant reliée à la fois au FTDI embarqué sur la carte et au GPIO faisait des bugs dans les entrées/sorties. Et encore une fois, tout est comme ça. A chaque fois que je "m’amuse" à regarder le code source d’une "bibliothèque" Arduino, c’est juste une bouillie de programmation, je ne comprend pas qu’on puisse laisser ça comme ça. Même si effectivement cela fonctionne, ce n’est pas une raison pour moi.

        Bref je ne veux pas polémiquer, mais Arduino pour moi ça doit rester un système uniquement pour débutant pour ceux qui ne veulent pas programmer et apprendre ce qu’est réellement l’électronique.

        Autre chose, vous m’indiquez "projet ferroviaire", oui je veux bien faire cela, c’est possible sans aucun soucis avec Module, mais on parle bien de modélisme ? Je veux bien actionner un passage à niveau réel avec un relais et une commande sans fil si en revanche c’est de ça que vous parlez... ;)
        En modélisme si le train arrive ici, ça fait clignoter les feux x, et démarrer le train y, et actionner telle ou telle chose z, tout est possible encore une fois...

        Pour répondre à votre question : "quel logiciel utilisez-vous pour programmer" :
        J’utilise un simple éditeur de texte -> Gedit sur Linux

        Répondre

  • Monter une bibliothèque ! 1er octobre 2016 12:53, par Dominique

    Moi non plus je ne veux pas de quiproquo, et je conçois bien que vous ayez décidé de faire votre environnement de programmation personnel, qui soit plus performant qu’Arduino de base (et ça c’est possible).

    Je vous encourage donc à décrire un projet pour commencer, par exemple une animation lumineuse, avec du son aussi, à partir de fichiers Wav ou MP3 lus sur une carte microSD. Comme c’est votre propre environnement, pour partager votre expérience, il faudra décrire tout ce qu’il faut installer sur Windows (la majorité), Mac OSX (il y en a de plus en plus) et Linux (il y en a aussi).
    Il faudra aussi donner des exemples de programmes tout faits car c’est souvent par là que les modéliste commencent à développer.

    Je n’ai pas vu suffisamment de détails sur votre site pour en déduire vraiment tout ce qu’il faut faire pour préparer son environnement avec Module. Par exemple :

    • Comment communique l’ordinateur avec le module pour la programmation et pour le debugging ?
    • Quel compilateur et éditeur de lien utilisez-vous (vous n’avez cité qu’un éditeur de source) ?
    • Existe-t-il des scripts de construction de logiciel complets avec présentation des erreurs, des warnings et un lien vers l’éditeur ?
    • Comment programmez-vous l’ATMega2560, le processeur ARM du Due, du Teensy, etc..
    • Comment accédez-vous à l’EEPROM ?
    • Comment gérer le graphique ?
    • etc..

    Et je pense que bon nombre de bibliothèques écrites pour l’Arduino ne sont pas "juste une bouillie de programmation" : vous risquez de vexer du monde, en particulier sur Locoduino !

    Avez-vous déjà présenté votre environnement sur d’autres Forums de modélisme ferroviaire ?

    Répondre

  • Monter une bibliothèque ! 1er octobre 2016 13:57, par Thierry

    Merci à tous les deux d’avoir réussi à éclaircir le débat. C’est maintenant plus clair pour moi.
    Il faut se rappeler que le projet Arduino a été créé à des fins pédagogiques, et que la qualité de programmation n’était pas le but premier. Une fois les fondements en place, ce sont essentiellement des amateurs qui ont alimenté les bibliothèques externes. Comme dans tous les domaines, il y a à boire et à manger dans les outils qui gravitent autour de l’Arduino, et peu de professionnels pour recadrer les développements. Certaines des biblios les plus utilisées ont été créés par des sociétés externes (Adafruit, et d’autres...), mais elles non plus ne sont pas forcément des monuments à la gloire du développement ! D’ailleurs, je suis sûr que si je jetais un coup d’œil à vos sources, je trouverais aussi à redire... (je suis dans le métier depuis plus de trente ans !).
    Le premier avantage de l’écosystème Arduino n’est pas la qualité du code proposé ou la beauté des biblios, c’est son accessibilité. La possibilité pour des gens comme moi qui ne connaissent pas grand chose à l’électronique de fabriquer des objets que l’on croyait uniquement manufacturés et hors de prix. Et ne vous en déplaise, le système fonctionne ! Des milliers de ’maker’ dans le monde sont là pour le prouver. On peut certes faire mieux, voire beaucoup mieux, mais du moment que l’on arrive à faire ce que l’on veut, pourquoi ne pas le faire avec un environnement simple et ludique, plutôt qu’un éditeur de texte basique et une ligne de commande absconse ?

    Répondre

  • Bibliothèque ayant le même nom 24 janvier 2018 16:07, par Bobillier Eric

    Bonjour à tous
    Je suis actuellement en train de travailler sur un projet qui devrait utiliser une carte Teensy 3.6 compatible Arduino.
    https://www.pjrc.com/teensy/
    Comme vous pouvez le constater sur le site web, la Teensy 3.6 possède un connecteur SD permettant d’y installer une carte µSD.
    J’ai donc voulu mettre en œuvre cette fonctionnalité en utilisant la librairie SD fournie avec l’IDE Arduino. Malheureusement, j’ai rapidement constaté que cela ne fonctionnait pas. Après qq recherches sur le forum Teensy, j’ai trouvé que la carte SD monté dessus ne communiquait pas via un bus SPI, mais via un bus SDIO dédié. Afin de pouvoir utiliser cette fonctionnalité sur cette carte, le fabriquant a donc développé une version amélioré de la librairie SD qui est disponible dans un sous dossier Arduino et qui malheureusement porte le même nom que la librairie native de l’IDE. Ceci a pour effet de de rendre invisible la 2éme version de la librairie dans l’IDE. Ma question est donc, comment peut-on sélectionner une librairie différente de celle nativement fourni dans l’IDE lorsque celle-ci porte le même nom.
    Merci d’avance pour vos éventuelles réponses.

    Voir en ligne : https://forum.pjrc.com/threads/3765...

    Répondre

  • Monter une bibliothèque ! 24 janvier 2018 16:52, par Thierry

    Il n’y a pas de solution miracle. Perso je renommerai le répertoire de la bibliothèque en SDTeensy, et dans ce répertoire le fichier SD.h en SDTeensy.h. Ainsi une nouvelle bibliothèque SDTeensy apparaîtra et vous pourrez l’utiliser. Par contre les éventuelles mises à jour ne se feront plus...

    Répondre

  • Monter une bibliothèque ! 26 octobre 2019 16:33, par mat

    excellent tuto, clair et détaillé pour créer ses bibliothèques et les partager

    merci !!!

    Répondre

Rubrique Atelier

Les derniers articles

Les articles les plus lus