جدول المحتويات:

إسبيلو ماجيكو: 6 خطوات
إسبيلو ماجيكو: 6 خطوات

فيديو: إسبيلو ماجيكو: 6 خطوات

فيديو: إسبيلو ماجيكو: 6 خطوات
فيديو: أسهل طريقة لحل مكعب روبيك للمبتدئين .. ( 1 ) 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، não houve como useizar um devido a contatempos.

الخطوة 1: الأجهزة

المعدات
المعدات

دراغون بورد 410 ج

مجلس الميزانين الصوتي

الخطوة 2:

صورة
صورة

الفقرة برنامج لاستخدامه في Visual Studio Community 2017 ، e a linguagem c #. واجهة رائعة لاستخدام محرر XAML في Visual Studio.

الخطوة 3: Programação - Detecção De Voz

O primeiro passo ، foi trabalhar com a detecção de voz. لوحة الميزانين السمعية بلاكا يمكنك استخدام الميكروفونات الخاصة بالميكروفونات ، كيو فورام للاستخدامات الخاصة بك. لا يوجد Visual Studio ، يستخدم مكتبة Windows. Media. SpeechRecognition para decodificar a voz.

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

الفراغ غير المتزامن الخاص InicializaVoz () {var idioma = new Windows. Globalization. Language ("en-US") ؛ أداة التعرف على SpeechRecognizer = SpeechRecognizer الجديد (idioma) ؛ Recognizer. StateChanged + = RecognizerStateChanged ؛ Recognizer. ContinuousRecognitionSession. ResultGenerated + = RecognizerResultGenerated ؛ string fileName = String. Format (SRGS_FILE) ، StorageFile grammarContentFile = await Package. Current. InstalledLocation. GetFileAsync (fileName) ؛ SpeechRecognitionGrammarFileConstraint grammarConstraint = new SpeechRecognitionGrammarFileConstraint (grammarContentFile) ؛ أداة التعرف. Constraints. Add (grammarConstraint) ؛ SpeechRecognitionCompilationResult compilationResult = انتظار Recognizer. CompileConstraintsAsync ()؛ if (compilationResult. Status == SpeechRecognitionResultStatus. Success) {Debug. WriteLine ("النتيجة:" + compilationResult. ToString ())؛ في انتظار التعرف. ContinuousRecognitionSession. StartAsync () ، } else {Debug. WriteLine ("Status:" + compilationResult. Status)؛ }}

عمليات الاسترداد والاستعادة ، أداة التعرف على النتائج ، النتائج التي تم إنشاؤها من خلال قائمة الأوامر التي تم إنشاؤها.

Como não foi posível inserir o idioma português، os comandos utilizados foram show (mostrar) e hide (esconder) e o que deve ser mostrado Forecast (previsão) e news (notícias).

أداة التعرف على الفراغ غير المتزامن الخاص (RecultGenerated (جلسة SpeechContinuousRecognitionSession ، SpeechContinuousRecognitionResultGeneratedEventArgs args) {

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

// تحقق من وجود علامات مختلفة وقم بتهيئة المتغيرات

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

String cmd = args. Result. SemanticInterpretation. Properties. ContainsKey ("cmd")؟

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

جهاز السلسلة = args. Result. SemanticInterpretation. Properties. ContainsKey ("الجهاز")؟

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

// تحقق أولاً من الجهاز الذي يشير إليه المستخدم

إذا (cmd. Equals ("إظهار"))

{

if (device. Equals ("Forecast")) {Consulta_previsao () ؛ } else if (device. Equals ("news")) {Consulta_noticias ()؛ } else {//Debug. WriteLine("Unknown Device ")؛ }

} else if (cmd. Equals ("hide"))

{

if (device. Equals ("Forecast")) {//Tempo. Text = ""؛ انتظر هذا. = "" ؛ this. Min. Text = "" ؛ this. Max. Text = "" ؛ this. Img_Tempo. Source = صورة BitmapImage جديدة (Uri جديد ("ms-appx: ///Images/blank.png")) ؛

});

}

else if (device. Equals ("news")) {await this. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High، () => {// هذا يعمل الآن ، لأنه يعمل على مؤشر ترابط واجهة المستخدم: هذا. News1. Text = ""؛ this. News2. Text = ""؛ this. News3. Text = ""؛ this. News4. Text = ""؛ this. News5. Text = ""؛})؛ } else {// Debug. WriteLine ("جهاز غير معروف") ؛ }} else {//Debug. WriteLine("Unknown Command ")؛ }

}

الخطوة 4: Programação - Exibir Previsão Do Tempo

قم بتنفيذ الأمر لعرض توقعات العرض ، أو عرض الأمر Consulta_previsao envia uma Requisição HTTP ao site CPTEC do INPE ، que retorna a previsão do tempo em um arquivo 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 temperature máxima e mínima.

باطل غير متزامن خاص Consulta_previsao () {

HttpClient httpcliente = new HttpClient () ،

// HttpResponseMessage resp = httpcliente. GetAsync ("https://servicos.cptec.inpe.br/XML/cidade/222/previsao.xml"). Result؛ var resp = httpcliente. GetAsync ("https://servicos.cptec.inpe.br/XML/cidade/222/previsao.xml"). Result؛ resp. EnsureSuccessStatusCode () ، var respbody = resp. Content. ReadAsStringAsync () ، XmlDocument previsao = جديد XmlDocument () ؛

previsao. LoadXml (respbody. Result) ؛

جذر XmlElement = previsao. DocumentElement ؛

عقد XmlNodeList = root. GetElementsByTagName ("tempo") ؛

سلسلة prevtempo = (nodes. Item (0). InnerText) ؛

سلسلة prevtempo1 = (nodes. Item (1). InnerText) ؛ سلسلة prevtempo2 = (nodes. Item (2). InnerText) ؛ سلسلة prevtempo3 = (nodes. Item (3). InnerText) ؛ العقد = root. GetElementsByTagName ("minima") ؛ سلسلة tempmin = (nodes. Item (0). InnerText) ؛ العقد = root. GetElementsByTagName ("maxima") ؛ سلسلة tempmax = (nodes. Item (0). InnerText) ؛

سلسلة rsultado_previsao = ""؛

التبديل (prevtempo)

{حالة "ec": rsultado_previsao = "Chuvas_Isoladas.png"؛ استراحة؛ حالة "ci": rsultado_previsao = "Chuvas_Isoladas.png"؛ استراحة؛ الحالة "c": rsultado_previsao = "Chuva.png"؛ استراحة؛ الحالة "في": rsultado_previsao = "Instavel.png"؛ استراحة؛ الحالة "pp": rsultado_previsao = "Chuva.png"؛ استراحة؛ الحالة "cm": rsultado_previsao = "Chuva.png"؛ استراحة؛ case "cn": rsultado_previsao = "Chuvas_Isoladas_Noite.png"؛ استراحة؛ الحالة "pt": rsultado_previsao = "Chuva.png" ؛ استراحة؛ case "pm": rsultado_previsao = "Chuvas_Isoladas.png"؛ استراحة؛ حالة "np": rsultado_previsao = "Chuva.png"؛ استراحة؛ حالة "الكمبيوتر": rsultado_previsao = "Chuva.png" ؛ استراحة؛ حالة "pn": rsultado_previsao = "Nublado.png" ؛ استراحة؛ حالة "cv": rsultado_previsao = "Chuva.png" ؛ استراحة؛ حالة "ch": rsultado_previsao = "Chuva.png"؛ استراحة؛ case "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"؛ استراحة؛ حالة "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" ؛ استراحة؛ حالة "nct": rsultado_previsao = "Chuva.png"؛ استراحة؛ الحالة "ncm": rsultado_previsao = "Chuva.png"؛ استراحة؛ حالة "npm": rsultado_previsao = "Chuva.png" ؛ استراحة؛ case "npp": rsultado_previsao = "Chuva.png"؛ استراحة؛ الحالة "vn": rsultado_previsao = "Instavel.png" ؛ استراحة؛ case "ct": rsultado_previsao = "Chuva.png"؛ استراحة؛ الحالة "ppn": rsultado_previsao = "Chuvas_Isoladas_Noite.png"؛ استراحة؛ الحالة "ppt": rsultado_previsao = "Chuva.png" ؛ استراحة؛ الحالة "ppm": rsultado_previsao = "Chuva.png"؛ استراحة؛

}

انتظر هذا. Text = "Mínima" ؛ this. Min. Text = tempmin + "°" ؛ this. Max. Text = tempmax + "°" ؛ this. Img_Tempo. Source = صورة نقطية جديدة (Uri جديد ("ms-appx: /// الصور / "+ rsultado_previsao)) ؛}) ؛

}

الخطوة 5: Programação - Exibir Notícias

قم بعمل كشف عن أخبار البرامج ، أو استشر المعلومات المطلوبة من HTTP ao feed de notícias da BBC، que também retorna um XML. كما cinco primeiras notícias são exibidas na tela em textblocks.

باطل غير متزامن خاص Consulta_noticias () {

HttpClient httpcliente2 = new HttpClient () ،

var resp2 = httpcliente2. GetAsync ("https://feeds.bbci.co.uk/portuguese/rss.xml"). Result؛

resp2. EnsureSuccessStatusCode () ، var respbody2 = resp2. Content. ReadAsStringAsync () ، ملاحظة XmlDocument = new XmlDocument () ،

noticia. LoadXml (respbody2. Result) ،

XmlElement root2 = noticia. DocumentElement ؛

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

في انتظار هذا. 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: Conclusão

Ao reproduzir esse المدربات ، والذي يمكن تحقيقه بالفعل ، والذي يمكن تحقيقه من خلال استخدام تقنية alguma placa com o Windos IoT Core instalado. Basta criar o arquivo de gramática com os comandos desejados.

أوتورز: إيغون باتريك ماركيز سيلفا

فريدريكو كلارك

موصى به: