Processing incontra Arduino: ascoltiamo il mondo e muoviamo le cose
Arduino è una scheda elettronica di piccole dimensioni con un microcontrollore, sviluppata da alcuni membri dell'Interaction Design Institute di Ivrea. Il nome della scheda deriva da quello di un bar di Ivrea frequentato da alcuni dei fondatori del progetto (che richiama a sua volta il nome di Arduino d'Ivrea, Re d'Italia nel 1002).
Con Arduino si possono realizzare in maniera relativamente rapida e semplice piccoli dispositivi utilizzano sensori (ad esempio un sensore di luce o di temperatura) e attuatori (ad esempio un motore) che permettono di sentire e agire sul mondo reale.
È fornito di un semplice ambiente di sviluppo integrato per la programmazione con un linguaggio semplice e intuitivo derivato da C e C++ chiamato Wiring (molto simile a Processing).
Fate conoscenza con Arduino: il sito, un libro, un tutorial, un video, un talk, un simulatore.
In questa parte impareremo ad integrare Arduino e Processing:
- Soundtrack. Rökkurró - Í Annan Heim - Svanur
- Hardware. Le componenti sono: fotoresistore, potenziometro, piezo, pulsante. Il
circuito è:
- fotoresistore: un terminale all'alimentazione (5V), un terminale alla messa a terra (GND) con un resistore di 10K e al piedino analogico A0;
- potenziometro: un terminale all'alimentazione (5V), un terminale alla messa a terra (GND), terminale centrale al piedino analogico A1;
- piezo: un terminale alla messa a terra (GND) e un terminale al piedino digitale 8;
- pulsante: un terminale all'alimentazione (5V), un terminale alla messa a terra (GND) con un resistore di 10K e al piedino digitale 2.
-
Protocollo di comunicazione. Il protocollo di comunicazione tra Arduino e Processing sulla porta seriale è descritto come segue. Arduino cerca il primo contatto con Processing inviando un byte sulla porta seriale (first contact). Quando Processing riceve il primo contatto risponde inviando un byte sulla porta seriale (ready). Quindi Arduino riceve la risposta e invia i valori del fotoresistore, del potenziometro e lo stato del pulsante sulla porta seriale (send values). Processing riceve (e utilizza) questi valori e ne richiede altri inviando un byte sulla porta seriale (more values). A questo punto Arduino manda altri valori e Processing ne richiede altri e così via.
-
PlayWithLight. Codice Arduino che suona un piezo (trasduttore piezoelettrico) usando un fotoresistore (che determina la frequenza del tono) e un potenziometro (che determina la durata del tono).
-
DrawWithLight. Codice Processing che disegna un radar usando un fotoresistore (che determina il raggio del radar) e un potenziometro (che determina la tinta del colore in modalità HSB). Usa un pulsante per invertire la direzione del radar (orario o antiorario).
-
MoveWithLight. Codice Processing che muove un sistema di particelle usando un fotoresistore (che determina la velocità del movimento) e un potenziometro (che determina il colore dello sfondo). Usa un pulsante per visualizzare solo l'effetto emergente.