Բովանդակություն:
- Քայլ 1: Սարքավորումներ
- Քայլ 2:
- Քայլ 3. Programação - Detecção De Voz
- Քայլ 4: Programação - Exibir Previsão Do Tempo
- Քայլ 5: Programação - Exibir Notícias
- Քայլ 6: Եզրակացություն
Video: Espelho Mágico: 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:51
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
Աուդիո միջնահարկ տախտակ
Քայլ 2:
Visual Studio Community 2017 – ի և լեզվական լեզվի օգտագործման համար օգտագործվող ծրագրերի օգտագործման համար: Ինտերֆեյս, որն օգնում է օգտագործել XAML- ը Visual Studio- ի խմբագրիչի համար:
Քայլ 3. Programação - Detecção De Voz
O Primeiro passo, foi trabalhar com a detecção de voz: Ձայնային միջահարկային տախտակ կարող եք օգտագործել միկրոֆոնների ինտեգրադ, որոնք օգտագործվում են հայտնաբերման համար: Առանց Visual Studio- ի, օգտագործեք biblioteca Windows. Media. SpeechRecognition- ի ապակոդավորման համար:
Foi utilizado o método encontrado aqui para a inicialização da detecção de voz, que is the mostrado também abaixo:
private async void InicializaVoz () {var idioma = new Windows. Globalization. Language ("en-US"); SpeechRecognizer ճանաչող = նոր SpeechRecognizer (իդիոմա); ճանաչող. StateChanged += RecognizerStateChanged; ճանաչող. ԿոնտինարՌեկոգնիոնՍեսիան. ՌեսուլտԳեներացվել += RecognizerResultGenerated; string fileName = String. Format (SRGS_FILE); StorageFile grammarContentFile = սպասել Package. Current. InstalledLocation. GetFileAsync (ֆայլի անուն); SpeechRecognitionGrammarFileConstraint grammarConstraint = նոր SpeechRecognitionGrammarFileConstraint (grammarContentFile); ճանաչող. Սահմանափակումներ: Ավելացնել (grammarConstraint); SpeechRecognitionCompilationResult compilationResult = սպասել ճանաչողին. CompileConstraintsAsync (); եթե (compilationResult. Status == SpeechRecognitionResultStatus. Success) {Debug. WriteLine ("Արդյունք." + compilationResult. ToString ()); սպասել ճանաչողին. ԿոնտինարՌեկոգնիոնՍեսիան. ՍթարթԱսինքս (); } else {Debug. WriteLine ("Կարգավիճակ." + compilationResult. Status); }}
Օգտագործելով Reconhecimento, կամ մեթոդը RecognizerResultGenerated recebe os comandos que foram interpretados e compara com os comandos com os que que estão configurados em um arquivo xml que foi criado e inserido na solução.
Como não foi possível inserir o idioma português, os comandos utilisados foram show (mostrar) e hide (esconder) e o que deve ser mostrado կանխատեսում (կանխատեսում) և նորություններ (տեղեկություններ):
private async void RecognizerResultGenerated (SpeechContinuousRecognitionSession session, SpeechContinuousRecognitionResultGeneratedEventArgs args) {
int count = args. Result. SemanticInterpretation. Properties. Count;
// Ստուգեք տարբեր պիտակների առկայությունը և նախաստորագրեք փոփոխականները
Լարային թիրախ = args. Result. SemanticInterpretation. Properties. ContainsKey («թիրախ»): args. Result. SemanticInterpretation. Pro Properties ["target"] [0]. ToString (): "";
String cmd = args. Result. SemanticInterpretation. Properties. ContainsKey («cmd»):
args. Result. SemanticInterpretation. Pro Properties ["cmd"] [0]. ToString (): "";
Լարային սարք = args. Result. SemanticInterpretation. Properties. ContainsKey («սարք»):
args. Result. SemanticInterpretation. Pro Properties ["device"] [0]. ToString (): "";
// Նախ ստուգեք, թե որ սարքին է վերաբերում օգտվողը
եթե (սմ. հավասարումներ («ցույց տալ»))
{
if (device. Equals («կանխատեսում»)) {Consulta_previsao (); } else if (device. Equals («նորություններ»)) {Consulta_noticias (); } else {//Debug. WriteLine(" Անհայտ սարք "); }
} else if (cmd. Equals («թաքցնել»))
{
if (device. Equals («կանխատեսում»)) {//Tempo. Text = ""; սպասեք սա: = ""; this. Min. Text = ""; this. Max. Text = ""; this. Img_Tempo. Source = new BitmapImage (նոր Uri ("ms-appx: ///Images/blank.png"));
});
}
else if (device. Equals («նորություններ»)) {սպասեք սա. Dispatcher. RunAsync (Windows. UI. Core. CoreDispatcherPriority. High, () => {// Սա այժմ աշխատում է, քանի որ այն աշխատում է UI թելում. սա. News1. Text = ""; this. News2. Text = ""; this. News3. Text = ""; this. News4. Text = ""; this. News5. Text = "";}); } else {// Debug. WriteLine («Անհայտ սարք»); }} else {//Debug. WriteLine(" Անհայտ հրաման "); }
}
Քայլ 4: Programação - Exibir Previsão Do Tempo
Oուցադրման կանխատեսման համար անհրաժեշտ է պարզել, թե ինչպես է անհրաժեշտ Consulta_previsao- ն պահանջել HTTP կամ CPTEC կայքէջը կատարել INPE, որը պահանջում է արագություն xml- ում: Após 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.
մասնավոր async void Consulta_previsao () {
HttpClient httpcliente = նոր 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 = նոր XmlDocument ();
previsao. LoadXml (respbody. Result);
XmlElement արմատ = previsao. DocumentElement;
XmlNodeList հանգույցներ = root. GetElementsByTagName («տեմպ»);
string prevtempo = (հանգույցներ. Նյութ (0). InnerText);
string prevtempo1 = (հանգույցներ. Նյութ (1). InnerText); string prevtempo2 = (հանգույցներ. Նյութ (2). InnerText); string prevtempo3 = (հանգույցներ. Նյութ (3). InnerText); հանգույցներ = root. GetElementsByTagName («նվազագույն»); string tempmin = (հանգույցներ. Նյութ (0). InnerText); հանգույցներ = root. GetElementsByTagName ("առավելագույնը"); string tempmax = (հանգույցներ. Նյութ (0). InnerText);
տող rsultado_previsao = "";
անջատիչ (նախապես)
{case "ec": rsultado_previsao = "Chuvas_Isoladas.png"; ընդմիջում; գործ "ci": rsultado_previsao = "Chuvas_Isoladas.png"; ընդմիջում; գործ "c": rsultado_previsao = "Chuva.png"; ընդմիջում; գործ "in": 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"; ընդմիջում; գործ "հատ": 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"; ընդմիջում;
}
սպասեք սա: Text = "Mínima"; this. Min. Text = tempmin + "°"; this. Max. Text = tempmax + "°"; this. Img_Tempo. Source = new BitmapImage (new Uri ("ms-appx: /// Պատկերներ/" + rsultado_previsao));}};
}
Քայլ 5: Programação - Exibir Notícias
Հաղորդագրություններ կատարեք շոուի նորությունների համար, կամ օգտագործեք Consulta_noticias Envia uma- ն, որը պահանջում է HTTP- ի կամ BBC- ի տեղեկությունների հոսք, ինչպես նաև XML- ի հետադարձ կապ: As cinco Primeiras notícias são exibidas na tela em textblocks.
private async void Consulta_noticias () {
HttpClient httpcliente2 = նոր HttpClient ();
var resp2 = httpcliente2. GetAsync ("https://feeds.bbci.co.uk/portuguese/rss.xml"). Արդյունք;
resp2. EnsureSuccessStatusCode (); var respbody2 = resp2. Content. ReadAsStringAsync (); XmlDocument noticia = նոր XmlDocument ();
noticia. LoadXml (respbody2. Result);
XmlElement root2 = noticia. DocumentElement;
XmlNodeList nodes2 = root2. GetElementsByTagName (@"title");
սպասել այս. 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);
});
}
Քայլ 6: Եզրակացություն
Կրկնվող հրահանգները կարող են օգտագործվել, քանի որ հնարավոր է, որ դրանք հայտնաբերվեն, երբ դրանք օգտագործվում են ՝ օգտագործելով Windos IoT Core- ի տեղադրումը: Basta criar o arquivo de gramática com os comandos desejados.
Հեղինակներ ՝ Էգոն Պատրիկ Մարկես Սիլվա
Ֆրեդերիկո Կլարկ
Խորհուրդ ենք տալիս:
Arduino մեքենայի հետադարձ կայանման ահազանգման համակարգ - Քայլ առ քայլ: 4 քայլ
Arduino մեքենայի հետադարձ կայանման ահազանգման համակարգ | Քայլ առ քայլ. Այս նախագծում ես նախագծելու եմ մի պարզ Arduino մեքենայի հետադարձ կայանման սենսորային միացում ՝ օգտագործելով Arduino UNO և HC-SR04 ուլտրաձայնային տվիչ: Այս Arduino- ի վրա հիմնված Car Reverse ազդանշանային համակարգը կարող է օգտագործվել ինքնավար նավարկության, ռոբոտների ռանգի և այլ տեսականու համար
Քայլ առ քայլ համակարգչային շենք. 9 քայլ
Քայլ առ քայլ համակարգչի կառուցում. Պարագաներ. Սարքավորումներ. Մայրական համակարգիչ CPU coolerPSU (Էներգամատակարարման միավոր) Պահեստավորում (HDD/SSD) RAMGPU (պարտադիր չէ) Գործ CaseTools: Պտուտակահան ESD ապարանջան/matsthermal paste w/aplikator
Երեք բարձրախոս շղթա -- Քայլ առ քայլ ձեռնարկ ՝ 3 քայլ
Երեք բարձրախոս շղթա || Քայլ առ քայլ ձեռնարկ. Բարձրախոսների սխեման ուժեղացնում է շրջակա միջավայրից ստացված աուդիո ազդանշանները MIC- ում և այն ուղարկում է խոսնակին, որտեղից արտադրվում է ուժեղացված ձայնը:
Քայլ առ քայլ կրթություն ռոբոտաշինության մեջ `հանդերձանքով. 6 քայլ
Քայլ առ քայլ կրթություն ռոբոտաշինության մեջ ՝ հանդերձանքով. Իմ սեփական ռոբոտը կառուցելուց մի քանի ամիս անց (խնդրում եմ անդրադառնալ այս բոլորին), և երկու անգամ մասերի խափանումից հետո, ես որոշեցի մի քայլ հետ գնալ և նորից մտածել իմ մասին ռազմավարություն և ուղղություն: Մի քանի ամսվա փորձը երբեմն շատ հատուցող էր, և
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ) `8 քայլ
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ). Ուլտրաձայնային ձայնային փոխարկիչներ L298N Dc կանացի ադապտեր էներգիայի մատակարարում արական dc pin Arduino UNOBreadboard և անալոգային նավահանգիստներ ՝ կոդը փոխարկելու համար (C ++)