Marco Pucci

personal website

Tutorial Arduino MaxMSP #6 – Arduino invia a MaxMSP dati da diversi sensori

Tutorial Arduino MaxMSP #6 – Arduino invia a MaxMSP dati da diversi sensori

 

Per vedere tutti i tutorial: www.marcopucci.it/category/maxmsp-arduino/

 

images (1)
Segui la pagina Tutorial Arduino su Facebook

 

 

Materiale utilizzato – Arduino Uno, tre sensori, breadboard

 

Questo tutorial è stato realizzato in collaborazione con www.robotics-3d.com
dove potete acquistare i vari componenti:

Arduino Uno
Sharp Sensor
Trimmer
Bottone

 

Clicca qui per scaricare tutti gli sketch utilizzati nel tutorial.

 

In questo tutorial colleghiamo tre sensori ad Arduino e inviamo i tre valori a MaxMsp.
ATTENZIONE: prima di proseguire leggete i tutorial precedenti di Arduino/MaxMSP a questo link.

Arduino
Colleghiamo tre sensori qualsiasi ad Arduino. In questo esempio ho utilizzato un bottone, un trimmer e un sensore Sharp (se non li avete collegate qualsiasi altro sensore nei Pin 0, 1 e 2, se non avete mai utilizzato i sensori con Arduino dovete iniziare il corso di Arduino a questo link).

 

schema-elettrico-arduino

 

Apriamo il file precedentemente scaricato Arduino_invio_3_sensori.ino.


void loop()

{
if (Serial.available())
{
}
Serial.print(analogRead(sensore1));
Serial.print(“ “);
Serial.print(analogRead(sensore2));
Serial.print(“ “);
Serial.print(analogRead(sensore3));
Serial.println(“ “);
delay(100);
}

Questo semplice codice legge il valore dei tre sensori e li stampa.
Se apriamo il Serial Monitor possiamo vedere i dati scorrere come nella figura qui sotto.

 

arduino_serial-monitor

Per poter passare i dati a MaxMsp è molto importante rispettare questa forma: dato sensore (spazio) dato sensore 2 (spazio) dato sensore 3 (spazio e a capo).
Con il comando Serial.print(“ “); creiamo lo spazio vuoto tra i diversi dati mentre con Serial.println(“ “); mandiamo a capo il nuovo valore.
Chiudiamo Arduino e apriamo MaxMsp.

 

MaxMSP
Apriamo lo sketch 1_Max riceve sensori.maxpat.

 

 arduino_maxmsp

 

Come già visto nei precedenti tutorial per far partire la patch entriamo in modalità esecuzione (CTRL+e) e clicchiamo su Start. In serial d 9600 dovete cambiare la lettera “d” con quella del vostro computer (guarda il primo tutorial).

Se tutto è andato bene nei primi tre blocchi Number (A0, A1 e A2) appaiono i valori dei sensori collegati ad Arduino.

La parte iniziale di questa patch si occupa di collegare Max alla seriale del nostro pc per prelevare il dato di Arduino (che viene inviato sulla porta seriale).
Se volete entrare nello specifico dei blocchi potete sbloccare la patch e con il tasto desto del mouse entrare nell’help del blocco che spiega il suo funzionamento.
Per questi tutorial salteremo questa parte relativa alla comunicazione e ci concentreremo esclusivamente sui dati che Arduino invia a Max.

Se volete inviare sei valori a MaxMsp dovete modificare lo skecth si Arduino facendo leggere e stampare altre tre variabili.

Di seguito un piccolo esempio su come utilizzare i tre valori provenienti da Arduino.

Con il primo sensore (il bottone) gestiamo la selezione di una canzone, con il secondo valore (il trimmer) controlliamo il volume e con il terzo dato (il sensore di distanza Sharp) modifichiamo in modo casuale la riproduzione di una canzone.

In modalità editor (sbloccata) inseriamo il suono drumLoop dalla finestra a sinistra AUDIO.

 

 maxmsp_play-sound

Creiamo una playlist: cerchiamo sul nostro computer dei file mp3, selezioniamoli e trasciniamoli sul blocco drumLoop (il blocco diventa rosso come nella figura qui sotto).
Dopo qualche secondo il blocco si trasformerà in una playlist.

 

maxmsp_playlist

Selezioniamolo e allarghiamolo in modo da vedere tutte le tracce audio che abbiamo aggiunto (figura sotto).

 

maxmsp_volume

 

Aggiungiamo la cassa (click con il tasto destro del mouse sul blocco PlayList, click su Open PlayList Help, selezionate la cassa, copiatela e incollatela nella nostra patch.
Collegate le due uscite del blocco PlayList con i due ingressi della cassa.
Per selezionare le diverse tracce musicali inseriamo tre blocchi Message.

 

 maxmsp_sound_control

 

Nel primo blocco Message inseriamo “1”, nel secondo “2” e nel terzo “3”.
Colleghiamo le uscite dei tre blocchi all’ingresso della PlayList.
Entriamo in modalità esecuzione (CTRL+e) e attiviamo la cassa cliccandoci sopra.
Premendo uno dei tre Message partirà la traccia audio selezionata.
Ho inserito i tre blocchi Message per mostrarvi come funziona la riproduzione di una PlayList. Eliminiamo i tre blocchi e inseriamo un blocco Object come nella figura qui sotto.

 

maxmsp_counter_2

 

Scriviamo “counter 13” al suo interno. Inseriamo un interruttore (Toggle) e uniamo i due blocchi. Sotto il counter inseriamo un blocco Number (per vedere il risultato) e colleghiamo le due uscite.
Questi tre blocchi formano un contatore. Cliccando sull’interruttore il contatore incrementa un numero da 0 a 13.
Se colleghiamo l’uscita del blocco Number con l’ingresso della PlayList possiamo gestire i file mp3 semplicemente cliccando sull’interruttore (ricordatevi di cliccare sulla cassa se è disattivata).

Per rendere questa operazione interattiva associamo il nostro click dell’interruttore al dato proveniente dal bottone di Arduino.

 

maxmsp_counter2

 

Inseriamo un blocco Object e al suo interno scriviamo “> 200” (controlliamo se il valore supera la soglia di 200).
La sua uscita è inserita nell’object TogEdge come nel tutorial #3 PlaySound.
Se premiamo il bottone il suo valore passa da 0 a 1023 e fa scattare l’interruttore che a sua volta fa partire una canzone.
Premendo nuovamente il bottone viene selezionata la canzone successiva.

 

 Con il Trimmer invece gestiamo il volume. Seguite i collegamenti dello schema qui sotto per realizzare il sistema visto nel tutorial #4 Controllo Volume.

 

maxmsp_scale

 

Per ultimo utilizziamo il dato del sensore di distanza Sharp per far partire una delle canzoni in maniera casuale quando la nostra mano sfiora il sensore. Per realizzare questa operazione abbiamo bisogno di un Object chiamato random.

 

 maxmsp_random

 

Sopra il blocco random inseriamo un Bang (per attivarlo).
Subito sotto un Number.
Questo blocco quando viene attivato sceglie un numero a caso da 0 a 12. Dato che le mie tracce nella PlayList sono numerate da 1 a 13 devo aggiungere il blocco “+1” per ottenere un risultato valido.

 

maxmsp_arduino_tutorial

 

Per renderlo interattivo in base al movimento della nostra mano sopra il sensore inseriamo i blocchi “> 200” e “TogEdge” come abbiamo fatto precedentemente collegandoli questa volta all’uscita del terzo valore del sensore di Arduino.

 

 

 

 

Licenza Creative Commons

I tutorial sono liberamente scaricabili e condivisibili sotto l’etichetta Creative Commons (non è possibile commercializzarli e modificarli)

 

 

icona_pdf Scarica il Pdf del tutorial “Arduino invia a MaxMsp dati da diversi sensori

 

 

 

 

   
   
Ti è piaciuto il tutorial? Se ti va offrimi un caffè… [paypal-donation]  

 

 

 

 

 

 

 

 

 

 

Succ Articolo

Precedente Articolo

© 2024 Marco Pucci

Tema di Anders Norén