COMPONENTI SENSORI (Sensor Components)

I dispositivi mobili che utilizziamo quotidianamente non sono solo un computer portatile con Internet e un cellulare. Grazie ai sensori, posso diventare molto di più.
I sensori sono componenti hardware che misurano /rilevano diverse forze e grazie a particolari App possiamo misurare distanze, angoli, posizione, forza di caduta ecc ecc.
Ai 14 sensori di AI2 , tutti di tipo non visibile, ne abbiamo 17 di KODU e soli 5 (quasi 6, perchè il sensore LOCATION si trova sotto il gruppo Mappe) per THUNX: Timer; Accelerometer; Gyroscope; Magnetometer; Bluetooth Low Energy.

Contenuti e utilizzo:

Componente numero non visibile in grado di rilevare lo scuotimento e misurare l’accelerazione approssimativamente in tre dimensioni usando le unità SI (m/s 2). I componenti sono:
  • xAccel : 0 quando il telefono è a riposo su una superficie piana, positivo quando il telefono è inclinato a destra (ovvero, il suo lato sinistro è sollevato) e negativo quando il telefono è inclinato a sinistra (ovvero, la sua dimensione destra è sollevato).
  • yAccel : 0 quando il telefono è a riposo su una superficie piana, positivo quando la parte inferiore è sollevata e negativo quando la parte superiore è sollevata.
  • zAccel : uguale a -9,8 (gravità terrestre in metri al secondo al secondo quando il dispositivo è a riposo parallelo al suolo con il display rivolto verso l’alto, 0 se perpendicolare al suolo e +9,8 quando rivolto verso il basso. Il valore può anche essere influenzato dall’accelerazione con o contro la gravità.

Proprietà

A disposizione Available

boolean read-only, blocks-only Indica se l’ AccelerometerSensorhardware è disponibile sul dispositivo.

Abilitato Enabled

boolean Specifica se il sensore deve generare eventi. Setrue, il sensore genererà eventi. Altrimenti, non vengono generati eventi anche se il dispositivo viene accelerato o scosso.

Modalità obsoleto LegacyMode

number write-only, designer-only Prima del rilascio che aggiungeva questa proprietà, il componente AccelerometerSensor passava attraverso i valori del sensore direttamente come ricevuto dal sistema Android. Tuttavia, questi valori non compensano i tablet predefiniti in modalità orizzontale, che richiedono al programmatore MIT App Inventor di compensare. Tuttavia, la compensazione comporterebbe risultati errati nei dispositivi in ​​modalità Ritratto come i telefoni. Ora rileviamo i tablet in modalità orizzontale ed eseguiamo la compensazione. Tuttavia, se il tuo progetto sta già compensando la modifica, otterrai risultati errati. Sebbene la nostra soluzione preferita sia quella di aggiornare il tuo progetto, puoi anche impostare questa proprietà su “true” e il nostro codice di compensazione sarà disattivato. Nota: si consiglia di aggiornare il progetto poiché potremmo rimuovere questa proprietà in una versione futura.

MinimumInterval

number Specifica l’intervallo minimo richiesto tra gli Shakingeventi back-to-back , in millisecondi. Una volta che il telefono inizia a essere scosso, tutti gli altri Shakingeventi verranno ignorati fino allo scadere dell’intervallo.

Sensibilità Sensitivity

number Specifica la sensibilità dell’accelerometro. I valori validi sono: 1(debole), 2(moderato) e 3(forte).

Xaccel

number read-only, blocks-only Restituisce l’accelerazione nella dimensione X in unità SI (m / s²). Il sensore deve essere abilitato per restituire valori significativi.

YAccel

number read-only, blocks-only Restituisce l’accelerazione nella dimensione Y in unità SI (m / s²). Il sensore deve essere abilitato per restituire valori significativi.

ZAccel

number read-only, blocks-only Restituisce l’accelerazione nella dimensione Z in unità SI (m / s²). Il sensore deve essere abilitato per restituire valori significativi.

Eventi

AccelerationChanged ( number xAccel , number yAccel , number zAccel )

Indica l’accelerazione modificata nelle dimensioni X, Y e / o Z. Agitazione () Indica che il dispositivo ha iniziato a essere scosso (Shaking) o continua a essere scosso.

Metodi

Nessuna

Scanner di codici a barre BarcodeScanner

Componente per la scansione di un codice QR e il recupero della stringa risultante.

Proprietà

Risultato Result

text read-only, blocks-only Ottiene il risultato del testo della scansione precedente.

UseExternalScanner

Impostare se si desidera utilizzare un programma di scansione esterno come Scanner di codici a barre. Se falso verrà utilizzata una versione di ZXing integrata in App Inventor.

Eventi

AfterScan ( result)

Indica che lo scanner ha letto un risultato (di testo) e fornisce il risultato

Metodi

DoScan ()

Inizia una scansione del codice a barre, utilizzando la fotocamera. Al termine della scansione, verrà generato l’evento AfterScan.

Barometro Barometer

Componente del mondo fisico in grado di misurare la pressione dell’aria ambiente se supportato dall’hardware.

Proprietà

Pressione dell’aria

number read-only, blocks-only La pressione atmosferica in hPa (millibar), se il sensore è disponibile e abilitato.

A disposizione Available

boolean read-only, blocks-only Specifica se il sensore deve generare eventi. Setrue, il sensore genererà eventi. Altrimenti, non vengono generati eventi.

Abilitato Enabled

boolean Il tempo minimo richiesto in millisecondi tra le variazioni delle letture segnalate. Android non è garantito per onorare la richiesta. L’impostazione di questa proprietà non ha alcun effetto sui dispositivi pre-Gingerbread.

RefreshTime

number Chiamato quando viene rilevata una variazione della pressione dell’aria (fornita in hPa).

Eventi

AirPressureChanged ( number pressione )

Chiamato quando viene rilevata una variazione nella pressione dell’aria fornita in hPa

Metodi

Nessuno

Orologio Clock

Il più importante tra i componenti. Oltre a fornire l’orario di sistema può servire per controllare il tempo di risposta di un utente, qui viene usato per ritardare ad esempio una risposta siccome queste piattaforme non supportano il MULTI THREAD (suddivisione di un processo in due o più istanze). Un esempio è quando fai partire un suono, il blocco seguente risponde solo quando il file sonoro viene terminato, e non contemporaneamente.
 
Componente non visibile che fornisce l’istante nel tempo utilizzando l’orologio interno sul telefono. Può far scattare un timer a intervalli regolari ed eseguire calcoli, manipolazioni e conversioni di tempo. Le operazioni su date e orari, come da DatePickere TimePicker, vengono eseguite tramite i metodi in Clock.
 
La logica è la seguente:
  1. Quando viene abilitato il clock (sia da Design che da Block) col blocco TimerEnable=TRUE
  2. … per il Tempo di intervallo impostato in millisecondi (sia da Design che da Block) …
  3. … parte l’evento WHEN TIMER col suo tempo richiesto …
  4. … e le azioni all’intermo di DO.

NB: il clock può essere disabilitato e riabilitato ogni volta col blocco TimerEnable=TRUE, per evitare di andare in Loop infinito. Continua la spiegazione all’evento Timer.

Data e ora sono rappresentate come InstantInTime e Duration.
  • Instant : è costituito da Anno, Mese, DayOfMnoth, Ora, Minuti e Second. Un istante può essere creato utilizzando i metodi MakeInstant, MakeInstantFromMillis e MakeInstantFromParts.
  • Duration : tempo in millisecondi trascorso tra gli istanti. La durata può essere ottenuta con il metodo Duration .
Si presume che gli istanti si trovino nel fuso orario locale del dispositivo. Quando vengono convertiti in o da millisecondi, i millisecondi per una determinata istanza vengono calcolati dal 1 ° gennaio 1970 in UTC (Greenwich Mean Time).

SINCE 1970

Perché è sempre il 1 gennaio 1970? Perché – “1 gennaio 1970” solitamente chiamato “data dell’epoca” è la data in cui è iniziata l’ora per i computer Unix e quel timestamp è contrassegnato come “0”. Qualsiasi tempo trascorso da tale data viene calcolato in base al numero di secondi trascorsi. In parole più semplici… il timestamp di qualsiasi data sarà la differenza in secondi tra quella data e ‘1 gennaio 1970’ Il timestamp è solo un numero intero che inizia dal numero ‘0’ a ‘mezzanotte 1 gennaio 1970’ e continua ad aumentare di ‘1’ ogni secondo passaggio.

Con l’espressione Unix Time Stamp, o tempo Unix, o Epoch Time, si fa riferimento a un metodo universalmente utilizzato per rappresentare il tempo, indipendentemente dalla zona oraria o dalla località geografica. Questa universalità è fondamentale quando si gestiscono dati su scala globale o quando è necessario confrontare e sincronizzare informazioni provenienti da diverse parti del mondo.

Continua a leggere: Unix Time Stamp: un approccio universale per misurare il tempo

Sono anche disponibili metodi per convertire un istante in testo.
I pattern accettabili sono:
  • “stringa vuota”,
  • MM/dd/YYYY HH:mm:ss a(a aggiunge il suffisso AM/PM), oppure “MMM d, yyyy HH:mm“.

La “stringa vuota” fornirà il formato predefinito, che è “MMM d, yyyy HH:mm:ss a” per FormatDateTime, e “MMM d, yyyy” per FormatDate.

Per vedere tutti i formati possibili, vedere qui .
 
Una nota sulla combinazione di data e ora: al fine di combinare la data di un istante e l’ora di un altro, ad esempio da un DatePicker e TimePicker, estrarre le parti come testo e utilizzare il testo per creare un nuovo istante.
Per esempio:
Si attiva anche quando l’applicazione non viene visualizzata sullo schermo se la proprietà TimerAlwaysFires è TRUE.

ThunkableTimer

Anche in Thunkable il Timer è un componente non visibile, ma al suo interno ha solo la capacità di attivare o no il clock. Tutte le proprietà delegate al calendario o all’orologio (l’ora/giorno attuale, la sua formattazione ecc. ecc.) le troviamo rispettivamente nei componenti Date input e Time input dell’Interfaccia Utente.
Il Timer ha delle proprietà diverse dal clock di AI2: Interval; Count up; Loop; Enabled.

In particolare il LOOP:

Se Loops è uguale a vero, il timer si azzererà automaticamente dopo l’attivazione. Se il tuo intervallo è di 10 secondi, il timer scatterà ogni 10 secondi.

Se Loops è uguale a falso, il timer terminerà il suo intervallo corrente se si trova nel mezzo più uno e non scatterà più. Se il tuo intervallo è di 10 secondi, il timer terminerà il suo attuale intervallo di 10 secondi, scatterà e poi si fermerà.

NB: Thunkable ha una costruzione diversa da AI2, quindi per mettere in attesa puoi usare il blocco WAIT for x second dal cassetto CONTROL. Per sapere il momento attuale, invece di NOW dovete andare al cassetto DEVICE e scegliere Current hour o Current minute:

Proprietà

TimerAlwaysFires

boolean  (MANTENERE IL TIMER SEMPRE ATTIVO). Si attiverà anche quando l’applicazione non viene visualizzata sullo schermo, se vera.

Set Clock.TimerAlwaysFires controlla il comportamento del timer, quando l’applicazione non è visualizzata sullo schermo. Cioè l’applicazione deve essere attiva se si passa ad esempio dallo Screen1 allo Screen2. Per implementare un timer one shot = timer da cucina, è necessario includere Set Clock.TimerEnabled = false nel gestore eventi.

App inventor non da la possibilità di mantenere l’app attivata anche se si chiude, come farebbe una App Calendar con promemoria. Ad esempio, se voglio riprodurre in loop un suono e controllarne la durata tramite un timer, e questo suono dovrebbe continuare su tutti gli schermi, allora TimerAlwaysFires deve essere abilitato. Naturalmente, lo schermo non deve essere chiuso e il timer deve essere disattivato alla fine della durata del suono.

Scaricate questo esempio in formato .zip di ABG: clock_always_fires_test

Nel caso si voglia che una nostra app si attivi in un momento preciso, bisogna installarne una sul proprio device, come questo tasker.

https://bit.ly/3hN9e2f

TimerEnabled

boolean Specifica se l’evento Timer deve essere eseguito, cioè se l’orologio deve essere abilitato o meno (indipendentemente se Set Clock.TimerAlwaysFires è impostato su true o false).

TimerInterval

number Specifica l’intervallo tra gli eventi Timer successivi .
Nota: nel tempo potrebbe verificarsi una deriva e il sistema potrebbe non rispettare i tempi specificati qui, se l’app o un altro processo sul telefono è occupato.

Eventi

Timer()

 
L’evento Timer viene eseguito quando il timer si è spento. (Lo so, ma è la traduzione della guida ufficiale, anche se non sono daccordo sulla frase).
Per essere più chiari, ogni volta che l’evento Timer viene attivato col blocco Proprietà SET TIME ENABLED TO = TRUE (che naturalmente deve essere al di fuori dell’evento Timer), le istruzioni all’interno del blocco Timer vengono lette ed eseguite in loop, con la frequenza impostata nella proprietà TIME INTERVAL. Per uscire dal loop, all’interno dell’evento Timer, bisogna inserire il blocco con blocco Proprietà SET TIME ENABLED TO = FALSE, ritornando al blocco seguente il SET TIME ENABLED TO = TRUE sopra citato.
Ecco un esempio di blocchi:
(L’intervallo dell’orologio è settato a 1000ms=1 secondo) Dal blocco TIMEENABLED=TRUE, il flusso si sposta all’evento WHEN CLOCK2 TIMER, esegue il sottocodice in loop fin quando il valore della Label3 non arriva a zero, con l’interruzione del clock TIMEENABLED=FALSE.
Potete scaricare il file.aia qui: CountDownParlato

Metodi

34 Metodi divisi in quattro famiglie.

METODO ADD (AGGIUNGI)

Questo metodo viene utilizzato per aggiungere la quantità di tempo specificata all’istanza di tempo specificata.

 

AddDays ( instant , number quantity )

Restituisce un istante nel tempo alcuni giorni dopo l’istante dato.

AddDuration ( instant , number quantity )

Restituisce un istante nel tempo dopo l’argomento.

AddHours ( instant , number quantity )

Restituisce un istante nel tempo alcune ore dopo l’istante indicato.

AddMinutes ( instant , number quantity )

Restituisce un istante nel tempo alcuni minuti dopo l’istante indicato.

AddMonths ( instant , number quantity )

Restituisce un istante nel tempo alcuni mesi dopo l’istante indicato.

AddSeconds ( instant , number quantity )

Restituisce un istante nel tempo alcuni secondi dopo l’istante indicato.

AddWeeks ( instant , number quantity )

Restituisce Un istante nel tempo alcune settimane dopo l’istante indicato.

AddYears ( instant , number quantity )

Restituisce un istante nel tempo alcuni anni dopo l’istante indicato.

METODO DURATION (DURATA)

number Durata ( inizio , fine )

 
Con l’aiuto di questo blocco possiamo ottenere la durata tra due istanze in millisecondi.
Accetta: millisecondi o istanza
Restituisce: millisecondi

DURATION TO

Possono accettare millisecondi e fornire un output di secondi, minuti, ore, giorni e settimane.

 

number DurationToDays ( number durata )

Restituisce la durata convertita da millisecondi a giorni.

number DurationToHours ( number durata )

Restituisce la durata convertita da millisecondi a ore.

number DurationToMinutes ( number durata )

Restituisce la durata convertita da millisecondi a minuti.

number DurationToSeconds ( number durata )

Restituisce la durata convertita da millisecondi a secondi.

number DurationToWeeks ( number durata )

Restituisce la durata convertita da millisecondi a settimane.

METODO FORMAT (FORMATTA)

Il blocco formato data è utile quando vogliamo restituire un istante in una data correttamente formattata.
Accetta: Istante e testo.
Ritorna: Testo

text FormatDate ( instant , text pattern )

Converte e formatta un istante in una stringa di data con il modello specificato. Per ulteriori informazioni sui modelli validi, consultare SimpleDateFormat.

text FormatDateTime ( instant , text pattern )

Converte e formatta un istante in una stringa di data e ora con il modello specificato. Per ulteriori informazioni sui modelli validi, consultare SimpleDateFormat .

text FormatTime ( instant )

Converte e formatta l’istante dato in una stringa con il modello specificato. Per ulteriori informazioni sui modelli validi, consultare SimpleDateFormat .

ALTRI METODI

Tutti i blocchi di tipo:
  • DayOfMonth
  • Hour
  • Minute
  • Month
  • MonthName
  • Second
  • Weekday
  • WeekDayName
  • Year

restituiscono il numero relativo a quanto chiesto. Ad esempio il seguente blocco restituisce il valore 2023, perchè siamo a Novembre 2023.

(Nota personale: peccato che utilizzino più blocchi, invece di un solo blocco con una casella combinata che raggruppi tutti i metodi insieme)

Gli altri blocchi di tipo MAKE:

  • MakeDate
  • MakeInstant
  • MakeInstanFromMillis
  • MakeInstantFromParts

Creano date o istanti.

number GetMillis ( instant )

Restituisce l’istante temporale misurato in millisecondi dal 1970.

number DayOfMonth ( instant )

Restituisce il giorno del mese.

number Hour ( instant )

Restituisce le ore per la data specificata.

MakeDate ( number anno , number mese , number giorno )

Restituisce un istante nel tempo specificato per anno, mese, data in UTC. I valori validi per il campo del mese sono 1-12 e 1-31 per il campo del giorno.

MakeInstant ( text from)

Accetta Testo e restituisce un Istante nel tempo specificato da MM / gg / AAAA hh: mm: ss o MM / gg / AAAA o hh: mm.

MakeInstantFromMillis ( number millis )

Crea un istante temporale da un testo in formato MM/gg/AAAA.

MakeInstantFromParts ( number year, number month , number day , number hour , number minute , number second )

Restituisce un istante nel tempo specificato per anno, mese, data, ora, minuti, secondi in UTC (Tempo coordinato universale – è il fuso orario scelto come riferimento globale, a partire dal quale sono calcolati tutti i fusi orari del mondo).

MakeTime ( number hour, number minute , number second )

Restituisce un istante nel tempo specificato da ora, minuti, secondi in UTC.

number Minute ( instant )

Restituisce i minuti per la data specificata.

number Month ( instant )

Restituisce il numero del mese per l’istante dato.

text MonthName ( instant )

Restituisce il nome del mese (month) per l’istante dato.

Now()

 
 
Restituisce l’istante attuale nel tempo letto dall’orologio del telefono. Abbinato a metodi come ad esempio CALL CLOCK.MONTH, CALL CLOCK.MINUTE, CALL CLOCK.HOUR ecc ecc vedremo visualizzata solo la parte del nome del MESE, del MINUTO, dell’ORA e non tutte le informazioni come da immagine precedente.

number Second ( instant )

Restituisce i secondi per l’istante dato

number SystemTime ()

 
Restituisce l’ora interna del telefono. Questo è un metodo che restituisce il numero di millisecondi trascorsi dal 1970 e l’ora in cui è stato chiamato il metodo.

L’unica differenza tra NOW e SYSTEMTIME è che Now restituisce un’istanza dell’ora corrente mentre l’ora del sistema restituisce millisecondi.

number Weekday ( instant )

Restituisce il giorno della settimana per l’istante indicato.

textWeekdayName ( instant)

Restituisce il nome del giorno della settimana per l’istante indicato.

number Year ( instant )

Restituisce l’anno dell’istante dato.

Tabella di comparazione orari

A furia di fare calcoli (e “reinventare sempre la ruota”), mi son creato questa tabella di comparazione:

Valore

Risultato

Calcoli

1 Secondo

1000 ms

(1 x 1000)

1 Minuto

60,000 ms

(1 x 1000 x 60)

1 Ora

3,600,000 ms

(1 x 1000 x 60 x 60)

1 Giorno

86,400,000 ms

(1 x 1000 x 60 x 60 x 24)

1 Settimana

604,800,000 ms

(1 x 1000 x 60 x 60 x 24 x 7)

1 Mese

2,628,000,000 ms

((1 x 1000 x 60 x 60 x 24 x 365) /12)

1 Trimestre

7,884,000,000 ms

(((1 x 1000 x 60 x 60 x 24 x 365) /12) x 3)

1 Anno

31,536,000,000 ms

(1 x 1000 x 60 x 60 x 24 x 365)


GyroscopeSensor GyroscopeSensor

Componente che fornisce i dati dal sensore giroscopio del dispositivo.

Proprietà

A disposizione Available

boolean read-only, blocks-only Indica se è disponibile un sensore giroscopio.

Abilitato Enable

boolean Metodo getter di proprietà abilitato.

XAngularVelocity

number read-only, blocks-onlyLa velocità angolare attorno all’asse X, in gradi al secondo.

YAngularVelocity

number read-only, blocks-onlyLa velocità angolare attorno all’asse Y, in gradi al secondo.

ZAngularVelocity

number read-only, blocks-only La velocità angolare attorno all’asse Z, in gradi al secondo. Eventi

GyroscopeChanged( number xAngularVelocity, number yAngularVelocity, number zAngularVelocity, number timestamp)

Indica che i dati del sensore giroscopio sono cambiati. Il parametro timestamp è il tempo in nanosecondi in cui si è verificato l’evento.

Eventi

 

GiroscopioCambiato(xAngularVelocity,yAngularVelocity,zAngularVelocity,timestamp)

Indica che i dati del sensore del giroscopio sono cambiati. Il parametro timestamp è il tempo in nanosecondi in cui si è verificato l’evento.

Metodi

Nessuno

Igrometro Hygrometer

Componente del mondo fisico in grado di misurare l’umidità relativa dell’aria ambiente se supportato dall’hardware.

Proprietà

boolean read-only, blocks-only A disposizione Available

Specifica se il dispositivo dispone o meno dell’hardware per supportare il Hygrometercomponente.

Abilitato Enable

booleanSpecifica se il sensore deve generare eventi. Setrue, il sensore genererà eventi. Altrimenti, non vengono generati eventi.

Umidità Humidity

number read-only, blocks-only Restituisce l’umidità ambientale relativa in percentuale. Il sensore deve essere abilitato e disponibile per restituire valori significativi.

RefreshTime

number Il tempo minimo richiesto in millisecondi tra le variazioni delle letture segnalate. Android non è garantito per onorare la richiesta. L’impostazione di questa proprietà non ha alcun effetto sui dispositivi pre-Gingerbread.

Eventi

Umidità modificata ( number umidità )

Indica l’umidità relativa modificata.

Metodi

Nessuno

Sensore di luce LightSensor

Componente del mondo fisico in grado di misurare il livello di luce.

Proprietà

A disposizione Available

boolean read-only, blocks-only Specifica se il dispositivo dispone o meno dell’hardware per supportare il LightSensorcomponente.

AverageLux

number read-only, blocks-onlyRestituisce la luminosità in lux calcolando la media dei precedenti 10 valori misurati. Il sensore deve essere abilitato e disponibile per restituire valori significativi.

Abilitato Enabled

booleanSpecifica se il sensore deve generare eventi. Se true, il sensore genererà eventi. Altrimenti, non vengono generati eventi.

Lux

number read-only, blocks-onlyRestituisce l’ultima luminosità misurata in lux. Il sensore deve essere abilitato e disponibile per restituire valori significativi.

RefreshTime

number Il tempo minimo richiesto in millisecondi tra le variazioni delle letture segnalate. Android non è garantito per onorare la richiesta. L’impostazione di questa proprietà non ha alcun effetto sui dispositivi pre-Gingerbread.

Eventi

LightChanged ( number lux )

Indica il livello di luce modificato.

Metodi

Nessuno

Sensore di posizione LocationSensor

Componente non visibile che fornisce informazioni sulla posizione, tra cui Latitude, Longitude, Altitude (se supportato dal dispositivo), velocità (se supportato dal dispositivo), e l’indirizzo. Questo può anche eseguire la “geocodifica”, convertendo un determinato indirizzo (non necessariamente quello attuale) in una latitudine (col metodo  LatitudeFromAddress metodo) e una longitudine (con il metodo LongitudeFromAddress). Per funzionare, il componente deve avere la proprietà abilitata Enabled , impostata su true e il dispositivo deve avere il rilevamento della posizione abilitato tramite reti wireless o satelliti GPS (se all’aperto). Le informazioni sulla posizione potrebbero non essere immediatamente disponibili all’avvio di un’app. Dovrai attendere un po ‘di tempo prima che un provider di localizzazione venga trovato e utilizzato, oppure attendi l’evento  LocationChanged. L’emulatore non emula i sensori su tutti i dispositivi. Il codice deve essere testato su un dispositivo fisico.

Proprietà

Precisione Accuracy

number read-only, blocks-only Il LocationSensor sarà in grado di individuare il dispositivo con un diverso grado di fiducia, sulla base della qualità del satellite, torri cellulari e altri dati utilizzati per stimare la posizione. Il Accuracyvalore è il raggio in metri attorno alla posizione rilevata del sensore. Il dispositivo ha una probabilità del 68% di trovarsi all’interno di questo raggio. Un rilevamento della posizione più preciso comporterà un numero di precisione più piccolo, che consente all’app di avere più sicurezza su dove si trova effettivamente il dispositivo. Se la precisione non è nota, il valore restituito è 0,0

Altitudine

number read-only, blocks-only Altitudine del dispositivo misurata in metri, se disponibile. L’altitudine viene misurata dall’ellissoide di riferimento del World Geodetic System 84 , non dal livello del mare. Si noti che per i dispositivi è difficile rilevare con precisione l’altitudine. L’altitudine indicata su un telefono / tablet può essere facilmente disattivata di 30 metri o più. Elenco dei fornitori di servizi disponibili, come gps o rete. Queste informazioni sono fornite come un elenco e in forma di testo.

Fornitori disponibili AvailableProviders

list read-only, blocks-only Elenco dei fornitori (Providers) di servizi disponibili, come gps o rete. Queste informazioni vengono fornite sotto forma di elenco e in forma di testo.

Indirizzo corrente CurrentAddress

text read-only, blocks-onlyAvailableProviders Indirizzo fisico del dispositivo dal database delle mappe di Google. L’indirizzo potrebbe non essere sempre disponibile dal fornitore e l’indirizzo riportato potrebbe non essere sempre dell’edificio in cui si trova il dispositivo. Se Google non ha informazioni sull’indirizzo disponibili per una determinata località, verrà restituito No address available.

DistanceInterval

number Determina l’intervallo di distanza minima, in metri, che il sensore proverà a utilizzare per inviare aggiornamenti di posizione. Ad esempio, se impostato su 50, il sensore emetterà un LocationChangedevento solo dopo che sono stati attraversati 50 metri. Tuttavia, il sensore non garantisce che un aggiornamento verrà ricevuto esattamente all’intervallo di distanza. Ad esempio, potrebbero essere necessari più di 5 metri per lanciare un evento. È anche utile verificare Accuracyse si utilizza questa proprietà. Quando il dispositivo è in movimento, l’accuratezza della posizione rilevata cambia costantemente.

Abilitato

boolean In tal caso true, LocationSensortenterà di leggere le informazioni sulla posizione dal GPS, dalla posizione WiFi o da altri mezzi disponibili sul dispositivo. Questa impostazione non controlla se le informazioni sulla posizione sono effettivamente disponibili. La posizione del dispositivo deve essere abilitata o disabilitata nelle impostazioni del dispositivo.

HasAccuracy

boolean read-only, blocks-only Se true, il dispositivo è in grado di segnalare il suo livello di precisione.

HasAltitude

boolean read-only, blocks-only Se true, il dispositivo è in grado di segnalare la sua altitudine.

HasLongitudeLatitude

boolean read-only, blocks-only Se true, il dispositivo è in grado di segnalare longitudine e latitudine. Accade sempre che entrambi o nessuno dei due lo sia.

Latitudine

number read-only, blocks-only Il valore di latitudine più recente disponibile in gradi riportato con 5 cifre decimali. Se non è disponibile alcun valore, verrà restituito 0. La latitudine è un valore compreso tra 90 (nord) e -90 (sud), dove 0 indica l’equatore.

Longitudine

number read-only, blocks-only Il valore di longitudine disponibile più recente in gradi riportato con 5 decimali. Se non è disponibile alcun valore, verrà restituito 0. La longitudine è un valore compreso tra 180 (est) e -180 (ovest), dove 0 indica il meridiano principale.

ProviderLocked

boolean blocks-only È possibile per un dispositivo cambiare fornitore di servizi quando il fornitore attuale non è in grado di fornire adeguate informazioni sulla posizione. ProviderLocked è un valore booleano: vero/ falso. Impostare true perimpedire ai provider di cambiare. Impostare sufalse per consentire la commutazione automatica quando necessario.

Nome del provider

text blocks-only L’attuale fornitore di servizi. Il fornitore molto probabilmente sarà GPS o di rete.

Intervallo di tempo

number Determina l’intervallo di tempo minimo, in millisecondi, che il sensore proverà a utilizzare per inviare aggiornamenti di posizione. Tuttavia, gli aggiornamenti sulla posizione verranno ricevuti solo quando la posizione del telefono cambia effettivamente e l’uso dell’intervallo di tempo specificato non è garantito. Ad esempio, se come intervallo di tempo viene utilizzato 30000, gli aggiornamenti di posizione non verranno mai attivati ​​prima di 30000 ms, ma possono essere attivati ​​in qualsiasi momento dopo. I valori inferiori a 30000ms (30 secondi) non sono pratici per la maggior parte dei dispositivi. Valori piccoli possono scaricare la batteria e sovraccaricare il GPS.

Eventi

Posizione modificata ( number latitudine , number longitudine , number altitudine , number velocità )

Indica che è stata rilevata una nuova posizione. La velocità è indicata in metri / secondo Altri valori corrispondono alle loro proprietà. Indica che lo stato del servizio del provider di posizione è cambiato, ad esempio quando un provider viene perso o un nuovo provider inizia a essere utilizzato.

StatusChanged ( text provider , text stato )

Deriva la latitudine dal dato locationName.

Metodi

number LatitudeFromAddress ( text locationName )

Deriva la longitudine dal dato locationName.

number LongitudeFromAddress ( text locationName )

Componente per MagneticFieldSensor

Sensore di campo magnetico MagneticFieldSensor

Componente per il Sensore di campo magnetico.

Proprietà

AbsoluteStrength

number read-only, blocks-only Indica la forza assoluta del campo.

A disposizione

boolean read-only, blocks-only Indica che è presente un sensore di campo magnetico nel dispositivo ed è disponibile.

Abilitato

booleanProprietà per abilitato

MaximumRange

number read-only, blocks-onlyIndica la portata massima che il sensore magnetico può raggiungere.

XStrength

number read-only, blocks-onlyIndica l’intensità del campo nell’asse X.

YStrength

number read-only, blocks-onlyIndica l’intensità del campo nell’asse Y.

ZStrength

number read-only, blocks-onlyIndica l’intensità del campo nell’asse Z.

Eventi

MagneticChanged ( number xStrength, number yStrength, number zStrength , number absoluteStrength )

Si attiva quando il campo magnetico è cambiato, impostando i nuovi valori nei parametri.

Metodi

Nessuno

Campo vicinanza NearField

Componente non visibile per fornire funzionalità NFC. Per ora questo componente supporta solo la lettura e la scrittura di tag di testo (se supportato dal dispositivo). Per leggere e scrivere tag di testo, il componente deve avere la ReadMode proprietà impostata sutrueo false rispettivamente. Nota: questo componente funzionerà solo sulla schermata 1 di qualsiasi app di App Inventor.

Proprietà

Ultimo messaggio

Restituisce il contenuto del tag ricevuto più di recente.

ReadMode

text read-only, blocks-only Specifica se l’hardware NFC deve funzionare in modalità lettura ( true) o scrittura ( false).

textToWrite

Specifica il contenuto che verrà scritto nel tag in modalità di scrittura. Questo metodo non ha alcun effetto se lo ReadMode è true.

WriteType

Restituisce il tipo di scrittura per il componente NFC. Per questa versione del componente, lo è sempre 1.

Eventi

TagRead ( text messaggio )

Indica che è stato rilevato un nuovo tag. Attualmente questo è solo un tag di testo semplice, come specificato nel manifest. Indica che un tag è entrato nel raggio del sensore NFC ed è stato scritto.

TagWritten ()

Indica che un tag è entrato nel raggio del sensore NFC ed è stato scritto.

Metodi

Nessuno

Sensore direzione OrientationSensor

Utilizzare un componente del sensore di orientamento per determinare l’orientamento spaziale del telefono. Un sensore di orientamento è un componente non visibile che riporta i seguenti tre valori, in gradi:
  • Roll: 0 gradi quando il dispositivo è in piano, aumentando a 90 gradi quando il dispositivo è inclinato verso l’alto sul lato sinistro e diminuendo a -90 gradi quando il dispositivo è inclinato verso l’alto sul lato destro.
  • Pitch: 0 gradi quando il dispositivo è in piano, aumentando a 90 gradi quando il dispositivo è inclinato in modo che la parte superiore sia rivolta verso il basso, quindi diminuisce a 0 gradi quando viene capovolto. Allo stesso modo, poiché il dispositivo è inclinato in modo che la sua parte inferiore sia rivolta verso il basso, il tono diminuisce a -90 gradi, quindi aumenta a 0 gradi quando viene capovolto completamente.
  • Azimut : 0 gradi quando la parte superiore del dispositivo punta verso nord, 90 gradi quando punta verso est, 180 gradi quando punta verso sud, 270 gradi quando punta verso ovest, ecc.
Queste misurazioni presuppongono che il dispositivo stesso non si muova. Restituisce un angolo che indica la direzione in cui è piastrellato il dispositivo. Cioè, dice la direzione della forza che sarebbe percepita da una palla che rotola sulla superficie del dispositivo.

Proprietà

Angolo Angle

number read-only, blocks-only Restituisce un angolo che indica la direzione in cui il dispositivo è affiancato. Cioè, indica la direzione della forza che sarebbe percepita da una palla che rotola sulla superficie del dispositivo.

A disposizione Available

boolean read-only, blocks-only Indica se il sensore di orientamento è presente sul dispositivo.

Azimut

number read-only, blocks-only Restituisce l’angolo azimutale del dispositivo. Per restituire valori significativi il sensore deve essere abilitato.

Abilitato Enabled

boolean Specifica se il sensore di orientamento è abilitato.

Magnitudo Magnitude

number read-only, blocks-only Restituisce un numero compreso tra 0 e 1 che indica di quanto è inclinato il dispositivo. Fornisce l’entità della forza che sarebbe percepita da una palla che rotola sulla superficie del dispositivo. Per l’angolo di inclinazione, utilizzare Angolo.

Pitch

number read-only, blocks-only Restituisce l’angolo di inclinazione del dispositivo. Per restituire valori significativi il sensore deve essere abilitato.

Roll

number read-only, blocks-only Restituisce l’angolo di rollio del dispositivo. Per restituire valori significativi il sensore deve essere abilitato.

Eventi

OrientationChanged ( azimuth , pitch , roll )

Il OrientationChangedgestore eventi viene eseguito quando l’orientamento è cambiato.

Metodi

Nessuno

Pedometro Pedometer

Questo componente tiene conto dei passi usando l’accelerometro.

Proprietà

Distanza Distance

number read-only, blocks-only Restituisce la distanza approssimativa percorsa in metri.

Tempo trascorso ElapsedTime

number read-only, blocks-only Restituisce il tempo trascorso in millisecondi dall’inizio del contapassi.

SimpleSteps

number read-only, blocks-only Restituisce il numero di semplici passaggi effettuati dall’avvio del contapassi.

StopDetectionTimeout

number Restituisce la durata dell’inattività (nessun passaggio rilevato) dopo la quale si passa allo stato di ‘arresto’.

StrideLength

number Restituisce la stima corrente della lunghezza del passo in metri, se calibrata, o altrimenti restituisce l’impostazione predefinita (0,73 m).

WalkSteps

number read-only, blocks-only Restituisce il numero di passi di camminata effettuati dall’avvio del contapassi.

Eventi

SimpleStep ( number simpleSteps, number distance)

Questo evento viene eseguito quando viene rilevato un passaggio non elaborato.

WalkStep ( number walkSteps, number distance)

Questo evento viene eseguito quando viene rilevato un passo a piedi. Un passo a piedi è un passo che sembra essere coinvolto nel movimento in avanti.

Metodi

Reset()

Azzera il contapassi, la misura della distanza e il tempo che scorre.

Save()

Salva lo stato del contapassi sul telefono. Permette permette l’accumulo di passi e la distanza tra le chiamate di un’App che utilizza il contapassi. App diverse avranno il proprio stato salvato.

Start()

Avvia il contapassi.

Stop()

Ferma il contapassi.

Sensore di prossimità ProximitySensor

Un componente sensore che può misurare la vicinanza di un oggetto (in cm) rispetto alla schermata di visualizzazione di un dispositivo. Questo sensore viene in genere utilizzato per determinare se un ricevitore viene tenuto in mano a un orecchio; cioè consente di determinare la distanza di un oggetto da un dispositivo. Molti dispositivi restituiscono la distanza assoluta, in cm, ma alcuni restituiscono solo valori vicini e lontani. In questo caso, il sensore di solito riporta il suo valore di intervallo massimo nello stato lontano e un valore minore nello stato vicino. Riporta il seguente valore: Distanza : la distanza dall’oggetto al dispositivo

Proprietà

A disposizione Available

boolean read-only, blocks-only Segnala se il dispositivo ha o meno un sensore di prossimità.

Distance

number read-only, blocks-only Restituisce la distanza dall’oggetto al dispositivo. Il sensore deve essere abilitato per restituire valori significativi.

Abilitato Enabled

boolean Se vero, il sensore genererà eventi. Altrimenti, non vengono generati eventi.

KeepRunningWhenOnPause

boolean Restituisce il valore di keepRunningWhenOnPause

MaximumRange

number read-only, blocks-only Determina la portata massima di un sensore. Alcuni sensori di prossimità restituiscono valori binari che rappresentano “vicino” o “lontano”. In questo caso, il sensore di solito riporta il suo valore di intervallo massimo nello stato lontano e un valore minore nello stato vicino. In genere, il valore remoto è un valore> 5 cm, ma può variare da sensore a sensore.

Eventi

ProximityChanged( number distance)

Attivato quando cambia la distanza (in cm) dell’oggetto dal dispositivo.

Metodi

Nessuno

Termometro Thermometer

Componente del mondo fisico in grado di misurare la temperatura dell’aria ambiente se supportato dall’hardware.

Proprietà

A disposizione Available

boolean read-only, blocks-only Specifica se il dispositivo dispone dell’hardware per supportare il componente Termometro.

Abilitato Enabled

boolean Specifica se il sensore deve generare eventi. Se vero, il sensore genererà eventi. In caso contrario, non vengono generati eventi.

RefreshTime

number Il tempo minimo richiesto in millisecondi tra le modifiche nelle letture riportate. Non è garantito che Android onori la richiesta. L’impostazione di questa proprietà non ha effetto sui dispositivi pre-Gingerbread.

Temperatura

number read-only, blocks-only Restituisce la temperatura in gradi Celsius. Il sensore deve essere abilitato e disponibile per restituire valori significativi.

Eventi

TemperatureChanged( numbertemperature)

Indica un cambiamento di temperatura, fornito in gradi Celsius.

Metodi

Nessuna

Contenuti KODU:

Fingerprint

Un componente non visibile che legge le impronte digitali utilizzando lo scanner di impronte digitali integrato nel dispositivo.

Gravity Sensor

Un componente non visibile che misura la forza di gravità applicata a un dispositivo su tutti e tre gli assi fisici. Nota: tutte le letture sono in unità SI.

Pressure Sensor

Un componente non visibile che misura la pressione dell’aria ambiente in unità di hPa o mbar.

Sound Sensor

Componente del mondo fisico in grado di rilevare dati quali: ampiezza del suono (misurazione del grado di cambiamento [positivo o negativo]).

Contenuti THUNK:

Magnetometro Magnetometer

Il magnetometro viene utilizzato per misurare la densità del flusso magnetico. Questo è il campo magnetico totale che passa attraverso una data area, per metro quadrato,
Il sensore restituirà valori con unità di microtesla μT per ciascuno dei tre assi coordinati; x, y e, z. La densità del flusso magnetico è abbastanza simile all’intensità del campo magnetico.

Bluethoot Low Energy

Bluetooth Low Energy, o BLE, viene utilizzato per connettere in modalità wireless due dispositivi tra loro. Il componente BLE ti permette di trovare e connetterti ai dispositivi BLE e di comunicare direttamente con loro.
Aggiornato al 24/03/2023
Aggiornato al 01/01/2021
Aggiornato al 01/02/2023

PDF Lista comparazione dei componenti di AI2 KODULAR THUNKABLEX agg.20210911

Vuoi avere più informazioni sul Coding visuale? Vai alla pagina dei Blocchi incorporati dove potrai imparare a scrivere il linguaggio di programmazione per App Inventor 2, Kodular e Thunkable X. Visita la pagina del Blog con le ultime notizie sulle le tre piattaforme. Nella pagina Documentazione troverai i collegamenti ai forum, il glossario, i link ai siti dei migliori programmatori, i download e tanti altri accessori.