Obsah:
- Krok 1: Hardvér
- Krok 2:
- Krok 3: Programação - Detecção De Voz
- Krok 4: Programação - Exibir Previsão Do Tempo
- Krok 5: Programação - Exibir Notícias
- Krok 6: Conclusão
Video: Espelho Mágico: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 12:00
Neste Instructables mostramos como criar um protótipo de um espelho inteligente que projeta informações de clima e notícias, use comandos de voz.
Embora seja o projeto de um espelho, não houve como utilizar um devido a contratempos.
Krok 1: Hardvér
Dragonboard 410c
Zvuková medziposchodie
Krok 2:
Sú to programy, ktoré môžete použiť v programe Visual Studio Community 2017, alebo jazykovej verzii c#. Rozhranie, ktoré môže používať editor XAML do Visual Studio.
Krok 3: Programação - Detecção De Voz
O hlavnom meste, ktoré sa týka pohybu a detekcie voza. Zvukové mezanínové dosky, ktoré mám, sú vybavené všetkými mikrofónmi, ktoré môžu používať alebo používať rôzne typy detektorov. Nie Visual Studio, používa Windows biblioteca. Media. SpeechRecognition pre dekodér a voz.
Využite viac ako jednu metódu na spustenie a inicializáciu vozidla, zistite, či je tam väčšina abecedy.
private async void InicializaVoz () {var idioma = new Windows. Globalization. Language ("en-US"); Rozpoznávač SpeechRecognizer = nový SpeechRecognizer (idioma); rozpoznávač. StateChanged += RecognizerStateChanged; rozpoznávač. ContinuousRecognitionSession. ResultGenerated += RecognizerResultGenerated; reťazec názov_súboru = String. Format (SRGS_FILE); StorageFile grammarContentFile = čakajte na Package. Current. InstalledLocation. GetFileAsync (názov súboru); SpeechRecognitionGrammarFileConstraint grammarConstraint = nový SpeechRecognitionGrammarFileConstraint (grammarContentFile); rozpoznávač. Constraints. Add (grammarConstraint); SpeechRecognitionCompilationResult compilationResult = čakajte na rozpoznávač. CompileConstraintsAsync (); if (compilationResult. Status == SpeechRecognitionResultStatus. Success) {Debug. WriteLine ("Výsledok:" + compilationResult. ToString ()); čakať na rozpoznávač. ContinuousRecognitionSession. StartAsync (); } else {Debug. WriteLine ("Status:" + compilationResult. Status); }}
Začíname s reintegráciou, alebo ďalším RecognizerResultGenerated recebe os comandos que foram interpretados e compara com os comandos com os que estão configurados em um arquivo xml que foi criado e inserido on solução.
Možné sú rôzne druhy portfólií, ktoré môžu zahŕňať všetky možné ukážky (väčšina) skrytia (pozadia) a vývoj najnovšej prognózy (predchádzajúca) novinka (notícia).
súkromná asynchrónna neplatnosť RecognizerResultGenerated (relácia SpeechContinuousRecognitionSession, argumenty SpeechContinuousRecognitionResultGeneratedEventArgs) {
počet int = args. Result. SemanticInterpretation. Properties. Count;
// Vyhľadajte rôzne značky a inicializujte premenné
Reťazcový cieľ = args. Result. SemanticInterpretation. Properties. ContainsKey („cieľ“)? args. Result. SemanticInterpretation. Properties ["target"] [0]. ToString (): "";
Reťazec cmd = args. Result. SemanticInterpretation. Properties. ContainsKey ("cmd")?
args. Result. SemanticInterpretation. Properties ["cmd"] [0]. ToString (): "";
Reťazcové zariadenie = args. Result. SemanticInterpretation. Properties. ContainsKey („zariadenie“)?
args. Result. SemanticInterpretation. Properties ["zariadenie"] [0]. ToString (): "";
// Najprv skontrolujte, na ktoré zariadenie sa používateľ odvoláva
if (cmd. Equals ("show"))
{
if (device. Equals ("prognóza")) {Consulta_previsao (); } else if (device. Equals ("news")) {Consulta_noticias (); } else {//Debug. WriteLine("Neznáme zariadenie "); }
} else if (cmd. Equals ("skryť"))
{
if (device. Equals ("prognóza")) {//Tempo. Text = ""; čakajte toto. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () => {// Teraz to funguje, pretože beží na vlákne používateľského rozhrania: 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")) {await this. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () => {// Toto už funguje, pretože beží na vlákne používateľského rozhrania: toto. News1. Text = ""; this. News2. Text = ""; this. News3. Text = ""; this. News4. Text = ""; this. News5. Text = "";}); } else {// Debug. WriteLine ("Neznáme zariadenie"); }} else {//Debug. WriteLine("Neznámy príkaz "); }
}
Krok 4: Programação - Exibir Previsão Do Tempo
Môžete vyhľadávať prognózy prehliadok, alebo svoje Consulta_previsao envia uma requisição HTTP ao site CPTEC do INPE, que retorna and previsão do tempo em um arquivo xml. Apotuje a leitura do xml, uma imagem é mostrada na tela de acordo com a previsão e também são mostradas as temperaturas máxima e mínima.
súkromná asynchrónna neplatnosť Consulta_previsao () {
HttpClient httpcliente = nový 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"). Výsledok; resp. EnsureSuccessStatusCode (); var respbody = resp. Content. ReadAsStringAsync (); XmlDocument previsao = nový XmlDocument ();
previsao. LoadXml (respbody. Výsledok);
XmlElement root = previsao. DocumentElement;
Uzly XmlNodeList = root. GetElementsByTagName ("tempo");
reťazec prevtempo = (uzly. Item (0). InnerText);
reťazec prevtempo1 = (uzly. Item (1). InnerText); reťazec prevtempo2 = (uzly. Item (2). InnerText); reťazec prevtempo3 = (uzly. Item (3). InnerText); uzly = root. GetElementsByTagName ("minima"); reťazec tempmin = (uzly. Item (0). InnerText); uzly = root. GetElementsByTagName ("maxima"); reťazec tempmax = (uzly. Item (0). InnerText);
reťazec rsultado_previsao = "";
prepínač (predchádzajúca teplota)
{case "ec": rsultado_previsao = "Chuvas_Isoladas.png"; prestávka; prípad "ci": rsultado_previsao = "Chuvas_Isoladas.png"; prestávka; prípad "c": rsultado_previsao = "Chuva.png"; prestávka; prípad "in": rsultado_previsao = "Instavel.png"; prestávka; prípad "pp": rsultado_previsao = "Chuva.png"; prestávka; prípad "cm": rsultado_previsao = "Chuva.png"; prestávka; prípad "cn": rsultado_previsao = "Chuvas_Isoladas_Noite.png"; prestávka; prípad "pt": rsultado_previsao = "Chuva.png"; prestávka; prípad "pm": rsultado_previsao = "Chuvas_Isoladas.png"; prestávka; prípad "np": rsultado_previsao = "Chuva.png"; prestávka; prípad "pc": rsultado_previsao = "Chuva.png"; prestávka; prípad "pn": rsultado_previsao = "Nublado.png"; prestávka; prípad "cv": rsultado_previsao = "Chuva.png"; prestávka; prípad "ch": rsultado_previsao = "Chuva.png"; prestávka; prípad "t": rsultado_previsao = "Tempestade.png"; prestávka; prípad "ps": rsultado_previsao = "Sol.png"; prestávka; prípad "e": rsultado_previsao = "Sol_Encoberto.png"; prestávka; prípad "n": rsultado_previsao = "Nublado.png"; prestávka; prípad "cl": rsultado_previsao = "Sol.png"; prestávka; prípad "nv": rsultado_previsao = "Nevoeiro.png"; prestávka; prípad "g": rsultado_previsao = "Neve.png"; prestávka; prípad "ne": rsultado_previsao = "Neve.png"; prestávka; prípad "nd": rsultado_previsao = "na.png"; prestávka; prípad "pnt": rsultado_previsao = "Chuvas_Isoladas_Noite.png"; prestávka; prípad "psc": rsultado_previsao = "Chuva.png"; prestávka; prípad "pcm": rsultado_previsao = "Chuva.png"; prestávka; prípad "pct": rsultado_previsao = "Chuva.png"; prestávka; prípad "pcn": rsultado_previsao = "Chuva.png"; prestávka; prípad "npt": rsultado_previsao = "Chuva.png"; prestávka; prípad "npn": rsultado_previsao = "Chuva.png"; prestávka; prípad "ncn": rsultado_previsao = "Chuva.png"; prestávka; prípad "nct": rsultado_previsao = "Chuva.png"; prestávka; prípad "ncm": rsultado_previsao = "Chuva.png"; prestávka; prípad "npm": rsultado_previsao = "Chuva.png"; prestávka; prípad "npp": rsultado_previsao = "Chuva.png"; prestávka; prípad "vn": rsultado_previsao = "Instavel.png"; prestávka; prípad "ct": rsultado_previsao = "Chuva.png"; prestávka; prípad "ppn": rsultado_previsao = "Chuvas_Isoladas_Noite.png"; prestávka; prípad "ppt": rsultado_previsao = "Chuva.png"; prestávka; prípad "ppm": rsultado_previsao = "Chuva.png"; prestávka;
}
čakajte toto. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () => {// Teraz to funguje, pretože beží na vlákne používateľského rozhrania: 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: /// Obrázky/" + rsultado_previsao));});
}
Krok 5: Programação - Exibir Notícias
Môžete vyhľadávať spravodajské relácie, alebo konzultovať s inými užívateľmi, ako sú napríklad HTTP, alebo odosielať správy z BBC, kde môžete načítať XML. Vzhľadom na to, že niektoré hlavné poznámky môžu obsahovať textové bloky.
súkromná asynchrónna neplatnosť Consulta_noticias () {
HttpClient httpcliente2 = nový HttpClient ();
var resp2 = httpcliente2. GetAsync ("https://feeds.bbci.co.uk/portuguese/rss.xml"). Výsledok;
resp2. EnsureSuccessStatusCode (); var respbody2 = resp2. Content. ReadAsStringAsync (); XmlDocument noticia = nový XmlDocument ();
noticia. LoadXml (respbody2. Výsledok);
XmlElement root2 = noticia. DocumentElement;
XmlNodeList nodes2 = root2. GetElementsByTagName (@"title");
čakajte na to. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () =>
{this. News1. Text = (uzly2. Item (2). InnerText); this. News2. Text = (nodes2. Item (3). InnerText); this. News3. Text = (nodes2. Item (4). InnerText); this. News4. Text = (uzly2. Item (5). InnerText); this. News5. Text = (uzly2. Item (6). InnerText);
});
}
Krok 6: Conclusão
Ao reproduzir esé inštrukcie, ktoré môžu mať jednu z možných detekcií comandos z vozového parku využiť alguma placa com o Windos IoT Core instalado. Basta criar o arquivo de gramática com os comandos desejados.
Autor: Egon Patrick Marques Silva
Frederico Clark
Odporúča:
Počítadlo krokov - mikro: bit: 12 krokov (s obrázkami)
Počítadlo krokov - mikro: bit: Tento projekt bude počítadlom krokov. Na meranie našich krokov použijeme senzor akcelerometra, ktorý je vstavaný v Micro: Bit. Zakaždým, keď sa Micro: Bit zatrasie, pridáme k počtu 2 a zobrazíme ho na obrazovke
Akustická levitácia s Arduino Uno krok za krokom (8 krokov): 8 krokov
Akustická levitácia s Arduino Uno krok za krokom (8 krokov): Ultrazvukové meniče zvuku L298N Dc napájací adaptér ženského adaptéra s mužským DC kolíkom Arduino UNOBreadboard Ako to funguje: Najprv nahráte kód do Arduino Uno (je to mikrokontrolér vybavený digitálnym a analógové porty na prevod kódu (C ++)
Bolt - Nočné hodiny pre bezdrôtové nabíjanie DIY (6 krokov): 6 krokov (s obrázkami)
Bolt - Nočné hodiny bezdrôtového nabíjania DIY (6 krokov): Indukčné nabíjanie (tiež známe ako bezdrôtové nabíjanie alebo bezdrôtové nabíjanie) je typ bezdrôtového prenosu energie. Na prenos elektriny do prenosných zariadení používa elektromagnetickú indukciu. Najbežnejšou aplikáciou je bezdrôtové nabíjanie Qi
Ako rozobrať počítač pomocou jednoduchých krokov a fotografií: 13 krokov (s obrázkami)
Ako rozobrať počítač jednoduchými krokmi a obrázkami: Toto je návod, ako rozobrať počítač. Väčšina základných komponentov je modulárna a dá sa ľahko odstrániť. Je však dôležité, aby ste o tom boli organizovaní. Pomôže to zabrániť strate súčiastok a tiež pri opätovnej montáži
Od Roomby k Roveru iba 5 krokov!: 5 krokov
Od Roomby po Rover za pouhých 5 krokov !: Roboti Roomba sú zábavným a jednoduchým spôsobom, ako ponoriť prsty do nohy vo svete robotiky. V tomto návode podrobne popíšeme, ako previesť jednoduchú Roombu na ovládateľný rover, ktorý súčasne analyzuje svoje okolie. Zoznam dielov 1.) MATLAB2.) Roomb