In questo articolo vediamo come i sistemi di controllo interagiscono con il mondo esterno attraverso sensori e attuatori

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

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:

  1. Raccolta dei dati → I sensori rilevano informazioni dal mondo reale (es. temperatura, umidità, movimento).
  2. Elaborazione locale → Alcuni dispositivi analizzano i dati in tempo reale per rispondere immediatamente (es. accensione automatica delle luci).
  3. Trasmissione remota → I dati possono essere inviati a server o piattaforme cloud per un’analisi più approfondita.
  4. 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ì:

  1. I sensori catturano grandezze fisiche e le trasformano in segnali digitali.
  2. Il microcontrollore elabora i dati ricevuti e decide l’azione da compiere.
  3. 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.

Concept-of-Physical-Computing
Concept-of-Physical-Computing

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.

relè
relè
funzionamento del relè
funzionamento del relè
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.

servomotore per Arduino
servomotore per Arduino

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.

Light-Emitting-Diodes (LED)
Light-Emitting-Diodes (LED)

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:

  1. Controllo ad anello chiuso (feedback control)
  2. 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.

retroazione
retroazione
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.

pid
pid
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.

Arduino UNO pinout
Arduino UNO pinout

Componenti principali di Arduino:

  1. Microcontrollore (MCU): integra processore, memoria e unità di I/O.
  2. Porte di interfaccia: per collegare sensori e attuatori.
  3. Memoria:
    • Flash: memorizza il codice del programma.
    • RAM: archivia i dati in esecuzione.
  4. 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.

AVR

Programmazione di Arduino

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

Arduino IDE
Arduino IDE

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

CategoriaDescrizione
MicrocontrolloreAtmel 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

CategoriaDescrizione
Ambiente di sviluppoIDE (Integrated Development Environment)
Linguaggio C/C++ specializzato per Arduino
Gestione dei canali di interfacciaPossono 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).

Raspberry Pi
Raspberry Pi
Schema a blocchi Raspberry
Schema a blocchi Raspberry

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
Raspberry-Pi-Pico-rp2040-pinout
Raspberry-Pi-Pico-rp2040-pinout

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

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *