librerie
Tecnologie arduino e non vedenti: panoramica delle librerie arduino.
Donato Taddei in privato, 09\10\2014, h. 00.41.

hPanoramica delle librerie Arduino
A beneficio dei nuovi venuti diciamo che nei post meno recenti abbiamo dapprima illustrato lo 
scopo del gruppo, gli obbiettivi, i tentativi.
Abbiamo poi visto sommariamente cosa  Arduino, come  fatto un programma Arduino, cosa si pu fare 
con Arduino, come ricevere o inviare segnali, digitali o analogici, anche a modulazione di 
larghezza (pwm),
mostrando elementari esempi di programma.
Abbiamo parlato di sensori ad ultrasuoni ed accennato ad altri comuni sensori dalla cui gestione 
potrebbero derivare ai non vedenti notevoli aiuti per quanto riguarda gli strumenti di misura in 
generale: dalla bussole alle bilance, dai multimetri alle sonde termiche, piaccametri ecc.
Abbiamo poi visto come con Arduino si pu costruire una vera e propria rete domotica, parlando del 
progetto OpenDomotica ed anche parlato dell'inaccessibilit dell'ambiente di sviluppo Arduino, ma 
anche di come questo ostacolo si pu in parte aggirare o alleviare, sia attraverso file batch che 
utilizzando servizi online come
http://www.codebender.com/
Sar ora il caso di dare una occhiata sommaria alle librerie standard di Arduino, anche per 
chiarirsi le idee e non parlare troppo a sproposito.
La distribuzione Arduino in prima istanza contiene le seguenti cartelle i cui nomi sono esplicativi:
drivers
Examples, divisi in 14 categorie, e ce n' abbastanza per molte esigenze.
hardware che per contiene al suo interno il compilatore e i tools a corredo
java: contiene quanto occorre a java per l'ide che  appuntoun applicazine java;
Lib le librerie java
libraries le librerie
references
Soffermiamoci sulla directory libraries, nel caso di specie della distribuzione Arduino-nightly o 
Arduino 2.
contiene una serie di cartelle ciascuna contenente una data libreria, corredata di esempio e 
sorgenti. file header *.h e file c++
Le esamineremo brevemente, aiutandomi in qualche caso col traduttore di Google.
Per la maggior parte di esse viene riportato anche l'uri di riferimento della documentazione 
relativa.
Libreria Audio:
non l'ho fatto per dispetto, magari a Luca, solo la prima in ordine alfabetico.
Per quelli che dicono che non si pu fare una sintesi per Arduino
name=Audio
sentence=Allows playing audio files from an SD card. For Arduino DUE only.
paragraph=With this library you can use the Arduino Due DAC outputs to play audio files. simbolo di 
minore br / simbolo di maggiore The audio files must be in the raw .wav format.
url=http://arduino.cc/en/Reference/Audio
architectures=sam
Libreria bridge
name=Bridge
version=1.0
author=Arduino
maintainer=Arduino  simbolo di minore info@arduino.cc simbolo di maggiore 
sentence=Enables the communication between the Linux processor and the AVR. For Arduino Yn and TRE 
only.
paragraph=The Bridge library feature: access to the shared storage, run and manage linux processes, 
open a remote console, access to the linux file system, including the SD card, enstablish http 
clients or servers.
url=http://arduino.cc/en/Reference/YunBridgeLibrary
architectures=*
N.b: il bridge non  il gioco, e nemmeno c'entra niente col bridge di java, ma  il ponte tra la 
scheda Arduino e il coprocessore linux che schede Arduino come la Yun utilizzano.
L'analogia con Android su questo  particolarmente significativa, da che, come saprete meglio di 
me, anche Android a basso livello si appoggia a un kernel linux.
Chiaro no di cosa si sta parlando: altro che giochi di luce!
Libreria EEPROM
Il microcontrollore sulla scheda Arduino ha EEPROM: memoria i cui valori sono mantenuti quando la 
scheda  spento (come un disco rigido minuscolo). Questa libreria permette di leggere e scrivere i 
byte.
I microcontrollori sulle varie schede Arduino hanno diverse quantit di EEPROM: 1024 bytes sul 
ATmega328, 512 byte sulla ATmega168 e ATmega8, 4 KB (4096 byte) sul ATmega1280 e ATmega2560.
Funzioni
- read ()
- write ()
Libreria ESPLORA (Cortesemente prestare attenzione prima di sentenziare ci che si pu e non si 
pu, grazie!)
La Arduino ESPLORA ha una serie di funzioni per l'interfacciamento con i sensori e gli attuatori 
montati sulla scheda. Le funzioni sono accessibili tramite la classe ESPLORA.
Lalibreria offre un facile accesso ai dati provenienti dai sensori di bordo, e fornisce la 
possibilit di cambiare lo stato delle uscite.
I sensori disponibili sulla scheda sono:
joystick analogico 2 assi
centro pulsante del joystick
-4 Pulsanti
Capisco bene? una roba a 5 vie?
microfono
-sensore di luce
sensore di temperatura
-Accelerometro a 3 assi
-2 Connettori di ingresso Tinkerkit
Gli attuatoridisponibili sulla scheda sono:
-luminosa RGB (Red-Green-Blue) LED
-piezo buzzer
-2 Connettori di uscita Tinkerkit
Per ulteriori informazioni sul ESPLORA, vist la Guida introduttiva e la pagina hardware.
Gli esempi ESPLORA Principianti mostrano le funzionalit degli ingressi e delle uscite della 
scheda. Si tratta di un buon posto per iniziare a sperimentarele capacit del ESPLORA.
Gli esempi degli esperti sono disegni pi dettagliati che illustrano le idee progettuali che 
utilizzano le funzionalit di bordo in modi nuovi.
principianti
-EsploraBlink: Blink RGB LED del ESPLORA
-EsploraAccelerometer: Leggere i valori dall'accelerometro
-EsploraJoystickMouse: utilizzare il joystick del ESPLORA per controllare il cursore del computer
-EsploraLedShow: Usate il Joystick e il cursore per creare uno spettacolo di luci con LED
-EsploraLedShow2: utilizzare il microfono del ESPLORA, potenziometro lineare, e sensore di luce per 
cambiare il colore del bordo LED.
-EsploraLightCalibrator: Leggere i valori del sensore di luce
-EsploraMusic: Fare qualche musica con il ESPLORA
-EsploraSoundSensor: leggere i valori dal microfono del ESPLORA
-EsploraTemperatureSensor: Leggi il sensore di temperatura ed ottenere la temperatura in Farhenheit 
o Celsius.
esperti
-EsploraKart: Utilizzare il ESPLORA come un controller per giocare un gioco di corse di kart.
-EsploraTable: Stampare le informazioni del sensore ESPLORA in un formato tabella.
-EsploraRemote: Collegare il ESPLORA al trattamento e controllare le uscite.
-EsploraPong: Gioca Pong con il ESPLORA utilizzando Processing.
N.B. Vedete da voi che non c' da inventare nessuna acqua calda, nemmeno da impapocchiare 
improbabili scatolotti, c' praticamene gi tutto pronto, bisogna solo servirsene o quasi.
Allora chi si incaponisce o parla a vanvera? Ma io naturamente, e chi se no!
Costruttore-ESPLORA
funzioni
-readSlider ()
-readLightSensor ()
-readTemperature ()
-readMicrophone ()
-readJoystickSwitch ()
-readJoystickButton ()
-readAccelerometer ()
-readButton ()
-readJoystickX ()
-readJoystickY ()
-writeRGB ()
-writeRed ()
-writeGreen ()
-writeBlue ()
-readRed ()
-readGreen ()
-readBlue ()
-tone ()
-noTone ()

LibreriaEthernet
Lalibreria Ethernet consente di collegare a Internet oa una rete locale.  possibile creare 
applicazioni come server web o pagine web di accesso, inviare e-mail o una variet di altre 
funzioni di Internet.
Requisiti hardware
Il modo pi semplice per utilizzare Ethernet con Teensy  il kit WIZ812 CA e WIZ812 modulo Ethernet 
(fatta da Wiznet e venduto da Saelig e altre societ).
uso di base
Ethernet.begin (mac, ip, gateway, subnet);
Inizializzare la libreria Ethernet e hardware. "mac" e "ip" sono obbligatori. "gateway" e 
"sottorete" sono opzionali.
Permettere altri computer di connettersi (che funge da server)
Mioserver Server = Server (port)
Creare un server che ascolto per le connessioni in ingresso su un numero di porta specifico.
myserver.begin ()
Iniziare l'ascolto per le connessioni in entrata.
MyClient client = myserver.available ();
Attendere fino a quando qualcuno si connette alla porta del server, per poi tornare un oggetto 
client che pu essere utilizzato per comunicare.
Collegamento ad altri computer (opera come client)
MyClient client = client (ip, port)
Creare un oggetto client che si collega a un altro computer a un numero IP specifico e il numero di 
porta.
myclient.connect ()
Effettuare il collegamento. Restituisce true se l'altro computer ha accettato la connessione.
Comunicare mentre si  connessi
myclient.print (dati)
Inviare dati.
myclient.available ()
Controllare se i dati  stato ricevuto ed  disponibile da leggere.
myclient.read ()
Leggere un byte ricevuti. o -1 se non sono ricevuti bytes
myclient.connected ()
Controllare se l'altro computer  ancora collegato. Disconnecton viene segnalato solo dopo che 
tutti i dati  stato letto.
myclient.stop ()
Scollegare dal computer.
esempio di programma
La Biblioteca Ethernet dotato di esempi, come questo semplice server web cui si pu accedere da 
qualsiasi browser.
Questo esempio di codice pu essere caricato dal File simbolo di maggiore  Esempi simbolo di 
maggiore  Ethernet simbolo di maggiore  dal menu WebServer.
 necessario modificare il numero IP ad un numero che  appropriato per la rete Ethernet locale.
Alcuni esempi Ethernet funzioneranno solo con il Arduino Serial Monitor aperto. Per consentire 
questi esempi per lavorare senza il serial monitor, trovare ed eliminare questo codice:
while (! seriale) {
; / / Attendere per la porta seriale per la connessione. Necessario per Leonardo solo
}
Connessioni WIZ812MJ modulo
Il Kit adattatore WIZ812  il modo pi semplice per utilizzare il modulo WIZ812 Ethernet. Ma pu 
anche essere collegato con solo 6 fili.
Sar necessario il modulo WIZnet WIZ812MJ Ethernet, che  disponibile da diversi distributori a 
prezzi molto convenienti.
Libreria Firmata
Lalibreria Firmata implementa il protocollo Firmata per la comunicazione con il software sul 
computer host. Questo permette di scriverefirmware personalizzato, senza dover creare il proprio 
protocollo e oggetti per l'ambiente di programmazione che si sta utilizzando.
metodi
inizio ()
avviare la libreria
begin (lungo)
avviare la biblioteca e ignorare il baud rate di default
printVersion ()
inviare la versione del protocollo al computer host
blinkVersion ()
lampeggia la versione del protocollo sul pin 13
printFirmwareVersion ()
inviare il nome e la versione del firmware per il computer host
setFirmwareVersion (byte maggiore, byte minore)
impostare il nome e la versione del firmware, utilizzando il nome del file di disegno, meno l'. PDE
invio di messaggi
sendAnalog (pin byte, int value)
inviare un messaggio analogico
sendDigitalPorts (pin byte, byte firstPort, byte secondPort)
inviare porte digitali come singoli byte
sendDigitalPortPair (pin byte, int value)
inviare porte digitali come uno int
sendSysex (comando byte, byte bytec, byte * bytev)
inviare un comando con una matrice arbitraria di byte
SendString (const char * string)
inviare una stringa al computer host
SendString (comando byte, const char * string)
inviare una stringa al computer host utilizzando un tipo di comando personalizzato
Ricezione di messaggi
disponibili ()
controllare per vedere se ci sono messaggi in arrivo nel buffer
ProcessInput ()
elaborare i messaggi in arrivo dal buffer, l'invio dei dati a tutte le funzioni di callback 
registrati
allegare (comando byte, callbackFunction myFunction)
allegare una funzione per un tipo di messaggio in arrivo
staccare (comando byte)
staccare una funzione da un tipo di messaggio in arrivo
Funzioni di callback
Al fine di collegare la funzione di un tipo di messaggio, la funzione deve corrispondere la 
funzione di callback standard. Attualmente ci sono tre tipi di funzioni di callback in Firmata: 
generici, spaghi, e sysex.
generico
callbackFunction void (pin byte, int value);
system_reset
systemResetCallbackFunction void (void);
stringa
stringCallbackFunction void (char * Stringa);
sysex
sysexCallbackFunction void (pin byte, byte byteCount, byte * arrayPointer);
Tipi di messaggi
Questi sono i vari tipi di messaggi che  possibile allegare funzioni.
ANALOG_MESSAGE
il valore analogico di un unico perno
DIGITAL_MESSAGE
8 bit di dati digitali pin (un orificio)
REPORT_ANALOG
abilitare / disabilitare la segnalazione di pin analogico
REPORT_DIGITAL
abilitare / disabilitare la segnalazione di una porta digitale
SET_PIN_MODE
cambiare la modalit perno tra ingresso / uscita / PWM / etc.
FIRMATA_STRING
Stringhe in stile C, utilizza stringCallbackFunction per il tipo di funzione
SYSEX_START
generici, messaggi di lunghezza arbitraria (tramite protocollo MIDI SysEx), utilizza 
sysexCallbackFunction per il tipo di funzione
SYSTEM_RESET
messaggio per ripristinare il firmware allo stato predefinito, utilizza systemResetCallbackFunction 
per il tipo di funzione
Libreria GSM
sentence=Enables GSM/GRPS network connection using the Arduino GSM Shield. For all Arduino boards 
BUT Arduino DUE.
paragraph=Use this library to make/receive voice calls, to send and receive SMS with the Quectel 
M10 GSM module. simbolo di minore /br simbolo di maggiore This library also allows you to connect 
to internet through the GPRS networks. You can either use web Clients and Servers. simbolo di 
minore url=http://arduino.cc/en/Reference/GSM
architectures=avr
Libreria liquidchristal
sentence=Allows communication with alphanumerical liquid crystal displays (LCDs). For all Arduino 
boards.
paragraph=This library allows an Arduino board to control LiquidCrystal displays (LCDs) based on 
the Hitachi HD44780 (or a compatible) chipset, which is found on most text-based LCDs. The library 
works with in either 4 or 8 bit mode (i.e. using 4 or 8 data lines in addition to the rs, enable, 
and, optionally, the rw control lines).
url=http://arduino.cc/en/Reference/LiquidCrystal
architectures=*
Libreria Robot_Controls
sentence=Enables easy access to the controls of the Arduino Robot Control board. For Arduino Robot 
only.
paragraph=The Arduino robot is made by two independent boards. The Control Board is the top board 
of the Arduino Robot, with this library you can easily write sketches to control the robot.
url=http://arduino.cc/en/Reference/RobotLibrary
architectures=avr
Libreria Robot_motor
sentence=Enables easy access to the motors of the Arduino Robot Motor board. For Arduino Robot only.
paragraph=
url=http://arduino.cc/en/Reference/RobotLibrary
architectures=avr
Libreria Robotirremote
sentence=Allows controlling the Arduino Robot via an IR remote control. For Arduino Robot only.
paragraph=
url=https://github.com/shirriff/Arduino-IRremote
architectures=avr
Libreria scheduler
sentence=Allows multiple tasks to run at the same time, without interrupting each other. For 
Arduino DUE only.
paragraph=The Scheduler library enables the Arduino Due to run multiple functions at the same time. 
This allows tasks to happen without interrupting each other.This is a cooperative scheduler in that 
the CPU switches from one task to another. The library includes methods for passing control between 
tasks.
url=http://arduino.cc/en/Reference/Scheduler
architectures=sam
Libreria SD
sentence=Enables reading and writing on SD cards. For all Arduino boards.
paragraph=Once an SD memory card is connected to the SPI interfare of the Arduino board you are 
enabled to create files and read/write on them. You can also move through directories on the SD 
card.
url=http://arduino.cc/en/Reference/SD
architectures=*
Libreria Servo
sentence=Allows Arduino boards to control a variety of servo motors. For all Arduino boards.
paragraph=This library can control a great number of servos.It makes careful use of timers: the 
library can control 12 servos using only 1 timer. On the Arduino Due you can control up to 60 
servos.
url=http://arduino.cc/en/Reference/Servo
architectures=avr,sam
Libreria SpacebrewYun
sentence=Enables the communication between interactive objects using WebSockets. For Arduino Yn 
only.
paragraph=This library was developed to enable you to easily connect the Arduino Yn to Spacebrew. 
To learn more about Spacebrew visit Spacebrew.cc
url=https://github.com/julioterra/yunSpacebrew
architectures=avr
version=1.0
dependencies=Bridge
core-dependencies=arduino ( simbolo di maggiore =1.5.0)
Libreria Stepper
sentence=Allows Arduino boards to control a variety of stepper motors. For all Arduino boards.
paragraph=This library allows you to control unipolar or bipolar stepper motors. To use it you will 
need a stepper motor, and the appropriate hardware to control it.
url=http://arduino.cc/en/Reference/Stepper
architectures=*
Libreria Temboo
sentence=This library enables calls to Temboo, a platform that connects Arduino boards to 100+ 
APIs, databases, code utilities and more.
paragraph=Use this library to connect your Arduino board to Temboo, making it simple to interact 
with a vast array of web-based resources and services.
url=http://www.temboo.com/arduino
architectures=*
version=1.1
core-dependencies=arduino ( simbolo di maggiore =1.5.0)
Libreria TFT
sentence=Allows drawing text, images, and shapes on the Arduino TFT graphical display. For all 
Arduino boards.
paragraph=This library is compatible with most of the TFT display based on the ST7735 chipset
url=http://arduino.cc/en/Reference/TFTLibrary
architectures=*
Libreria USBHost
sentence=Allows the communication with USB peripherals like mice, keyboards, and thumbdrives. For 
Arduino DUE only.
paragraph=The USBHost library allows an Arduino Due board to appear as a USB host, enabling it to 
communicate with peripherals like USB mice and keyboards. USBHost does not support devices that are 
connected through USB hubs. This includes some keyboards that have an internal hub.
url=http://arduino.cc/en/Reference/USBHost
architectures=sam
Libreria WiFi
sentence=Enables network connection (local and Internet) using the Arduino WiFi shield. For all 
Arduino boards.
paragraph=With this library you can instantiate Servers, Clients and send/receive UDP packets 
through WiFi. The shield can connect either to open or encrypted networks (WEP, WPA). The IP 
address can be assigned statically or through a DHCP. The library can also manage DNS.
url=http://arduino.cc/en/Reference/WiFi
architectures=*
