• Non ci sono risultati.

Modellazione device ideale e relative operazioni

e dello spazio che occupano specificando il modo in cui i dispositivi possono comu- nicare fra loro. In relazione alla discretizzazione dei dispositivi rispetto allo spazio, possiamo individuare 3 differenti categorie:

• i modelli discreti presuppongono un insieme di dispositivi che non riempiono lo spazio (reti sensoriali);

• i modelli cellulari assumono un insieme di dispositivi discreti che riempiono lo spazio (sistemi modulari robotici o automi cellulari);

• i modelli continui ipotizzano un continuo infinito di dispositivi che saranno poi approssimati attraverso l’hardware realmente a disposizione.

Identifichiamo ora tre proprietà fondamentali della comunicazione che descrivono i flussi di informazioni tra i dispositivi:

• Regione di comunicazione: è il rapporto tra i partner comunicativi di un dispositivo e lo spazio. I tipi più comuni che si incontrano sono un intor- no (vicinato) a distanza limitata (anche se non necessariamente regolare) e la comunicazione globale;

• Granularità della trasmissione: è la modalità con cui i dispositivi trasmetto- no ai loro vicini. Lo stesso oggetto per tutti i vicini viene definito broadcast, un’oggetto diverso per ogni vicino rappresenta l’unicast, stesso oggetto per gruppi di vicini è chiamato invece multicast;

• Mobilità del codice: rappresenta la struttura del codice. I dispositivi pos- sono avere al loro interno lo stesso programma uniforme (che può eseguire operazioni differenti a seconda dello stato e delle condizioni ambientali), in

CAPITOLO 2. ARCHITETTURA DI PROGRAMMAZIONE

AGGREGATA 40

alternativa possono avere programmi differenti ma statici, oppure è il codice a poter essere passato da un dispositivo all’altro.

Gli elementi di base della computazione spaziale sono costituiti dal volume spazio- temporale e dalle informazioni relative alla localizzazione nel suddetto volume; la dualità fra questi elementi implica quattro classi generali di operazioni, oltre a meta- operazioni che manipolano i calcoli:

• Misurare Spazio-Tempo: si tratta di operatori che prendono le proprietà geo- metriche del volume spazio-temporale e le traducono in informazioni. Esempi sono le misure di distanza, l’angolo, la durata del tempo, la zona, la densità e la curvatura.

• Manipolare Spazio-Tempo: questi operatori sono il contrario di quelli di mi- sura, essendo attuatori che prendono informazioni e modificano le proprietà del volume di spazio-tempo. Esempi sono dispositivi che si muovono, cambiando curvatura, espandendo o contraendo localmente lo spazio, o cambiando le pro- prietà fisiche locali quali la rigidità che interesserà direttamente l’evoluzione fisica del sistema.

• Calcolare Pattern: queste operazioni che rimangono puramente nel mondo informativo possono essere visualizzate in un alto livello di astrazione, come pattern di calcolo spazio-temporali. Ad esempio, le strisce sono un pattern su spazio, un temporizzatore è un modello nel tempo, e un’onda sinusoidale di moltiplicazione è un modello nello spazio-tempo. Questa categoria compren- de non solo il calcolo, ma la gran parte della comunicazione e qualsiasi senso- re o attuatore puntuale che non interagisce direttamente con la geometria, ad esempio un sensore di luce o suono o un attuatore LED.

• Evoluzione fisica: Molti sistemi fisicamente istanziati hanno dinamiche intrin- seche che causano il cambiamento della forma dello spazio nel tempo anche senza l’uso di attuatori per manipolare spazio-tempo. Gli esempi includono il moto inerziale di robot o le forze adesive che plasmano una colonia di cellule. Per loro natura, queste operazioni non sono direttamente parte dei program- mi, ma i linguaggi devono assumere che tali dinamiche siano presenti nelle operazioni o abbiano attività indirizzate a controllarle.

CAPITOLO 2. ARCHITETTURA DI PROGRAMMAZIONE

AGGREGATA 41

Ogni computazione spaziale può essere descritta in termini di queste quattro classi di operazioni; tuttavia stiamo parlando di linguaggi e dobbiamo considerare anche le meta- operazioni che possono essere usate per combinare e modulare calcoli spaziali:

• le operazioni di astrazione e composizione nascondono i dettagli di implemen- tazione dei calcoli spaziali e consentono loro di venire combinate insieme;

• le operazioni di restrizione modulano una computazione spaziale selezionando un particolare sottospazio su cui deve essere eseguito il calcolo.

Come analizzato nel capitolo precedente, sono presenti sul mercato dispositivi pro- dotti da vari OEM e che presentano diversi sistemi operativi in grado di sfruttare le caratteristiche hardwarepresenti al loro interno. Andiamo quindi ad analizzare tali caratteristiche situandole in base alle categorie dello spatial computing. Tutto ciò di cui abbiamo parlato consiste nella raccolta di dati provenienti direttamente da sensori implementati tramite hardware presente sul dispositivo, si tratta quindi di operazioni che misurano lo spazio e il tempo:

• Rilevazione istante temporale: timer;

• Rilevazione posizione: GPS, Wi-fi, id cella rete;

• Rilevazione accelerazione dispositivo lungo i 3 assi: accelerometro;

• Rilevazione accelerazione gravità lungo i 3 assi: accelerometro;

• Rilevazione rotazione del dispositivo: giroscopio+accelerometro;

• Rilevazione velocità di rotazione del dispositivo: giroscopio;

• Rilevazione campo magnetico: magnetometro;

• Rilevazione distanza dispositivo: sensore di prossimità;

• Rilevazione temperatura dispositivo: termometro;

• Rilevazione temperatura ambientale: termometro;

• Rilevazione illuminazione ambientale: sensore luminosità;

CAPITOLO 2. ARCHITETTURA DI PROGRAMMAZIONE

AGGREGATA 42

• Rilevazione umidità relativa ambientale: sensore umidità.

I casi difformi dai precedenti sono rappresentati da meta-operazioni di composizio- ne e astrazione che elaborano dati grezzi provenienti anche da sorgenti diverse allo scopo di generare informazioni specifiche:

• Rilevazione numero passi effettuati;

• Rilevazione direzione di spostamento.

Infine ricadono nella categoria del calcolo di pattern alcune delle personalizzazioni introdotte da produttori come Samsung al sistema operativo Android di base o le ultime tecniche di identificazione Apple: anche in questo caso i dati di basso livello vengono combinati ma per identificare un vero e proprio pattern che caratterizzi il comportamento dell’utente:

• Rilevazione tipologia attività del dispositivo;

• Rilevazione posizione rispetto ad aree prestabilite (geofencing);

• Rilevazione gesture: sensore infrarossi passivo;

CAPITOLO 2. ARCHITETTURA DI PROGRAMMAZIONE

AGGREGATA 43

Figura 2.4: sensori disponibili nel Samsung Galaxy S4

CAPITOLO 2. ARCHITETTURA DI PROGRAMMAZIONE

AGGREGATA 44

Se vogliamo andare oltre le disponibilità hardware degli attuali dispositivi mobili intesi come smartphone e tablet, possiamo includere le caratteristiche che ci vengono offerte dai cosiddettti accessori, i quali ovviamente hanno la possibilità di interfac- ciarsi con tali dispositivi costituendone di fatto una loro naturale estensione.

In questi termini potrebbero risultare utili alle nostre necessità le cosiddette fasce per il fitness, come ad esempio la PSM Training ECHO di Zephyr, in grado di fornirci diverse misure fisiologiche dell’utente che stiamo monitorando:

• frequenza cardiaca;

• frequenza respiratoria;

• informazioni provenienti dall’accelerometro;

• intensità e carico dell’attività svolta;

• stima della temperatura corporea;

• zone dell’allenamento;

• postura;

• tipo di attività che si sta svolgendo.

CAPITOLO 2. ARCHITETTURA DI PROGRAMMAZIONE

AGGREGATA 45

Un’ulteriore passo che si può compiere in questo senso è quello di considera- re come possibili estensioni anche sensori che consentano di rilevare la presenza di ostacoli o di movimenti.

A tal proposito, si è parlato in precedenza di infrarossi passivi per percepire parti- colari gesture effettuate dall’utente e quindi ci si riferiva alla parte del dispositivo rivolta verso l’utilizzatore stesso. Se teniamo invece in considerazione anche la parte posteriore, c’è la possibilità di utilizzare la fotocamera o un qualsiasi altro rilevatore, infrarossi o ultrasuoni che siano, allo scopo di esaminare lo spazio che ci si prospetta lungo la nostra direzione di movimento sfruttandone le caratteristiche.

In questo caso non stiamo ovviamente parlando di accessori immediati ma si rende necessario l’utilizzo di algoritmi specifici per analizzare i dati recuperati ed ottene- re informazioni concrete come la distanza dall’oggetto più vicino o la pendenza del percorso su cui ci stiamo muovendo.

Come esempio concreto di queste tecnologie possiamo considerare il Bosch GLM 100, uno speciale metro laser in grado di funzionare sia autonomamente che abbina- to ad uno smartphone tramite connessione bluetooth. Oltre alle classiche funzioni di misura lineare, di superficie e di volume, esso consente il trasferimento delle misure rilevate verso il proprio smartphone e l’associazione di tali misure ad una fotogra- fia scattata con quest’ultimo: il tutto grazie ad un’applicazione ad hoc sviluppata da Bosch per IOS e Android.

CAPITOLO 2. ARCHITETTURA DI PROGRAMMAZIONE

AGGREGATA 46

CAPITOLO 2. ARCHITETTURA DI PROGRAMMAZIONE

AGGREGATA 47