Strumenti Utente

Strumenti Sito


fisica:strumenti:arduino

LAB2GO Scienza

Arduino

Arduino è una piattaforma hardware italiana “open source”, composta da una serie di schede elettroniche dotate di un microcontrollore. Con Arduino si possono realizzare in maniera relativamente rapida e semplice piccoli dispositivi come controllori di luci, di velocità per motori, sensori di luce, temperatura e umidità e molti altri progetti che utilizzano sensori, attuatori e comunicazione con altri dispositivi. In particolare la connessione dei sensori ad Arduino permette di misurare grandezze fisiche e di allestire quindi semplici esperienze di fisica. È abbinato ad un semplice ambiente di sviluppo integrato per la programmazione del microcontrollore. Tutto il software a corredo è libero e gli schemi circuitali sono distribuiti come hardware libero. Per l'utilizzo del microprocessore è necessario il download di un software reperibile a questo indirizzo.

Cenni storici

È stata ideata e sviluppata da un insegnante dell’Interaction Design Institute di Ivrea nel 2005 che lamentava l’impossibilità di avere un microcontrollore per i suoi progetti elettronici. In soli due giorni, grazie all’aiuto dei suoi studenti e dell’ ingegnere spagnolo David Cuartielles, specializzato in microchip, scrissero il linguaggio di programmazione utilizzato dal microcontrollore e dopo solo altri 3 giorni la scheda era già pronta. ‘Arduino’ ha origine dal nome di un pub che si trovava nelle vicinanze, e fra gli studenti ha avuto un successo immediato. È diventato uno strumento per la prototipazione rapida e per scopi hobbistici, didattici e professionali.

Open source

Il termine open source, letteralmente “sorgente aperta”, indica un software il cui codice sorgente è rilasciato con una licenza che lo rende modificabile o migliorabile da parte di chiunque. Il codice sorgente è la parte del software che i programmatori possono manipolare per modificare il funzionamento di un programma o di un’applicazione, aggiungendo funzioni o migliorando parti che non sempre funzionano correttamente. Arduino è uno dei principali sistemi di hardware e software open-source nel mondo. Esso offre vari servizi, tra cui una vasta gamma di strumenti software, piattaforme hardware e documentazioni, che permettono a tutti di essere creativi con la tecnologia. Altri esempi di progetti open-source sono: GNU/Linux, Oracle OpenOffice, Mozilla Firefox.

Hardware

Per hardware si intende la scheda di Arduino ed altri accessori. Una tipica scheda consiste in un microcontrollore a 8-bit della famiglia AVR. Arduino, come già discusso, è una famiglia di schede, noi descriveremo solo quella più diffusa, ossia Arduino UNO. Arduino UNO é, banalmente, una scheda con porte I/O di comunicazioni digitali o analogiche (i cosiddetti pin) a cui possono essere collegati sensori, ma anche piccoli led o mini display. Alla scheda è affiancata una breadboard, utilizzata per realizzare circuiti elettrici.

La scheda, in generale, è ideata per essere collegata direttamentead altri dispositivi elettronici. Arduino è molto piccolo, funziona con una frequenza massima di 16MHz e una corrente dell'ordine di 40mA per pin. Lavora con bassi livelli di tensione (fino a 5 V), non sufficienti per supportare un dispositivo esterno e il suo conseguente carico.

Programmazione

Arduino possiede un ambiente di sviluppo che prende il nome di IDE (Integrate Development Environment) ed è caratterizzato da un software che contiene le istruzioni da impartire al microcontrollore. L'IDE è un’applicazione multipiattaforma che supporta Windows, Linux o Mac. Il programmi di Arduino si chiamano sketch (che letteralmente significa bozzetto), e sono basati sul linguaggio C/C++. La semplicità dell’ambiente di programmazione IDE consente, anche a chi non ha mai sviluppato un software, di scrivere codici e dialogare con il microcontrollore. Il sistema di sviluppo possiede alcune particolarità come ad esempio: il syntax highlighting (che evidenzia gli errori), il controllo della parentesi e l'evidenziazione automatica delle istruzioni. L’interfaccia grafica, molto intuitiva, consente di avviare il programma con pochi “click” e la sua struttura si bassa essenzialmente su due funzioni:

1. setup (): che definisce le impostazioni iniziali

2. loop(): che contiene il programma vero e proprio e funziona finché la scheda non viene spenta o resettata.

Per quanto riguarda la scrittura di un programma, il software supporta diverse tipologie di variabili: int (numeri interi), float (numeri decimali), boolean (stati logici), char (singoli caratteri) o byte (singoli byte). Altre tipologie sono: short, unsigned e long. Per comporre un programma si utilizzano le strutture di controllo, importanti per eseguire un processo logico. Alcune di esse sono:

A. If/else: ci dice se un risultato è vero o falso e in base a ciò esegue un diverso blocco di codice.

B. Switch/case: si utilizza se vi sono decisioni diverse da prendere in base al valore di una variabile di controllo. Per ogni valore si utilizza un case.

C. For: viene usato per definire il numero di volte che un determinato blocco di codice deve esser esguito.

D. While: continua a ripetere un blocco di codice finché non si verifica una determinata condizione.

E. Do while: è simile al while, ma il codice del programma viene eseguito almeno una volta. Break: permette di uscire dai cicli for, do e while. Continue: permette ai cicli for, do e while di proseguire.

Altre versioni di Arduino

L’hardware ufficiale di Arduino è prodotto interamente in Italia, ma esistono altre versioni sviluppate in tutto il mondo. Attualmente ne sono presenti 16 Queste possono distinguersi : - Per grandezza, come l’Arduino nano (una versione ancora più piccola dell’Arduino mini, con lo stresso controller ATmega168 SMD),

- Per il tipo di utilizzo, ad esempio LilyPad Arduino (un progetto per applicazione su indumenti)

- Per il tipo di alimentazione. Ci sono infatti versioni di Arduino come Arduino duemilanove, alimentata da corrente continua tramite USB e dotato di un microcontrollore di Tipo ATmega160 o 328 .

Molte schede fanno uso di componenti hardware aggiuntivi per adattarle ai più svariati utilizzi. Tra i componenti più diffusi ci sono gli shields ( di cui fa uso anche la scheda originale), ovvero delle espansioni collocabili direttamente sulla scheda. Gli shields inoltre possono avere funzioni aggiuntive come il controllo dei motori, prototipizzazione ecc. Minibloq Uno dei più noti esempi alternativi di ambiente integrato dedicato ad Arduino è Minibloq, un particolare ambiente di sviluppo per la programmazione dirobot e altri dispositivi. E’distribuito con licenza libera ed è caratterizzato da un’ interfaccia intuitiva che ha la capacità di generare il codice a partire da uno schema grafico a blocchi, disegnato dall'utente. Data la sua geniale semplicità, Minibloq è utile ai principianti per introdurli alla programmazionedei controller.

img_20200212_121747.jpg

Applicazioni

Grazie alla versatilità delle molteplici versioni di Arduino è possibile per tutti gli amanti del fai da te tecnologico utilizzarlo nelle applicazioni più svariate. Partendo dai robot che preparano il tè, passando per le giacche per ciclisti con frecce che lampeggiano, fino ai programmi che permettono di scrivere muovendo soltanto gli occhi, sono alcune delle tante applicazioni possibili di questo strumento. In sostanza Arduino è una scheda che mette in correlazione dei segnali che possono provenire da fonti diverse, captati e trasmessi da sensori, i quali vengono poi associati a un effetto. Le sorgenti dei segnali possono comprendere luce, grado di umidità, movimenti, suoni,accensione/spegnimento di pulsanti o altro, e il sistema le traduce in azioni secondo le istruzioni che sono state codificate e impartite.

I. Il 17 gennaio 2020, Will Cogley ha sviluppato un “cuore animatronico” in silicone con sangue finto, contenente tre servomotori che lo rendono quasi reale. Tutto è controllato dall’Arduino Micro, dotato di un servo controller I2C. La velocità del battito cardiaco è monitorata da un potenziometro.

II. Il 22 gennaio 2020 l’utente della comunità Istructables, “Rehaan33”, ha ideato un dispositivo che, utilizzando la scheda Arduino Nano, genera un numero casuale quando si tiene premuto il pulsante “roll”. La cifra generata viene poi mostrata su uno schermo a LED.

Esperienze

Esperienze possibili Descrizione
Carica e scarica di un condensatore Carica e scarica di un condensatore
Misura dei campi magnetici
Misure di forze fittizie
Misura di resistenza Misura di resistenze diverse applicando la 2 Legge di Ohm
Trasmissione del calore
Studio del moto uniformemente accelerato
Misura di campi magnetici
Misura di campi magnetici L'esperimento consiste nello studiare la dipendenza del campo magnetico B con la distanza r dalla sorgente per varie sorgenti. (4 ore)
Line follower Dotato di un motore e di un rilevatore, l'Arduino segue linee prestabilite.
Studio del moto uniformemente accelerato L'esperienza consiste nello studiare la relazione che c'e' tra l'accelerazione, la velocita' e il tempo. (4 ore)
Trasmissione del calore Misurare tramite sensori posti su un filo di rame la diffusione del calore del suddeto filo.
Equilibrio termico Utilizzando sensori di temperatura si possono realizzare seolici esperienze di temrmologia, ad esempio lo studio dell'equilibrio termico tra due liquidi. (2 ore)
fisica/strumenti/arduino.txt · Ultima modifica: 2020/02/17 20:39 da simone.privitera