فهرست مطالب:

Espelho Mágico: 6 مرحله
Espelho Mágico: 6 مرحله

تصویری: Espelho Mágico: 6 مرحله

تصویری: Espelho Mágico: 6 مرحله
تصویری: How to find the "Quartz" Marker |ROBLOX FIND THE MARKERS 2024, نوامبر
Anonim
Image
Image

Neste Instructables mostramos como criar um protótipo de um espelho inteligente que projeta informações de clima e notícias، utilizando comandos de voz.

Embora seja o projeto de um espelho ، nouo humve como useisar um devido a contratempos.

مرحله 1: سخت افزار

سخت افزار
سخت افزار

Dragonboard 410c

تخته میزانسن صوتی

گام 2:

تصویر
تصویر

برای استفاده از برنامه Visual Studio Community 2017 ، و یک زبان c#. رابط کاربری برای استفاده از ویرایشگر XAML در Visual Studio.

مرحله 3: Programação - Detecção De Voz

O Primeiro passo، foi trabalhar com a detecção de voz. A placa Audio Mezzanine board می توانید از میکروفون های یکپارچه استفاده کنید ، به این منظور می توانید از آنها برای تشخیص استفاده کنید. بدون ویژوال استودیو ، از biblioteca Windows. Media. SpeechRecognition برای رمزگشایی یک voz استفاده کنید.

Foi utilizado o método encontrado aqui para a inicialização da detecção de voz، que é mostrado também abaixo است.

private async void InicializaVoz () {var idioma = new Windows. Globalization. Language ("en-US")؛ تشخیص دهنده SpeechRecognizer = SpeechRecognizer جدید (اصطلاح) ؛ nasizer. StateChanged += RecognizerStateChanged؛ nasizer. ContinuousRecognitionSession. ResultGenerated += RecognizerResultGenerated؛ string fileName = String. Format (SRGS_FILE) ؛ StorageFile grammarContentFile = منتظر Package. Current. InstalledLocation. GetFileAsync (نام فایل)؛ SpeechRecognitionGrammarFileConstraint grammarConstraint = new SpeechRecognitionGrammarFileConstraint (grammarContentFile)؛ تشخیص دهنده. محدودیت ها. افزودن (grammarConstraint) ؛ SpeechRecognitionCompilationResult compilationResult = منتظر شناسه كنيد. CompileConstraintsAsync ()؛ if (compilationResult. Status == SpeechRecognitionResultStatus. Success) {Debug. WriteLine ("Result:" + compilationResult. ToString ()) ؛ در انتظار شناسایی } else {Debug. WriteLine ("وضعیت:" + compilationResult. Status) ؛ }}

Após iniciar o reconhecimento، o método RecognizerResultGenerated recebe os comandos que foram interpretados e compara com os comandos com os que estão configurados em um arquivo xml que foi criado e inserido na solução.

Como não foi possível insidir o idioma português، os comandos utilisados foram show (mostrar) e hide (esconder) و o que deve ser mostrado forecast (previsão) e news (notícias).

خصوصی async void RecognizerResultGenerated (SpeechContinuousRecognitionSession session، SpeechContinuousRecognitionResultGeneratedEventArgs args) {

int count = args. Result. SemanticInterpretation. Properties. Count؛

// تگ های مختلف را بررسی کرده و متغیرها را مقداردهی کنید

String target = args. Result. SemanticInterpretation. Properties. ContainsKey ("هدف")؟ args. Result. SemanticInterpretation. Properties ["target"] [0]. ToString (): ""؛

رشته cmd = args. Result. SemanticInterpretation. Properties. ContainsKey ("cmd")؟

args. Result. SemanticInterpretation. Properties ["cmd"] [0]. ToString (): ""؛

String device = args. Result. SemanticInterpretation. Properties. ContainsKey ("دستگاه")؟

args. Result. SemanticInterpretation. Properties ["device"] [0]. ToString (): ""؛

// ابتدا بررسی کنید که کاربر به کدام دستگاه مراجعه می کند

if (cmd. Equals ("show"))

{

if (device. Equals ("پیش بینی")) {Consulta_previsao ()؛ } else if (device. Equals ("اخبار")) {Consulta_noticias ()؛ } else {//Debug. WriteLine(" دستگاه ناشناس ")؛ }

} else if (cmd. Equals ("پنهان کردن"))

{

if (device. Equals ("پیش بینی")) {//Tempo. Text = ""؛ منتظر this. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High ، () => {// این اکنون کار می کند ، زیرا روی نخ UI اجرا می شود: this. Max_tit. Text = ""؛ this. Min_tit. Text = ""؛ this. Min. Text = ""؛ this. Max. Text = ""؛ this. Img_Tempo. Source = BitmapImage جدید (Uri جدید ("ms-appx: ///Images/blank.png")) ؛

});

}

else if (device. Equals ("اخبار")) {منتظر این باشید. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High، () => {// این اکنون کار می کند ، زیرا روی نخ UI اجرا می شود: این. News1. Text = ""؛ this. News2. Text = ""؛ this. News3. Text = ""؛ this. News4. Text = ""؛ this. News5. Text = ""}})؛ } else {// Debug. WriteLine ("دستگاه ناشناس") ؛ }} else {//Debug. WriteLine(" فرمان ناشناس ")؛ }

}

مرحله 4: Programação - Exibir Previsão Do Tempo

به منظور پیش بینی نمایش ، از طریق دستورالعمل های پیش بینی شده ، باید از HTTP یا CPTEC do INPE استفاده کنید ، بنابراین می توانید سرعت و سرعت xml را پیش بینی کنید. Após a leitura do xml، uma imagem é mostrada na tela de acordo com a previsão e também são mostradas as temperaturas máxima e mínima.

خصوصی async void Consulta_previsao () {

HttpClient httpcliente = new HttpClient ()؛

// HttpResponseMessage resp = httpcliente. GetAsync ("https://servicos.cptec.inpe.br/XML/cidade/222/previsao.xml").نتایج ؛ var resp = httpcliente. GetAsync ("https://servicos.cptec.inpe.br/XML/cidade/222/previsao.xml"). نتیجه ؛ resp. EnsureSuccessStatusCode ()؛ var respbody = resp. Content. ReadAsStringAsync ()؛ XmlDocument previsao = جدید XmlDocument ()؛

previsao. LoadXml (respbody. Result) ؛

root XmlElement = previsao. DocumentElement؛

گره های XmlNodeList = root. GetElementsByTagName ("سرعت") ؛

string prevtempo = (nodes. Item (0). InnerText) ؛

string prevtempo1 = (گره ها. مورد (1). InnerText) ؛ string prevtempo2 = (گره ها. مورد (2). InnerText) ؛ string prevtempo3 = (گره ها. مورد (3). InnerText) ؛ nodes = root. GetElementsByTagName ("حداقل") ؛ string tempmin = (nodes. Item (0). InnerText) ؛ nodes = root. GetElementsByTagName ("حداکثر") ؛ string tempmax = (nodes. Item (0). InnerText) ؛

string rsultado_previsao = ""؛

سوئیچ (prevtempo)

{case "ec": rsultado_previsao = "Chuvas_Isoladas.png"؛ زنگ تفريح؛ مورد "ci": rsultado_previsao = "Chuvas_Isoladas.png"؛ زنگ تفريح؛ مورد "c": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "in": rsultado_previsao = "Instavel.png"؛ زنگ تفريح؛ مورد "pp": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "cm": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "cn": rsultado_previsao = "Chuvas_Isoladas_Noite.png"؛ زنگ تفريح؛ مورد "pt": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ case "pm": rsultado_previsao = "Chuvas_Isoladas.png"؛ زنگ تفريح؛ مورد "np": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "pc": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "pn": rsultado_previsao = "Nublado.png"؛ زنگ تفريح؛ مورد "cv": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "ch": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "t": rsultado_previsao = "Tempestade.png"؛ زنگ تفريح؛ مورد "ps": rsultado_previsao = "Sol.png"؛ زنگ تفريح؛ مورد "e": rsultado_previsao = "Sol_Encoberto.png"؛ زنگ تفريح؛ مورد "n": rsultado_previsao = "Nublado.png"؛ زنگ تفريح؛ مورد "cl": rsultado_previsao = "Sol.png"؛ زنگ تفريح؛ مورد "nv": rsultado_previsao = "Nevoeiro.png"؛ زنگ تفريح؛ مورد "g": rsultado_previsao = "Neve.png"؛ زنگ تفريح؛ مورد "ne": rsultado_previsao = "Neve.png"؛ زنگ تفريح؛ مورد "nd": rsultado_previsao = "na.png"؛ زنگ تفريح؛ مورد "pnt": rsultado_previsao = "Chuvas_Isoladas_Noite.png"؛ زنگ تفريح؛ مورد "psc": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "pcm": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ case "pct": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "pcn": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "npt": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "npn": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "ncn": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ case "nct": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "ncm": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "npm": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "npp": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "vn": rsultado_previsao = "Instavel.png"؛ زنگ تفريح؛ مورد "ct": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "ppn": rsultado_previsao = "Chuvas_Isoladas_Noite.png"؛ زنگ تفريح؛ مورد "ppt": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛ مورد "ppm": rsultado_previsao = "Chuva.png"؛ زنگ تفريح؛

}

منتظر this. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High ، () => {// این اکنون کار می کند ، زیرا روی نخ UI اجرا می شود: this. Max_tit. Text = "Máxima" ؛ this. Min_tit Text = "Mínima"؛ this. Min. Text = tempmin + "°"؛ this. Max. Text = tempmax + "°"؛ this. Img_Tempo. Source = new BitmapImage (Uri جدید ("ms-appx: /// تصاویر/" + rsultado_previsao))؛}})؛

}

مرحله 5: Programação - Exibir Notícias

برای اطلاع از اخبار نمایش ، از طریق مشاوره_نظرهای مربوط به درخواست HTTP یا اخبار مربوط به بی بی سی ، و همچنین ذخیره مجدد XML درخواست کنید. As cinco Primeiras notícias são exibidas na tela em textblocks.

خصوصی async void Consulta_noticias () {

HttpClient httpcliente2 = جدید HttpClient ()؛

var resp2 = httpcliente2. GetAsync ("https://feeds.bbci.co.uk/portuguese/rss.xml"). نتیجه ؛

resp2. EnsureSuccessStatusCode ()؛ var respbody2 = resp2. Content. ReadAsStringAsync ()؛ XmlDocument noticia = جدید XmlDocument ()؛

noticia. LoadXml (respbody2. Result) ؛

XmlElement root2 = noticia. DocumentElement؛

XmlNodeList nodes2 = root2. GetElementsByTagName (@"title")؛

منتظر this. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High ، () =>

{this. News1. Text = (nodes2. Item (2). InnerText) ؛ this. News2. Text = (nodes2. Item (3). InnerText) ؛ this. News3. Text = (nodes2. Item (4). InnerText) ؛ this. News4. Text = (nodes2. Item (5). InnerText) ؛ this. News5. Text = (nodes2. Item (6). InnerText) ؛

});

}

مرحله 6: نتیجه گیری

می توانید دستورالعمل های خود را بازنویسی کنید ، و می توانید از طریق برنامه های کاربردی ویندوز IoT Core instalado از طریق استفاده از آنها استفاده کنید. Basta criar o arquivo de gramática com os comandos desejados.

نویسندگان: اگون پاتریک مارکز سیلوا

فردریکو کلارک

توصیه شده: