PneumOS Milano e una versione aggiornata del sistema PneumOS, sviluppata a partire dalla precedente opera/software disponibile qui:
https://github.com/stefanocolarelli/PNEUMOS_SW
Questa versione raccoglie il codice Python per l'acquisizione dei dati di qualita dell'aria su Milano, la patch Pure Data aggiornata e i file 3D per le parti fisiche dell'installazione.
- corretti e aggiornati alcuni aspetti della patch Pure Data, in particolare in
pureData/audio_patch.pd; - creati nuovi script Python per Milano, con soglie e logica piu aderenti al meccanismo eAQI;
- mantenuta la comunicazione verso Pure Data via OSC;
- mantenuta la comunicazione seriale verso le schede Arduino/STM32 usate dall'opera;
- aggiunti file 3D per casse, corpo, supporti e parti di fissaggio;
- aggiunta documentazione di cablaggio per attuatore e circle LED.
pureData/
audio_patch.pd
myosc.pd
noise_reson.pd
python/
getApiM.py
diagnosticM.py
files3D/
casse/
corpo/
cablaggio_cavo_attuatore.jpeg
cablaggio_cavo_led.jpeg
casse.jpeg
Il sistema usa dati reali di qualita dell'aria da ARPA Lombardia / Open Data Lombardia. La versione Milano considera:
- PM2.5
- PM10
- NO2
- SO2
- CO
- O3
- Benzene
Nel codice Python questi parametri vengono normalizzati e confrontati con soglie ispirate al meccanismo eAQI. L'indice eAQI vero e proprio riguarda PM2.5, PM10, NO2, O3 e SO2; CO e Benzene non entrano nell'eAQI europeo, ma restano parte dello spazio sonoro dell'opera.
La patch principale e:
pureData/audio_patch.pd
La patch riceve messaggi OSC dal codice Python, in particolare:
- valori di distanza/spazio vettoriale per la generazione sonora;
- valore di respiro/stato dell'aria;
- parametri che influenzano densita, grana e comportamento della sonorita.
I due file Python principali sono:
python/getApiM.py
python/diagnosticM.py
getApiM.py e il file operativo principale. In linea con getApi.py presente nell'opera originaria Ravenna/Osaka, acquisisce open data di qualita dell'aria e li traduce in valori per Pure Data e per le schede collegate via seriale. In questa versione la sorgente dati e Milano, tramite ARPA Lombardia / Open Data Lombardia, anziche Ravenna.
diagnosticM.py e l'ambiente di test e diagnostica. Da bash chiede un input interattivo:
- numeri da
0a5: simulano uno stato dell'aria, equivalente agli stati eAQI da1a6; - lettera
D: cattura i dati reali e si comporta comegetApiM.py.
In questo modo e possibile provare Pure Data, seriale e comportamento fisico dell'opera anche senza aspettare che i dati reali cambino.
Dipendenze principali:
pip3 install -r requirements.txtAvvio:
python3 python/getApiM.pyAvvio diagnostica:
python3 python/diagnosticM.pyL'attuatore Ultramotion e il circle LED da 12 LED sono guidati da due schede Arduino Uno R3.
Gli sketch Arduino sono disponibili qui:
https://github.com/stefanocolarelli/pneumos-attuatore/tree/main/arduino
- cavo PWM attuatore collegato a
D9di Arduino; - cavo ground attuatore collegato a
GNDdi Arduino; - nell'opera: cavo PWM grigio, cavo ground giallo.
- data pin del circle LED collegato a
D7di Arduino; - alimentazione collegata a
5Vdi Arduino; - ground collegato a un
GNDdi Arduino; - nell'opera: cavo data rosso-verde, cavo alimentazione rosso, cavo ground bianco.
La cartella:
files3D/casse/
contiene le parti stampabili per integrare le casse Mars Gaming MS1:
https://www.amazon.it/Mars-MS1-Gaming-Altoparlanti-alimentazione/dp/B00KDA4HYW/
File inclusi:
stampa-principale-copricasse.stlcoperchietti-speaker.stlcopertura fori dei cavi delle casse.stl
La cartella:
files3D/corpo/
contiene i file per il corpo fisico dell'opera:
- appoggio principale della sacca;
- ciambella di separazione tra sacca e cono;
- blocco per l'attuatore;
- tappi e parti di fissaggio;
- prototipo del cono.
File inclusi:
emisfera principale.stlciambella.stlblocco attuatore.stlprototipo cono/cono.3mf
Il codice software e distribuito con licenza EUPL-1.2.
Documentazione, immagini e file 3D sono distribuiti con licenza CC BY-SA 4.0, salvo diversa indicazione.


