Innholdsfortegnelse:

Espelho Mágico: 6 trinn
Espelho Mágico: 6 trinn

Video: Espelho Mágico: 6 trinn

Video: Espelho Mágico: 6 trinn
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, November
Anonim
Image
Image

Neste instrukser kan brukes til å skrive inn informasjon om klimaet og notifikasjonene.

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

Trinn 1: Maskinvare

Maskinvare
Maskinvare

Dragonboard 410c

Audio Mezzanine Board

Steg 2:

Bilde
Bilde

For a programação foi utilizado of Visual Studio Community 2017, og et språk#. Et grensesnitt for grafisk bruk av redaktør XAML for Visual Studio.

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

O primeiro passo, foi trabalhar com a detecção de voz. En plass på Audio Mezzanine Board er mulig for integrerte mikrofoner, som kan brukes for en deteksjon. Ingen Visual Studio, bruker en biblioteca Windows. Media. SpeechRecognition for decodificar a 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 gjenkjenner = ny SpeechRecognizer (idioma); anerkjenner. StateChanged += RecognizerStateChanged; Recognizer. ContinuousRecognitionSession. ResultGenerated += RecognizerResultGenerated; string fileName = String. Format (SRGS_FILE); StorageFile grammarContentFile = venter på Package. Current. InstalledLocation. GetFileAsync (filnavn); SpeechRecognitionGrammarFileConstraint grammarConstraint = new SpeechRecognitionGrammarFileConstraint (grammarContentFile); gjenkjenner. Constraints. Add (grammarConstraint); SpeechRecognitionCompilationResult compilationResult = venter på gjenkjenner. CompileConstraintsAsync (); if (compilationResult. Status == SpeechRecognitionResultStatus. Success) {Debug. WriteLine ("Resultat:" + compilationResult. ToString ()); venter på gjenkjenner. ContinuousRecognitionSession. StartAsync (); } annet {Debug. WriteLine ("Status:" + compilationResult. Status); }}

Vi kan også kjenne igjen rekonstruksjoner, eller gjenkjenne resultateneGenererte anbefalinger kan fortolkes og sammenlignes med kommandoer.

Como não foi possí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).

private async void RecognizerResultGenerated (SpeechContinuousRecognitionSession session, SpeechContinuousRecognitionResultGeneratedEventArgs args) {

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

// Se etter forskjellige tagger og initialiser variablene

String target = 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 (): "";

// Kontroller først hvilken enhet brukeren refererer til

if (cmd. Equals ("vis"))

{

if (device. Equals ("prognose")) {Consulta_previsao (); } annet hvis (device. Equals ("nyheter")) {Consulta_noticias (); } annet {//Debug. WriteLine("Ukjent enhet "); }

} annet hvis (cmd. Equals ("skjul"))

{

if (device. Equals ("prognose")) {//Tempo. Text = ""; venter på dette. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () => {// Dette fungerer nå, fordi det kjører på UI -tråden: this. Max_tit. Text = ""; this. Min_tit. Text = ""; this. Min. Text = ""; this. Max. Text = ""; this. Img_Tempo. Source = ny BitmapImage (ny Uri ("ms-appx: ///Images/blank.png"));

});

}

ellers hvis (device. Equals ("nyheter")) {venter på dette. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () => {// Dette fungerer nå, fordi det kjører på UI -tråden: dette. News1. Text = ""; this. News2. Text = ""; this. News3. Text = ""; this. News4. Text = ""; this. News5. Text = "";}); } annet {// Debug. WriteLine ("Ukjent enhet"); }} annet {//Debug. WriteLine("Ukjent kommando "); }

}

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

Se o comando de voz detectado for show forecast, o método Consulta_previsao envia uma requisição HTTP ao site CPTEC do INPE, que retorna a previsão do tempo em um arquivo xml. Du kan bruke xml til å vise en temperatur som kan brukes som tidligere temperaturer og temperaturer.

private async void Consulta_previsao () {

HttpClient httpcliente = ny 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 = nytt XmlDocument ();

previsao. LoadXml (respbody. Result);

XmlElement root = previsao. DocumentElement;

XmlNodeList -noder = root. GetElementsByTagName ("tempo");

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

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

string rsultado_previsao = "";

bytte (forutgående)

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

}

avvente this. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () => {// Dette fungerer nå, fordi det kjører på UI -tråden: 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: /// Bilder/" + rsultado_previsao));});

}

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

Se et kommando for registrering av shownyheter, eller les mer om konsultasjon av HTTP og feed for notifikasjoner fra BBC, og lagre om XML. Som cinco primeiras notícias são exibidas na tela em textblocks.

private async void 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 noticia = nytt XmlDocument ();

noticia. LoadXml (respbody2. Result);

XmlElement root2 = noticia. DocumentElement;

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

venter på dette. 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);

});

}

Trinn 6: Konklusjon

Ao reproduzir esse instructables, será possível realizar detecção de comandos de voz utilizando alguma placa com of Windos IoT Core installasjon. Basta criar o arquivo de gramática com os comandos desejados.

Forfattere: Egon Patrick Marques Silva

Frederico Clark

Anbefalt: