Indholdsfortegnelse:
- Trin 1: Hardware
- Trin 2:
- Trin 3: Programação - Detecção De Voz
- Trin 4: Programação - Exibir Previsão Do Tempo
- Trin 5: Programação - Exibir Notícias
- Trin 6: Konklusion
Video: Espelho Mágico: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
Neste instrukser kan bruges til at protokollere de oplysninger, der skal bruges til at informere om klima og notifikationer, og som kan bruges af voz.
Embora seja o projeto de um espelho, não houve como utilizar um devido a contratempos.
Trin 1: Hardware
Dragonboard 410c
Audio Mezzanine Board
Trin 2:
Til et program, der kan bruges i Visual Studio Community 2017, og et sprog#. En grænseflade, der kan bruges af editoren XAML til Visual Studio.
Trin 3: Programação - Detecção De Voz
O primeiro passo, foi trabalhar com a detecção de voz. Et sted med Mezzanine Board kan integreres med mikrofoner, der kan bruges til at detektere. Ingen Visual Studio, bruger en 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.
private async void InicializaVoz () {var idioma = new Windows. Globalization. Language ("en-US"); SpeechRecognizer -genkender = ny SpeechRecognizer (idioma); anerkender. StateChanged += RecognizerStateChanged; anerkender. ContinuousRecognitionSession. ResultGenerated += RecognizerResultGenerated; string fileName = String. Format (SRGS_FILE); StorageFile grammarContentFile = afventer Package. Current. InstalledLocation. GetFileAsync (filnavn); SpeechRecognitionGrammarFileConstraint grammarConstraint = new SpeechRecognitionGrammarFileConstraint (grammarContentFile); anerkender. Constraints. Add (grammarConstraint); SpeechRecognitionCompilationResult compilationResult = venter på igenkender. CompileConstraintsAsync (); if (compilationResult. Status == SpeechRecognitionResultStatus. Success) {Debug. WriteLine ("Resultat:" + compilationResult. ToString ()); venter på genkender. ContinuousRecognitionSession. StartAsync (); } ellers {Debug. WriteLine ("Status:" + compilationResult. Status); }}
Ændrer os gerne om rekonstruktion eller genkendelse af resultaterGenereret recebe kan bruges for at fortolke og sammenligne det med vores kommandoer, og vi kan konfigurere dem om arquivo xml, der kan bruges til at indsætte en løsning.
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;
// Kontroller, om der er forskellige tags, og initialiser variablerne
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 enhed brugeren henviser til
if (cmd. Equals ("vis"))
{
if (device. Equals ("prognose")) {Consulta_previsao (); } ellers hvis (device. Equals ("nyheder")) {Consulta_noticias (); } andet {//Debug. WriteLine("Ukendt enhed "); }
} ellers if (cmd. Equals ("skjul"))
{
if (device. Equals ("forecast")) {//Tempo. Text = ""; afvente this. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () => {// Dette fungerer nu, fordi det kø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 ("nyheder")) {afventer this. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () => {// Dette fungerer nu, fordi det kører på UI -tråden: dette. News1. Text = ""; this. News2. Text = ""; this. News3. Text = ""; this. News4. Text = ""; this. News5. Text = "";}); } andet {// Debug. WriteLine ("Ukendt enhed"); }} andet {//Debug. WriteLine("Ukendt kommando "); }
}
Trin 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. Hvis du vil se xml, kan du forestille dig, at temperaturen kan bruges som en temperatur og en temperatur, der maksimalt kan ændres.
privat asynk 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 = nyt 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 = "";
switch (forrige tempo)
{case "ec": rsultado_previsao = "Chuvas_Isoladas.png"; pause; case "ci": rsultado_previsao = "Chuvas_Isoladas.png"; pause; case "c": rsultado_previsao = "Chuva.png"; pause; case "in": rsultado_previsao = "Instavel.png"; pause; case "pp": rsultado_previsao = "Chuva.png"; pause; case "cm": rsultado_previsao = "Chuva.png"; pause; case "cn": rsultado_previsao = "Chuvas_Isoladas_Noite.png"; pause; case "pt": rsultado_previsao = "Chuva.png"; pause; case "pm": rsultado_previsao = "Chuvas_Isoladas.png"; pause; case "np": rsultado_previsao = "Chuva.png"; pause; case "pc": rsultado_previsao = "Chuva.png"; pause; case "pn": rsultado_previsao = "Nublado.png"; pause; case "cv": rsultado_previsao = "Chuva.png"; pause; case "ch": rsultado_previsao = "Chuva.png"; pause; case "t": rsultado_previsao = "Tempestade.png"; pause; case "ps": rsultado_previsao = "Sol.png"; pause; case "e": rsultado_previsao = "Sol_Encoberto.png"; pause; case "n": rsultado_previsao = "Nublado.png"; pause; case "cl": rsultado_previsao = "Sol.png"; pause; case "nv": rsultado_previsao = "Nevoeiro.png"; pause; case "g": rsultado_previsao = "Neve.png"; pause; case "ne": rsultado_previsao = "Neve.png"; pause; case "nd": rsultado_previsao = "na.png"; pause; case "pnt": rsultado_previsao = "Chuvas_Isoladas_Noite.png"; pause; case "psc": rsultado_previsao = "Chuva.png"; pause; case "pcm": rsultado_previsao = "Chuva.png"; pause; case "pct": rsultado_previsao = "Chuva.png"; pause; case "pcn": rsultado_previsao = "Chuva.png"; pause; case "npt": rsultado_previsao = "Chuva.png"; pause; case "npn": rsultado_previsao = "Chuva.png"; pause; case "ncn": rsultado_previsao = "Chuva.png"; pause; case "nct": rsultado_previsao = "Chuva.png"; pause; case "ncm": rsultado_previsao = "Chuva.png"; pause; case "npm": rsultado_previsao = "Chuva.png"; pause; case "npp": rsultado_previsao = "Chuva.png"; pause; case "vn": rsultado_previsao = "Instavel.png"; pause; case "ct": rsultado_previsao = "Chuva.png"; pause; case "ppn": rsultado_previsao = "Chuvas_Isoladas_Noite.png"; pause; case "ppt": rsultado_previsao = "Chuva.png"; pause; case "ppm": rsultado_previsao = "Chuva.png"; pause;
}
afvente this. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () => {// Dette fungerer nu, fordi det kø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: /// Billeder/" + rsultado_previsao));});
}
Trin 5: Programação - Exibir Notícias
Se en række opdagelser til shownyheder, eller se konsultation og registrering af HTTP og feed -notifikationer fra BBC, som også kan bruges til XML. Som cinco primeiras notícias são exibidas na tela em textblocks.
private async void Consulta_noticias () {
HttpClient httpcliente2 = ny HttpClient ();
var resp2 = httpcliente2. GetAsync ("https://feeds.bbci.co.uk/portuguese/rss.xml"). Resultat;
resp2. EnsureSuccessStatusCode (); var respbody2 = resp2. Content. ReadAsStringAsync (); XmlDocument noticia = nyt XmlDocument ();
noticia. LoadXml (respbody2. Result);
XmlElement root2 = noticia. DocumentElement;
XmlNodeList nodes2 = root2. GetElementsByTagName (@"titel");
afvente this. 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);
});
}
Trin 6: Konklusion
Ao reproduzir esse instructables, será possível realizar detecção de comandos de voz utilizando alguma placa com with Windos IoT Core installation. Basta criar o arquivo de gramática com os comandos desejados.
Forfattere: Egon Patrick Marques Silva
Frederico Clark
Anbefalede:
Arduino bil omvendt parkering alarmsystem - Trin for trin: 4 trin
Arduino bil omvendt parkering alarmsystem. Trin for trin: I dette projekt vil jeg designe en simpel Arduino bil omvendt parkeringssensorkreds ved hjælp af Arduino UNO og HC-SR04 ultralydssensor. Dette Arduino -baserede bilomvendt alarmsystem kan bruges til en autonom navigation, robotafstand og andre rækkevidde
Trin for trin pc -bygning: 9 trin
Trin for trin PC Building: Supplies: Hardware: MotherboardCPU & CPU -køler PSU (strømforsyningsenhed) Opbevaring (HDD/SSD) RAMGPU (ikke påkrævet) CaseTools: Skruetrækker ESD -armbånd/mathermal pasta m/applikator
Tre højttalerkredsløb -- Trin-for-trin vejledning: 3 trin
Tre højttalerkredsløb || Trin-for-trin vejledning: Højttalerkredsløb styrker lydsignalerne, der modtages fra miljøet til MIC og sender det til højttaleren, hvorfra forstærket lyd produceres. Her vil jeg vise dig tre forskellige måder at lave dette højttalerkredsløb på:
Trin-for-trin uddannelse i robotik med et sæt: 6 trin
Trin-for-trin uddannelse i robotteknologi med et kit: Efter ganske få måneder med at bygge min egen robot (se alle disse), og efter at jeg to gange havde dele mislykkedes, besluttede jeg at tage et skridt tilbage og tænke min strategi og retning. De flere måneders erfaring var til tider meget givende, og
Akustisk levitation med Arduino Uno trin for trin (8 trin): 8 trin
Akustisk levitation med Arduino Uno Step-by Step (8-trin): ultralyds lydtransducere L298N Dc kvindelig adapter strømforsyning med en han-DC-pin Arduino UNOBreadboard Sådan fungerer det: Først uploader du kode til Arduino Uno (det er en mikrokontroller udstyret med digital og analoge porte til konvertering af kode (C ++)