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 linstallazione automatica delle librerie allinterno della cartella sketchbook.
La posizione esatta della cartella libraries funzione del sistema operativo. Tipicamente la libreria costituitada ungruppo 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 comefile .zip
Sul sito indicato prelevate il file facendo click sul link che vi indica lultima versione, cos come riportato nellimmagine che segue, sarete reindirizzati sul sito GitHub da cui potrete prelevare lintera 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 linstallazione necessario riavviare lIDE.
Troverete nella cartella library la libreria appena installata:
Le ultime versioni dellIDE permettono laggiunta 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 dellIDE.
Nel caso in cui si volesse aggiungere la libreria sopra possibile verificare se fra quelle riconosciute immediatamente dallIDE 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 nellaggiunta manuale della libreria.
- Chiudere lIDE di Arduino
- Scompattate i file .zip che contiene tutti i file della libreria in una cartella temporanea
- Allinterno della cartella scompattatadovranno 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)
- Copiaretutto il contenuto della cartella temporanea allinterno della nuova cartella collocata in libraries
Al successivo riavvio dellIDE la nuova cartella apparir nellelenco Sketch > Include Library
A titolo di esempio di seguito le immagini dellinstallazione della libreria precedente eseguendo i passi del Metodo 2. Ovviamente questa procedura da eseguire quando la libreria non tra quelle riconosciute dallIDE di Arduino in modalit installazione automatica.
Convenzione per lorganizzazione 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 nellesempio precedente una libreria pu contenere sottocartelle per ulteriori funzioni e allinterno possono essere collocati altri file .c o cpp e .h
Nel caso della libreria DS1307 troverete nella cartella:
Allinterno della libreria trovate:
- un filereadme.txt in cui trovareinformazioni in merito all’utilizzo della libreria e dove reperire informazioni utili ed aggiornamenti;
- Una cartella examplesche raccoglie esempi di utilizzo della libreria
- il file keyword.txt allinterno ci sono definizioni che servono allIDE in fase di utilizzo della libreria:
Il carattere #indicache tutto ci che segue, fino alla fine della riga un commento ed andr ignorato in fase di compilazione. Allinterno 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 allinterno 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 sullapplicazione 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 🙂