Lezione 3 – Corso di Elettronica Creativa con Arduino Sensor Kit

A distanza di qualche mese riprendo le mie brevi lezioni sull’uso dell’Arduino Sensor Kit, mi dispiace non stato celere nel produrre altre lezioni, ma gli impegni lavorativi mi hanno parecchio coinvolto.

Come già avevo avuto modo di segnalare nelle precedenti lezioni, per la realizzazione di queste guide prendo come riferimento l’indice presente sul sito Arduino e su quella traccia realizzo lezioni un po’ più approfondite che mi permettono poi di strutturare una lezione di laboratorio di circa due ore di attività.

Giusto per non far “arrabbiare” nessuno — mi riferisco a chi potrebbe critica le modalità con cui vengono presentati alcuni argomenti di elettronica — ricordo che queste lezioni sono dedicate a chi non ha mai affrontato lo studio dell’elettronica (neofiti o studenti della secondaria di primo grado e studenti dei primi due anni della scuola superiore), pertanto alcuni concetti richiedono chiarimenti e inevitabili semplificazioni, che consentiranno di riprendere gli stessi argomenti con maggiore facilità quando le competenze teoriche saranno più solide.

Gli obiettivi di questa terza lezione sono:

  • comprendere come funziona un pulsante a livello elettrico e meccanico.
  • sviluppare sketch via via più complessi:
    • accensione di un LED alla pressione del pulsante;
    • Indicazione dello stato del LED sulla SerialMonitor;
    • cicli di blink avviati da pulsante;
    • cicli di blink avviati da pulsante e segnalazione del numero di cicli.

Per lo svolgimento di questa esercitazione abbiamo necessità solamente dell’Arduino Sensor Kit ed utilizzeremo:

Il pulsante:

Il LED:

Continua a leggere

Corso di Processing – lezione 03

 

Lo Schermo, i Pixel e le Linee in Processing

Prima di iniziare a programmare con Processing, è fondamentale comprendere come lo schermo venga rappresentato digitalmente e come possiamo interagire con esso attraverso il codice. Lo schermo del computer non è altro che una griglia di pixel, piccolissimi punti luminosi che compongono le immagini visualizzate. Ogni pixel ha una posizione ben definita, identificata da una coppia di coordinate (x, y).

Il Sistema di Coordinate in Processing

Processing utilizza un sistema di coordinate cartesiane leggermente diverso da quello scolastico:

  • L’origine (0,0) si trova nell’angolo in alto a sinistra dello schermo.
  • L’asse X cresce verso destra.
  • L’asse Y cresce verso il basso.

Questo significa che spostandosi a destra i valori di X aumentano, mentre spostandosi verso il basso i valori di Y crescono.

Risoluzione e Dimensioni della Finestra

Uno dei primi passi per lavorare con Processing è definire la grandezza della finestra in cui verrà disegnato il nostro codice. Per farlo, utilizziamo la funzione size(), che permette di impostare la larghezza e l’altezza della finestra in pixel:

size(400, 400);

Con questa riga di codice, Processing creerà una finestra quadrata di 400×400 pixel.

Disegnare un Punto e una Linea

In Processing, possiamo disegnare elementi grafici semplicemente utilizzando delle funzioni predefinite. Ad esempio, per disegnare un singolo punto nella posizione (200, 200) in una finestra 400×400 pixel, si usa:

size(400, 400);
point(200, 200);

Dovreste notare un punto di dimensioni di 1 pixel al centro della finestra, per rendere più evidente il punto aumentiamo le dimensioni del tratto con strokeWeight():

Per disegnare una linea che va dal punto (20, 30) al punto (300, 350) in una finestra 400×400 pixel, scriviamo:

Colori e Stili di Disegno

Processing permette anche di modificare l’aspetto degli elementi grafici. Possiamo cambiare il colore di una linea o di un punto con la funzione stroke(), specificando i valori di rosso, verde e blu (RGB):

inoltre, possiamo variare lo spessore delle linee con la funzione strokeWeight():

size(400, 400);
stroke(255, 0, 0); // Imposta il colore della linea su rosso
strokeWeight(4);
line(100, 100, 300, 300);

Questo codice disegnerà una linea più spessa rispetto a quella di default.

Capire il concetto di pixel, coordinate e linee è essenziale per lavorare con Processing. Con pochi comandi, è possibile creare strutture visive interessanti e gettare le basi per progetti più complessi. Sperimentare con point(), line() e stroke() aiuta a comprendere la logica del disegno digitale, un aspetto fondamentale per esplorare il Creative Coding e l’arte generativa.

L’importanza del punto e virgola in programmazione

Uno degli aspetti fondamentali della sintassi in Processing – e nella maggior parte dei linguaggi di programmazione – è l’uso del punto e virgola (;) per terminare un’istruzione. A differenza della scrittura tradizionale, in cui il punto segna la fine di una frase, in programmazione il punto e virgola serve a indicare al computer che un comando è stato completato.

È una regola essenziale da tenere sempre a mente, perché dimenticare un punto e virgola può causare errori nel codicee impedire al programma di funzionare correttamente. Mentre un essere umano può interpretare facilmente un testo anche se manca un segno di punteggiatura, un computer ha bisogno di istruzioni chiare e precise per eseguire il codice senza ambiguità.

Per chi è alle prime armi, può capitare spesso di dimenticare questo dettaglio. Fortunatamente, esistono strumenti come il debugger e i messaggi di errore nella console di Processing, che aiutano a individuare e correggere questi problemi. Con un po’ di pratica, il punto e virgola diventerà un’abitudine naturale nella scrittura del codice.

L’utilità dei commenti nel codice

I commenti sono uno strumento fondamentale in programmazione. Servono a spiegare il funzionamento di specifiche porzioni di codice, a lasciare note per sé stessi o a rendere il programma più comprensibile per altri sviluppatori. Anche se il codice può funzionare perfettamente senza di essi, i commenti aiutano a mantenerlo leggibile e organizzato, soprattutto nei progetti più complessi.

Scrivere commenti è una buona abitudine, sia per chi sta imparando sia per i programmatori più esperti. Con il tempo, sarà interessante riprendere i primi programmi e confrontarli con quelli più recenti. Per questo motivo, molti programmatori inseriscono all’inizio del file informazioni come la data di creazione e l’ultima modifica, utili per tenere traccia delle evoluzioni del codice.

Processing permette di scrivere commenti in due modi:

  • Commenti su una singola riga: Si inseriscono scrivendo // prima del testo.

  • Commenti su più righe: Si scrivono racchiudendo il testo tra /* e */.

Ecco alcuni esempi pratici in cui i commenti vengono utilizzati per spiegare il codice:

Esempio 1: Creazione di una finestra e disegno di un punto

// Imposta la dimensione della finestra a 400x400 pixel
size(400, 400);

// aumenta le dimensioni del tratto per rendere visibile il punto
strokeWeight(10);

// Disegna un punto alle coordinate (50,50)
point(50, 50);

Esempio 2: Disegnare una linea con colore personalizzato

size(400, 400); // Imposta la dimensione della finestra

stroke(255, 0, 0); // Imposta il colore della linea su rosso
strokeWeight(3); // Aumenta lo spessore della linea

// Disegna una linea dal punto (20,30) al punto (180,90)
line(20, 30, 180, 90);

Esempio 3: Commenti su più righe

/*
Questo programma disegna un quadrato rosso al centro dello schermo.
Data di creazione: 23 febbraio 2025
Autore: Nome Cognome
*/

// Imposta la dimensione della finestra
size(400, 400);

// Imposta il colore di riempimento su rosso
fill(255, 0, 0);

// Disegna un quadrato 100x100 al centro dello schermo
rect(150, 150, 100, 100);

I commenti aiutano a rendere il codice più chiaro e comprensibile, sia per chi lo scrive sia per chi potrebbe leggerlo in futuro. Una buona pratica è sempre commentare il proprio codice, specialmente quando si lavora a progetti più complessi o si condivide il proprio lavoro con altri.

Corso di Processing – lezione 02

Introduzione a Processing

Quando si parla di programmazione, spesso si pensa a codice complesso, algoritmi matematici e righe di testo prive di immediatezza visiva. Processing nasce per cambiare questa prospettiva, offrendo un ambiente intuitivo e accessibile che permette di avvicinarsi alla programmazione attraverso la grafica e l’interattività.

Processing è un linguaggio di programmazione e un ambiente di sviluppo progettato per aiutare studenti, artisti e designer a creare immagini, animazioni e interazioni in modo semplice e immediato. Non è necessario essere programmatori esperti per iniziare: l’interfaccia è progettata per facilitare l’apprendimento, consentendo di ottenere risultati visivi fin dai primi tentativi.

Perché usare Processing?

La caratteristica distintiva di Processing è la sua immediatezza:

  • Permette di scrivere poche righe di codice e vedere subito il risultato grafico.
  • È pensato per chi lavora con la creatività e vuole esplorare il potenziale della programmazione senza dover affrontare subito complessità tecniche avanzate.
  • Supporta la creazione di disegni, animazioni e interazioni, rendendolo perfetto per il Creative Coding e l’arte digitale.
  • È un software open-source e gratuito, con una vasta comunità di sviluppatori e artisti che condividono codici ed esperienze.

Un linguaggio per tutti

Processing è stato creato con l’idea di semplificare l’approccio alla programmazione, mantenendo però una grande potenza espressiva. È basato su Java, ma con una sintassi molto più snella, pensata per chi è alle prime armi.

Grazie alla sua struttura, è ideale per:

  • Studenti che vogliono imparare la programmazione in modo pratico e visivo.
  • Designer e artisti che desiderano sperimentare con il codice.
  • Insegnanti che vogliono introdurre la programmazione nelle scuole con un approccio interattivo.

Come iniziare?

Per cominciare a usare Processing, è sufficiente:

  1. Scaricare il software dal sito ufficiale processing.org.

  2. Installarlo su Windows, macOS o Linux.

L’interfaccia di programmazione

L’interfaccia di Processing è essenziale e intuitiva, mantenendo nel tempo una struttura familiare per gli utenti. Nella parte superiore troviamo i pulsanti Run e Stop, fondamentali per eseguire e interrompere i nostri sketch – così vengono chiamati i programmi scritti in Processing.

L’area centrale, con sfondo bianco, è l’editor, lo spazio in cui scriviamo il codice. Qui possiamo digitare, modificare e organizzare le nostre istruzioni per dare vita a disegni, animazioni e interazioni.

Nella parte inferiore, con sfondo nero, si trova la console, uno strumento utile per individuare eventuali errori nel codice e ricevere messaggi di output. La console può essere sfruttata per debugging o per visualizzare informazioni utili sull’esecuzione del programma, aiutandoci a comprendere meglio il suo funzionamento.

Esplorare gli Esempi

Prima di iniziare a scrivere codice, è utile avere un’idea delle potenzialità offerte da Processing. Chi ha già installato l’IDE sul proprio computer può accedere a una raccolta di esempi predefiniti attraverso il menu File > Esempi. Qui si trovano diversi progetti suddivisi in categorie come Basics, Topics, Demos, Books, Libraries e Contributed Libraries, che permettono di scoprire le varie funzionalità del linguaggio.

Oltre a questi esempi, esistono numerosi progetti realizzati con Processing che possono essere fonte di ispirazione per chi si avvicina per la prima volta a questo strumento. Osservare ciò che è possibile creare con poche righe di codice può essere un ottimo punto di partenza per esplorare e sperimentare nuove idee.

Processing nella didattica e nell’arte

Processing non è solo un linguaggio di programmazione, ma un vero e proprio strumento educativo. Molte scuole e università lo utilizzano per insegnare la programmazione in modo più coinvolgente, trasformando il codice in qualcosa di concreto e tangibile.

Anche nel mondo dell’arte digitale, Processing è utilizzato per generare immagini, animazioni ed esperienze interattive. È una piattaforma che unisce logica e creatività, permettendo di esplorare il potenziale del codice in modi nuovi e stimolanti.

Se sei curioso di scoprire di più, ti invitiamo a provare i primi esercizi con Processing: potresti rimanere sorpreso da ciò che riuscirai a creare con poche righe di codice!

Risorse

Dalla prossima lezione inizieremo con la programmazione! 🙂

5 min da maker: pannello modulare SKÅDIS per prototipi elettronici

Manteniamo in ordine i nostri progetti.

  • Tempo di realizzazione: ≈ 90 min (stampa 3D esclusa)
  • Skill richieste: modellazione di base, slicing FDM, taglio laser, assemblaggio elettronico
  • Obiettivo: ottenere un pannello ordinato e modulare dove fissare in un attimo Arduino, Raspberry Pi, breadboard, alimentazione, accessori di misura, strumenti da lavoro.

Ingredienti (“stampa & taglia”)

Piedini + ganci SKÅDIS
File STL “IKEA SKADAS Desktop Stand” di HX8

Supporti Raspberry Pi 1‑5
File STL “Support Raspberry Pi 1 to 5”

Supporti Arduino
SKADIS Support ARDUINO Uno R4 MINIMA / WIFI

Pannello SKÅDIS personalizzato (4 mm multistrato) – mia versione
SVG generato da boxes.py

Variante XL
Pannello SKÅDIS IKEA originale 76×56 cm

Per la realizzazione sono necessari:

  • Stampante 3D FDM
  • Laser CO₂ / diode ≥ 40 W per taglio multistrato 4 mm (o servizio esterno).

Il pannello SKÅDIS può essere stampato in 3D di dimensioni variabili che possono essere agganciati tra loro.

Perché costruirlo questi pannelli per le sperimentazioni didattiche

Durante le lezioni di elettronica applicata mi trovo spesso a dover passare, nella stessa mattina da un semplice circuito realizzato con Arduino ad un sistema di automazione gestito da PLC, oppure alla realizzazione di un’esercitazione di demotica svolta su pannelli su cui è riposta la planimetria di un’abitazione su cui gli studenti cablano sensori ed attuatori. 

Un pannello modulare SKÅDIS risolve quattro problemi in un colpo solo:

  1. Ordine operativo – ogni circuito trova il suo posto: MCU, shield, breadboard e linee di alimentazione sono ancorati, non “ballano” sul banco, e i cavi di misura restano liberi da grovigli.
  2. Visualizzazione del complessivo – fissando al legno la stampa di una pianta dell’abitazione, gli allievi hanno sotto gli occhi una mappa in cui inserire tutti i dispositivi, ciò rende più chiara la distribuzione dell’I/O e logica di cablaggio.
  3. Portabilità – in pochi secondi il pannello diventa una valigetta di prototipazione che può diventare una piccola stazione meteorologica o un sistema per la rilevazione di micropolveri da collocare all’esterno della scuola oppure portare ad una fiera.
  4. Ecosistema open‑source infinito – online esistono migliaia di modelli gratuiti compatibili SKÅDIS (strumenti, bobine per cavi, supporti sensore, clip per sonde, mini‑cassetti, barre DIN, porta-breadboard e molto altro). Bastano pochi clic su MakerWorld, Printables o Thingiverse per scaricare l’STL, lanciare la stampa e arricchire il pannello con accessori su misura, espandendo il progetto all’infinito senza costi aggiuntivi.

Il pannello SKÅDIS lo vedo non solo come un supporto fisico, ma è il canvas su cui disegnare, smontare e ricostruire qualunque idea elettronica, sfruttando una community globale che rilascia in continuazione nuovi moduli pronti da stampare, un modo per mantenere ordinato il laboratorio.

I link di seguito indicati vi permettono di accedere ad una lista enorme di oggetti da stampare in 3D ed agganciare al pannello SKÅDIS.

In un prossimo post vi mostrerò come ho realizzato un carrello con piccoli tavolini acquistati all’Ikea per contenere scatole per progetti. Sui lati del carrello ho fissato pannelli SKÅDIS per conservare gli attrezzi di lavoro.

Buon Making a tutti.

Corso di Processing – lezione 01

 

Programmazione, Creative Coding e Arte Digitale

Come insegnante, sono sempre alla ricerca di nuove forme di comunicazione che mi permettano di coinvolgere ed appassionare gli studenti. Unire programmazione e creatività mi ha sempre fornito ottimi risultati, rendendo più accessibile e stimolante l’apprendimento dell’informatica. È da tempo che volevo pubblicare i miei appunti sul Creative Coding e, pur non essendo un artista, sono sempre stato affascinato da questo approccio che trasforma il codice in uno strumento di espressione visiva e interattiva.

Era da tempo che desideravo strutturare meglio i miei appunti sull’uso di Processing, che ho utilizzato negli anni passati con gli studenti, ed ho deciso di sistemarli in un corso completo introduttivo all’uso di questo fantastico linguaggio di programmazione. Processing permette di realizzare progetti di Creative Computing non solo attraverso oggetti e animazioni software, ma anche mediante l’interazione con dispositivi elettronici come Arduino e Raspberry Pi.

La programmazione è spesso vista come un’attività puramente tecnica, relegata alla risoluzione di problemi e allo sviluppo di software funzionali. Tuttavia, negli ultimi anni, ha assunto un ruolo sempre più centrale nell’ambito artistico e creativo, dando vita a nuove forme espressive. Il Creative Coding rappresenta questa fusione tra logica e immaginazione, utilizzando il codice per creare opere digitali, installazioni interattive, animazioni e visualizzazioni di dati.

Oggi sempre più artisti scelgono di integrare la programmazione nel proprio processo creativo, utilizzandola come strumento per esprimersi in modo innovativo e interattivo. Designer, musicisti, videomaker e performer usano il codice per sviluppare esperienze immersive, trasformando lo schermo in una tela dinamica e interattiva. Questo approccio non solo amplia le possibilità artistiche, ma offre anche un nuovo modo di insegnare la programmazione, rendendola accessibile e coinvolgente per chiunque, indipendentemente dal background tecnico.

Uno degli ostacoli principali per chi si avvicina al Creative Coding è la difficoltà di utilizzare strumenti di sviluppo pensati per programmatori. Molti software, pur potenti, risultano poco intuitivi per chi proviene da un’educazione artistica o visiva. Processing, ad esempio, è stato creato proprio con l’intento di abbattere questa barriera, fornendo un ambiente semplice ed efficace per imparare a programmare attraverso la grafica e l’interattività.

Perché ha senso utilizzare Processing a scuola?

Utilizzare Processing in ambito scolastico è utile per diversi motivi:

  • Apprendimento visuale e immediato: il codice produce effetti grafici in tempo reale, rendendo l’apprendimento coinvolgente anche per studenti che non hanno familiarità con la programmazione.
  • Accessibilità e semplicità: è open source, gratuito e con un’interfaccia snella, adatta anche ai principianti assoluti.
  • Creatività e pensiero computazionale: favorisce la creatività, ma allo stesso tempo sviluppa il ragionamento logico e la capacità di problem solving.
  • Interdisciplinarità: si presta a progetti che uniscono arte, musica, matematica, scienze, tecnologia e storytelling.
  • Interazione con il mondo reale: grazie alle librerie disponibili e alla compatibilità con Arduino, Raspberry Pi e sensori, consente di realizzare installazioni interattive, robot e prototipi fisici.
  • Comunità attiva e risorse online: migliaia di esempi, librerie e progetti condivisi semplificano l’apprendimento e l’ispirazione.

Se desiderate approfondire ulteriormente il concetto di Creative Coding e la sua applicazione nell’arte digitale, vi lascio un elenco di video che esplorano questo campo che a me affascina parecchio:

Creative Coding with Processing: Random Compositions
Video che mostra come generare composizioni casuali di forme geometriche utilizzando Processing.

Creative Coding with p5.js: Building a datastream-visual
Video che illustra la creazione di una visualizzazione che simula un flusso di dati utilizzando p5.js

Creative Coding for Beginners – Full Course!
Un corso completo per principianti che introduce al creative coding con Processing.

Processing Tutorials | Generative Art
Una playlist di tutorial che copre vari aspetti dell’arte generativa con Processing.

Introduzione al Creative Coding con Daniel Shiffman
Daniel Shiffman, uno dei più noti divulgatori del Creative Coding, offre una serie di tutorial che guidano i principianti attraverso i concetti fondamentali della programmazione applicata all’arte.

Cosa troverete nel corso

  • Spiegazioni semplici e progressive;

  • esempi commentati e modificabili;

  • progetti creativi da realizzare passo passo;

  • collegamenti con Arduino e dispositivi esterni;

  • suggerimenti per l’uso didattico in classe.

… e se così non sarà scusatemi, inoltre come sapete è sempre tutto open tutto free (per uso didattico).

La pubblicazione delle lezioni non seguirà una cadenza precisa, ma conto di proporne da due a tre lezioni ogni settimana, dipenderà dagli impegni lavorativi. Procederò man mano che riorganizzo gli appunti: per la versione online saranno sintetizzati, mentre in laboratorio le attività sono più estese e articolate. In ogni caso, il materiale pubblicato rispecchierà fedelmente il percorso svolto in presenza.

Imposterò una specifica sezione nella colonna destra di questo sito in modo che possiate ritrovare velocemente tutte le lezioni.

Buon Coding a tutti 🙂