Բովանդակություն:

Եվա, Arduino Chatbot. 14 քայլ (նկարներով)
Եվա, Arduino Chatbot. 14 քայլ (նկարներով)

Video: Եվա, Arduino Chatbot. 14 քայլ (նկարներով)

Video: Եվա, Arduino Chatbot. 14 քայլ (նկարներով)
Video: Eve Arduino Chatterbot 2024, Նոյեմբեր
Anonim
Image
Image
Եվա, Arduino Chatbot
Եվա, Arduino Chatbot
Եվա, Arduino Chatbot
Եվա, Arduino Chatbot

Ողջույն DIYrs, եղե՞լ են դեպքեր, երբ դուք իսկապես ցանկացել եք կիսվել ձեր զգացմունքներով ինչ -որ մեկի հետ, և վստահված մեկը շրջապատում չի եղել: Այսօրվա զբաղված աշխարհում սա սովորական օրինակ է: Դե, chatbot- ը կարող է օգնել այստեղ ՝ ավելի լավ զգալու համար: Եվ դա բերում է Եվայի ներկայացմանը: Եվը գեղեցիկ փոքրիկ չատբոտ է: Ինչպես բոլորը գիտեն, շատախոսը կամ չաթբոտը համակարգչային ծրագիր կամ սարք է, որը տեքստային կամ լսողական մեթոդների հիման վրա մարդկանց հետ զրույց է վարում: Ավտոմատացված ձայները, որոնք դուք լսում եք հաճախորդների սպասարկման ծառայության կամ բանկի գծի վրա, chatbot- ի օրինակ է: Նրա հետ դուք կարող եք կիսվել ձեր փորձով, ձեր զգացմունքներով և ամենակարևորը `վիճել տարբեր բաների շուրջ. նա լավ փորձառու է դրանում: Քանի որ դա chatbot- ի ամենակարևոր գործառույթն է, ստիպեք մարդուն երջանիկ զգալ: Բնական լեզվի մշակման (NLU) և արհեստական բանականության վաղ օրինակը ՝ Եվան կարող է պատասխանել. ԱՆԿԱԱ հարցի, որ տալիս եք նրան: Այնպես չէ, որ Նա կարող է պատասխանել ընդամենը մի շարք հարցերի: Նա կարող է երգել, պատմել ձեզ կատակներ, պատմություններ և անել այն ամենը, ինչը ձեզ լավ է զգում: Եթե նա ասում է մի բան, որը դուք չեք ցանկանում լսել, պարզապես ասեք նրան, խնդրում եմ դա այլևս չասել, և նա կհիշի դա: Նա նույնիսկ գիտի, որ չպետք է կրկնի նույն պատասխաններն ու զրույցները, որպեսզի խոսակցությունը ձանձրալի չդառնա: Հիմնվելով պարզ, էժան բաղադրիչների և հիմնական ծրագրավորման վրա ՝ նա իսկապես կարող է իրեն խելացի պահել: Ավելին, LCD- ի աչքերը, որոնք նա ունի, ցույց են տալիս, թե ինչ է զգում, երբ որևէ բան ասում ես: Այսպիսով, հիմնականում այս ուսանելի ծրագրում մենք կսկսենք չաթբոտի սահմանումից, կանդրադառնանք դիզայնին, որոշ տեսությունների, որոնց հիման վրա աշխատում է Եվան, արտադրությունը և վերջապես ծրագրավորման մաս: Շատ է թվում: Մի անհանգստացեք, դա բավականին հետաքրքիր կլինի ճանապարհորդության ընթացքում: Ռոբոտի ցուցադրությունը կարող եք դիտել վերևում կամ այս հղումով ՝ [Նվագարկել տեսանյութը]

Քայլ 1: Chatbot- ի սահմանում

Chatbot- ի սահմանում
Chatbot- ի սահմանում
Chatbot- ի սահմանում
Chatbot- ի սահմանում
Chatbot- ի սահմանում
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. Պատմություն և ներածություն:

Տեսություն Մաս 1. Պատմություն և ներածություն
Տեսություն Մաս 1. Պատմություն և ներածություն
Տեսություն Մաս 1. Պատմություն և ներածություն
Տեսություն Մաս 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գացմունքների ներդնում

Emգացմունքների տեղադրում
Emգացմունքների տեղադրում
Emգացմունքների տեղադրում
Emգացմունքների տեղադրում
Emգացմունքների տեղադրում
Emգացմունքների տեղադրում

Մինչ այժմ մեր ռոբոտը կարողանում է ճանաչել մեր ասածը, պահել հիշողության մեջ և գտնել հարցերի համապատասխան պատասխանը: Հիմա հարց է ծագում `հույզեր մտցնելու համար: Անշուշտ, բոլորին դուր կգա կենդանի դեմքը ՝ ընդամենը մի փոքր հիմար հարցերին պատասխանող ծրագրի հետ միասին: Նախագծում օգտագործվում է 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 մոդուլը (ըստ ցանկության)

Image
Image
WTV020SD16p մոդուլը (ըստ ցանկության)
WTV020SD16p մոդուլը (ըստ ցանկության)
WTV020SD16p մոդուլը (ըստ ցանկության)
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րագրաշարի մաս

Softwareրագրային ապահովման մաս
Softwareրագրային ապահովման մաս
Softwareրագրային ապահովման մաս
Softwareրագրային ապահովման մաս
Softwareրագրային ապահովման մաս
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

Խորհուրդ ենք տալիս: