ዝርዝር ሁኔታ:

Espelho Mágico: 6 ደረጃዎች
Espelho Mágico: 6 ደረጃዎች

ቪዲዮ: Espelho Mágico: 6 ደረጃዎች

ቪዲዮ: Espelho Mágico: 6 ደረጃዎች
ቪዲዮ: 6. Easter Island - Where Giants Walked 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 utilizar um devido a contratempos.

ደረጃ 1 - ሃርድዌር

ሃርድዌር
ሃርድዌር

Dragonboard 410c

ኦዲዮ Mezzanine ቦርድ

ደረጃ 2

ምስል
ምስል

Para a programação foi utilizado o Visual Studio Community 2017 ፣ e a linguagem c#. አንድ በይነገጽ gráfica foi feita utilizando o አርታኢ ኤክስኤምኤል የእይታ ስቱዲዮ ያድርጉ።

ደረጃ 3: Programação - Detecção De Voz

ኦ primeiro passo ፣ foi trabalhar com a detecção de voz። A placa Audio Mezzanine Board já possui dois microfones integrados, que foram utilizados para a detecção. ምንም የእይታ ስቱዲዮ ፣ utilizamos a biblioteca 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።

የግል async ባዶነት InicializaVoz () {var idioma = new Windows. Globalization. Language ("en-US"); SpeechRecognizer recognizer = አዲስ SpeechRecognizer (idioma); recognizer. StateChanged += RecognizerStateChanged; recognizer. ContinuousRecognitionSession. ResultGenerated += RecognizerResultGenerated; string fileName = String. Format (SRGS_FILE); StorageFile ሰዋሰውContentFile = Package. Current. InstalledLocation. GetFileAsync (የፋይል ስም); SpeechRecognitionGrammarFileConstraint grammarConstraint = አዲስ SpeechRecognitionGrammarFileConstraint (grammarContentFile); ማወቂያ ።ገደብ። SpeechRecognitionCompilationResult compilationResult = ለይቶ ማወቅን ጠብቅ. CompileConstraintsAsync (); ከሆነ (compilationResult. Status == SpeechRecognitionResultStatus. Success) {አርም. WriteLine ("ውጤት:" + compilationResult. ToString ()); ማወቂያን ይጠብቁ። ቀጣይነት ያለው የማወቅ ጉባession። } ሌላ {አርም. WriteLine ("ሁኔታ:" + compilationResult. Status); }}

አፖስ ኢንሴአር ኦር ሪሴheሲሜንቶ ፣ ኦም ኦቶኮኒዘር ሪሰርችድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድድያ com”

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 ትንበያ (previsão) e news (notícias)።

የግል async ባዶነት RecognizerResultGenerated (SpeechContinuousRecognitionSession session, SpeechContinuousRecognitionResultGeneratedEventArgs args) {

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

// የተለያዩ መለያዎችን ይፈትሹ እና ተለዋዋጮችን ያስጀምሩ

ሕብረቁምፊ ዒላማ = args. Result. SemanticInterpretation. Properties. ContainsKey ("target")? 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 (): "";

// መጀመሪያ ተጠቃሚው የሚያመለክተው የትኛውን መሣሪያ እንደሆነ ያረጋግጡ

ከሆነ (cmd. Equals (“አሳይ”))

{

ከሆነ (device. Equals ("ትንበያ")) {Consulta_previsao (); } ሌላ ከሆነ (device. Equals ("ዜና")) {Consulta_noticias (); } ሌላ {//Debug. WriteLine (“ያልታወቀ መሣሪያ”) ፤ }

} ሌላ ከሆነ (cmd. Equals ("ደብቅ"))

{

ከሆነ (device. Equals ("ትንበያ")) {//Tempo. Text = ""; ይህንን ይጠብቁ። Dispatcher. = ""; ይህ. Min. Text = ""; ይህ Max. Text = ""; ይህ;

});

}

ሌላ ከሆነ (device. Equals ("ዜና")) {{ይህን ይጠብቁ። Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () => {// ይሄ አሁን ይሠራል ፣ ምክንያቱም በይነገጽ ክር ላይ ስለሚሄድ ይህ. News1. Text = ""; this. News2. Text = ""; this. News3. Text = ""; this. News4. Txt = ""; } ሌላ {// አርም. WriteLine ("ያልታወቀ መሣሪያ"); }} ሌላ {//Debug. WriteLine (“ያልታወቀ ትዕዛዝ”) ፤ }

}

ደረጃ 4: Programação - Exibir Previsão Do Tempo

ለትዕይንት ትንበያ ፣ ወይም ለኮንስትራክሽን ትንተና ፣ ለኤች ቲ ቲ ፒ ጣቢያ ጣቢያ CPTEC INPE ፣ እንደዚሁም ለኤምኤምኤምኤምኤምኤምኤምኤምኤምኤምኤምኤምኤምኤምኤምኤምኤምኤምኤምኤምኤምኤምኤምኤምኤምኤምኤምኤምኤምኤምኤፒኤን አስፈላጊ ነው። አፕል ኤክስኤምኤም ፣ 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 ባዶ 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 = new XmlDocument ();

previsao. LoadXml (respbody. Ressult);

XmlElement root = previsao. DocumentElement;

XmlNodeList nodes = root. GetElementsByTagName ("ቴምፕ");

ሕብረቁምፊ prevtempo = (nodes. Item (0). InnerText);

ሕብረቁምፊ prevtempo1 = (nodes. Item (1). InnerText); ሕብረቁምፊ prevtempo2 = (nodes. Item (2). InnerText); ሕብረቁምፊ prevtempo3 = (nodes. Item (3). InnerText); nodes = root. GetElementsByTagName ("minima"); ሕብረቁምፊ tempmin = (nodes. Item (0). InnerText); nodes = root. GetElementsByTagName ("maxima"); ሕብረቁምፊ tempmax = (nodes. Item (0). InnerText);

ሕብረቁምፊ rsultado_previsao = "";

መቀየሪያ (ቅድመ -ጊዜ)

{ጉዳይ «ec»: rsultado_previsao = "Chuvas_Isoladas.png"; ሰበር; መያዣ "ci": rsultado_previsao = "Chuvas_Isoladas.png"; ሰበር; ጉዳይ "ሐ": rsultado_previsao = "Chuva.png"; ሰበር; መያዣ "በ": 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"; ሰበር;

}

ይህንን ይጠብቁ። Dispatcher. ጽሑፍ = "ሚኒማ" ፤ ይህ። Min. Text = tempmin + "°" ፤ this. Max. Text = tempmax + "°" ፤ this. Img_Tempo. Source = new BitmapImage (አዲስ ኡሪ ("ms-appx: ///) ምስሎች/" + rsultado_previsao));});

}

ደረጃ 5: Programação - Exibir Notícias

ለዜና ትዕይንት ዜናዎች ፣ ለኮንሱል ኮንሶልታ ኢኖቪያ አስፈላጊ የሆነውን የኤች ቲ ቲ ፒ መረጃን ለቢቢሲ ፣ que também retorna um XML። እንደ cinco primeiras notícias são exibidas na tela em textblocks።

የግል async ባዶ Consulta_noticias () {

HttpClient httpcliente2 = new HttpClient ();

var resp2 = httpcliente2. GetAsync ("https://feeds.bbci.co.uk/portuguese/rss.xml")። ውጤት;

resp2. EnsureSuccessStatusCode (); var respbody2 = resp2. Content. ReadAsStringAsync (); XmlDocument noticia = new XmlDocument ();

noticia. LoadXml (respbody2. Ressult);

XmlElement root2 = noticia. DocumentElement;

XmlNodeList nodes2 = root2. GetElementsByTagName (@"ርዕስ");

ይህንን ይጠብቁ። Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () =>

{this. News1. Text = (nodes2. እቃ (2). InnerText); this. News2. Text = (nodes2. እቃ (3). InnerText); this. News3. Text = (nodes2. እቃ (4). InnerText); this. News4. Text = (nodes2. እቃ (5). InnerText); this. News5. Text = (nodes2. እቃ (6). InnerText);

});

}

ደረጃ 6: Conclusão

Ao reproduzir esse instructables, será possível realizar detecção de comandos de voz utilizando alguma placa com o Windos IoT Core instalado. ባስታ ክሪየር ኦ አርኪቮ ደ ግራማቲካ ኮም ኦስ ኮማንዶስ ዴጄጃዶስ።

Autores: ኤጎን ፓትሪክ ማርከስ ሲልቫ

ፍሬደሪኮ ክላርክ

የሚመከር: