Go Down

Topic: [Résolu] Bibliothèques pour Arduino (Read 1 time) previous topic - next topic

icare

May 08, 2012, 10:07 am Last Edit: May 12, 2012, 09:11 pm by icare Reason: 1
Bonjour à tous,
Comme tous les débutants, je suis à la recherche de documentation simple, concise, facile à comprendre et correspondant à mes besoins.  :smiley-mr-green:
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
2B OR NOT(2B) = FF
Arduino 1.0.5 + Notepad++ (sous Linux Fedora et/ou Windows)

barbudor

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
Code: [Select]
+- 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 :

Code: [Select]
+- 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
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

adri18

Tiens tu as ce tuto qui explique bien les bases des bibliothèques ;) http://www.robot-maker.com/index.php?/tutorials/article/30-creer-une-bibliotheque-arduino/

oldchap

Hello
Tu as aussi ce lien sur le site officiel
http://arduino.cc/en/Hacking/LibraryTutorial
++
-------
ARDUINO UNO
ARDUINO NANO
ARDUINO MEGA2560
mikroMMB

icare

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 :(

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
2B OR NOT(2B) = FF
Arduino 1.0.5 + Notepad++ (sous Linux Fedora et/ou Windows)

barbudor

Y'a pas que moi :D
Pas avant ce week-end !
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

barbudor

Dezipper et placer le répertoire CLCD dans .../arduino-1.0/Libraries
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

icare

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
2B OR NOT(2B) = FF
Arduino 1.0.5 + Notepad++ (sous Linux Fedora et/ou Windows)

Go Up