Pages: [1]   Go Down
Author Topic: [Résolu] Bibliothèques pour Arduino  (Read 1534 times)
0 Members and 1 Guest are viewing this topic.
Moselle (FR)
Offline Offline
Edison Member
*
Karma: 16
Posts: 1307
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: May 12, 2012, 02:11:53 pm by icare » Logged

2B OR NOT(2B) = FF
Arduino 1.0.5 + Notepad++ (sous Linux Fedora et/ou Windows)

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 24
Posts: 2055
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
+- 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 smiley-wink)
  - 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:
+- 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 - downloaded 25 times.)
* pcf8574.h (0.77 KB - downloaded 21 times.)
* keywords.txt (0.73 KB - downloaded 22 times.)
Logged

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 ?

0
Offline Offline
Newbie
*
Karma: 0
Posts: 11
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

VAR
Offline Offline
Newbie
*
Karma: 0
Posts: 41
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello
Tu as aussi ce lien sur le site officiel
http://arduino.cc/en/Hacking/LibraryTutorial
++
Logged

-------
ARDUINO UNO
ARDUINO NANO
ARDUINO MEGA2560
mikroMMB

Moselle (FR)
Offline Offline
Edison Member
*
Karma: 16
Posts: 1307
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley-sad

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.89 KB - downloaded 13 times.)
Logged

2B OR NOT(2B) = FF
Arduino 1.0.5 + Notepad++ (sous Linux Fedora et/ou Windows)

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 24
Posts: 2055
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

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 ?

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 24
Posts: 2055
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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

* CLCD.zip (5.17 KB - downloaded 18 times.)
Logged

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 ?

Moselle (FR)
Offline Offline
Edison Member
*
Karma: 16
Posts: 1307
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

2B OR NOT(2B) = FF
Arduino 1.0.5 + Notepad++ (sous Linux Fedora et/ou Windows)

Pages: [1]   Go Up
Jump to: