[Résolu] Bibliothèques pour Arduino

Bonjour à tous,
Comme tous les débutants, je suis à la recherche de documentation simple, concise, facile à comprendre et correspondant à mes besoins. :grin:
Bref le genre de doc qui reste à écrire. Plaisanterie à part, je recherche un tuto permettant de comprendre comment développer une librairie pour Arduino !!!
Merci de votre aide et/ou suggestion
Icare

C'est assez simple

Une lib est un fichier ou ensemble de fichiers .cpp et .h

Pour la mise au point tu va commencer par travailler dans le même répertoire que ton sktech de test.
Par exemple

+- test_ma_lib\             repertoire pour tester ta lib
    +- test_ma_lib.ino      sketch de test/demo
    +- ma_lib.cpp           le coeur de ta lib
    +- ma_lib.h             l'interface de ta lib

Comme je n'ai pas encore trouvé facilement comment créer un fichier source cpp depuis l'IDE sans créer un nouveau sketech indépendant il faut commencer par créer le répertoire et les fichiers à la main (ils peuvent être vide) AVANT de lancer l'IDE.
Ensuite quand tu va lancer l'IDE, les 3 fichiers vont s'ouvrir tous seuls.

Les fichiers doivent contenir :

  • ma_lib.h
    Les déclarations de tout ce que ta lib veut rendre accessibles, ce qui comprend :

  • les #include qui sont nécessaire dans l'interface ci-dessous

  • Les macros (#define) qui définissent des constantes utiles généralement

  • les prototypes des fonctions exportées s'il s'agit d'un LIB à interface "C"

  • les extern des variables globales exportées s'il y en a (bah, crapouet ;))

  • la définition des types et classes exportés

  • ma_lib.cpp
    On commence toujours par #include "Arduino.h" ou un peu plus compliqué si tu veux une lib compatible IDE 002x/1.0
    Puis #include "ma_lib.h"
    Puis les autres #include complémentaire que tu peux avoir besoin dans l'implémentation de ta lib
    Finalement l'implémentation du code, des variables etc ...

Exemple ci-joint ma lib pour le PCF8574, extension I/O I2C

Tu développe et debugge ta lib comme cela.

Ensuite quand viens le moment de la passer dans arduino/librraies, tu copie de la façon suivante :

+- arduino\libraries
     +- ma_lib\
           +- ma_lib.cpp
           +- ma_lib.h
           +- keywords
           +- examples
                 +- test_ma_lib
                       +- test_ma_lib.ino

Le fichier keywords sert à définir la coloration syntaxique dans l'IDE Arduino.
Regarde un fichier existant pour la syntaxe

pcf8574.cpp (1.35 KB)

pcf8574.h (785 Bytes)

keywords.txt (751 Bytes)

Tiens tu as ce tuto qui explique bien les bases des bibliothèques :wink: Tutoriel Arduino débutant : créer une librairie ou bibliothèque

Hello
Tu as aussi ce lien sur le site officiel

++

Bonsoir,
Avec les liens que vous m'avez transmis, j'ai réussi à créer la bibliothèque Morse. Mais j'avoue que tout cela me dépasse un peu lorsque j'essaie de faire une bibliothèque pour mon afficheur I2C.
Depuis deux jours le compilateur n'arrête pas de m'insulter alors qu'à la longue il devrait savoir ce que je veux :frowning:

Le programme de pilotage de l'afficheur fonctionne très bien mais la transcription vers la bibliothèque reste ésotérique pour moi.
Si Barbudor pouvait me conseiller sur la démarche à adopter pour arriver à mes fins et en même temps peut être acquérir un peu de savoir sur ce langage.

Merci, en attendant un coup de pouce sur cette application

clcd.ino (10.9 KB)

Y'a pas que moi :smiley:
Pas avant ce week-end !

Dezipper et placer le répertoire CLCD dans .../arduino-1.0/Libraries

CLCD.zip (5.17 KB)

Bonsoir,

Super Barbudor cela correspond exactement à ce que je souhaitais. J'ai bien étudié ce que tu as fait, j'ai appris et compris beaucoup de choses. Finalement mes tentatives de transcriptions vers la bibliothèques étaient vouées à l'échec car je cherchais la complication alors la solution était dès plus simple.
L'utilisation d'un exemple que l'on connait et l'aide d'un expert permet de comprendre rapidement des techniques que l'on a du mal à assimiler par les lectures classiques.
J'ai également consulté d'autres bibliothèques et de nombreux passages se sont éclaircis par contre certaines lignes restes encore des mystères pour moi. Mais cela viendra certainement avec le temps et la pratique.

Un grand merci à toi qui m'a consacré du temps pour finalement participer à ma formation.
Cordialement
Icare