1.7 Installer et utiliser une bibliothèque

Le but de ce chapitre est donc de vous indiquer comment installer une bibliothèque!

Mais qu’est ce qu’une bibliothèque ?

Les bibliothèques (libraries en anglais) sont des dossiers contenant des fonctions permettant de faciliter la programmation et l’utilisation d’un composant. Généralement elles contiennent également des programmes d’exemples afin de mieux comprendre comment l’utiliser lors de leur diffusion si le créateur décide de la partager.

De manière plus concrète, supposons que je souhaite faire des statistiques. Je pourrais refaire toutes les fonctions qui m’intéressent… Mais bien que cela ne soit pas inintéressant en soit, faire tout ce travail prendrait pas mal de temps pour écrire toutes les fonctions souhaitées et il s’avère que quelqu’un a déjà fait ce travail et l’a partagé … Donc pourquoi ne pas le réutiliser plutôt que de chercher à réinventer la roue ? Et puis bon… N’oublions pas que le but de ce chapitre c’est d’installer une bibliothèque et de les utiliser! 😛

Installer la bibliothèque :

Commencez par télécharger le fichier .zip de votre bibliothèque exemple avec la bibliothèque de statistique avec le lien suivant : Statistic

Une fois que vous avez votre dossier .zip, deux méthodes s’offrent à vous :

1) Dans l’IDE Arduino cliquez sur croquis, allez sur inclure un bibliothèque puis cliquez sur  » ajouter la bibliothèque .ZIP « .
Sélectionnez alors le dossier .zip de la bibliothèque.

Votre bibliothèque est désormais installée.

2) Vous décompressez le fichier et le déposez dans le dossier C:\Users\*NomUtilisateur*\Documents\Arduino\libraries.
Puis vous redémarrer le logiciel Arduino afin de prendre les modifications en compte.
Pour moi cette deuxième méthode n’est à faire que si pour une raison inconnue la première ne marche pas !

Utiliser une bibliothèque :

Une fois la bibliothèque installée et le logiciel Arduino redémarré vous devriez la voir apparaitre dans la liste des bibliothèques installées :
ss-2016-09-24-at-01-58-15
Si ce n’est pas le cas vérifiez bien que vous l’ayez placé dans le bon dossier puis relancez Arduino.

Afin de savoir comment fonctionne la bibliothèque installée vous pourrez vous servir de la page d’aide qui accompagne généralement la bibliothèque ou alors vous aider des exemples fournis avec celle-ci disponible ici :

ss-2016-09-24-at-02-08-19

C’est d’ailleurs à partir de ce programme qu’à été créé le programme ci dessous. Donc commençons par une ligne dans le programme nécessaire à toute bibliothèque :

#include "Statistic.h"

Elle permet d’inclure la bibliothèque au programme et donc d’utiliser les fonctions qu’elle contient.
Maintenant vous pourrez utiliser la bibliothèque en vous basant sur les exemples et pages d’aides.

Pour finir voici un petit programme utilisant cette bibliothèque qui utilise les nombres entrés dans le moniteur série pour ressortir le nombre minimum, maximum ainsi que la moyenne de ceux rentrés :

#include "Statistic.h" //Ajoute la bibliothèque Statistic au programme

// Variables :
int recep; //Variable de test pour la réception
String msg; //Variable contenant le message

Statistic stat; //Initialise les statistiques

void setup()
{
//Connectique
Serial.begin(9600); //On initialise la liaison Série à 9600 bauds
Serial.println(" MIN | MAX | MOYENNE"); //Nomme les colonnes
stat.clear(); //Vide les statistiques
}

void loop()
{
recep = Serial.available(); // Égale 0 si rien n'a été reçu

if (recep > 0) //Si un message a été reçu :
{
msg = Serial.readString(); //Lit le message reçu comme une suite de caractère
recep = msg.toInt(); //Et la converti en nombre entier
stat.add(recep); //Ajoute le nombre dans les stats
recep = 0; //Sécurité pour ne pas avoir deux fois le même nombre
Serial.print(stat.minimum()); Serial.print (" | "); //Affiche le minimum et le séparateur
Serial.print(stat.maximum()); Serial.print (" | "); //Affiche le maximum et le séparateur
Serial.println(stat.average()); //Affiche la moyenne des nombres entrés

}
}

 

Second exemple :

Nous allons maintenant voir une seconde bibliothèque qui pourrait vous simplifier la vie dans de futurs projets. Elle se nomme ScheduleTable (téléchargeable ici) dont vous pourrez trouver toute la documentation ici. Son but est d’organiser les tâches en les assignant à un certains moments par rapport au début de la boucle. On pourrait représenter cette bibliothèque comme une règle dans votre programme sur laquelle vous pouvez placer des actions à effectuer (Allumer une led, afficher un message, ce que vous souhaitez) :

Image tirée de la documentation de la bibliothèque
Image tirée de la documentation de la bibliothèque

C’est ce qu’on appelle une table d’ordonnancement.

Assez parlé, essayons de créer un programme très simple avec cette bibliothèque.

Utiliser cette bibliothèque :

Après l’avoir installée comme indiqué plus haut, il vous faudra commencer par l’importer dans votre programme:

#include <ScheduleTable.h>

Puis on va créer avant la boucle setup() notre table d’ordonnancement :

ScheduleTable blinkLED(2,1000); //(Nombres d'actions, sur 500ms)

Ensuite il nous faut créer les actions que l’on souhaite effectuer sous forme de fonctions (void), je vous conseille de les placer à la fin pour avoir un programme plus lisible.  Afin de faire simple pour cet exemple les deux actions que je souhaite effectuer seront donc allumer et éteindre la led :

//Les actions :
void ledON()
{
  digitalWrite(LED, HIGH);
}

void ledOFF()
{
  digitalWrite(LED, LOW);
}

Et on applique ces actions à un temps dans la fonction setup() et on lance la table un nombre infini de fois (si vous souhaitez le restreindre, il vous suffira d’entrer un nombre dans la parenthèse après le start):

  blinkLED.at(100,ledON);
  blinkLED.at(600,ledOFF);

  blinkLED.start(); //Fais tourner la table infiniment

Il nous reste plus qu’à ajouter actualiser la table dans la fonction loop()   :

ScheduleTable::update(); //Met à jour la table

Et voici donc le programme final :

#include <ScheduleTable.h>

ScheduleTable blinkLED(2,1000); //(Nombres d'actions, sur 1000ms)

#define LED 13

void setup() {
  pinMode(LED, OUTPUT);

  blinkLED.at(100,ledON);
  blinkLED.at(600,ledOFF);

  blinkLED.start(); //Fais tourner la table infiniment
}

void loop() {
  ScheduleTable::update(); //Met à jour la table
}

//Les actions :
void ledON()             //Allumer la led
{
  digitalWrite(LED, HIGH);
}

void ledOFF()            //Eteindre la led
{
  digitalWrite(LED, LOW);
}

Si ces bibliothèques ne vous ont pas paru très utile, rassurez vous nous en verrons d’autres par la suite qui vous permettront de contrôler très facilement un écran LCD, un capteur à ultrasons ou encore un servomoteur dans le prochain tome 😉

Mais en attendant nous allons d’abord voir comment mixer les différents programmes qu’on a vu afin de faire des programme de plus en plus complexe simplement !

En effet vous comprendrez bien vite, qu’un programme aussi complexe soit il n’est essentiellement que la combinaison de briques de code plus élémentaires qu’il faut juste savoir assembler! D’autant plus que chaque bibliothèque inclut des codes d’exemple qu’il vous faudra tout simplement combiner avec vos propres code pour faire le programme qui vous convient ! 😉

Bonus 1) Trouver la bibliothèque !

Tout d’abord, avant d’installer une bibliothèque il vous faut trouver la bibliothèque que vous souhaitez utiliser (si elle existe, il y en a beaucoup mais certains composants n’en possède pas)
Puisqu’il nous faut un exemple, je vais reprendre l’exemple de la bibliothèque statistique. D’où qu’elle vient cette librairie ?
J’ai personnellement tapé dans la barre de recherche de mon navigateur internet les mots clefs suivant : « arduino library stat ».
Voici la première page que j’ai trouvé.
On retrouve une trace de l’existence de la bibliothèque arduino « Statistics » et on observe découvre que la bibliothèque est hébergée ici par le site GitHub. ( Ce qui est souvent le cas car la plateforme GitHub est l’une des meilleures plateforme pour du partage de code avec gestion de version 😉 ) .

Bonus 2) Télécharger la bibliothèque !

Notre but est de télécharger le dossier .zip de notre librairie. Le dossier complet qui contient donc l’ensemble des fichiers .c , .h etc … ainsi que le dossier « examples » et son contenu ! 🙂
Sur github vous trouverez souvent un bouton avec la mention  » clone or download  » qui permet de directement télécharger ce dossier sous forme de zip ! Dans ce cas en un clique c’est réglé 😉 Mais ça aurait été trop facile … Et donc c’est pas possible directement sur la page qu’on vient de trouver… Zut alors !
Pour ceux qui veulent la facilité on vous a mâché le travail et l’ensemble est téléchargeable ici.
Mais pour les autres comprenez que Mr Rob Tillaart qui a généreusement partagé cette bibliothèque a en fait partagé un dossier plus gros qui contient ce qui nous intéresse et qu’il a nommé son dossier arduino…
En cliquant sur  » Arduino  » vous arrivez sur la racine du projet partagé là vous trouverez le fameux bouton qui vous permet de télécharger l’ensemble du dossier au format .zip qui contient le dossier « Statistic » que vous voulez !

Il ne vous restera plus qu’à deziper le dossier, et récupérer le dossier « Statistic » se trouvant dans le répertoire « libraries » du dossier! ( Au passage vous découvrirez que vous avez même télécharger une foule de bibliothèques et que dans le lot certaines vont sans doutes pouvoir vous intéresser ! 😉 )
Pour avoir la version zip du dossier il suffit de le zipper avec le logiciel de compression de données et d’archivage de fichiers de votre choix =) ( comme winRar ou 7-Zip par exemple )

C’est à vous maintenant! N’hésitez pas à partager avec nous les noms de vos bibliothèques préférées!

 

<- Retourner à la page précédente | Passer à la page suivante ->

2 réflexions sur « 1.7 Installer et utiliser une bibliothèque »

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *