MIT App Inventor 2 e difficoltà motoria: proviamo con i visori VR?

Oltre che costituire un piacevole divertimento, i visori VR possono essere un valido aiuto per limitare alcuni problemi di accessibilità legati alla disabilità motoria.

In particolare il dispositivo può essere utile nel caso, niente affatto raro, in cui le maggiori potenzialità di mobilità riguardino il capo ma non vi sia sufficiente controllo di motricità fine né la possibilità di utilizzare un puntatore oculare.

MIT App Inventor 2 Tutorial Ita Italiano, Disabilità, Virtual RealityIngredienti necessari: un lettore VR per Smartphone (io ne ho utilizzato uno che costa meno di 30 euro), un cellulare Android dotato di sensore di orientamento e, naturalmente, MIT App inventor 2.

L’idea, elementare, è quella di utilizzare i sensori di movimento dello smartphone per ordinare allo stesso di eseguire un comando (nell’esempio in questione, sfogliare una semplice slideshow).

MIT App Inventor 2 (per chi volesse partire dalle basi, ecco il link a tutti i post) consente di gestire diversi sensori di movimento: trovate i componenti nel sottomenù Sensor della Palette, nel Designer Editor.

MIT App Inventor 2 Sensor VR Virtual Reality Disabili

Clicca sull’immagine per ingrandire

L’accelerometro

E’ il componente che rileva lo scuotimento e misura l’accelerazione (in metri al secondo2) impressa al telefono nelle tre dimensioni. Il componente restituisce le seguenti informazioni:

accelX: vale 0 quando il telefono si trova appoggiato ad una superficie piatta, è positivo quando il telefono viene inclinato a destra, e negativo quando viene inclinato a sinistra.

accelY: vale 0 quando il telefono si trova appoggiato ad una superficie piatta, è positivo quando il fondo viene sollevato, e negativo quando la parte superiore viene sollevata.

accelZ: Equivale a -9.8 (accelerazione gravitazionale terrestre in metri al secondo) per secondo quando il dispositivo è parallelo al pavimento con il display a faccia in su, 0 quando perpendicolare, e +9.8 quando a faccia in giù. Il valore può essere influenzato dal movimento del dispositivo in direzione concorde o contraria all’accelerazione di gravità.

Il giroscopio

Componente nascosto che può misurare la velocità angolare nelle tre dimensioni, misurata in gradi al secondo. Grazie al giroscopio possiamo conoscere:

XAngularVelocity: la velocità angolare sull’asse delle X

YAngularVelocity: la velocità angolare sull’asse delle Y

ZAngularVelocity: la velocità angolare sull’asse Z (la profondità)

Il sensore di orientamento (di direzione)

Componente non visibile che fornisce informazioni sull’orientamento fisico del dispositivo nelle tre dimensioni. Il sensore ci restituisce i seguenti valori:

Roll: 0 gradi quando il dispositivo è in piano, aumenta a 90 gradi quando il dispositivo viene inclinato sul suo lato sinistro, e diminuisce a -90 gradi quando il dispositivo viene inclinato sul suo lato destro.

Pitch: 0 gradi quando il dispositivo è in piano, fino a 90 gradi quando il dispositivo viene inclinato in modo che la sua parte superiore punti in basso, fino a 180 gradi se viene rovesciato. Allo stesso modo, quando il dispositivo viene inclinato in modo che la sua parte inferiore punti in basso, il beccheggio diminuisce a -90 gradi, diminuendo poi a -180 gradi quando viene girato completamente.

Azimuth: 0 gradi quando la parte superiore del dispositivo punta a Nord, 90 gradi quando punta ad Est, 180 gradi quando punta a Sud, 270 gradi quando punta ad Ovest, ecc.

Il cambiamento di tutti questi sensori può essere rilevato grazie ad un blocco che rileva il cambiamento (di direzione, di accelerazione, di velocità angolare).

MIT App Inventor 2 Sensor VR Virtual Reality Educational Technology

Clicca sull’immagine per ingrandirla

Quale sensore usare?

Bè, proprio qui sta la grande utilità di uno strumento completamente personalizzabile come MIT App Inventor 2…possiamo fare delle prove e, in base al movimento più accessibile per l’utente, scegliere il sensore, il o i parametri da prendere in considerazione, la soglia di accettabilità del movimento…

Può essere utile, durante i test preliminari, prepararsi delle semplici app che visualizzino i parametri a schermo, così da aver modo di sperimentare e scegliere il valore da prendere in considerazione; per esempio è possibile inserire tre textbox dal designer e gestirne il contenuto con il blocco:

MIT App Inventor 2 VR Virtual Reality Disabilità Apprendimento

Clicca sull’immagine per ingrandirla

Come funzionano i visori VR?

Ci sono modelli con potenzialità molto differenti ma, in generale, tutti si basano sul funzionamento della nostra visione binoculare.

I nostri occhi proiettano nel nostro sistema cerebrale due immagini leggermente sfalsate (la distanza inter pupillare è mediamente di 6,5 cm) e tale disparità viene sfruttata dal cervello per trarre informazioni sulla profondità e sulla posizione spaziale dell’oggetto mirato.

I visori VR giocano su tale principio, “ingannando” la nostra percezione e permettendoci di utilizzare facilmente uno smartphone come generatore di realtà virtuale proiettando due immagini similari in due porzioni di schermo.

MIT App Inventor 2 VR Virtual Reality Tutorial Apprendimento Scuola

Per la serie “Non abbiamo inventato nulla”: un visore streoscopico di qualche tempo fa 🙂

Diversi visori prevedono dei meccanismi di regolazione delle lenti per adattarsi alle differenze individuali di distanza inter pupillare, entro limiti che caratterizzano la media delle persone.

Come già ricordato, si trovano in commercio visori anche molto economici.

Slideshow

Più che per le potenzialità stereoscopiche, il visore VR ci  interessa qui per le finalità esplicitate in premessa: offrire un’opportunità aggiuntiva di accessibilità a persone con importante disabilità motoria e residua motricità del capo.

Nell’esempio che ho collaudato, i risultati migliori rispetto alla motricità residua  si ottenevano utilizzando il sensore di orientamento e il parametro Roll ma, ripeto ancora una volta, MIT App Inventor consente di valutare caso per caso quale può essere il sensore e il parametro migliore da utilizzare.

Per realizzare la slide show dimostrativa scegliete tre foto  e ridimensionatele a 200×240 pixel.

Designer

La sezione Viewer del nostro designer si presenta così:

MIT App Inventor 2 Tutorial Italiano VR Virtual Reality Disabilità

Clicca sull’immagine per ingrandirla

Come ottenere il risultato?

1) Settate la proprietà ScreenOrientation di Screen1 a Landscape

2) Caricate le tre immagini utilizzando lo strumento Media:

 

 

MIT App Inventor 2 Tutorial italiano VR Virtual Reality Scuola

Clicca sull’immagine per ingrandire

3) Trascinate sullo schermo, dal sottomenù Sensor della sezione Palette, i due componenti non visibili: un Clock (che ho rinominato Orologio1) e un OrientationSensor.

I due componenti non sono in avvio abilitati e il Clock è regolato per scattare ogni 5 secondi:

MIT App Inventor 2 Sensore Orientamento Tutorial Italiano Disabilità

Clicca sull’immagine per ingrandire

4) Trascinate dal sottomenù Layout della sezione Palette un componente TableArrangement, impostando le proprietà come in figura:

MIT App Inventor 2 Tutorial Italiano Sensor Disabilità

Clicca per ingrandire

5) Trascinate, dal sottomenù Drawing and Animation della sezione Palette, un Canvas per ognuna delle tre colonne, settando le relative proprietà come da tabella:

Heigh Width
Canvas1 240 200
Canvas2 240 80
Canvas3 240 200

 

6) Trascinate, dal sottomenù Drawing and Animation della sezione Palette, uno Sprite all’interno di Canvas1 e un altro all’interno di Canvas2. Settate le proprietà come da tabella:

Heigh Width Picture X Y
ImageSprite1 240 200 Prima_slide.jpg 30 0
ImageSprite2 240 200 Prima_slide.jpg 0 0

 

Come accennavamo in premessa, dunque, le due immagini sono leggermente sfalsate, così da contribuire a creare un effetto stereoscopico. Le potenzialità di MIT App Inventor ci consentono di regolare l’entità di tale differenza (variando il parametro X degli Sprite) adattandosi ad eventuali (e affatto rari) strabismi.

I blocchi di programmazione

Spostiamoci nella schermata Bloks.

Il primo passo è impostare tre variabili:

MIT App Inventor Timer App Disabili Android Educational Technology

Clicca sull’immagine per ingrandire

Le prime due sono variabili “di servizio”, mentre la terza è una lista contenente le tre immagini del nostro Slideshow.

Per chi non le avesse mai usate, le liste sono variabili composte da più “scatole” ognuna della quali può contenere stringhe di caratteri, numeri, immagini…

Le scatole che compongono una lista sono indicizzate progressivamente, di modo che il programmatore possa scegliere l’elemento da prendere in considerazione.

Per esempio, nella nostra lista, l’elemento con indice 2 è l’immagine seconda_slide.jpg.

Ecco dove trovate, nel bloks editor, tutti i blocchi che permettono di lavorare con le liste:

MIT App Inventor 2 Liste Tutorial Sensor VR Virtual Reality

Clicca sull’immagine per ingrandirla

Ed ecco il link alla pagina di documentazione di MIT App Inventor che introduce le liste.

Il passaggio successivo è stabilire cosa deve fare la nostra app al momento dell’avvio:

MIT App Inventor Orientation Sensor VR Virtual Reality Disabili Educational Technology

Clicca sull’immagine per ingrandirla

La proprietà Picture dei due Sprite viene settata con il contenuto del primo elemento della lista (ossia la prima slide che vogliamo vedere).

Successivamente il contatore viene incrementato (ora vale 2) e il Clock viene abilitato.

Abilitato a fare cosa?

A ritardare…

Per un tempo stabilito, che nell’esempio è di 5 secondi, il clock ritarda l’abilitazione del sensore di orientamento, così che movimenti involontari non possano impedire di visualizzare la slide per un tempo minimo.

MIT App Inventor 2 Tutorial Italiano Clock Sensor

Clicca sull’immagine per ingrandirla

Terminati i 5 secondi, il sensore di orientamento è abilitato e, quando registra un cambiamento, ci porterà ad eseguire i blocchi associati:

MIT App Inventor 2 Tutorial Italiano Sensor Orientation Apprendimento Scuola

Clicca sull’immagine per ingrandire

Come già detto, nel mio caso ho scelto di prendere in considerazione il parametro roll e di stabilire che debba almeno essere pari a 5 (eliminando i micromovimenti).

Se il test roll > 5 è positivo allora:

  1. Disabilitiamo (temporaneamente) il sensore di orientamento
  2. Controlliamo di non essere giunti a fine lista
  3. Carichiamo l’immagine successiva (o riprendiamo dalla prima immagine)
  4. Incrementiamo il contatore (l’indice della lista di immagini)
  5. Riabilitiamo il Clock, così che, dopo 5 secondi, il sensore di orientamento possa ripartire.

Semplice, vero?

Naturalmente, oltre alla slideshow, si può pensare che i sensori permettano di comandare altre funzioni: cambiare la canzone in esecuzione sullo smartphone (conoscete il  componente Player di MIT App Inventor?), oppure…

Scrivetemi o compilate il modulo di contatto per ricevere il file .AIA.

Alla prossima!

 

2 risposte a "MIT App Inventor 2 e difficoltà motoria: proviamo con i visori VR?"

  1. Pingback: Scratch: tutorial per gestire slideshow…grazie alla webcam! | Il sarto delle App

Lascia un commento