Inhoudsopgave:

Espelho Mágico - Ajarnpa
Espelho Mágico - Ajarnpa

Video: Espelho Mágico - Ajarnpa

Video: Espelho Mágico - Ajarnpa
Video: ESPELHOS MÁGICOS / NAVES IMPERIAIS | MORADA (CLIPE OFICIAL) 2024, November
Anonim
Image
Image

Neste Instructables is een van de meest gebruikte programma's voor de ontwikkeling van informatie over klimaatgerelateerde informatie, gebruik van de voz.

Embora seja o projeto de um espelho, não houve como utilizar um devido a contratempos.

Stap 1: Hardware

Hardware
Hardware

Dragonboard 410c

Audio mezzanine bord

Stap 2:

Afbeelding
Afbeelding

Para a ção foi utilizado o Visual Studio Community 2017, e a linguagem c#. Een grafische interface voor gebruik en editor XAML voor Visual Studio.

Stap 3: Programação - Detecção De Voz

O primeiro passo, foi trabalhar com a detecção de voz. Een placa Audio Mezzanine Board kan worden gebruikt voor geïntegreerde microfoons, voor gebruiksvoorwerpen voor een detecção. Geen Visual Studio, gebruik een biblioteca Windows. Media. SpeechRecognition voor decodering van een voz.

Foi utilizado of 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 herkenner = nieuwe SpeechRecognizer(idioma); herkenner. StateChanged += RecognizerStateChanged; herkenner. ContinuousRecognitionSession. ResultGenerated += RecognizerResultGenerated; string bestandsnaam = String. Formaat (SRGS_FILE); StorageFile grammaticaContentFile = wacht op Package. Current. InstalledLocation. GetFileAsync(fileName); SpeechRecognitionGrammarFileConstraint grammaticaConstraint = nieuwe SpeechRecognitionGrammarFileConstraint(grammarContentFile); herkenner. Constraints. Add(grammarConstraint); SpeechRecognitionCompilationResult compilatieResult = wacht op herkenner. CompileConstraintsAsync(); if (compilationResult. Status == SpeechRecognitionResultStatus. Success) { Debug. WriteLine("Resultaat: " + compilatieResult. ToString()); wacht op herkenner. ContinuousRecognitionSession. StartAsync(); } else { Debug. WriteLine("Status: " + compilatieResult. Status); } }

Após iniciar of reconhecimento, of método RecognizerResultGenerated recebe os comandos que foram interpretados en compara com os comandos com os que estão configurados em um arquivo xml que foi criado en inseido op solução.

Meer informatie over idioma português, os comandos utilizados foram show (mostrar) en hide (esconder)e o que deve ser mostrado forecast (previsão) en news (notícias).

private async void RecognizerResultGenerated(SpeechContinuousRecognitionSession-sessie, SpeechContinuousRecognitionResultGeneratedEventArgs args) {

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

// Controleer op verschillende tags en initialiseer de variabelen

String doel = args. Result. SemanticInterpretation. Properties. ContainsKey("target") ? args. Result. SemanticInterpretation. Properties["target"][0]. ToString(): "";

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

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

String device = args. Result. SemanticInterpretation. Properties. ContainsKey("device") ?

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

// Controleer eerst naar welk apparaat de gebruiker verwijst

if (cmd. Equals("show"))

{

if (apparaat. Equals("voorspelling")) { Consulta_previsao(); } else if (device. Equals("news")) { Consulta_noticias(); } else { //Debug. WriteLine("Onbekend apparaat"); }

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

{

if (apparaat. Equals("voorspelling")) { //Tempo. Text = ""; wacht op this. Dispatcher. RunAsync(Windows. UI. Core. CoreDispatcherPriority. High, () => { // Dit werkt nu, omdat het draait op de UI-thread: this. Max_tit. Text = ""; this. Min_tit. Text = ""; this. Min. Text = ""; this. Max. Text = ""; this. Img_Tempo. Source = new BitmapImage(new Uri("ms-appx:///Images/blank.png"));

});

}

else if (device. Equals("news")) { wait this. Dispatcher. RunAsync(Windows. UI. Core. CoreDispatcherPriority. High, () => { // Dit werkt nu, omdat het draait op de UI-thread: dit. News1. Text = ""; this. News2. Text = ""; this. News3. Text = ""; this. News4. Text = ""; this. News5. Text = ""; }); } else { // Debug. WriteLine ("Onbekend apparaat"); } } else { //Debug. WriteLine("Onbekende opdracht"); }

}

Stap 4: Programação - Exibir Previsão Do Tempo

Bekijk de zoekfunctie voor de voorspelling van de show, of raadpleeg de benodigde informatie voor HTTP en de site CPTEC voor INPE, zoek naar een eerdere versie van het tempo en de bijbehorende xml. Laat xml zien, gebruik een afbeelding van de meest recente versie van de acordo com een eerdere en também dezelfde temperatuur als de maximale temperatuur en de minimale temperatuur.

privé async ongeldig Consulta_previsao() {

HttpClient httpcliente = nieuwe

//HttpResponseMessage resp = httpcliente. GetAsync("https://servicos.cptec.inpe.br/XML/cidade/222/previsao.xml"). Resultaat; var resp = httpcliente. GetAsync("https://servicos.cptec.inpe.br/XML/cidade/222/previsao.xml"). Resultaat; resp. EnsureSuccessStatusCode(); var respbody = resp. Content. ReadAsStringAsync(); XmlDocument previsao = nieuw XmlDocument();

previsao. LoadXml(respbody. Result);

XmlElement root = previsao. DocumentElement;

XmlNodeList nodes = root. GetElementsByTagName("tempo");

string prevtempo = (knooppunten. Item(0). InnerText);

string prevtempo1 = (knooppunten. Item(1). InnerText); string prevtempo2 = (knooppunten. Item(2). InnerText); string prevtempo3 = (knooppunten. Item (3). InnerText); nodes = root. GetElementsByTagName("minima"); string tempmin = (knooppunten. Item (0). InnerText); nodes = root. GetElementsByTagName("maxima"); string tempmax = (knooppunten. Item (0). InnerText);

string rsultado_previsao = "";

schakelen (prevtempo)

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

}

wacht op this. Dispatcher. RunAsync(Windows. UI. Core. CoreDispatcherPriority. High, () => { // Dit werkt nu, omdat het draait op de UI-thread: 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(new Uri("ms-appx:/// Afbeeldingen/" + rsultado_previsao)); });

}

Stap 5: Programação - Exibir Notícias

Zoek naar commando's voor shownieuws, of informatie over het raadplegen van een vereiste HTTP en feeds van BBC-berichten, en naar XML. Als cinco primeiras notícias são exibidas na tela em textblocks.

privé async ongeldig Consulta_noticias() {

HttpClient httpcliente2 = nieuwe

var resp2 =

resp2. EnsureSuccessStatusCode(); var respbody2 = resp2. Content. ReadAsStringAsync(); Kennisgeving XmlDocument = nieuw XmlDocument();

noticia. LoadXml(respbody2. Result);

XmlElement root2 = noticia. DocumentElement;

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

wacht dit af. 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);

});

}

Stap 6: Conclusie

U kunt onder meer instructies geven voor het maken van instructies, het is mogelijk om de commando's voor het gebruik van de installatie van Windos IoT Core te installeren. Basta criar of arquivo de gramática com os comandos desejados.

Auteurs: Egon Patrick Marques Silva

Frederico Clark