Kopīgot, izmantojot


Tādas programmas izveide, kas izmanto mobilos sensorus

Izmantojot sensorus, varat programmās pievienot bagātīgāku funkcionalitāti, izmantojot tālruņa iespējas. Šajā rakstā ir informācija par sensoru lietošanu mobilajā ierīcē programmā Power Apps.

Lai to paveiktu, jūs veidosiet programmas paraugu, kurā ir divi ekrāni. Pirmajā ekrānā tiks parādīts pašreizējais kompasa virsraksts, platuma, garuma, augstuma grādi, kā arī var pārbaudīt NFC tagus, lai iegūtu teksta informāciju. Otrajā ekrānā tiks rādīts, kā attēlot akselerometra datus, lai izveidotu ierīces leņķi pa X un Y asīm.

Lai iestatītu scenāriju aiz pirmā ekrāna, iedomājieties, ka veidojat lietotni uz NFC balstītu objektu meklēšanu. Katrs dalībnieks izmantos šo programmu, lai pārbaudītu NFC tagu, kas nodrošinās viņiem kompasa virsrakstu, platumu un garumu, kas novirzīs uz nākamo mērķi. Šajā galapunktā dalībnieks skenēs citu tagu un atkārtos procesu, līdz sasniegs spēles beigas.

Attiecībā uz otro ekrānu iedomājieties, ka jums nepieciešams rīks, lai aptuveni izmērītu leņķus. Otrajā ekrānā dalībnieks varēs novietot vai turēt savu ierīci uz virsmas, un iegūt leņķus uz ierīces X un Y ass, kā arī skatīt šo skatu vizuālu attēlojumu.

Noskatieties šo videoklipu, lai uzzinātu, kā izveidot programmu, kurā tiek izmantoti mobilie sensori:

Priekšnosacījumi

  • Šai programmai var izmantot jebkuru Power Apps licences līmeni, jo netiek lietoti datu savienojumi.

  • Būs nepieciešama mobilā ierīce, piemēram, mobilais tālrunis vai planšetdators ar GPS, kā arī akselerometra iespējas, jo lielākajai daļai datoru var nebūt nepieciešamo sensoru.

  • NFC skenēšanas līdzeklim ir nepieciešama NFC spējīga ierīce. Tiek arī pieņemts, ka NFC tagi, kas tiek skenēti, ir iepriekš konfigurēti, lai iegūtu teksta vērtības šādā parauga formātā:

    "<b>Heading: </b> 80 degrees <br>
    <b>Latitude: </b> 44.4604788 <br>
    <b>Longitude: </b> -110.82813759"
    

    Tādējādi teksts tiks nodrošināts HTML draudzīgā programmas formātā. NFC tagu iestatīšana pārsniedz šī raksta darbības jomu, un NFC elementus, ja nepieciešams, var ignorēt; primārais fokuss ir uz mobilos sensoru izmantošanu programmā Power Apps.

Galvenes un HTML teksta pievienošana ierīces sensora izvadēm

Etiķete Galvene

Kad lietojumprogramma ir atvērta rediģēšanai programmā Power Apps, pievienojiet ekrānam Teksta etiķeti, velkot un nometot to no Ievietošanas rūts. Novietojiet to ekrāna augšējā kreisajā stūrī un pārveidojiet šādus rekvizītus rūtī Rekvizīti:

Rekvizīts Vērtība
Teksts "Objektu meklēšana¨
Fonta lielums 24
Fonta biezums FontWeight.Semibold
Teksta līdzinājums Līdzināt.Centrs
Platums Parent.Width

Pēc tam rūtī Papildus pārveidojiet šādus rekvizītus:

Rekvizīts Vērtība
Krāsa RGBA(255, 255, 255, 1)
Aizpildījums RGBA(56, 96, 178, 1)

Tādējādi tiek nodrošināta ekrāna galvene.

HTML teksts ierīces sensora izvadēm

Pēc tam pievienojiet HTML teksta vadīklu. Tas tiks izmantots, lai vienuviet parādītu visas ierīces sensora izvades. Izmantojiet šo kodu rekvizītā HtmlText:

"<b><u>Current Location</u></b><br>  
<br>
<b>Compass Heading: </b>" & Round(Compass.Heading, 2) & Char(0176) &
"<br>
<br>
<b>Lat: </b>" & Location.Latitude & "<br>
<b>Long: </b>" & Location.Longitude & "<br>
<b>Alt: </b>" & Round(Location.Altitude, 2) & " m"

Rūtī Papildus nomainiet šādus rekvizītus:

Rekvizīts Vērtība
Izmērs 21
BorderStyle BorderStyle.Solid
BorderThickness 2
Platums 560
Augstums 576
PaddingTop 16
PaddingRight 16
PaddingBottom 16
PaddingLeft 16

Ja apskatāt HtmlText ievietoto informāciju, iespējams, pamanīsiet, ka tiek izmantoti divi sensoru tipi.

Pirmais ir Kompasa sensors, kas izmanto rekvizītu Virsraksts, lai nodrošinātu kompasa virsrakstu no ierīces.

Otrais ir Atrašanās vietas sensors, kas nodrošina Platumu, Garumu un Augstumu. Ir divi apsvērumi par atrašanās vietu. Pirmkārt, ja izmantojat tikai atrašanās vietu bez punktveida operatora un rekvizīta, tiks iegūts ieraksts, kam ir Platuma, Garuma un Augstuma lauki. Otrkārt, Augstuma rekvizīts tiek norādīts metros pēc noklusējuma. Ja vēlaties to pārvērst uz pēdām, aizstājiet sekojošo formulu:

Izmantot metrisko sistēmu:

Round(Location.Altitude, 2) & " m"

Izmantot imperiālo sistēmu:

Round(Location.Altitude \* 3.2808, 2) & " ft"

Piezīme

Daudzi sensoru rekvizīti var nestrādāt, ja veiksiet programmas priekšskatījumu programmā Power Apps Studio. Lai testēšanai strādātu ar sensora rekvizītiem, tā vietā ieteicams izmantot mobilo tālruni.

Tagad novietojiet HTML teksta vadīklu pie ekrāna lejasdaļas.

Poga Pievienot NFC pārbaudei un HTML teksta vadīklai

Poga NFC pārbaude

Pievienojiet lietojumprogrammai pogu, novietojot to zem Html teksta vadīklas, ko pievienojāt pēdējā solī, un mainiet tālāk norādītos rekvizītus rūtī Papildus:

Rekvizīts Vērtība
OnSelect ClearCollect(colNFCScan, ReadNFC())
Teksts "Skenēt NFC tagu"

Rekvizīta OnSelect kods izmanto funkciju ReadNFC(), kas aktivizē NFC lasītāju. Pēc tam tas saglabā no NFC taga nolasīto informāciju kolekcijā olNFCScan. Šajā kolekcijā būs četri lauki: RTD, Teksts, TNF un URI. Kaut arī šo lauku pilnie skaidrojumi pārsniedz šī raksta darbības jomu, daži skaidrojumi var būt noderīgi. TNF apzīmē Tipa nosaukuma formātu, un tas tiek izmantots, lai definētu Ieraksta tipa definīcijas vai RTD struktūru, kas savukārt definē ieraksta tipu, kas noglabāti Teksta un/vai URI laukos. URI apzīmē Vienoto resursu identifikatoru, kas būtībā ir resursa adrese. Šajā piemērā izmantotajiem NFC tagiem papildus Teksta laukam, kurā ir iekļauts teksta piemērs no šīs tēmas ievada, tajos būtu iekļauta TNF vērtība 1, RTD vērtība T un tukša URI vērtība.

Pievienojiet HMTL teksta vadīklu, lai parādītu NFC pārbaudes informāciju

Pievienojiet otru HTML teksta vadīklu un rekvizītā HTMLText izmantojiet šādu formulu:

"<b><u>Next Destination</u></b><br>
<br>" &
First(colNFCScan).Text

Rūtī Papildus nomainiet šādus rekvizītus:

Rekvizīts Vērtība
Izmērs 21
BorderStyle BorderStyle.Solid
BorderThickness 2
Platums 560
Augstums 248
PaddingTop 16
PaddingRight 16
PaddingBottom 16
PaddingLeft 16

Bez jebkādiem NFC datiem vadīklā tiks rādīts Nākamais mērķis. Kad NFC tags tiek noskenēts, tajā tiks parādīts Nākamais mērķi un pēc tam dati no Teksta lauka noskenētajos datos.

Pieņemot, ka NFC tagu dati ir konfigurēti, kā aprakstīts ievadā, lietotājs redzēs nākamās kompasa virsrakstu, platuma un garuma vērtības nākamajai objektu atrašanās vietai pēc tam, kad tiks noskenēts viens no šiem tagiem.

Kompasa virsraksta platuma un garuma vērtības

Programmas pārbaude

Saglabājiet programmu un to publicējiet. Ar nepieciešamajiem sensoriem aprīkotajā mobilajā ierīcē atveriet programmu un ievērojiet kompasa virsrakstu, platumu, garumu un augstuma vērtības. Mēģiniet pastaigāt apkārt, griežoties dažādos virzienos, lai redzētu izmaiņas dažādos sensoru rādījumos.

Mēģiniet pastaigāt apkārt, griežoties dažādos virzienos

Lai ievērotu NFC lasītāja vadīklu, nospiediet pogu Skenēt NFC tagu. Ja jums ir NFC tags, kas var radīt Teksta vērtību, skenējiet tagu, lai redzētu tekstu programmā. Ja nav, atlasiet Atcelt.

Skenēt NFC tagu

Otrā ekrāna pievienošana un konfigurēšana

Pievienojiet jaunu Tukšu ekrānu programmas leņķa mērīšanas daļai.

Pēc ekrāna pievienošanas pārejiet atpakaļ uz pirmo ekrānu un pievienojiet ikonu Nākamā bultiņa no + Ievietot > Ikonas > izvēlieties ikonu Nākamā bultiņa. Novietojiet to ekrāna augšējā labajā stūrī un nomainiet šādus rekvizītus rūtī Papildus:

Rekvizīts Vērtība
OnSelect Pāriet (2. ekrāns)
Krāsa RGBA(255, 255, 255, 1)

Ja ir pārdēvēts otrais ekrāns, kas tikko tika pievienots, aizstājiet šo nosaukumu ar 2.ekrāns Navigācijas funkcijā.

Priekšskatiet programmu, atlasot tikko pievienoto ikonu, lai pārbaudītu, vai tā pārvietos jūs uz tikko pievienoto tukšo ekrānu.

Konfigurācijas pievienošana X un Y leņķiem

Pievienojiet ekrānam Teksta etiķeti, velkot un nometot to no Ievietošanas rūts. Novietojiet to ekrāna augšējā kreisajā stūrī un pārveidojiet šādus rekvizītus rūtī Rekvizīti:

Rekvizīts Vērtība
Teksts "2 ass līmenis"
Fonta lielums 24
Fonta biezums FontWeight.Semibold
Teksta līdzinājums Līdzināt.Centrs
Platums Parent.Width

Pēc tam rūtī Papildus pārveidojiet šādus rekvizītus:

Rekvizīts Vērtība
Krāsa RGBA(255, 255, 255, 1)
Aizpildījums RGBA(56, 96, 178, 1)

Tādējādi tiek nodrošināta otrā ekrāna galvene.

Pēc tam pievienojiet ikonu Atpakaļvērstā bultiņa no + Ievietot > Ikonas > izvēlieties ikonu Atpakaļvērstā bultiņa. Novietojiet to ekrāna augšējā kreisajā stūrī un nomainiet šādus rekvizītus rūtī Papildus:

Rekvizīts Vērtība
OnSelect Pāriet (1. ekrāns)
Krāsa RGBA(255, 255, 255, 1)

Ja ir pārdēvēts pirmais ekrāns, kas tikko tika pievienots, aizstājiet šo nosaukumu ar 1.ekrāns Navigācijas funkcijā.

Visbeidzot pievienojiet HTML teksta vadīklu. Tas tiks izmantots, lai vienuviet parādītu visas ierīces sensora izvades. HTML teksta rekvizītā izmantojiet šādu formulu:

"<b><u>Angles:</u></b><br>
<br>
<table width='100%'>
<tr>
<td width='50%'><b>X: </b>" & Abs(Round(Acceleration.X * (90 / 9.81),
0)) & Char(0176) & "</td>
<td width='50%'><b>Y: </b>" & Abs(Round(Acceleration.Y * (90 / 9.81),
0)) & Char(0176) & "</td>
</tr>
</table>"

Cilnē Papildus nomainiet šādus rekvizītus:

Rekvizīts Vērtība
Izmērs 21
BorderStyle BorderStyle.Solid
BorderThickness 2
Platums 560
Augstums 168
PaddingTop 16
PaddingRight 16
PaddingBottom 16
PaddingLeft 16

Novietojiet šo vadīklu programmas ekrāna augšdaļā.

Ja apskatīsiet HtmlText ievietoto informāciju, pamanīsit, ka tiek lietots Paātrinājuma sensors ar X un Y rekvizītiem. Ir arī rekvizīts Z, ko neizmantojam šajā scenārijā.

Šis sensors ierīcē konstatē gravitācijas noslodzi, izmantojot trīs vertikālos skatus. Izmantojot mobilo tālruni kā piemēru, iedomājieties līniju, kas stiepjas ārpus tālruņa sāniem. Tā būtu X plakne. Paceļot tālruņa labo pusi, tiks iegūta pozitīva vērtība, bet kreiso pusi - negatīva vērtība. Līnija, kas tiek paplašināta no tālruņa augšpuses un apakšpuses, būtu Y plakne. Paceļot tālruņa augšpusi, tiks iegūta pozitīva vērtība, bet apakšpusi - negatīva vērtība. Visbeidzot līnija, kas nāktu ārā no ekrāna un tālruņa aizmugures, būtu Z plakne. Ja ekrāns būs vērsts uz augšu, tiks iegūta pozitīva vērtība, un, pavēršot to uz leju, tiks iegūta negatīva vērtība.

Akselerometrs izmērīs spēkus, kas iedarbojas uz ierīci gan kustībā, piemēram, ja jūs nolaižat ierīci, gan miera stāvoklī, piemēram, noliekot ierīci uz vienas vai vairākām asīm, kas aprakstītas iepriekš. Mierīgā stāvoklī teorētiskajām vērtībām jābūt no 0 līdz +/- 9,81 m/s2, 0 norāda, ka relatīvā ass ir paralēla Zemei, gravitācija neietekmē sensoru, un rādījums 9,81 norāda, ka relatīvā ass ir perpendikulāra Zemei, un viss gravitācijas spēks iedarbojas uz sensoru.

Apskatot tikko pievienotās HTML teksta vadīklas kodu, ievērojiet šādu sadaļu:

Abs(Round(Acceleration.X * (90 / 9.81), 0))

Šajā formulā, no iekšpuses uz āru, vispirms Paātrinājums uz X plaknes tiek reizināts ar (90 / 9.81). Tas izmanto teorētisko maksimālo miera vērtību, lai sensora rādījumus pārvērstu grādos. Šī vērtība ir 90, jo maksimālajā teorētiskajā vērtībā šī ierīce būtu perpendikulāra Zemei uz šīs plaknes, piešķirot tai 90° grādus mērvienību.

Pēc tam šī vērtība grādos tiek noapaļota līdz nullei aiz komata, lai iegūtu vesela skaitļa grādu vērtību. Visbeidzot, šī noapaļotā skaitļa absolūtā vērtība tiek aprēķināta, lai dotu pozitīvu rādījumu. Šādā veidā nav svarīgi, vai leņķis tiek mērīts no vienas vai otras puses.

Piezīme

Iepriekš minētās vērtības ir aptuvenas un neataino precīzus mērījumus.

Līmeņa vizuālo datu pievienošana

Šajā darbībā mēs plānojam izmantot dažas vadīklas netradicionālā veidā, lai sasniegtu vizuālu mērķi.

Apļveida burbuļiem līdzīgs vizuāls materiāls

Lai sāktu, pievienojiet ekrānam Pogas vadīklu, pārdēvējot to par btnCircleLevel un Papildus rūtī nomainiet sekojošos rekvizītus:

Rekvizīts Vērtība
Teksts ""
BorderColor RGBA(56, 96, 178, 1)
FocusedBorderThickness 2
Aizpildījums Caurspīdīgs
DisabledFill Self.Fill
X (Parent.Width - Self.Width) / 2
Y (Parent.Height - Self.Height) / 2
Platums 400
Augstums Self.Width

Šo izmaiņu rezultātā ekrāna centrā ir jābūt riņķveida pogai, ko nevar nospiest, jo tā ir atspējota.

Pēc tam pievienojiet Apļa formu, iestatiet tā robežrādi uz 400 un rūts Detalizēti rekvizītus mainiet šādi:

Rekvizīts Vērtība
FocusedBorderThickness 0
X (Parent.Width - Self.Width) / 2 + (Round(Acceleration.X / 9.81 * 90, 0) / 90 * btnCircleLevel.Width / 2)
Y (Parent.Height - Self.Height) / 2 - (Round(Acceleration.Y / 9.81 * 90, 0) / 90 * btnCircleLevel.Width / 2)
Platums 42
Augstums Self.Width
Platums 400
Augstums Self.Width

X un Y rekvizītus ļauj pārvietot Riņķa figūru pa programmas ekrāna centru, relatīvas izmaiņas Paātrinājuma sensora vērtībās, bet iekļautas btnCircleLevel apļveida laukā.

X un Y asu burbuļiem līdzīgs vizuāls materiāls

Pievienojiet programmai Slīdņa vadīklu, pārdēvējiet to par sldXValue un Papildus rūtī nomainiet sekojošos rekvizītus:

Rekvizīts Vērtība
Minimums -90
Maksimums 90
Noklusējuma vērtība Round(Acceleration.X * (90 / 9.81), 0)
ValueFill Self.RailFill
X (Parent.Width - Self.Width) / 2
Y btnCircleLevel.Y + btnCircleLevel.Height + 30
Platums btnCircleLevel.Width
Augstums 70

Šī Slīdņa vadīkla attēlos leņķi līdzīgi kā burbuļa līmenis: Rokturis pārvietosies uz ierīces pacelto pusi līdzīgi kā gaisa burbulis burbuļa līmenī.

Pēc tam kopējiet btnCircleLevel atlasot to, nospiežot Ctrl + C un tad Ctrl + V. Pārdēvējiet vadīklu uz btnXValueOverlay un Papildus rūtī nomainiet sekojošos rekvizītus:

Rekvizīts Vērtība
X sldXValue.X - sldXValue.HandleSize / 2
Y sldXValue.Y
Platums sldXValue.Width + sldXValue.HandleSize
Augstums sldXValue.Height

Šīs izmaiņas novietos to virs sldXValue vadīklas, neļaujot lietotājam mainīt tā vērtību un nodrošināt vizuālu apmali.

Kopējiet un ielīmējiet sldXValue, izmantojot to pašu metodi, kas tika izmantota btnCircleLevel kopēšanai. Pārdēvējiet to uz sldYValue un mainiet šos rekvizītus:

Rekvizīts Vērtība
Izkārtojums Layout.Vertical
X btnCircleLevel.X - Self.Width - 30
Y (Parent.Height - Self.Height) / 2
Platums sldXValue.Height
Augstums sldXValue.Width

Kopējiet un ielīmējiet btnXValueOverlay, pārdēvējot to par btnYValueOverlay, mainot šos rekvizītus:

Rekvizīts Vērtība
X sldYValue.X
Y sldYValue.Y - sldYValue.HandleSize / 2
Platums sldYValue.Width
Augstums sldYValue.Height + sldYValue.HandleSize

Šādi tiek pabeigti burbuļa līmenim līdzīgi vizuālie dati.

Pārbaudiet līmeņa programmu

Programmas pārbaude

Saglabājiet programmu un to publicējiet. Ar nepieciešamajiem sensoriem aprīkotajā mobilajā ierīcē atveriet programmu un pārejiet uz ekrānu, izmantojot burbuļa līmeņa vizuālos datus. Nolieciet ierīci no kreisās puses uz labo, pēc tam uz augšu un uz leju, un, visbeidzot, visos virzienos, ievērojot arī skata rekvizītu izmaiņas, kā arī izmaiņas vizuālajos datos. Atrodiet ieliektu virsmu, uz kuras novietot ierīci, un atkal ievērojiet leņķus un vizuālos datus.

Skatiet arī