Orodha ya maudhui:
- Hatua ya 1: Vifaa
- Hatua ya 2:
- Hatua ya 3: Programação - Detecção De Voz
- Hatua ya 4: Programação - Exibir Previsão Do Tempo
- Hatua ya 5: Programação - Exibir Notícias
- Hatua ya 6: Hitimisho
Video: Espelho Mágico: 6 Hatua
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:54
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 inaweza kutumika kwa njia nyingine, kwa sababu unaweza kutumia vifaa vyako.
Hatua ya 1: Vifaa
Joka 410c
Bodi ya Sauti ya Mezzanine
Hatua ya 2:
Para a programação foi utilizado o Visual Studio Community 2017, na lugha c #. A interface gráfica foita feita utilizando o mhariri XAML do Visual Studio.
Hatua ya 3: Programação - Detecção De Voz
O primeiro passo, foi trabalhar com a detecção de voz. Ala ya Mezzanine Bodi ya Sauti ina uwezo wa kukuza vipaza sauti, ikiwa ni pamoja na matumizi ya kifaa chako. Hakuna Studio ya Kutazama, inayotumia Windows biblioteca Windows. Media. SpeechRecognition for decodificar a voz.
Utumiaji wa matumizi ya mfumo wa hali ya juu kwa ajili ya utaftaji wa vitu, ni kwa sababu wewe ni mtu wa kawaida.
async ya kibinafsi batili InicializaVoz () {var idioma = new Windows. Utandawazi. Lugha ("en-US"); Kitambuzi cha SpeechRecognizer = SpeechRecognizer mpya (idioma); kitambuzi. StateChanged + = RecognizerStateChanged; kitambulisho. ContinuousRecognitionSession. ResultGenerated + = RecognizerResultGenerated; kamba fileName = String. Format (SRGS_FILE); Uhifadhi wa sarufiContentFile = subiri Package. Current. InstalledLocation. GetFileAsync (fileName); SpeechRecognitionGrammarFileConstraint grammarConstraint = new SpeechRecognitionGrammarFileConstraint (grammarContentFile); vitambuzi. Vizuizi. Ongeza (sarufiKikwazo); HotubaRecognitionCompilationResult compilationResult = subiri kitambuzi. CompileConstraintsAsync (); ikiwa (compilationResult. Status == SpeechRecognitionResultStatus. Success) {Debug. WriteLine ("Matokeo:" + compilationResult. ToString ()); subiri kitambuzi. KuendeleaKutambuaKikao. StartAsync (); } mwingine {Debug. WriteLine ("Hali:" + mkusanyikoResult. Status); }}
Apos iniciar o reconhecimento, o modo RecognizerResultGenerated recebe os comandos que foram translados and compara com os comandos com os que estão configurados em em arquivo xml que foi criado e inserido na solução.
Tunaweza kupata habari zaidi kwa njia ya maandishi, kwa njia inayofaa utumiaji wa onyesho (mara nyingi) na kujificha (kusindikiza) na utaftaji wa utabiri wa hali ya juu zaidi (previsão) habari (habari).
async ya kibinafsi batili ya RecognizerResultGenerated (Kikao cha KuendeleaKutambuaKikao cha Kikao, HotubaContinuousRecognitionResultGeneratedEventArgs args) {
hesabu ya int
// Angalia vitambulisho tofauti na anzisha anuwai
Lengo la kamba = args. Result. SemanticInterpretation. Properties. ContainsKey ("target")? args. Matokeo. Tafsiri ya Kimantiki. Properties ["lengo"] [0]. ToString (): "";
Kamba cmd = args. Matokeo. Utafsiri wa Kimantiki. Properties. ContainsKey ("cmd")?
args. Matokeo. Tafsiri ya Kimantiki. Maghala ["cmd"] [0]. ToString (): "";
Kifaa cha kamba = args. Result. SemanticInterpretation. Properties. ContainsKey ("kifaa")?
args. Matokeo. Tafsiri ya Kimantiki. Properties ["kifaa"] [0]. ToString (): "";
// Kwanza angalia kifaa ambacho mtumiaji anamaanisha
ikiwa (cmd. Sawa ("onyesha"))
{
ikiwa (kifaa. Equals ("utabiri")) {Consulta_previsao (); } mwingine ikiwa (kifaa. Equals ("habari")) {Consulta_noticias (); } mwingine {//Debug. WriteLine ("Kifaa kisichojulikana"); }
} mwingine ikiwa (cmd. Sasa ("ficha"))
{
ikiwa (kifaa. Equals ("forecast")) {//Tempo. Text = ""; subiri hii. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () => {// Hii sasa inafanya kazi, kwa sababu inaendesha kwenye uzi wa UI: hii. Max_tit. Text = ""; = ""; hii. Min. Text = ""; hii. Max. Text = ""; hii. Img_Tempo. Source = mpya BitmapImage (mpya Uri ("ms-appx: ///Images/blank.png"));
});
}
vinginevyo ikiwa (kifaa. Equals ("habari")) {inasubiri hii. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () => {// Hii sasa inafanya kazi, kwa sababu inaendesha kwenye uzi wa UI: hii. News1. Text = ""; hii. News2. Text = ""; hii. News3. Text = ""; hii. News4. Text = ""; hii. News5. Text = "";}); } mwingine {// Debug. WriteLine ("Kifaa kisichojulikana"); }} mwingine {//Debug. WriteLine ("Amri isiyojulikana"); }
}
Hatua ya 4: Programação - Exibir Previsão Do Tempo
Angalia kama upekuzi wa voz kwa utabiri wa onyesho, tafadhali wasiliana na Wataalam wanaoshughulikia huduma ya HTTP au tovuti ya CPTEC kufanya INPE, ikiwa ni pamoja na kumbukumbu ya muda wa kufanya kazi kwa xml. Aposs a leitura do xml, uma imagem is mostrada na tela de acordo com a previsão and também são mostradas as temperaturas máxima e mínima.
async ya kibinafsi batili Consulta_previsao () {
Mteja wa Http httpcliente = mteja mpya wa Http ();
// 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"). Matokeo; resp. EnsureSuccessStatusCode (); var respbody = resp. Content. ReadAsStringAsync (); XmlDocument previsao = mpya XmlDocument ();
previsao. LoadXml (kinga ya mwili. Matokeo);
Mzizi wa XmlElement = previsao. DocumentElement;
Nambari za XmlNodeList = mizizi. GetElementsByTagName ("tempo");
prevtempo ya kamba = (nodes. Item (0). InnerText);
kamba prevtempo1 = (nodes. Bidhaa (1). InnerText); kamba prevtempo2 = (nodes. Item (2). InnerText); kamba prevtempo3 = (nodes. Imba (3). InnerText); nodes = mizizi. GetElementsByTagName ("minima"); kamba tempmin = (nodes. Imba (0). InnerText); nodes = mzizi. GetElementsByTagName ("maxima"); kamba tempmax = (nodes Item (0). InnerText);
kamba rsultado_previsao = "";
kubadili (prevtempo)
{kesi "ec": rsultado_previsao = "Chuvas_Isoladas.png"; kuvunja; kesi "ci": rsultado_previsao = "Chuvas_Isoladas.png"; kuvunja; kesi "c": rsultado_previsao = "Chuva.png"; kuvunja; kesi "katika": rsultado_previsao = "Instavel.png"; kuvunja; kesi "pp": rsultado_previsao = "Chuva.png"; kuvunja; kesi "cm": rsultado_previsao = "Chuva.png"; kuvunja; kesi "cn": rsultado_previsao = "Chuvas_Isoladas_Noite.png"; kuvunja; kesi "pt": rsultado_previsao = "Chuva.png"; kuvunja; kesi "pm": rsultado_previsao = "Chuvas_Isoladas.png"; kuvunja; kesi "np": rsultado_previsao = "Chuva.png"; kuvunja; kesi "pc": rsultado_previsao = "Chuva.png"; kuvunja; kesi "pn": rsultado_previsao = "Nublado.png"; kuvunja; kesi "cv": rsultado_previsao = "Chuva.png"; kuvunja; kesi "ch": rsultado_previsao = "Chuva.png"; kuvunja; kesi "t": rsultado_previsao = "Tempestade.png"; kuvunja; kesi "ps": rsultado_previsao = "Sol.png"; kuvunja; kesi "e": rsultado_previsao = "Sol_Encoberto.png"; kuvunja; kesi "n": rsultado_previsao = "Nublado.png"; kuvunja; kesi "cl": rsultado_previsao = "Sol.png"; kuvunja; kesi "nv": rsultado_previsao = "Nevoeiro.png"; kuvunja; kesi "g": rsultado_previsao = "Neve.png"; kuvunja; kesi "ne": rsultado_previsao = "Neve.png"; kuvunja; kesi "nd": rsultado_previsao = "na.png"; kuvunja; kesi "pnt": rsultado_previsao = "Chuvas_Isoladas_Noite.png"; kuvunja; kesi "psc": rsultado_previsao = "Chuva.png"; kuvunja; kesi "pcm": rsultado_previsao = "Chuva.png"; kuvunja; kesi "pct": rsultado_previsao = "Chuva.png"; kuvunja; kesi "pcn": rsultado_previsao = "Chuva.png"; kuvunja; kesi "npt": rsultado_previsao = "Chuva.png"; kuvunja; kesi "npn": rsultado_previsao = "Chuva.png"; kuvunja; kesi "ncn": rsultado_previsao = "Chuva.png"; kuvunja; kesi "nct": rsultado_previsao = "Chuva.png"; kuvunja; kesi "ncm": rsultado_previsao = "Chuva.png"; kuvunja; kesi "npm": rsultado_previsao = "Chuva.png"; kuvunja; kesi "npp": rsultado_previsao = "Chuva.png"; kuvunja; kesi "vn": rsultado_previsao = "Instavel.png"; kuvunja; kesi "ct": rsultado_previsao = "Chuva.png"; kuvunja; kesi "ppn": rsultado_previsao = "Chuvas_Isoladas_Noite.png"; kuvunja; kesi "ppt": rsultado_previsao = "Chuva.png"; kuvunja; kesi "ppm": rsultado_previsao = "Chuva.png"; kuvunja;
}
subiri hii. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () => {// Hii sasa inafanya kazi, kwa sababu inaendesha kwenye uzi wa UI: hii. Max_tit. Text = "Máxima"; Nakala = "Mínima"; hii. Min. Text = tempmin + "°"; hii. Max. Text = tempmax + "°"; Picha / "+ rsultado_previsao));});
}
Hatua ya 5: Programação - Exibir Notícias
Angalia sehemu yako ya habari kwa habari ya onyesho, tafadhali wasiliana na Wataalam wa Huduma ya Ushauri kwa HTTP ao feed de notices of the BBC, que também retorna um XML. Kama cinco primeiras notícias são exibidas na tela em textblocks.
async ya kibinafsi batili Consulta_noticias () {
Mteja wa Http httpcliente2 = mteja mpya wa Http ();
var resp2 = httpcliente2. GetAsync ("https://feeds.bbci.co.uk/portuguese/rss.xml"). Matokeo;
resp2. EnsureSuccessStatusCode (); var respbody2 = resp2. Content. ReadAsStringAsync (); XmlDocument noticia = mpya XmlDocument ();
noticia. LoadXml (respbody2. Result);
XmlElement root2 = noticia. DocumentElement;
Nambari za XmlNodeList2 = root2. GetElementsByTagName (@ "kichwa");
subiri hii. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () =>
{this. News1. Text = (nodes2. Imba (2). Maandiko ya Ndani); hii. Habari2. Text = (nodes2. Item (3). InnerText); hii. Habari3. Text = (nodes2 Item (4). InnerText); hii. Habari4. Text = (nodes2 Item (5). InnerText); hii. Habari5. Text = (nodes2 Item (6). InnerText);
});
}
Hatua ya 6: Hitimisho
Apt reproduzir esse instructable, será possível realizar detecção de comandos de voz utilizando alguma placa com o Windos IoT Core instalado. Basta criar o arquivo de gramática com os comandos desejados.
Autores: Egon Patrick Marques Silva
Frederico Clark
Ilipendekeza:
Mfumo wa Tahadhari ya Kuegesha Magari ya Arduino - Hatua kwa Hatua: 4 Hatua
Mfumo wa Tahadhari ya Kuegesha Magari ya Arduino | Hatua kwa Hatua: Katika mradi huu, nitatengeneza Mzunguko rahisi wa Sura ya Maegesho ya Arduino kwa kutumia Arduino UNO na Sense ya Ultrasonic ya HC-SR04. Mfumo wa tahadhari ya Gari ya Arduino ya msingi inaweza kutumika kwa Urambazaji wa Kujitegemea, Kuanzia Robot na anuwai zingine
Hatua kwa hatua Ujenzi wa PC: Hatua 9
Hatua kwa hatua Jengo la PC: Ugavi: Vifaa: MotherboardCPU & Baridi ya CPU
Mizunguko mitatu ya kipaza sauti -- Mafunzo ya hatua kwa hatua: Hatua 3
Mizunguko mitatu ya kipaza sauti || Mafunzo ya hatua kwa hatua: Mzunguko wa kipaza sauti huimarisha ishara za sauti zinazopokelewa kutoka kwa mazingira kwenda kwenye MIC na kuipeleka kwa Spika kutoka mahali ambapo sauti ya sauti imetengenezwa. Hapa, nitakuonyesha njia tatu tofauti za kutengeneza Mzunguko wa Spika kwa kutumia:
Hatua kwa hatua Elimu katika Roboti na Kit: 6 Hatua
Hatua kwa hatua Elimu katika Roboti na Kit: Baada ya miezi kadhaa ya kujenga roboti yangu mwenyewe (tafadhali rejelea hizi zote), na baada ya sehemu mbili kushindwa, niliamua kurudi nyuma na kufikiria tena mkakati na mwelekeo.Uzoefu wa miezi kadhaa wakati mwingine ulikuwa wa kufurahisha sana, na
Ufuatiliaji wa Acoustic Na Arduino Uno Hatua kwa Hatua (hatua 8): Hatua 8
Ufuatiliaji wa Acoustic Na Arduino Uno Hatua kwa hatua (hatua-8): transducers za sauti za ultrasonic L298N Dc umeme wa umeme wa adapta na pini ya kiume ya dc Arduino UNOBreadboard Jinsi hii inavyofanya kazi: Kwanza, unapakia nambari kwa Arduino Uno (ni mdhibiti mdogo aliye na dijiti na bandari za analog kubadilisha msimbo (C ++)