Სარჩევი:

Espelho Mágico: 6 ნაბიჯი
Espelho Mágico: 6 ნაბიჯი

ვიდეო: Espelho Mágico: 6 ნაბიჯი

ვიდეო: Espelho Mágico: 6 ნაბიჯი
ვიდეო: გსურთ მიიღოთ მილიონი აშშ დოლარი? 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.

ემბორია, თუ როგორ უნდა გამოვიყენო ეს, არ ვიცი, როგორ გამოვიყენო და გამოვიყენო კონტრატემი.

ნაბიჯი 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. აუდიო ანტრესოლის დაფა შესაძლებელია მიკროფონების ინტეგრაციით, რაც გამოიყენება გამოსაყენებლად. არ არის ვიზუალური სტუდია, იყენებს ბიბლიოთეკას Windows. Media. SpeechRecognition for decodificar voz.

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

private async void InicializaVoz () {var idioma = new Windows. Globalization. Language ("en-US"); SpeechRecognizer აღიარებელი = ახალი SpeechRecognizer (იდიომა); აღიარებელი.სახელმწიფო შეცვლილი += RecognizerStateChanged; აღიარებელი.კონტინენტურიRecognitionSession. ResultGenerated += RecognizerResultGenerated; string fileName = String. Format (SRGS_FILE); StorageFile grammarContentFile = დაელოდეთ Package. Current. InstalledLocation. GetFileAsync (ფაილის სახელი); SpeechRecognitionGrammarFileConstraint grammarConstraint = new SpeechRecognitionGrammarFileConstraint (grammarContentFile); ცნობა. შეზღუდვები. დამატება (გრამატიკა შეზღუდვა); SpeechRecognitionCompilationResult compilationResult = დაელოდეთ აღიარებას. CompileConstraintsAsync (); if (compilationResult. Status == SpeechRecognitionResultStatus. Success) {Debug. WriteLine ("შედეგი:" + compilationResult. ToString ()); დაელოდეთ აღიარებელს.კონტინენტურგარკვევას.სტარტი.სინქსაცია (); } else {Debug. WriteLine ("სტატუსი:" + compilationResult. Status); }}

Após iniciar o reconhecimento, or método RecognizerResultGenerated recebe os comandos que for 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.

ჩვენ შეგვიძლია გამოვიყენოთ პორტუგალიური იდიომა, გამოვიყენო პროგრამის შოუ (ყველაზე ხშირად) და დამალვა (ესკონდერი) და რაც შეიძლება მეტი სიახლის (სიახლის) პროგნოზირება (წინასწარ).

კერძო async void RecognizerResultGenerated (SpeechContinuousRecognitionSession session, SpeechContinuousRecognitionResultGeneratedEventArgs args) {

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

// შეამოწმეთ სხვადასხვა ტეგი და ცვლადების ინიციალიზაცია

სიმებიანი სამიზნე = 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 (): "";

სიმებიანი მოწყობილობა = args. Result. SemanticInterpretation. Properties. ContainsKey ("მოწყობილობა")?

args. Result. SemanticInterpretation. Properties ["მოწყობილობა"] [0]. ToString (): "";

// ჯერ შეამოწმეთ რომელ მოწყობილობას გულისხმობს მომხმარებელი

თუ (სმდ. თანაბარი ("ჩვენება"))

{

if (მოწყობილობა. თანაბარი ("პროგნოზი")) {Consulta_previsao (); } else if (მოწყობილობა. თანაბარი ("სიახლე")) {Consulta_noticias (); } else {//Debug. WriteLine(" უცნობი მოწყობილობა "); }

} else if (cmd. Equals ("დამალვა"))

{

if (device. Equals ("პროგნოზი")) {//Tempo. Text = ""; დაელოდეთ ამას. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () => {// ეს ახლა მუშაობს, რადგან ის მუშაობს ინტერფეისის ძაფზე: this. Max_tit. Text = ""; this. Min_tit. Text = ""; this. Min. Text = ""; this. Max. Text = ""; this. Img_Tempo. Source = new BitmapImage (ახალი ური ("ms-appx: ///Images/blank.png"));

});

}

else if (device. Equals ("ახალი ამბები")) {დაელოდეთ ამას. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () => {// ეს ახლა მუშაობს, რადგან ის მუშაობს ინტერფეისის ძაფზე: ეს. News1. Text = ""; this. News2. Text = ""; this. News3. Text = ""; this. News4. Text = ""; this. News5. Text = ""}}); } else {// Debug. WriteLine ("უცნობი მოწყობილობა"); }} სხვა {//Debug. WriteLine(" უცნობი ბრძანება "); }

}

ნაბიჯი 4: პროგრამა - Exibir Previsão Do Tempo

ეს ნიშნავს, რომ გამოჩნდება პროგნოზის ჩვენება, ან შეაფასეთ კონტექსტი, რომელიც მოითხოვს HTTP– ს CPTEC და INPE საიტის მოთხოვნით, რომლითაც დაგეგმილია დროთა განმავლობაში xml. Após a leitura do xml, uma imagem é mostrada na tela de acordo com previsão e também são mostradas as temperaturas máxima e mínima.

პირადი async void Consulta_previsao () {

HttpClient httpcliente = ახალი 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);

XmlElement root = previsao. DocumentElement;

XmlNodeList კვანძები = root. GetElementsByTagName ("ტემპი");

string prevtempo = (კვანძები. ელემენტი (0). InnerText);

string prevtempo1 = (კვანძები. ელემენტი (1). InnerText); string prevtempo2 = (კვანძები. ელემენტი (2). InnerText); string prevtempo3 = (კვანძები. ელემენტი (3). InnerText); კვანძები = root. GetElementsByTagName ("მინიმუმი"); string tempmin = (კვანძები. ელემენტი (0). შიდა ტექსტი); კვანძები = root. GetElementsByTagName ("მაქსიმუმი"); string tempmax = (კვანძები. ელემენტი (0). შიდა ტექსტი);

string rsultado_previsao = "";

გადართვა (წინასწარი დრო)

{case "ec": rsultado_previsao = "Chuvas_Isoladas.png"; შესვენება; საქმე "ci": rsultado_previsao = "Chuvas_Isoladas.png"; შესვენება; საქმე "გ": rsultado_previsao = "Chuva.png"; შესვენება; საქმე "in": rsultado_previsao = "Instavel.png"; შესვენება; საქმე "pp": rsultado_previsao = "Chuva.png"; შესვენება; საქმე "სმ": rsultado_previsao = "Chuva.png"; შესვენება; საქმე "cn": rsultado_previsao = "Chuvas_Isoladas_Noite.png"; შესვენება; საქმე "pt": rsultado_previsao = "Chuva.png"; შესვენება; საქმე "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"; შესვენება; საქმე "ე": 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"; შესვენება; საქმე "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 = "Mimanima"; this. Min. Text = tempmin + "°"; this. Max. Text = tempmax + "°"; this. Img_Tempo. Source = new BitmapImage (new Uri ("ms-appx: /// სურათები/" + rsultado_previsao));});

}

ნაბიჯი 5: პროგრამა - Exibir Notícias

გაეცანით საინფორმაციო გამოშვებებს, მიმართეთ კონსულტაციების_მომცემებს, რომლებიც ითხოვენ HTTP– ს ან BBC– ს, ასევე XML– ის რეორგანიზაციის შესანახად. როგორც 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");

დაელოდეთ ამას. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () =>

{this. News1. Text = (კვანძები 2. Item (2). InnerText); this. News2. Text = (nodes2. item (3). InnerText); this. News3. Text = (კვანძები 2. პუნქტი (4). შიდა ტექსტი); this. News4. Text = (კვანძები 2. პუნქტი (5). შიდა ტექსტი); this. News5. Text = (nodes2 Item (6). InnerText);

});

}

ნაბიჯი 6: დასკვნა

თქვენ შეგიძლიათ გაეცნოთ ინსტრუქციებს, რომლითაც შესაძლებელია განხორციელდეს პროგრამის გამოყენება ვინდოუსის IoT Core ინსტალაციის გამოყენებით. Basta criar o arquivo de gramática com os comandos desejados.

ავტორები: ეგონ პატრიკ მარკეს სილვა

ფრედერიკო კლარკი

გირჩევთ: