Physical Computing
Al seguente link potrai fare il download delle risorse relative ad Arduino:
Progettare-con-Arduino-1.zip (131 download )
Per seguire le video-lezioni clicca QUI
Sommario
- Introduzione
- Introduzione all’Internet of Things (IoT)
- Il controllo delle grandezze fisiche
- Physical Computing con Arduino e Raspberry Pi
Introduzione
Il Physical Computing combina hardware e software per creare sistemi capaci di percepire l’ambiente circostante attraverso sensori e interagire con esso mediante attuatori.
L’uso dei sensori per rilevare parametri fisici non è una novità, ma negli ultimi anni, grazie all’evoluzione tecnologica e all’integrazione con Internet, questo settore ha subito una rapida trasformazione. Il crescente utilizzo di progetti open source e di microcontrollori a basso consumo, come Arduino e Raspberry Pi, ha reso il Physical Computing accessibile a un pubblico sempre più vasto, accelerando l’innovazione.
Oggi, i dispositivi non operano più in maniera isolata, ma si connettono tra loro, creando una rete di interazione che prende il nome di Internet delle Cose (IoT, Internet of Things). In questo ecosistema, oggetti, sistemi e persino gli esseri umani comunicano attraverso reti digitali, dando vita a un mondo sempre più interconnesso.
Introduzione all’Internet of Things (IoT)
L’Internet of Things (IoT) è un ecosistema di oggetti intelligenti (smart objects)—dispositivi connessi in rete capaci di raccogliere e scambiare dati con l’ambiente circostante.
In questo scenario, persone e dispositivi interagiscono costantemente, creando una rete in cui i dati sono il cuore pulsante. Sebbene gli oggetti dell’IoT possano essere molto diversi tra loro, condividono tutti un elemento comune: la capacità di generare, elaborare e trasmettere informazioni.
Come funziona l’IoT?
L’intero processo si sviluppa in più fasi:
- Raccolta dei dati → I sensori rilevano informazioni dal mondo reale (es. temperatura, umidità, movimento).
- Elaborazione locale → Alcuni dispositivi analizzano i dati in tempo reale per rispondere immediatamente (es. accensione automatica delle luci).
- Trasmissione remota → I dati possono essere inviati a server o piattaforme cloud per un’analisi più approfondita.
- Azione e automazione → Le informazioni vengono utilizzate per ottimizzare processi, migliorare efficienza e fornire servizi intelligenti.
Fonti di dati nell’IoT e oltre
L’IoT è solo una delle tante fonti di generazione dati. Altri esempi includono:
📌 Social media (post, condivisioni, interazioni)
📌 Transazioni digitali (pagamenti, acquisti online, registri elettronici)
📌 Navigazione web (cronologia, preferenze, tracciamenti)
📌 Esperimenti scientifici (dati di laboratorio, simulazioni)
Tutti questi dati alimentano un settore chiave: la scienza dei dati (Data Science). Grazie all’analisi avanzata, possiamo prendere decisioni più efficaci e migliorare aspetti della nostra vita quotidiana, dalla gestione energetica alla sicurezza urbana.
💡 Tuttavia, il crescente utilizzo di dati solleva interrogativi etici e di privacy. È fondamentale trovare un equilibrio tra innovazione e tutela della libertà individuale.
Il controllo delle grandezze fisiche
Un sistema di Physical Computing si basa su tre componenti fondamentali:
🔹 Sensori → Rilevano parametri fisici (es. temperatura, pressione, umidità).
🔹 Controllori → Microcontrollori che elaborano i dati raccolti.
🔹 Attuatori → Dispositivi che eseguono azioni (es. accensione di motori, display informativi).
Il processo avviene così:
- I sensori catturano grandezze fisiche e le trasformano in segnali digitali.
- Il microcontrollore elabora i dati ricevuti e decide l’azione da compiere.
- Gli attuatori eseguono l’azione, influenzando il mondo reale (es. apertura di una valvola, regolazione della luce).
Questo meccanismo è alla base di molte applicazioni, dall’automazione industriale alle smart home, rendendo le tecnologie più efficienti e reattive alle esigenze umane.

Sensori: il cuore del Physical Computing
Un sensore è un dispositivo che rileva e misura grandezze fisiche dell’ambiente e le trasforma in segnali elettrici interpretabili dai sistemi di elaborazione.
Come funziona un sensore?
🔹 Rileva proprietà fisiche (es. temperatura, luce, movimento, suono).
🔹 Converte il valore rilevato in un segnale elettrico.
🔹 Trasmette il segnale a un sistema di elaborazione (es. microcontrollore, computer).
Esempi di sensori comuni
📌 Microfono → Converte il suono in un segnale elettrico.
📌 Termoresistenza → Misura la temperatura in base alla variazione di resistività di un conduttore.
📌 Accelerometro → Rileva l’accelerazione di un oggetto (es. rotazione dello schermo di uno smartphone).
📌 Giroscopio → Misura l’orientamento spaziale di un dispositivo.
📌 Bussola digitale → Registra la forza e la direzione del campo magnetico terrestre.
📌 GPS → Determina la posizione geografica tramite segnali satellitari.
📌 Sensore di luminosità → Regola automaticamente la luminosità dello schermo in base alla luce ambientale.
Dai segnali analogici ai segnali digitali
Molti fenomeni fisici variano in modo continuo nel tempo (es. temperatura, suono). Tuttavia, i computer elaborano solo dati discreti. Per questo, i segnali analogici devono essere convertiti in digitali attraverso un processo chiamato campionamento.
Questa conversione può avvenire tramite:
✔️ Circuiti specializzati (es. convertitori ADC – Analog-to-Digital Converter).
✔️ Sensori integrati con uscita digitale (es. microfoni con interfaccia digitale).
Sensori MEMS: rivoluzione nei dispositivi mobili
Grazie alla tecnologia MEMS (Micro Electro Mechanical Systems), i sensori sono diventati miniaturizzati e integrabili nei microchip di silicio. Questo ha reso possibile la loro diffusione nei dispositivi mobili.
📌 Esempio: Nei moderni smartphone, il microfono utilizza un diaframma MEMS che rileva le variazioni di pressione sonora, amplifica il segnale e lo converte direttamente in digitale.
Attuatori: Trasformare i Segnali in Azione
Gli attuatori sono dispositivi che interagiscono con il mondo esterno, modificandolo attraverso azioni fisiche. Essi trasformano segnali elettrici in movimenti, suoni, luci o altre forme di output, svolgendo un ruolo cruciale nei sistemi di automazione e nell’Internet of Things (IoT).
Gli attuatori sono componenti essenziali nei sistemi di automazione e IoT, permettendo di tradurre segnali elettrici in azioni concrete. Il loro utilizzo spazia dall’illuminazione all’automazione industriale, rendendoli fondamentali per lo sviluppo di tecnologie smart.
Tipologie di Attuatori
1. Relè (Attuatore Elettromagnetico)
Un relè è un interruttore controllato elettricamente. È costituito da un solenoide che, quando attraversato da corrente, genera un campo magnetico, attirando un’armatura metallica che chiude o apre un circuito elettrico.
📌 Applicazioni: Controllo di motori, circuiti di alta potenza, sistemi di sicurezza.


2. Servomotore (Attuatore Elettromeccanico)
Un servomotore è un motore elettrico con un sistema di controllo che permette di regolare con precisione la posizione, la velocità e l’accelerazione dell’albero motore.
📌 Applicazioni: Robotica, automazione industriale, controllo di superfici aerodinamiche.

Visitando la sezione DEALS del sito potrete vedere un kit completo di sensori ed attuatori
3. LED (Attuatore Ottico)
Un LED (Light Emitting Diode) è un semiconduttore che emette luce quando attraversato da corrente elettrica. Il colore della luce dipende dal materiale del LED e dalla sua struttura.
📌 Applicazioni: Illuminazione, segnaletica, schermi elettronici.

4. Altoparlanti MEMS (Attuatori Acustici)
Gli altoparlanti MEMS (Micro Electro Mechanical Systems) sono dispositivi miniaturizzati che convertono segnali elettrici in suoni tramite una membrana attivata da un attuatore piezoelettrico.
📌 Applicazioni: Smartphone, auricolari wireless, dispositivi indossabili.
Controllori
I sensori e gli attuatori permettono di interagire con il mondo fisico, ma senza un sistema di controllo che li guidi, non possono funzionare in modo efficace.
Per esempio, per controllare la traiettoria e la velocità di un autoveicolo, non basta impostare la destinazione e l’orario di arrivo, ma è necessario intervenire continuamente sulla posizione del volante, sull’acceleratore e sul sistema frenante. Eventi esterni come vento, pioggia, asperità del terreno e temperatura dell’asfalto possono influenzare il sistema e generare errori che vanno corretti.
Cos’è il Controllo di un Sistema?
Il controllo di un sistema consiste nel verificare che il suo comportamento sia conforme alle aspettative e, in caso contrario, intervenire con azioni correttive per riportarlo alle condizioni desiderate.
Il controllore (o controller) è il dispositivo che guida il sistema per raggiungere il suo obiettivo.
Esistono due tipi principali di controllo:
- Controllo ad anello chiuso (feedback control)
- Controllo ad anello aperto (open loop control)
Controllo ad Anello Chiuso
Nel controllo ad anello chiuso, il sistema si autoregola grazie a un meccanismo di retroazione (feedback).
Tipologie di feedback:
- Retroazione negativa: il segnale di uscita viene confrontato con l’input di riferimento (setpoint). La differenza tra i due valori genera un errore, che il controllore utilizza per comandare gli attuatori e correggere il sistema.
- Retroazione positiva: il segnale di uscita viene sommato parzialmente al segnale di ingresso per rinforzarlo.
Esempio di controllo ad anello chiuso:
Un classico esempio è la regolazione della temperatura della doccia: una persona valuta la temperatura dell’acqua e agisce di conseguenza. Questo tipo di regolazione può essere automatizzato nei sistemi di controllo.

Regolatore PID (Proporzionale-Integrale-Derivativo)
Uno dei controlli più utilizzati nei sistemi automatici è il regolatore PID, il quale calcola l’uscita considerando tre componenti:
- Proporzionale (P): il segnale di uscita è proporzionale all’errore attuale.
- Integrale (I): tiene conto degli errori accumulati nel tempo.
- Derivativo (D): valuta la velocità di variazione dell’errore.
Il regolatore PID è ampiamente utilizzato per controllare bracci robotici, droni e processi industriali.

Controllo ad Anello Aperto
Nel controllo ad anello aperto, il sistema opera senza retroazione, cioè senza misurare l’uscita. L’azione di controllo è indipendente dal risultato ottenuto.
Un forno elettrico che cuoce per un tempo prestabilito senza misurare la temperatura interna è un esempio di controllo ad anello aperto. Se la temperatura esterna influisce sulla cottura, il forno non è in grado di correggere l’errore automaticamente.
Physical Computing con Arduino e Raspberry Pi
Arduino e Raspberry Pi sono tra i sistemi di elaborazione più utilizzati nel Physical Computing. Questi dispositivi permettono di interagire con il mondo fisico attraverso porte di ingresso/uscita in grado di gestire segnali digitali e analogici.
Quale scegliere?
La scelta tra i due sistemi dipende dall’applicazione che si vuole realizzare:
- Raspberry Pi: ideale per interagire con gli utenti e con dispositivi standard (USB, Ethernet, Wi-Fi) o per applicazioni che richiedono maggiore capacità di calcolo e un sistema operativo.
- Arduino: perfetto per operazioni semplici, veloci e a basso consumo energetico.
Entrambi dispongono di un ampio ecosistema hardware (componenti elettronici, schede di espansione, kit di sviluppo) e software open source.
Segnali Analogici e Digitali
Le applicazioni che utilizzano sensori e attuatori devono gestire diversi tipi di segnali:
- Segnale digitale (discreto): ha un insieme finito di stati (es. acceso/spento).
- Segnale analogico (continuo): ha un insieme infinito di stati (es. temperatura, tensione variabile).
Esempi di gestione dei segnali:
✅ Output digitale → accendere e spegnere un LED (blink LED)
✅ Input digitale → leggere lo stato di un pulsante
✅ Input analogico → leggere la variazione di un potenziometro
✅ Output analogico → generare segnali modulati tramite PWM (Pulse Width Modulation)
Arduino e Raspberry Pi: Due Schede a Confronto
Arduino
Arduino è una scheda hardware con un microcontrollore (MCU) in grado di elaborare informazioni e interagire con l’ambiente esterno.


Componenti principali di Arduino:
- Microcontrollore (MCU): integra processore, memoria e unità di I/O.
- Porte di interfaccia: per collegare sensori e attuatori.
-
Memoria:
- Flash: memorizza il codice del programma.
- RAM: archivia i dati in esecuzione.
- Set di istruzioni ottimizzate per un’alta efficienza.
🔹 La maggior parte dei modelli Arduino utilizza microcontrollori AVR, basati sull’architettura Harvard, in cui codice e dati sono memorizzati separatamente.

Programmazione di Arduino
Arduino utilizza un ambiente di sviluppo integrato (IDE) che permette di scrivere programmi (sketch) in un linguaggio simile a C/C++.

Uno dei punti di forza di Arduino è la facilità con cui può interfacciarsi con il mondo esterno, raccogliendo segnali dai sensori e pilotando gli attuatori.
📌 Le Tabelle in basso riassumono le caratteristiche hardware e software di Arduino Uno, includendo le istruzioni per la programmazione dei canali di interfaccia.
Hardware
Categoria | Descrizione |
---|---|
Microcontrollore | Atmel ATmega328P (famiglia AVR): • Architettura RISC • 32 registri a 8 bit di uso generale • Memoria flash: 32 kB • EEPROM: 1 kB • RAM: 2 kB (SRAM) |
Ingressi/Uscite | • 14 pin di ingresso/uscita digitali (di cui 6 utilizzabili come uscite PWM) • 6 ingressi analogici • Porta USB utilizzata per la comunicazione con il computer per la scrittura e il debug |
Hardware
Categoria | Descrizione |
---|---|
Ambiente di sviluppo | IDE (Integrated Development Environment) |
Linguaggio | C/C++ specializzato per Arduino |
Gestione dei canali di interfaccia | Possono essere impostati in ingresso o in uscita durante la fase di setup (istruzione pinMode )Lettura e scrittura dei segnali digitali con digitalRead e digitalWrite I pin 3, 5, 6, 9, 10, 11 sono dedicati al segnale PWM (Pulse-Width Modulation) Ingressi analogici collegati a convertitori analogico-digitali (ADC) con valori tra 0 e 1023 |
Raspberry Pi: Un Computer su una Scheda Singola (SBC)
Raspberry Pi è un Single Board Computer (SBC), ovvero un computer completo racchiuso in un’unica scheda. Grazie alle sue caratteristiche hardware e software, si interfaccia facilmente con il mondo esterno, risultando ideale per progetti di automazione, IoT e robotica.
Caratteristiche Hardware di Raspberry Pi
Il funzionamento della scheda si basa su diversi componenti chiave:
🔹 System on Chip (SoC) – Un chip che integra:
- CPU (processore)
- GPU (processore grafico)
- RAM (memoria volatile)
- Chipset per la gestione dei componenti
🔹 Memoria di massa – Raspberry Pi utilizza una scheda SD come memoria principale, dove sono archiviati il bootloader e il sistema operativo.
🔹 Interfacce di Input/Output (I/O) – Dispone di numerose porte per il collegamento di dispositivi esterni:
- GPIO (General Purpose Input Output) → 40 pin programmabili per interagire con sensori, LED, motori e altri componenti elettronici
- USB → Connessioni per tastiere, mouse, chiavette USB e altri accessori
- Ethernet e Wi-Fi → Per connettersi a reti locali o a Internet
- HDMI → Per il collegamento a monitor o televisori
- Jack audio e porta CSI/DSI → Per microfoni, speaker e moduli fotocamera
⚠️ A differenza di Arduino, Raspberry Pi non dispone di ingressi analogici, quindi per leggere segnali analogici (es. valori da un potenziometro) è necessario un convertitore esterno ADC (Analog to Digital Converter).


Il Ruolo dei GPIO in Raspberry Pi
Il GPIO (General Purpose Input/Output) è il cuore della scheda per l’interazione con il mondo fisico. Il modello B+ di Raspberry Pi ha 40 pin, suddivisi in:
✅ Pin di alimentazione (+3.3V e +5V)
✅ Pin di massa (GND)
✅ Pin digitali programmabili per ingresso/uscita
✅ Pin per protocolli di comunicazione:
- UART → Trasmissione seriale
- I²C → Comunicazione con sensori multipli
- SPI → Protocollo veloce per periferiche come display
Grazie ai GPIO, Raspberry Pi può:
- Leggere sensori (es. temperatura, umidità, luce)
- Controllare attuatori (es. motori, relè, LED)
- Interagire con altri dispositivi tramite comunicazioni seriali

Programmare i GPIO con Python
Il metodo più comune per controllare i GPIO di Raspberry Pi è attraverso il linguaggio Python, utilizzando la libreria RPi.GPIO. Questa libreria permette di leggere e scrivere sui pin in modo semplice ed efficace.
Esempio di codice per accendere un LED:
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
while True:
GPIO.output(18, GPIO.HIGH) # Accendi il LED
time.sleep(1)
GPIO.output(18, GPIO.LOW) # Spegni il LED
time.sleep(1)
Nella sezione DOWNLOAD è possibila scaricare alcuni progetti con ARDUINO oppure direttamente da qui: https://profgiagnotti.it/download/5135/?tmstv=1744538174. Per vedere i videotutorial clicca vai a: https://profgiagnotti.it/video-tutorial/arduino-con-tinkercad/
Lascia un commento