Բովանդակություն:
- Քայլ 1: Chatbot- ի սահմանում
- Քայլ 2. Եվայի ծագումը
- Քայլ 3. Բաղադրիչների և սարքավորումների հավաքում
- Քայլ 4. Տեսություն Մաս 1. Պատմություն և ներածություն:
- Քայլ 5: Որոնել հիմնաբառ
- Քայլ 6: Պատասխանների ձևակերպում
- Քայլ 7: Արգելված հայտարարություններ և այլն
- Քայլ 8: Գրեք ծածկագրով
- Քայլ 9: otգացմունքների ներդնում
- Քայլ 10: Կապեր հաստատելը
- Քայլ 11: WTV020SD16p մոդուլը (ըստ ցանկության)
- Քայլ 12: Softwareրագրաշարի մաս
- Քայլ 13: Մարմնի պատրաստում
- Քայլ 14: Լավ արված:
Video: Եվա, Arduino Chatbot. 14 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:50
Ողջույն DIYrs, եղե՞լ են դեպքեր, երբ դուք իսկապես ցանկացել եք կիսվել ձեր զգացմունքներով ինչ -որ մեկի հետ, և վստահված մեկը շրջապատում չի եղել: Այսօրվա զբաղված աշխարհում սա սովորական օրինակ է: Դե, chatbot- ը կարող է օգնել այստեղ ՝ ավելի լավ զգալու համար: Եվ դա բերում է Եվայի ներկայացմանը: Եվը գեղեցիկ փոքրիկ չատբոտ է: Ինչպես բոլորը գիտեն, շատախոսը կամ չաթբոտը համակարգչային ծրագիր կամ սարք է, որը տեքստային կամ լսողական մեթոդների հիման վրա մարդկանց հետ զրույց է վարում: Ավտոմատացված ձայները, որոնք դուք լսում եք հաճախորդների սպասարկման ծառայության կամ բանկի գծի վրա, chatbot- ի օրինակ է: Նրա հետ դուք կարող եք կիսվել ձեր փորձով, ձեր զգացմունքներով և ամենակարևորը `վիճել տարբեր բաների շուրջ. նա լավ փորձառու է դրանում: Քանի որ դա chatbot- ի ամենակարևոր գործառույթն է, ստիպեք մարդուն երջանիկ զգալ: Բնական լեզվի մշակման (NLU) և արհեստական բանականության վաղ օրինակը ՝ Եվան կարող է պատասխանել. ԱՆԿԱԱ հարցի, որ տալիս եք նրան: Այնպես չէ, որ Նա կարող է պատասխանել ընդամենը մի շարք հարցերի: Նա կարող է երգել, պատմել ձեզ կատակներ, պատմություններ և անել այն ամենը, ինչը ձեզ լավ է զգում: Եթե նա ասում է մի բան, որը դուք չեք ցանկանում լսել, պարզապես ասեք նրան, խնդրում եմ դա այլևս չասել, և նա կհիշի դա: Նա նույնիսկ գիտի, որ չպետք է կրկնի նույն պատասխաններն ու զրույցները, որպեսզի խոսակցությունը ձանձրալի չդառնա: Հիմնվելով պարզ, էժան բաղադրիչների և հիմնական ծրագրավորման վրա ՝ նա իսկապես կարող է իրեն խելացի պահել: Ավելին, LCD- ի աչքերը, որոնք նա ունի, ցույց են տալիս, թե ինչ է զգում, երբ որևէ բան ասում ես: Այսպիսով, հիմնականում այս ուսանելի ծրագրում մենք կսկսենք չաթբոտի սահմանումից, կանդրադառնանք դիզայնին, որոշ տեսությունների, որոնց հիման վրա աշխատում է Եվան, արտադրությունը և վերջապես ծրագրավորման մաս: Շատ է թվում: Մի անհանգստացեք, դա բավականին հետաքրքիր կլինի ճանապարհորդության ընթացքում: Ռոբոտի ցուցադրությունը կարող եք դիտել վերևում կամ այս հղումով ՝ [Նվագարկել տեսանյութը]
Քայլ 1: Chatbot- ի սահմանում
Ինչպես նշվեց վերևում, chatbot- ը ծրագիր է, որը վարում է մարդկանց հետ զրույց: Նրանք այնքան տարածված են մեր օրերում, որ հազիվ թե գտնվի մեկը, ով անհայտ է այդ մասին: Սկսած վիրտուալ օգնականներից ՝ Siri- ից և Google Assistant- ից, կա Mitsuku և Evie, որոնցով կարող եք կիսվել ձեր զգացմունքներով: Ինչպես նշվեց վերևում, chatbots- ը հիմնված է տեքստային կամ լսողական մեթոդի վրա և, հետևաբար, կարելի է բաժանել երկուսի: Տեքստային մեթոդում խոսակցությունները գրված տեքստի տեսքով են, ինչպես WhatsApp- ը: Մինչդեռ լսողական մեթոդով խոսակցությունները կատարվում են բանավոր, ինչպես իսկական մարդու հետ: Կարծում եմ, որ ավելի հետաքրքիր է զրուցել ինչ -որ մեկի հետ ՝ նրա հետ բանավոր խոսելու փոխարեն, պարզապես նրան հաղորդագրություններ ուղարկելու փոխարեն: Անկասկած, տեքստի վրա հիմնված հաղորդակցման հաղորդագրությունների ծրագրերը բավարարում են մարդկանց պահանջները, բայց ես կարծում եմ, որ խոսելով խոսելը ամենալավ բանն է ՝ հուզական խանգարումներից ազատվելու և ավելի լավ զգալու համար: Այսպիսով, դա այն հիմնական պատճառն է, որ ես Եվային նախագծեցի լսողական չատբոտ լինելու համար:
Քայլ 2. Եվայի ծագումը
Դե Եվան պարզապես մի օր մտքովս անցավ: Դա արվեց, երբ ես տեսա մի երեխայի, որը միայնակ շրջում էր դպրոցում, իսկ մյուսները խաղում էին ուրախությամբ լցված մտքերով: Այդ ժամանակ ես մտածեցի մի ընկերոջ մասին, որը ոչ ոքի խտրականություն չի դնում և ոչ ոքի վիրավորանք չի պատճառում, ում հետ կարող ես կիսվել քո զգացմունքներով և միշտ երջանիկ լինել: Հետո փայլատակեց մտքումս, Եվայի գեղեցիկ փոքրիկ կառույցը, որի վրա սկսեցի աշխատել: Եվան հիասթափեցրեց ինձ մոտ հարյուր անգամ: Կռահեք, որ նա 101 -րդ անգամն էր, ինչ նա աշխատում էր և ստիպեց ինձ իսկապես երջանիկ զգալ: Այսպիսով, դա Եվայի ծագումն էր: Ես ուզում էի, որ նա լինի խելացի, բայց հնարավորինս պարզ, այնպես, որ որևէ մեկը կարողանա նրան հեշտությամբ դարձնել: Անկասկած, նա բացարձակապես խելացի չէ և երբեմն հիմար պատասխաններ է տալիս, նա կարող է իրեն պահել որպես ընկեր: Եվ հիմա, բավական պատմություններ, եկեք սկսենք կառուցել Եվան:
Քայլ 3. Բաղադրիչների և սարքավորումների հավաքում
Ստորև բերված են բաղադրիչները ՝ Arduino Pro Mini (Կամ Arduino Nano) Wtv-020-SD-16p ձայնային մոդուլ HC-05 bluetooth մոդուլ 16x2 LCD մոդուլ LM7805 կարգավորիչ ICA ուժեղացուցիչի մոդուլ (ես օգտագործել եմ PAM8403 միացումը) 8 օհմ բարձրախոս, կին աուդիո jacka 9v մարտկոց և Android հեռախոս Այսպիսով, դրանք անհրաժեշտ բաղադրիչներն են: Մեկ այլ կարևոր բան ՝ արժեքը: Եվան ինձ համար արժեցավ 3000 ռուբլի: Ձեր երկրում գինը կարող է տարբեր լինել, բայց Հնդկաստանում սա մոտավոր տոկոսադրույքն է: Մասերի մի փոքր նկարագրություն. Arduino Pro mini- ն մեր ռոբոտի հիմնական MCU- ն է: Ես այն օգտագործել եմ իր փոքր չափի, պարզության և գերազանց կատարման պատճառով: Այն համապատասխանում է մեր ռոբոտի բոլոր պահանջներին: Բացառությամբ ձայնի ճանաչման գործառույթի, որը կատարվում է Android- ի կողմից (քննարկվում է ավելի ուշ), ցանկացած այլ գործառույթ ՝ սկսած հիմնաբառերի որոնումից և ելքի ձևավորումից, կատարվում է հենց Pro Mini- ի վրա: Մի անհանգստացեք վերը նշված պայմանների համար, եթե դա չեք հասկանում, բոլորը քննարկվում են հետագա մասում: wtv020sd 16p մոդուլը օգտագործվում է աուդիո ֆայլեր նվագարկելու համար, hc 05 Bluetooth ՝ Android- ի հետ հաղորդակցության և LCD- ի ցուցադրման համար: զգացմունքները: Մեզ պետք է կին աուդիո խցիկը `ռոբոտը արտաքին ուժեղացուցիչին միացնելու պայմանը: Arduino- ն այստեղ օգտագործվում է որպես հիմնական վերահսկիչ: Այն Bluetooth տվյալներ է ստանում HC 05 Bluetooth մոդուլի միջոցով և ֆայլը նվագում է WTV-020-SD-16p ձայնային մոդուլի միջոցով: Theգացմունքները ցուցադրվում են LCD մոդուլում և էներգիայի համար 9 վ մարտկոցով: Եվան ճանաչում է ելույթները Android սարքի Google Voice ճանաչման միջոցով: Հետագայում այն պատշաճ կերպով քննարկվում է համապատասխան քայլում: Վատ լուր Arduino Pro Mini- ի մասին. Դե դա նշանակում է, որ այն պաշտոնապես դադարեցվել է Arduino- ի արտադրությամբ: Բայց դուք դեռ կարող եք գտնել այն բազմաթիվ կայքերում, ներառյալ Ebay- ում: Շատ երրորդ կողմի արտադրողներ դեռ կարող են պատրաստել և վաճառել տախտակը: Մի անհանգստացեք, եթե չկարողացաք գտնել մեկը, կարող եք օգտագործել Arduino Nano- ն: Այն չպետք է տարբերություն ունենա կատարման և նաև չափի մեջ:
Քայլ 4. Տեսություն Մաս 1. Պատմություն և ներածություն:
Եվան հիմնված է Բնական լեզվի մշակման վաղ շրջանի ՝ «օրինաչափությունների համընկնում» տեխնոլոգիայի վրա: Այն գործում է հետևյալ կերպ, երբ տողը ստացվում է, այն փնտրում է այդ տողի մեջ կանխորոշված բառ կամ արտահայտություն: Ենթադրենք «քանի տարեկան ես» հարցին ծրագիրը փնտրում է «հին» բառ: Եթե դա հաջողվի, ապա այն խաղում է համապատասխան ձայնային ֆայլը wtv020sd մոդուլի միջոցով: Եթե այն ձախողվի, այն որոնում է հաջորդ կանխորոշված հիմնաբառը: Այսպես մենք պետք է նախապես սահմանված բառերի բառապաշար կազմենք: Կարծես կոշտ տեսք ունի, այնպես չէ՞: Կարծես մենք պետք է բոլոր անգլերեն բառերի բառապաշարը ձևավորենք, և անգլերեն լեզվով ընդհանուր առմամբ կա մոտ 230 հազար բառ: Փաստն այն է, որ մենք պարզապես պետք է ավելացնենք մի քանի հիմնական բառեր, որոնք առավել հաճախ օգտագործվում են մեր հաղորդակցության մեջ: Դեռ կոշտ տեսք ունե՞ք: Մի անհանգստացեք, աշխատանքն արդեն կատարել է Josephոզեֆ Վիզեմբաումը: Եվայի պատասխանների և կանխորոշված հիմնաբառերի մի մասը ներառված է Էլիզա կոչվող առաջին շատախոս ծրագրից, որը մշակել է Josephոզեֆ Վիզեմբաումը (նկարը վերևում): Էլիզան նախագծվել է որպես Ռոջերի թերապևտ: Ոչ բարձր գիտական տերմին, դա նշանակում է, որ նա խորհուրդ էր տալիս մարդկանց ՝ նրանց ավելի լավ հասկանալով և ստիպելով ավելի դրական մտածել: Իրոք լավ տեսք ունի: Եվ Էլիզան շատ լավ կարողացավ կատարել իր պարտքը: Նրա հետաքրքրասեր և թերահավատ վերաբերմունքը սիրված էր մարդկանց կողմից: Նույնիսկ Վիզեմբաումը զարմացած էր այն կարևորությունից, որ մարդիկ տալիս էին Էլիզային: Նրանք կարծես մոռացել էին, որ խոսում են համակարգչի հետ, և մտածում էին, որ համակարգչի ներսում նստած մի գեղեցիկ տիկին զրուցում է նրանց հետ: Բայց Էլիզան այնքան էլ խելացի չէր. այն շուտով կյանքի կոչվեց: Theամանակի ընթացքում մարդիկ սկսեցին ձանձրանալ նրա սահմանափակ շփումից, և նրան անվանում էին «բութ»: Ստեղծելով Chatterbots- ի հիմքը, նոր և ավելի լավ տեխնոլոգիայով տարբեր բոտեր հայտնվեցին շուկա: Եվ այժմ դրանք ամենուր ունենք: Ինչպես նշվեց, Եվայի պատասխանների մի մասը ստացվել է ELIZA- ից: Այսպիսով, դա նշանակում է, որ նույնիսկ Եվան որոշ չափով տիրապետելու է Էլիզայի վերաբերմունքին ՝ իմ որոշ գաղափարների հետ միասին: Մեկ այլ կարևոր բան ՝ պատասխաններն են: Պետք է իսկապես ձանձրալի լինի ամեն անգամ նույն հարցը տալուց նույն պատասխանները ստանալը: Այդ պատճառով շատ պատասխաններ պահվում են նույն հիմնաբառի համար: Եվան պատահականորեն ընտրում է, թե որ ֆայլը խաղա ՝ համոզվելով, որ նա չի կրկնի նույն ֆայլը: Ահա և վերջ, պարզ հաց ու կարագ, բայց կարևոր է խելամտորեն ծրագրել արձագանքող ձայները, որպեսզի դա պատրանք տա հեռուստադիտողին, կարծես նա իսկապես պատասխանում է մեր հարցերին: Այսպիսով, սա Եվայի գործունեության կարճ ներածություն էր: Հաջորդ քայլում մենք դա մանրամասնորեն կներկայացնենք ծրագրավորման մեջ:
Քայլ 5: Որոնել հիմնաբառ
Վերջին քայլում ես նշեցի Եվայի օրինակին համապատասխանող տեխնոլոգիայի և բնական լեզվի մշակման վաղ ձևի մասին: Այսպիսով, ինչ է դա և ինչպես է այն գործում: Դա այն հիմնական բանն է, որը մենք կքննարկենք այս քայլին: Այսպիսով, մտածեք դրա մասին, ինչ -որ մեկը հարցնում է ձեր անունը, և դուք պետք է ասեք, թե ինչ է դա: Քանի՞ ձևով կարող ենք նույն հարցը տալ: Ձեր ուսուցիչը կարող է հարցնել. Հարազատը կարող է հարցնել. «Անունդ ի՞նչ է»: Ձեր եղբայրը կարող է ասել. Այսպիսով, դա նշանակում է, որ նույն հարցը կարող է տրվել մի քանի եղանակով: Այնուամենայնիվ, մենք պետք է տանք նույն պատասխանը ՝ մեր անունը: Այսպիսով, դա նշանակում է, որ մենք պետք է բոլոր նախադասություններում ընդհանուր բան գտնենք: Հստակ երեւում է, որ «քո անունը» բառը առկա է բոլոր նախադասություններում: Այսպիսով, դա մեր հուշումն է: Անունին տրվող բոլոր հարցերի համար մենք պետք է փնտրենք «քո անունը» արտահայտությունը: Հետևելով այս հիմնական օրինակին ՝ մենք կարող ենք կանխատեսել համապատասխան պատասխանը բոլոր մուտքային տողերին: Ենթադրենք, ինչ -որ մեկն ասաց. Հիմարություն, ճիշտ է: Սա այս հիմնական ալգորիթմի մեծ թերություններից մեկն է: Ամեն դեպքում, դրանք հազվագյուտ դեպքեր կլինեն: Հակառակ դեպքում ալգորիթմը շատ արդյունավետ է: Այժմ, երբ ես նշեցի օրինաչափությունների համընկման տեխնոլոգիայի մասին, ժամանակն է մտածել, թե որտեղից է գալիս այս մուտքային տողը, որտեղ մենք փնտրում ենք տողը: Դե, այս լարն իրականում մեր ձայնն է, որը տեքստ է փոխարկվել Google Voice Recognition- ի կողմից: Այստեղ օգտագործվող ծրագիրը մեր ձայնը փոխակերպում է տեքստի և այն նույնն ուղարկում arduino- ին Bluetooth- ի միջոցով: Ես օգտագործեցի ծրագիրը, քանի որ այն իր տեսակի մեջ ամենապարզն ու լավագույնն է: Անունը AMR Voice է և հեշտությամբ կարելի է գտնել Google play- ում:
Քայլ 6: Պատասխանների ձևակերպում
Այժմ, երբ մենք ճանաչել ենք հարցերը, հաջորդ քայլը պետք է լինի պատասխանները գտնելը: Հետո գալիս է հետաքրքիր և կարևոր մասը … Մենք պետք է համապատասխան պատասխաններ գտնենք յուրաքանչյուր հարցի բավարարման համար: Եվ ահա գալիս է մեկ այլ գործառույթ, որը ներառված է ELIZA- ից: Վիզեմբաումը որոշ պատասխաններ է մշակել հիմնաբառերի որոշակի քանակի համար: Օրինակ է «դու» բանալի բառը: Ամեն անգամ, երբ հայտնաբերվում էր, ծրագրի արդյունքը «մենք քննարկում էինք քեզ, ոչ թե ես»: Այսպիսով, պատասխանը տրվեց այնպես, որ այն համապատասխանում է «դու» պարունակող բոլոր նախադասություններին: Հետագայում Էլիզան ամեն անգամ այլ պատասխան էր տալիս: Յուրաքանչյուր պատասխանի համար կար մի տեսակ թվային հասցե, որը. Սա ավելանում էր (ավելացվում էր 1 -ով) ամեն անգամ, երբ պատասխանը ձևակերպվում էր: Ենթադրենք, ինչպես վերը նշված օրինակում, եթե պատասխանի հասցեն 1 էր, ապա հասցեն փոխվել էր 2 -ի և, հետևաբար, ֆայլը 2 -ը խաղաց հաջորդը: Բայց մենք չենք հետևի այս ավելացման ալգորիթմին: Ինչպես տեսնում եք, ծրագրաշարի շարունակական օգտագործումից հետո պատասխանները կանխատեսելի դարձան: Դուք իմացաք, թե որն է հաջորդ պատասխանը: Այսպիսով, այս նպատակով մենք կստեղծենք պատահական հասցեներ յուրաքանչյուր հիմնաբառի համար: Ընդհանուր առմամբ, երկու դեպքում էլ նույնն է, միայն այն տարբերությունը, որ մենք չենք կարող կանխատեսել, թե ինչ է ասելու ռոբոտը հաջորդ հիմնաբառի համար:
Քայլ 7: Արգելված հայտարարություններ և այլն
Ձեր խոսակցության մեջ կարող են լինել դեպքեր, երբ ռոբոտը ասում է մի բան, որը դուք չեք ցանկանում լսել: Այսպիսով, այստեղ ծագում է արգելված հայտարարությունները ավելացնելու անհրաժեշտությունը: Արգելված հայտարարությունները հասցեների զանգված են, որոնք խոչընդոտվում են խաղալու: Ձայնային հասցեն բնութագրվում է որպես օգտագործողի խնդրանքով արգելված հայտարարություն: Ավելին, այս հասցեն պետք է պահվի Arduino- ի EEPROM- ում, որպեսզի Եվան չմոռանա, որ այն արգելված հայտարարություն է նույնիսկ անջատված լինելուց հետո: Հիմնականում ծրագիրը անում է ստուգել յուրաքանչյուր հասցե, որը պետք է նվագարկվի: Եթե հասցեն արգելված հասցեներից է, ապա այն կամ ավելանում է, կամ նվազեցնում: Ավելին, կարող է լինել մի դեպք, երբ դուք կցանկանայիք թույլ տալ ռոբոտին ասել նախկինում արգելված բառ: Այդ դեպքում դուք պետք է ասեք Եվային, որ նա կարող է ասել վերջին արգելված բառը: Այն բառը, որը վերջին անգամ արգելվել էր, այժմ խաղարկելի կլինի: Բոլոր արգելված հայտարարությունները խաղարկելի դարձնելու համար մենք պետք է կցենք վերակայման անջատիչ: Եթե սեղմեք, բոլոր արգելված հայտարարությունները կդառնան նվագարկելի: Հետո մեկ այլ կարևոր բան կլինի համոզվել, որ Եվան չի կրկնի պատասխանները: Սա պատահական թվերի մի տեսակ թերություն է: Նույն պատահական թվերը, ամենայն հավանականությամբ, արտադրվում են մի շարք շարքերում: Սա կստիպի մեր ռոբոտին կրկին ու կրկին նույն պատասխանը տալ: Դրա համար մենք պետք է ներառենք մեկ այլ փոքր գործառույթ, որը կանխում է հայտարարությունների կրկնությունը: Դրա համար մենք պետք է հիշողության մեջ պահենք վերջին հայտարարության հասցեն և ստուգենք, արդյոք այն նույնն է, ինչ ներկա: Եթե այո, ապա հասցեի արժեքը ավելանում կամ նվազում է, նույն կերպ ՝ արգելված հայտարարությունների դեպքում:
Քայլ 8: Գրեք ծածկագրով
Մենք օգտագործում ենք indexOf հրամանը ՝ հիմնաբառ որոնելու համար: Հրամանը տեղավորում է մեկ այլ տողի բնույթ կամ տող: Եթե գտնվի, այն վերադարձնում է այդ տողի ինդեքսը, իսկ -1 -ը `չգտնվելու դեպքում: Այսպիսով, մեր ծրագրում մենք պետք է գրենք այն հետևյալ կերպ. որ մենք պահել ենք տողը հիշողության մեջ և գտել ենք մեր հիմնաբառը դրա ներսում, այժմ մենք պետք է կարգավորենք պատասխանները: Ինչպես ասվեց, պատահական թվեր են ստեղծվում որոշակի թվերի սահմաններում (ձայնային ֆայլերի հասցեներ): Ահա գալիս է պատահական () հրամանը: Հետևյալը շարահյուսությունն է. Պատահական (min, max); // պատահական թիվը գեներացվում է min և max տիրույթում: Մենք սահմանում ենք յուրաքանչյուր միջակայքի նվազագույն թիվը և առավելագույն թիվը, և դրա կիրառմամբ մեր ծածկագիրը որոշ չափով այսպիսին է թվում ՝ եթե (voice.indexOf («քո անունը»)> - 1)) {minNo = 0; maxNo = 5; Պատահական Թիվ = պատահական (minNo, maxNo);} Այժմ գալիս է պատասխանների մշակումը: Վերջին քայլում ես ասացի, որ թվերը ավելանում կամ նվազում են ՝ հիմնվելով ալգորիթմի վրա: Այս ալգորիթմը այն է, ինչ մենք այժմ քննարկում ենք: Այս մասը շատ կարևոր է այն առումով, որ դուք չեք կարող պարզապես ավելացնել կամ նվազեցնել այնպես, ինչպես ցանկանում եք: Ավելացված կամ նվազեցված թիվը պետք է լինի միջակայքում: Ենթադրենք, ինչպես վերը նշված դեպքում, «քո անունը» հիմնաբառի համար մենք ունենք 0 -ից 5 միջակայք, իսկ առաջացած պատահական թիվը ՝ 5, լավ, եթե այն ավելացնես, վերջում կխաղարկես այլ հիմնաբառի ձայնային ֆայլ:. Ի՞նչ եք կարծում, ինչպե՞ս կլինի: Դուք հարցնում եք. Նույնը վերաբերում է նվազագույն թվին: Եթե առաջացած պատահական թիվը 0 է, դուք չեք կարող նվազեցնել այն: Այսպիսով, այս պատճառով ալգորիթմը շատ կարևոր է: Մտածեք դրա մասին. Մենք կարող ենք աճել կամ այն դեպքում, երբ թիվը փոքր է առավելագույն թվից, և նվազում է, երբ այն ավելի մեծ է, քան նվազագույն թիվը: Երբ առաջացած թիվը կամ հավասար է 0 -ի, կամ 5 -ից փոքր է, թիվը ավելանում է: Մյուս կողմից, երբ այն հավասար է 5 -ի, մենք նվազեցնում ենք այն ՝ համոզվելու համար, որ թիվը նշված սահմաններում է: Այժմ գալիս ենք արգելված հայտարարությունների մասին: Ինչպես նշվեց, դրանք պահվում են EEPROM- ում: Դրա համար, առաջին հերթին, մենք ազատ հիշողություն ենք փնտրում արգելված զանգվածում: Ենթադրենք, հասցեն 4 -ն անվճար է, ապա մենք մուտքագրում ենք ֆայլի համարը անվճար զանգվածի հասցեում, ինչպես նաև գրում ենք նույն հասցեն EEPROM- ում: (int i; i if (never == 0) {EEPROM.write (երբեք , հիշողություն);}} Այսպիսով, վերջ, Wtv020sd16p մոդուլը կխաղարկվի ՝ օգտագործելով module.playVoice () հրամանը և առաջարկվող ֆայլի համարը: Wtv020 մոդուլի աշխատանքը կքննարկվի ավելի ուշ:
Քայլ 9: otգացմունքների ներդնում
Մինչ այժմ մեր ռոբոտը կարողանում է ճանաչել մեր ասածը, պահել հիշողության մեջ և գտնել հարցերի համապատասխան պատասխանը: Հիմա հարց է ծագում `հույզեր մտցնելու համար: Անշուշտ, բոլորին դուր կգա կենդանի դեմքը ՝ ընդամենը մի փոքր հիմար հարցերին պատասխանող ծրագրի հետ միասին: Նախագծում օգտագործվում է 16x2 LCD էկրան: Բավականին լավ է աչքերը տպելու համար: Աչքեր ստեղծելու համար մենք պետք է օգտագործենք անհատական բնույթի գործառույթ: Պատվերով բնույթը մեզ հնարավորություն է տալիս ստեղծել նոր նիշ ՝ սահմանելով պիքսելները: Դրա մասին ավելի մանրամասն կանդրադառնանք մի փոքր ուշ: Նախևառաջ կարևոր է հիշել, որ Arduino- ի կողմից աջակցվում է ընդամենը 8 հատուկ նիշ: Այսպիսով, մենք պետք է կառավարենք զգացմունքները միայն 8 նիշով: Յուրաքանչյուր նիշ պետք է տպվի որոշակի վանդակում, և կա 16 սյունակ և 2 տող, որոնք կազմում են ընդհանուր առմամբ 32 տուփ:
Առցանց կարող եք գտնել լավ տեղեկություններ Arduino- ի անհատական կերպարների մասին: Կարող է այցելել նաև այս հղումը ՝
[Custom Characters Arduino] Պատվերով նիշերի բայտի կառուցվածքը որոշ չափով պետք է նման լինի.
Սովորական հայացք. Ձախ տուփ. Այսպիսով, դա նշանակում է, որ մեզ պետք է ընդամենը 4 տուփ ՝ ամբողջ աչքը լցնելու համար: Երկու տող ձախից և երկուսից ՝ աջից, որոնք կազմում են չորս տուփ մեկ աչքի համար: Ձախ տուփի բայթը պետք է պարունակի երկու տող ձախից, իսկ աջ տուփը `աջ տողերը: Այսպիսով, դա Եվայի ամբողջական հայացքն է: Եվ հիմա նույնը կրկնելով երկրորդ աչքի համար, մենք ստանում ենք Եվայի չեզոք տեսքը: Այժմ կարևոր է հիշել, որ մենք օգտագործել ենք առկա ութ սովորական նիշերից մեկը: Եվ կան հինգ ընդհանուր զգացմունքներ ՝ ուրախություն, տխուրություն, հայացք, նորմալ և թարթում: Մնացած յոթ անհատական նիշերից մենք պետք է հարմարվենք այնպես, որ տեղավորվեն բոլոր արտահայտությունները: Տարածքը կազմավորելու համար մենք յուրաքանչյուր աչքի համար կօգտագործենք 2 տուփ: Wonderարմանալի չէ, որ չափը մի փոքր փոքր կլիներ, բայց դա անտեսվելու է մարդու աչքի կողմից: Պարզապես համոզվեք, որ LCD գործառույթների միջև որոշ ուշացումներ ավելացնեք, հակառակ դեպքում Arduino- ն անկայուն կդառնա:
Քայլ 10: Կապեր հաստատելը
LCD մոդուլ. Միացրեք կապերը, ինչպես նշված է այստեղ. Հետևեք այս միացումներին. Պետական քորոցը պահանջվում է ստուգել ՝ HC 05- ի միջոցով միացված է, թե անգործուն: WTV 020 SD 16p մոդուլի pin1. Վերագործարկեք քորոցը, միացրեք այն քորոց 2pin7: փորել քորոց 4pin15. busyբաղված քորոց, միացեք փորել 5pin2 փոսին. միացրեք այս կապը ուժեղացուցիչին ձայնի միջոցով, ինչպես նաև կանացի աուդիո խցիկին: pin4- ը պետք է միացված լինի բարձրախոսին+pin5- ին `բարձրախոսին միացնելու համար: 8 -րդ քորոց ՝ gnd- ի համար և ապահովելու 3.3 վ էլեկտրամատակարարում 16 -րդ փինում:
Ամրացուցիչը կօգնի նվագարկել Եվայի ներքին խոսնակը, մինչդեռ աուդիո խցիկը պետք է միանա արտաքին ուժեղացուցիչին և ավելի մեծ բարձրախոսներին:
Քայլ 11: WTV020SD16p մոդուլը (ըստ ցանկության)
Նշում. Այս քայլը պարտադիր չէ: Այն վերաբերում է WTV 020 SD 16p մոդուլի աշխատանքին և նկարագրությանը:
Ձայնային մոդուլի ցուցադրական ցուցադրումը կարող եք տեսնել այս հղումով.
[ՆԱԽԱՐԳԵԼ ՏԵՍԱՆՅՈԹ]
Ռոբոտի խոսելու ռեժիմը կատարվում է WTV 020 SD մոդուլով: Մոդուլն օգտագործվում է ռոբոտի համար ձայնային ֆայլեր նվագարկելու համար: Երբ որևէ հարց է տրվում, arduino- ն կստիպի մոդուլին նվագարկել SD քարտի համապատասխան ձայնային ֆայլը: Մոդուլի վրա կան չորս սերիական տվյալների տող `arduino- ի հետ հաղորդակցվելու, վերակայելու, ժամացույցի, տվյալների և զբաղված կապում, և մենք օգտագործում ենք.playVoice () հրամանը` անհրաժեշտ ֆայլը նվագարկելու համար: Օրինակ ՝ module.playVoice (9): // նվագարկեք SD քարտում պահվող ֆայլը 9 Հիշեք, որ ֆայլերի անունները պետք է լինեն տասնորդական թվով (0001, 0002…): Եվ որ ֆայլերը պետք է լինեն AD4 կամ WAV ձևաչափով: Հետագայում մոդուլը աշխատում է միայն 1 ԳԲ միկրո SD քարտի վրա: Որոշ մոդուլներ նույնիսկ աշխատում են 2 գբ քարտերի վրա, և քարտը կարող է պահել առավելագույնը 504 ձայնային ֆայլ: Այսպիսով, դուք կարող եք ներառել լավ թվով ձայնային ֆայլեր `լավ թվով հարցերի համար նվագարկելու համար:
Դուք նույնիսկ կարող եք կատարել ձեր սեփական ձայնային AD4 ֆայլերը: Նախ, դուք պետք է ունենաք երկու ծրագրակազմ, ձայնի խմբագրման ծրագիր և 4D SOMO TOOL կոչվող ծրագրակազմ, որը ֆայլերը կփոխարկի AD4 ձևաչափի: Երկրորդ, դուք պետք է պատրաստեք Robot Voices- ը: Դուք կարող եք կամ տեքստը վերածել խոսքի, կամ նույնիսկ ձայնագրել ձեր սեփական ձայնը և ձայն տալ Ռոբոտին: Այս երկուսն էլ կարող են կատարվել Ձայնի խմբագրման ծրագրում: Բայց, անկասկած, ռոբոտները լավ տեսք չունեն, եթե խոսում են մարդկային ձայների մասին: Այսպիսով, ավելի լավ կլինի, որ տեքստը փոխակերպվի խոսքի: Կան տարբեր շարժիչներ, ինչպիսիք են Microsoft Anna- ն և Microsoft Sam your Computer- ը, որոնք կօգնեն դա անել: Իմը հիմնված է Microsoft Eva- ի վրա: Նրա ձայները մեծ չափով համընկնում են Կորտանայի հետ: Ձայնային ֆայլերը պատրաստելուց հետո այն պետք է պահպանել 32000 Հց -ով և WAV ձևաչափով: Դա պայմանավորված է նրանով, որ մոդուլը կարող է նվագարկել ձայնային ֆայլեր մինչև 32000 Հց: Այնուհետև օգտագործեք 4D SOMO TOOL- ը ՝ ֆայլերը AD4 ձևաչափի փոխարկելու համար: Դա անելու համար պարզապես բացեք SOMO TOOL- ը, ընտրեք ֆայլերը և կտտացրեք AD4 կոդավորմանը, և ձեր ձայնային ֆայլերը պատրաստ են: Հղման համար կարող եք ստուգել վերը նշված պատկերը: Եթե ցանկանում եք լրացուցիչ մանրամասներ ռոբոտային ձայներ պատրաստելու համար, կարող եք գնալ այստեղ ՝ [Ռոբոտային ձայներ պատրաստելը]
Քայլ 12: Softwareրագրաշարի մաս
Arduino Pro mini- ում ծրագրավորման մի փոքր խնդիր կա: Իրականում խնդիր չէ, ընդամենը մեկ լրացուցիչ քայլ: Arduino Pro mini- ն չունի ներկառուցված ծրագրավորող, քան Arduino- ի մյուս տախտակները: Այսպիսով, կամ պետք է գնել արտաքին կամ հին arduino UNO: Այստեղ քայլը նկարագրում է, թե ինչպես կարելի է ծրագիրը վերբեռնել Arduino UNO- ի միջոցով: Պարզապես վերցրեք Arduino UNO- ի հին տախտակը վթարից և հանեք Atmega 328p- ը: Այնուհետև միացեք, ինչպես նշված է հետևյալում ՝ 1. TX կապում UNO- ում TX կապում Pro Mini 2. RX- ի UNO- ի RX կապում `Pro MIni3- ի RX կապում: Վերակայեք UNO- ի քորոցը Pro Mini4- ի վերակայման քորոցին: միացրեք VCC- ն և Pro Mini- ի հիմքը ՄԱԿ -ին: Ներբեռնեք Arduino ծրագիրը, ձայնի ճանաչման ծրագիրը և ներքևում տրամադրված գրադարանները: Stillրագիրը դեռ մշակման փուլում է: Այսպիսով, եթե դրա հետ կապված որևէ խնդիր ունեք, ազատ զգալ հարցրեք: Այնուհետև միացրեք մալուխը համակարգչին: Ընտրեք խորհուրդը որպես Arduino Pro Mini և ընտրեք COM- ի ճիշտ պորտը: Այնուհետև կտտացրեք Վերբեռնման կոճակին և տեսեք, թե ինչպես է ծրագիրը վերբեռնվում ձեր Pro Mini- ում:
Այնուհետև ներբեռնեք Ձայնի ճանաչման ծրագրակազմը և ձայնային ֆայլերը:
Քայլ 13: Մարմնի պատրաստում
Ես գտա թելերի մի փոքրիկ տուփ և գտա, որ այն կատարյալ է մարմնի համար: Դուք կարող եք օգտագործել ցանկացած արկղ, որը կգտնեք ձեր արհեստանոցում, կամ կարող եք պատրաստել ստվարաթղթից: Պարզապես կտրեք մի փոքր ուղղանկյուն կտոր ՝ LCD մոդուլը ամրացնելու համար: Վերևում ես կտրեցի մի փոքր անցք `ձայնը ամրացնելու համար, իսկ կողքերին` անջատիչների և աուդիո միակցիչի ամրացման համար: Անիվների համար տուփի կողքերին ամրացրեցի երկու շշերի կափարիչներ: Պարզապես համոզվեք, որ տուփը բավականաչափ տարածք ունի, որպեսզի շղթան ներս դրվի: Կցեք անջատիչ մարմնին, ինչպես նաև միացմանը, այնուհետև ձայնը տուփի վերևում: Հետո պարզապես միացրեք միացումը ներսում, և ձեր ռոբոտը ավարտված է:
Քայլ 14: Լավ արված:
Այժմ դուք ավարտել եք ձեր գեղեցիկ փոքրիկ ռոբոտային նախագիծը, որը կարող է խոսել ձեզ հետ և ձեզ երջանիկ զգալ: Սա DIYer լինելու ամենաերջանիկ պահն է, երբ ձեր նախագիծն ավարտված է և ամբողջովին աշխատում է: Մի անհանգստացեք, եթե մեկ փորձի դեպքում հաջողության չեք հասնում, դրա համար պետք է ջանասիրաբար և ջանասիրաբար փորձեք, որպեսզի հասկանաք ձեր ռոբոտի յուրաքանչյուր հատվածը: Եվ ահա DIY- երը գալիս են այս աշխարհ: Բայց սա նախագծի ավարտը չէ: Եվան միշտ ավելի մեծ չափով կզարգանա ՝ կամ իմ, կամ քո նման DIY- ների կողմից: Ես շատ կցանկանայի լսել, թե ինչ եք դարձրել այս ուսանելի տեսքը: Հարգանքներով, RS3655
Խորհուրդ ենք տալիս:
Ինչպես. Raspberry PI 4 Headless (VNC) տեղադրելը Rpi- պատկերիչով և նկարներով. 7 քայլ (նկարներով)
Ինչպես. Raspberry PI 4 Headless (VNC) տեղադրելը Rpi-imager- ով և նկարներով. Ես պլանավորում եմ օգտագործել այս Rapsberry PI- ն իմ բլոգում զվարճալի նախագծերի փունջում: Ազատորեն ստուգեք այն: Ես ուզում էի նորից օգտագործել իմ Raspberry PI- ն, բայց իմ նոր վայրում Ստեղնաշար կամ մկնիկ չկար: Որոշ ժամանակ անց ես ստեղծեցի ազնվամորի
CovBot - WhatsApp- ի վրա հիմնված Chatbot COVID 19 տեղեկատվության և ավելին ՝ 7 քայլ
CovBot - WhatsApp- ի վրա հիմնված Chatbot ՝ COVID 19 Info & More- ի համար. CoVbot- ը Whatsapp- ի վրա հիմնված պարզ և ինտուիտիվ chatbot է: Բոտի հիմնական առանձնահատկությունն այն է. Այն կարող է ձեզ տալ ընտրովի երկրում COVID-19- ի վերջին կարգավիճակը պարզ և ինտուիտիվ եղանակով: Բացի այդ, բոտը կարող է զվարճալի գործողություններ առաջարկել AT H
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ) `8 քայլ
Ձայնային թռիչք Arduino Uno- ի հետ Քայլ առ քայլ (8 քայլ). Ուլտրաձայնային ձայնային փոխարկիչներ L298N Dc կանացի ադապտեր էներգիայի մատակարարում արական dc pin Arduino UNOBreadboard և անալոգային նավահանգիստներ ՝ կոդը փոխարկելու համար (C ++)
Ինչպես ապամոնտաժել համակարգիչը հեշտ քայլերով և նկարներով. 13 քայլ (նկարներով)
Ինչպես ապամոնտաժել համակարգիչը հեշտ քայլերով և նկարներով. Սա հրահանգ է, թե ինչպես ապամոնտաժել համակարգիչը: Հիմնական բաղադրիչների մեծ մասը մոդուլային են և հեշտությամբ հանվում են: Այնուամենայնիվ, կարևոր է, որ դուք կազմակերպված լինեք դրա վերաբերյալ: Սա կօգնի ձեզ զերծ պահել մասերի կորստից, ինչպես նաև նորից հավաքելիս
Ciclop 3D Scanner My Way Քայլ առ քայլ ՝ 16 քայլ (նկարներով)
Ciclop 3D Scanner My Way Քայլ առ քայլ. Ողջույն, ես գիտակցելու եմ հանրահայտ Ciclop 3D սկաները: Բոլոր այն քայլերը, որոնք լավ բացատրված են սկզբնական նախագծում, ներկա չեն: Ես որոշ շտկումներ կատարեցի ՝ գործընթացը պարզեցնելու համար, նախ Ես տպում եմ հիմքը, իսկ հետո վերականգնում եմ PCB- ն, բայց շարունակում եմ