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
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.
Importare il file .ZIP attraverso il menù:
Sketch -> Include Library -> Add .ZIP 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:
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.
Nel caso in cui si volesse aggiungere la libreria sopra è possibile verificare se è fra quelle riconosciute immediatamente dall’IDE Arduino.
Procedete in questo modo:
- effettuare una ricerca per DS1307
- selezionate la libreria di vostro interesse
- click su install
In fondo alla finestra verrà visualizzata la barra di avanzamento installazione:
a fine installazione comparirà di fianco al nome della libreria: “INSTALLED”
All’interno della cartella “libraries” troverete la cartella DS1307RTC appena installata:
Metodo 2
Questo metodo, già spiegato nel mio precedente post, consiste nell’aggiunta manuale della libreria.
- Chiudere l’IDE di Arduino
- Scompattate i file .zip che contiene tutti i file della libreria in una cartella temporanea
- 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)
- Posizionatevi nella “libraries” /sketchbookj/libraries e create in essa una cartella che ha lo stesso nome dei due file (.c e .h)
- 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.
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:
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:
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”
Ulteriori informazioni sulla creazioni di librerie potete trovarle anche ai seguenti link:
- Writing a Library for Arduino
- Arduino Style Guide for Writing Libraries
- arduino.cc Library Reference
Buona sperimentazione a tutti 🙂