Aggiungere librerie nell’IDE Arduino

Durante un mio recente corso presso l’Università di Padova ho spiegato come installare e creare librerie in Arduino utilizzando le informazioni che scrissi tempo fa nel tutorial: Arduino – lezione 08: display a 7 segmenti e creazione di librerie
aggiungo a quanto già scritto alcuni approfondimenti e precisazioni che credo possano essere utili per chi incomincia ad utilizzare Arduino.

Esistono due modi per installare una libreria in Arduino:

Modo 1

Dalla versione 1.0.5 in avanti è possibile l’installazione automatica delle librerie all’interno della cartella sketchbook.
La posizione esatta della cartella “libraries” è funzione del sistema operativo. Tipicamente la libreria è costituita da un gruppo di file compressi in formato .zip da importare dal menù principale.

A titolo di esempio supponiamo di voler installare la libreria per la gestione del Real Time Clock DS1307 dal sito PJRC e installiamola importandola come file .zip

02-arduino-library

Sul sito indicato prelevate il file facendo click sul link che vi indica l’ultima versione, così come riportato nell’immagine che segue, sarete reindirizzati sul sito GitHub da cui potrete prelevare l’intera libreria.

03-arduino-library

04-arduino-library

Importare il file .ZIP attraverso il menù:

Sketch -> Include Library -> Add .ZIP Library…

01-arduino-library

Selezionate la cartella o il file .zip che contiene tutti i file che costituiscono la libreria.

Dopo l’installazione è necessario riavviare l’IDE.

Troverete nella cartella library la libreria appena installata:

05-arduino-library

Le ultime versioni dell’IDE permettono l’aggiunta di librerie in una modalità leggermente diversa e tutte le funzioni di gestione delle librerie sono racchiuse sotto “Include Library”, inoltre nelle ultime versioni vengono riconosciute in automatico le nuove versioni delle librerie che si stanno utilizzando e il loro riconoscimento avviene senza il riavvio dell’IDE.

06-arduino-library

07-arduino-library

08-arduino-library

09-arduino-library

Nel caso in cui si volesse aggiungere la libreria sopra è possibile verificare se è fra quelle riconosciute immediatamente dall’IDE Arduino.

Procedete in questo modo:

  1. effettuare una ricerca per DS1307
  2. selezionate la libreria di vostro interesse
  3. click su install

10-arduino-library

In fondo alla finestra verrà visualizzata la barra di avanzamento installazione:

11-arduino-library

a fine installazione comparirà di fianco al nome della libreria: “INSTALLED”

12-arduino-library

All’interno della cartella “libraries” troverete la cartella DS1307RTC appena installata:

13-arduino-library

Metodo 2

Questo metodo, già spiegato nel mio precedente post, consiste nell’aggiunta manuale della libreria.

  1. Chiudere l’IDE di Arduino
  2. Scompattate i file .zip che contiene tutti i file della libreria in una cartella temporanea
  3. All’interno della cartella scompattata dovranno essere presenti almeno due file:
    • un file .c o .cpp (il programma)
    • un file .h (un include o file header)
  4. Posizionatevi nella “libraries” /sketchbookj/libraries e create in essa una cartella che ha lo stesso nome dei due file (.c e .h)
  5. Copiare tutto il contenuto della cartella temporanea all’interno della nuova cartella collocata in “libraries”

Al successivo riavvio dell’IDE la nuova cartella apparirà nell’elenco Sketch > Include Library

A titolo di esempio di seguito le immagini dell’installazione della libreria precedente eseguendo i passi del Metodo 2. Ovviamente questa procedura è da eseguire quando la libreria non è tra quelle riconosciute dall’IDE di Arduino in modalità installazione automatica.

14-arduino-library

Convenzione per l’organizzazione di una libreria

A titolo di esempio una struttura di libreria:

DotBotControl/DotBotControl.cpp
                       /DotBotControl.h
                       /keyword.txt
                       /README
                       /utility/DotBotLineFollower.cpp
                                /DotBotLineFollower.h
                                /DotBotDebounce.cpp
                                /DotBotDebounce.h
                                /DotBotTracker.cpp
                                /DotBotTracker.h
                      /Examples/move/move.ino
                               /LineFollower/LineFollower.ino

Come nell’esempio precedente una libreria può contenere sottocartelle per ulteriori funzioni e all’interno possono essere collocati altri file .c o cpp e .h

Nel caso della libreria DS1307 troverete nella cartella:
15-arduino-library

All’interno della libreria trovate:

  • un file readme.txt in cui trovare informazioni in merito all’utilizzo della libreria e dove reperire informazioni utili ed aggiornamenti;
  • Una cartella examples che raccoglie esempi di utilizzo della libreria
  • il file keyword.txt all’interno ci sono definizioni che servono all’IDE in fase di utilizzo della libreria:

16-arduino-library

Il carattere # indica che tutto ciò che segue, fino alla fine della riga è un commento ed andrà ignorato in fase di compilazione. All’interno si troveranno una serie di parole chiavi: funzioni o variabili, classi, strutture, costanti letterali (macro). Di seguito un elenco dei principali tipi che potreste trovare all’interno del file keyword.txt

KEYWORD1: Classi, parole chiavi in C++, tipi di dati
KEYWORD2: Metodi e funzioni
KEYWORD3: Strutture: setup, loop, ecc…
LITERAL1: Costanti letterali
LITERAL2: Variabili (in genere non usato)

Ulteriori informazioni sul file keyword.txt potete trovarlo direttamente:

  • in Windows: c:\Program Files\Arduino\lib
  • in Linux /usr/share/arduino/lib
  • in MacOSX Contents/Java/lib

In MacOSX si raggiunge la cartella indicata facendo click con tasto destro sull’applicazione e selezionando “Show Package Contents”

17-arduino-library

18-arduino-library

 

Ulteriori informazioni sulla creazioni di librerie potete trovarle anche ai seguenti link:

Buona sperimentazione a tutti 🙂

Articoli simili:

Questa voce è stata pubblicata in arduino, i miei allievi, tutorial e contrassegnata con , , , . Contrassegna il permalink.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *