Liste des bibliothèques les plus utiles

Bonjour
Je propose de poster ici, dans une suite de messages, une liste des bibliothèques (Arduino généralistes qu'on trouve sur Internet, ou home-made par les membres du forum) les plus utiles et pertinentes pour nos projets. Ceci permettrait d'aider les débutants à choisir celles qu'ils utilisent, "validées" par les membres du forum.

On pourrait les classer par catégories:

  • Capteurs
  • Communication et protocoles
  • Ecrans
  • Calculs et maths
  • Mémoire et stockage
  • Etc.
    Des volontaires ?

Il suffit d'ajouter en fin du titre de votre réponse un tag avec la catégorie, par exemple:

Liste des bibliothèques les plus utiles [Ecrans LCD]

et d'écrire votre message avec a minima (en quelques ligens) :

  • Nom de la bibliothèque
  • Principales fonctions
  • Adresse du github ou du téléchargement
  • Remarques (pourquoi vous la conseillez)

Petit tuto rapide pour installer une bibliothèque sur l'IDE Arduino sous Windows.

On trouve plein de tutos semblables sur Internet (Google "Arduino ide installer bibliothèque")

Pour installer une bibliothèque : 2 possibilités.

  • Passer par la fonction idoine de l'IDE. Menu : "Croquis" > "Inclure une bibliothèque" > "Gérer les bibliothèques". Une fenêtre s'ouvre avec la liste des bibliothèques disponibles. On peut filtrer les noms grâce au filtre en haut à droite, ou en choisissant un sujet dans le menu déroulant au milieu en haut.
    Notez que le menu de gauche permet de voir les biblis installées et de les mettre à jour.

  • Installer directement en téléchargeant une archive. Aller sur le site de téléchargement et télécharger l'archive (fichier zip le plus souvent) contenant la bibli à installer. Si le site est un dépôt Github, un bouton vert en haut à droite ("Clone or download") permet de la télécharger en choisissant "Download ZIP". Dézipper l'archive sur votre PC et déplacer le répertoire nouvellement créé dans votre répertoire de bibliothèques arduino (en général il est sous: Mes Documents/Arduino/libraries). Si le répertoire déplacé se termine par '-master', ôter ces lettres du nom du répertoire.

  1. git clone

Exemple : GitHub - adafruit/Adafruit-GFX-Library: Adafruit GFX graphics core Arduino library, this is the 'core' class that all our other graphics libraries derive from
Cliquer sur "Clone or download".
Copier le lien : GitHub - adafruit/Adafruit-GFX-Library: Adafruit GFX graphics core Arduino library, this is the 'core' class that all our other graphics libraries derive from

Dans le répertoire arduino/libraries :

git clone GitHub - adafruit/Adafruit-GFX-Library: Adafruit GFX graphics core Arduino library, this is the 'core' class that all our other graphics libraries derive from

Mise à jour :

Dans le répertoire arduino/libraries/Adafruit-GFX-Library :

git pull

Pour les accros à la ligne de commande :grin:

Bibliothèque TFT_eSPI

Ecrite par Bodmer, membre actif du forum US, section Displays, cette bibliothèque est compatible Arduino, ESP8266 et ESP32. Elle permet d'utiliser les écrans TFT basés sur de nombreux drivers (ILI9341, ILI9163, ST7735, S6D02A1, ILI9481, ILI9486, ILI9488, HX8357D et ST7789) communiquant sur le bus SPI. Elle prend en compte nativement les touchscreens.

La bibliothèque comprend une classe "Sprite", qui permet des mises à jour sans scintillement de graphiques complexes pour faire des animations.

Un peu complexe pour une première utilisation, elle est ensuite facile pour une utilisation routinière. Un fichier user-setup permet de définir les paramètres de l'écran utilisé. Beaucoup d'exemples sont disponibles dans l'archive de la bibliothèque.

Un exemple simple pour tracer des ellipses à des endroits aléatoires sur l'écran :

#include <TFT_eSPI.h> // Déclaration des bibliothèques
#include <SPI.h>

TFT_eSPI tft = TFT_eSPI();    // Instanciation de l'objet "tft" (l'écran)

void setup(void) {
  tft.init();                 // init
  tft.setRotation(1);   // orientation de l'écran (0-3)

}

void loop() {
  tft.fillScreen(TFT_BLACK);   // on remplit l'écran en noir

  // Draw some random ellipses
  for (int i = 0; i < 40; i++)
  {
    int rx = random(60);
    int ry = random(60);
    int x = rx + random(320 - rx - rx);
    int y = ry + random(240 - ry - ry);
    tft.fillEllipse(x, y, rx, ry, random(0xFFFF));
  }

  delay(2000);
  tft.fillScreen(TFT_BLACK);

  for (int i = 0; i < 40; i++) // Affichage de 40 ellipses colorées à des endroits aléatoires
  {
    int rx = random(60);
    int ry = random(60);
    int x = rx + random(320 - rx - rx);
    int y = ry + random(240 - ry - ry);
    tft.drawEllipse(x, y, rx, ry, random(0xFFFF));
  }

  delay(2000);
}

Avec un sprite qui fait un parcours en huit c'était bon pour le Challenge.

:slight_smile: