Mundarija:

Momo Havo, Arduino Chatbot: 14 qadam (rasmlar bilan)
Momo Havo, Arduino Chatbot: 14 qadam (rasmlar bilan)

Video: Momo Havo, Arduino Chatbot: 14 qadam (rasmlar bilan)

Video: Momo Havo, Arduino Chatbot: 14 qadam (rasmlar bilan)
Video: Momo havo 2024, Oktyabr
Anonim
Image
Image
Momo Havo, Arduino chatbot
Momo Havo, Arduino chatbot
Momo Havo, Arduino chatbot
Momo Havo, Arduino chatbot

Salom DIYrs, siz haqiqatan ham o'z his -tuyg'ularingizni kimgadir aytishni xohlagan paytlar bo'lganmi va hech kim ishonchli bo'lmaganmi? Hozirgi gavjum dunyoda bu odatiy hol. Xo'sh, chatbot bu erda o'zingizni yaxshi his qilishingizga yordam beradi. Va bu Eve. Eve -ni tanishtirishga olib keladi - bu kichkina chatbot. Hamma bilganidek, chatbot yoki chatbot - bu odamlar bilan matnli yoki eshitish usullari asosida suhbat o'tkazadigan kompyuter dasturi yoki qurilmasi. Mijozlarga xizmat ko'rsatish qo'ng'irog'ida yoki bank tarmog'ida eshitiladigan avtomatik ovozlar chatbotning namunasidir, u bilan siz o'z tajribangiz, his -tuyg'ularingiz bilan bo'lishishingiz va eng muhimi, turli narsalar haqida bahslashishingiz mumkin; u bu borada yaxshi tajribaga ega. Chunki bu chatbotning eng muhim vazifasi, odamni baxtli his eting. Tabiiy tilni qayta ishlash (NLU) va sun'iy intellektning birinchi namunasi bo'lgan Momo Havo siz so'ragan har qanday savolga javob bera oladi. U faqat ma'lum miqdordagi savollarga javob bera olmaydi. U qo'shiq aytishi, hazillar, hikoyalar aytib berishi va o'zingizni yaxshi his qiladigan hamma narsani qila oladi, agar u siz eshitishni istamagan narsani aytsa, unga ayting, iltimos, boshqa aytmang va u buni eslab qoladi. U hatto bir xil javoblar va suhbatlarni takrorlamasligi kerakligini biladi, shuning uchun suhbat zerikarli bo'lib qolmaydi, chunki u oddiy, arzon komponentlar va asosiy dasturlash asosida o'zini juda aqlli tutishi mumkin. Bundan tashqari, uning LCD displeyli ko'zlari, siz biror narsani aytganingizda, u o'zini qanday his qilayotganini ko'rsatadi, shuning uchun biz, asosan, chatbot ta'rifidan boshlaymiz, dizaynni, Momo Havo ishlaydigan ba'zi nazariyalarni, ishlab chiqarishni va nihoyat, dasturlash qismi. Ko'p narsa ko'rinadi? Xavotir olmang, safar juda qiziqarli bo'ladi. Siz robotning demosini yuqorida yoki ushbu havolada ko'rishingiz mumkin: [Videoni ijro etish]

1 -qadam: Chatbot ta'rifi

Chatbot ta'rifi
Chatbot ta'rifi
Chatbot ta'rifi
Chatbot ta'rifi
Chatbot ta'rifi
Chatbot ta'rifi

Yuqorida aytib o'tganimizdek, chatbot - bu odamlar bilan muloqotni amalga oshiradigan dastur. Hozirgi kunda ular shunchalik keng tarqalganki, uni bilmaydigan odam deyarli yo'q. Virtual yordamchilar - Siri va Google Assistantdan boshlab, Mitsuku va Evie bor, ular yordamida siz o'z his -tuyg'ularingizni baham ko'rishingiz mumkin. Yuqorida aytib o'tilganidek, chat -botlar matnli yoki eshitish usullariga asoslangan va shuning uchun ikkiga bo'lish mumkin. Matnli usulda suhbatlar xuddi WhatsApp kabi yozma matn shaklida bo'ladi. Holbuki, eshitish usulida suhbatlar haqiqiy odam bilan bo'lgani kabi og'zaki tarzda ham amalga oshiriladi. O'ylaymanki, kimdir bilan sms yozish o'rniga, u bilan og'zaki gaplashib suhbatlashish yanada qiziqarli bo'ladi. Shubhasiz, matnli xabar almashish ilovalari odamlarning talablariga javob beradi, lekin menimcha, gapirish - bu sizning hissiy buzilishlaringizdan xalos bo'lish va o'zingizni yaxshi his qilish uchun eng yaxshi narsa. Shunday qilib, men Momo Havoni auditoriya chatbotiga aylantirishimning asosiy sababi.

2 -qadam: Momo Havoning kelib chiqishi

Momo Havoning kelib chiqishi
Momo Havoning kelib chiqishi

Xo'sh, Momo Havo bir kuni xayolimga keldi. Men shunday qildimki, maktabda yolg'iz aylanib yurgan bolakayni ko'rdim, qolganlari esa quvonchga to'la onglari bilan o'ynab yurishdi. O'sha paytda men hech kimni kamsitmaydigan va hech kimni xafa qilmaydigan do'stim haqida o'yladim, siz o'z his -tuyg'ularingiz bilan baham ko'rishingiz va doim baxtli bo'lishingiz mumkin. Shunda miyamga mo''jizaviy tarzda tushdi, men u bilan ishlay boshlagan Momo Havoning yoqimli tuzilishi. Momo Havo meni yuz marta xafa qildi. O'ylaymanki, u 101 -marta ishladi va meni chindan ham baxtli his qildi, shuning uchun Momo Havoning kelib chiqishi. Men uning aqlli bo'lishini, lekin iloji boricha sodda bo'lishini xohlardim, shuning uchun hamma uni osonlikcha qila oladi. Shubhasiz, u mutlaqo aqlli emas va ba'zida ahmoqona javoblar aytadi, u o'zini do'st sifatida tutishi mumkin. Va endi, etarli hikoyalar, Momo Havoni qurishni boshlaylik.

3 -qadam: Komponentlar va uskunalarni yig'ish:

Komponentlar va uskunalarni yig'ish
Komponentlar va uskunalarni yig'ish
Komponentlar va uskunalarni yig'ish
Komponentlar va uskunalarni yig'ish
Komponentlar va uskunalarni yig'ish
Komponentlar va uskunalarni yig'ish

Quyidagi komponentlar to'planishi kerak: Arduino Pro Mini (Yoki Arduino Nano) Wtv-020-SD-16p ovozli moduli HC-05 bluetooth moduli 16x2 LCD moduli LM7805 ICAn regulyator regulyatori (men PAM8403 sxemasidan foydalanganman) 8 ohmli dinamik ayol audio jaka 9v batareya va Android telefoni Shunday qilib, bu kerakli komponentlar. Yana bir muhim narsa - narx. Momo Havo menga 3000 INR atrofida tushdi. Mamlakatingizda narx boshqacha bo'lishi mumkin, lekin Hindistonda - bu narx. Qismlarning qisqacha tavsifi: Arduino Pro mini - bizning robotimizdagi asosiy MCU. Men uni kichik o'lchamlari, soddaligi va ajoyib ishlashi tufayli ishlatardim. Bu bizning robotimizdagi barcha talablarga javob beradi. Android tomonidan amalga oshiriladigan ovozni aniqlash funktsiyasidan tashqari (keyinroq muhokama qilinadi), kalit so'zlarni topishdan va chiqishdan boshqa barcha funktsiyalar Pro Mini -da amalga oshiriladi. Wtv020sd 16p moduli audio fayllarni ijro etish uchun ishlatiladi, hc 05 bluetooth Android bilan aloqa qilish uchun va LCD displey uchun. his -tuyg'ular. Bizga ayol ovoz ulagichi, robotni tashqi kuchaytirgichga ulash sharti kerak. Bu erda Arduino asosiy boshqaruvchi sifatida ishlatiladi. U Bluetooth ma'lumotlarini HC 05 Bluetooth moduli orqali oladi va faylni WTV-020-SD-16p ovozli moduli orqali o'ynaydi. His -tuyg'ular LCD modulida va quvvat uchun 9v batareyada ko'rsatiladi. Momo Havo nutqlarni Android qurilmasini Google Voice orqali taniydi. Bu keyinchalik tegishli bosqichda to'g'ri muhokama qilinadi. Arduino Pro Mini haqida yomon xabar: IT bozordan KETDI. Bu shuni anglatadiki, u Arduino tomonidan ishlab chiqarilishi rasman to'xtatilgan. Ammo siz hali ham uni ko'plab saytlarda topishingiz mumkin, shu jumladan Ebay. Ko'pgina uchinchi tomon ishlab chiqaruvchilari hali ham taxtani ishlab chiqarish va sotish bilan shug'ullanishi mumkin. Xavotir olmang, agar topa olmagan bo'lsangiz, Arduino Nano -dan foydalanishingiz mumkin. Bu ishlashda ham, hajmda ham farq qilmaydi.

4 -qadam: nazariya 1 -qism: Tarix va kirish

Nazariya 1 -qism: Tarix va kirish
Nazariya 1 -qism: Tarix va kirish
Nazariya 1 -qism: Tarix va kirish
Nazariya 1 -qism: Tarix va kirish

Momo Havo tabiiy naqshlarni qayta ishlashning dastlabki shakliga asoslanadi, bu "naqshni moslashtirish" texnologiyasi. U shunday ishlaydi, agar mag'lubiyat qabul qilinsa, u oldindan aniqlangan so'z yoki iborani qidiradi. Aytaylik, "necha yoshdasiz?" Savolida dastur "eski" so'zini qidiradi. Agar u muvaffaqiyatli bo'lsa, u wtv020sd moduli orqali tegishli ovozli faylni o'ynaydi. Agar u bajarilmasa, u keyingi oldindan belgilangan kalit so'zni qidiradi, xuddi shunday, biz oldindan aniqlangan so'zlarning so'z boyligini yaratishimiz kerak. Qattiq ko'rinadi, shunday emasmi? Go'yoki, biz barcha inglizcha so'zlarning so'z boyligini yaratishimiz kerak va ingliz tilida jami 230 ming so'z bor. Gap shundaki, biz muloqotda eng ko'p ishlatiladigan bir nechta asosiy so'zlarni qo'shishimiz kerak. Hali ham qattiq ko'rinadi? Xavotir olmang, ishni allaqachon Jozef Vizembaum bajargan. Momo Havoning javoblari va oldindan belgilangan kalit so'zlarning bir qismi Jozef Vizembaum tomonidan ishlab chiqilgan Eliza deb nomlangan birinchi chatterbot dasturidan (yuqoridagi rasmda) kiritilgan. Eliza Rojeriya terapevtiga aylangan. Bu juda ilmiy atama emas, demak, u odamlarga o'zlarini yaxshiroq tushunishga va ijobiy fikrlashga undagan. Haqiqatan ham yaxshi ko'rinadi, to'g'rimi? Va Eliza o'z vazifasini juda yaxshi bajardi. Uning qiziquvchan va shubhali munosabati odamlarga yoqdi. Hatto Vizembaum ham odamlarning Elizaga bergan ahamiyatidan hayratda edi. Ko'rinib turibdiki, ular kompyuter bilan gaplashayotganlarini unutib qo'yishdi va kompyuterda o'tirgan go'zal xonim bilan suhbatlashishdi, lekin Eliza unchalik aqlli emas edi. tez orada amalga oshdi. Vaqt o'tishi bilan odamlar uning cheklangan muloqotidan zerikishni boshladilar va uni "soqov" deb atashdi. Qizig'i shundaki, u qanday soqov edi, bu sun'iy intellekt va tabiiy tilni qayta ishlash tarixida katta qadam bo'ldi. Chatterbots bazasini yaratganidan so'ng, bozorga yangi va yaxshi texnologiyalarga ega bo'lgan turli xil botlar chiqdi. Va hozir bizda hamma joyda, aytilganidek, Momo Havoning javoblarining bir qismi ELIZAdan olingan. Bu shuni anglatadiki, hatto Momo Havo ham o'zimning ba'zi fikrlarim bilan bir qatorda Elizaning munosabatiga ega bo'ladi. Yana bir muhim narsa - bu javoblar. Har safar bir xil savol berganingizda, bir xil javob olish zerikarli bo'lishi kerak. Shuning uchun ko'p javoblar bitta kalit so'z uchun saqlanadi. Momo Havo tasodifan qaysi faylni ijro etishini tanlaydi va shu faylni takrorlamasligiga ishonch hosil qiladi. Hammasi shu, oddiy non va sariyog ', lekin javob beradigan ovozlarni oqilona dasturlash juda muhim, chunki u tomoshabinlarga bizning savollarimizga haqiqatan ham javob berayotgandek tasavvur beradi. Keyingi bosqichda biz buni batafsil va dasturlash bilan shug'ullanamiz.

5 -qadam: Kalit so'zni qidirish

Kalit so'zni qidirish
Kalit so'zni qidirish
Kalit so'zni qidirish
Kalit so'zni qidirish
Kalit so'zni qidirish
Kalit so'zni qidirish
Kalit so'zni qidirish
Kalit so'zni qidirish

Oxirgi bosqichda men Momo Havoning naqshlarni moslashtirish texnologiyasi va tabiiy tilni qayta ishlashning dastlabki shakli haqida aytib o'tdim. Xo'sh, bu nima va u qanday ishlaydi? Bu qadamda biz muhokama qiladigan asosiy narsa. O'ylab ko'ring, kimdir sizning ismingizni so'raydi va siz nima ekanligini aytishingiz kerak. Xuddi shu savolni qancha usul bilan berishimiz mumkin? O'qituvchingiz "ismingizni ayta olasizmi?" Deb so'rashi mumkin. Qarindoshingiz "ismingiz kim?" Deb so'rashi mumkin. Sizning ukangiz: "Hey, men sizning ismingizni unutdim, yana bir marta aytasizmi?" Bu shuni anglatadiki, bir xil savol bir necha usul bilan berilishi mumkin. Shunga qaramay, biz bir xil javob berishimiz kerak, ismimiz. Bu shuni anglatadiki, biz barcha jumlalarda umumiy narsani topishimiz kerak. Ko'rinib turibdiki, "sizning ismingiz" so'zi barcha jumlalarda mavjud. Demak, bu bizning maslahatimiz. Ismni so'raydigan barcha savollar uchun biz "sizning ismingiz" iborasini qidirishimiz kerak. Ushbu asosiy naqshga amal qilib, biz barcha kirish satrlariga tegishli javobni bashorat qila olamiz. Aytaylik, kimdir: "Men sizning ismingizni kutish ro'yxatidan topdim. Sizni zaxiralangan o'rindiqlarda o'tirishingizni kutgandim." Endi bu satrda "sizning ismingiz" mavjud bo'lgani uchun, Momo Havo o'zining ismini odamga aytadi … Achchiq, to'g'rimi? Bu asosiy algoritmning katta kamchiliklaridan biri. Qanday bo'lmasin, bu kamdan -kam holatlar bo'ladi. Aks holda, algoritm juda samarali bo'ladi. Naqshni moslashtirish texnologiyasi haqida aytib o'tganimdan so'ng, biz bu satrni qidirayotgan joyimiz qayerdan keladi, deb o'ylash vaqti keldi, aslida bu ovoz Google Voice Recognition tomonidan matnga aylantirildi. Bu erda ishlatiladigan ilova bizning ovozimizni matnga o'zgartiradi va keyin Bluetooth orqali arduino -ga yuboradi. Men ilovadan foydalandim, chunki u eng sodda va eng zo'ridir. Bu ism AMR Voice va uni Google play -da osongina topish mumkin.

6 -qadam: Javoblarni shakllantirish

Javoblarni shakllantirish
Javoblarni shakllantirish

Endi biz savollarni bilib oldik, keyingi qadam javoblarni topishdir. Bu erda qiziqarli va muhim qism keladi … Biz har bir savolga javob beradigan to'g'ri javoblarni topishimiz kerak. Va bu erda ELIZA -dan kiritilgan yana bir funktsiya. Wizembaum ma'lum miqdordagi kalit so'zlar uchun ba'zi javoblarni ishlab chiqdi. Misol "siz" kalit so'zidir. Qachonki dastur aniqlansa, "biz sizni muhokama qilardik - men emas". Shunday qilib, javob "siz" ni o'z ichiga olgan barcha jumlalarga mos keladigan tarzda qilingan. Yana Eliza har safar boshqacha javob berdi. Har bir javob uchun o'ziga xos raqamli manzil bor edi. Bu har bir javob tuzilganida (1 qo'shilgan) ko'paytirildi. Faraz qilaylik, yuqoridagi misolda, agar javobning manzili 1 bo'lsa, manzil 2 ga o'zgartirildi va shuning uchun keyingi fayl 2 o'ynaldi, lekin biz bu o'sish algoritmiga amal qilmaymiz. Ko'ryapsizmi, dasturiy ta'minot uzluksiz ishlatilgandan so'ng, javoblar oldindan aytib bo'ladigan bo'ldi. Siz keyinroq qanday javob berish kerakligini bildingiz. Shunday qilib, biz har bir kalit so'z uchun tasodifiy manzillarni ishlab chiqaramiz. Umuman olganda, bu ikkala holatda ham bir xil, faqat robot bir xil kalit so'z uchun nima deyishini oldindan ayta olmaymiz.

7 -qadam: Taqiqlangan bayonotlar va boshqalar

Taqiqlangan bayonotlar va boshqalar
Taqiqlangan bayonotlar va boshqalar

Robot siz eshitishni istamagan narsani aytganda, suhbatingizda ba'zi holatlar bo'lishi mumkin. Bu erda taqiqlangan bayonotlarni qo'shish zarurati tug'iladi. Taqiqlangan bayonotlar - bu ijro etilishi taqiqlangan manzillar majmuasi. Ovozli manzil foydalanuvchining so'roviga binoan taqiqlangan bayonot sifatida tavsiflanadi. Bundan tashqari, bu manzil Arduino EEPROM -da saqlanishi kerak, shunda Momo Havo o'chirilganidan keyin ham bu taqiqlangan bayonot ekanligini esdan chiqarmasligi kerak. Agar manzil taqiqlanganlardan biri bo'lsa, u holda u ko'paytiriladi yoki kamayadi. Robotga ilgari taqiqlangan so'zni aytishga ruxsat bermoqchi bo'lgan holat bo'lishi mumkin. Bunday holda siz Momo Havoga oxirgi taqiqlangan so'zni aytishi mumkinligini aytishingiz kerak bo'ladi. So'nggi marta taqiqlangan so'z endi o'ynaladi. Taqiqlangan barcha bayonotlarni ijro etish uchun biz qayta o'rnatish tugmachasini biriktirishimiz kerak. Agar bosilsa, taqiqlangan barcha so'zlar ijro etilishi mumkin, keyin esa Momo Havo javoblarni takrorlamasligiga ishonch hosil qilish kerak. Bu tasodifiy sonlarning kamchilikidir. Xuddi shu tasodifiy sonlar ketma -ket ishlab chiqarish ehtimoli bor. Bu bizning robotni bir xil javobni qayta -qayta aytishga majbur qiladi. Buning uchun biz bayonotlarning takrorlanishiga to'sqinlik qiladigan boshqa kichik funktsiyani kiritishimiz kerak. Buning uchun biz oxirgi bayonotning manzilini xotirada saqlashimiz va uning hozirgi bilan bir xilligini tekshirishimiz kerak. Agar shunday bo'lsa, u holda, man qilingan bayonotlarda bo'lgani kabi, manzil qiymati ham o'sadi yoki kamayadi.

8 -qadam: Kod yozish

Kodda yozish
Kodda yozish
Kodda yozish
Kodda yozish
Kodda yozish
Kodda yozish

Kalit so'zni qidirish uchun indexOf buyrug'idan foydalanamiz. Buyruq boshqa satr ichidagi belgini yoki satrni topadi. Agar topilsa, bu satr indeksini qaytaradi, topilmasa -1 qaytariladi. Shunday qilib, bizning dasturimizda buni quyidagicha yozishimiz kerak: if (voice.indexOf ("sizning ismingiz")> -1) {// agar indeks -1 dan katta bo'lsa // satr topilganligini bildiradi} Hozir biz mag'lubiyatni xotirada saqlaganmiz va uning ichida kalit so'zni topganmiz, endi javoblarni ko'rib chiqishimiz kerak bo'ladi. Aytganimizdek, tasodifiy sonlar ma'lum bir son oralig'ida hosil bo'ladi (ovozli fayllarning manzillari). Bu erda random () buyrug'i keladi. Quyidagi sintaksis: tasodifiy (min, max); // tasodifiy son min va max oralig'ida hosil bo'ladi, biz har bir diapazonning minimal sonini va maksimal sonini aniqlaymiz va bu kodni qo'llaganimizda quyidagicha ko'rinadi: if (voice.indexOf ("sizning ismingiz")> - - 1)) {minNo = 0; maxNo = 5; RandomNumber = tasodifiy (minNo, maxNo);} Endi javoblarni qayta ishlash boshlanadi. Oxirgi bosqichda men aytdimki, raqamlar algoritm asosida ko'paytiriladi yoki kamayadi. Bu algoritm biz hozir muhokama qilayotgan narsadir, chunki bu qism siz xohlagan darajada ko'paytira olmaysiz yoki kamaytira olmaysiz. Kattalashtirilgan yoki kamaytirilgan raqamlar oralig'ida bo'lishi kerak. Yuqoridagi holatda bo'lgani kabi, "sizning ismingiz" kalit so'zida bizda 0 dan 5 gacha va tasodifiy son 5 ga teng, shuning uchun agar siz uni ko'paytirsangiz, siz boshqa kalit so'zning ovozli faylini ijro etasiz. Sizningcha, bu qanday bo'ladi? Siz: "Hey, iltimos, ismingizni ayting", deb so'rasangiz, robot: "Men kukilar va elektr zaryadini iste'mol qilishni yaxshi ko'raman", deb javob beradi. Minimal raqam uchun ham xuddi shunday. Agar tasodifiy raqam 0 bo'lsa, uni kamaytira olmaysiz. Shuning uchun algoritm juda muhim. O'ylab ko'ring: biz sonni maksimal sondan kichik bo'lganda ham, minimal sondan katta bo'lganda ham kamaytira olamiz. Yaratilgan son 0 ga teng yoki 5dan kam bo'lsa, sonni ko'paytiramiz. Boshqa tomondan, agar u 5 ga teng bo'lsa, biz uni kamaytiramiz, chunki bu raqam belgilangan doirada ekanligiga ishonch hosil qilamiz. Yuqorida aytib o'tilganidek, ular EEPROMda saqlanadi. Buning uchun, birinchi navbatda, biz taqiqlangan qatorda bo'sh xotirani qidiramiz. Faraz qilaylik, 4 -manzil bepul, keyin biz fayl raqamini bo'sh qator manziliga kiritamiz va shu manzilni EEPROM.for (int i; i if (hech qachon == 0) {EEPROM.write (hech qachon , xotira);}} Demak, Wtv020sd16p moduli modul.playVoice () buyrug'i va taklif qilingan fayl raqami yordamida o'ynaladi. Wtv020 modulining ishlashi keyinroq muhokama qilinadi.

9 -qadam: hissiyotlarni kiritish

Tuyg'ularni kiritish
Tuyg'ularni kiritish
Tuyg'ularni kiritish
Tuyg'ularni kiritish
Tuyg'ularni kiritish
Tuyg'ularni kiritish

Hozirgacha bizning robotimiz aytganlarimizni taniy oladi, xotirada saqlaydi va savollarga munosib javob topadi. Endi savol his -tuyg'ularni kiritish uchun keladi. Shubhasiz, har kimga tirik yuz yoqadi va savollarga javob beradigan dastur. Loyihada 16x2 LCD displey ishlatiladi. Ko'zlarni chop etish etarli. Ko'zlarni yaratish uchun biz maxsus belgi funktsiyasidan foydalanishimiz kerak. Maxsus belgi bizga piksellarni aniqlash orqali yangi belgilar yaratishga imkon beradi. Bu haqda biroz keyinroq batafsil ma'lumot beramiz. Birinchidan, shuni yodda tutish kerakki, Arduino faqat 8 ta maxsus belgini qo'llab -quvvatlaydi. Shunday qilib, biz his -tuyg'ularni faqat 8 ta belgidan boshqarishimiz kerak. Har bir belgi ma'lum bir qutiga bosiladi va 16 ta ustun va 2 ta satrdan iborat bo'lib, jami 32 ta qutini tashkil qiladi.

Arduino -da maxsus belgilar haqida yaxshi ma'lumotni Internetda topishingiz mumkin. Bu havolaga ham tashrif buyurishingiz mumkin:

[Maxsus Belgilar Arduino] Maxsus belgilar baytining tuzilishi biroz shunday bo'lishi kerak:

Oddiy ko'rinish: Chap quti0b01111, 0b01111, 0b01111, 0b01111, 0b01111, 0b01111, 0b01111, 0b01111, O'ng quti0b11110, 0b11110, 0b11110, 0b11110, 0b11110, 01111, 011110, 011. Bu shuni anglatadiki, butun ko'zni to'ldirish uchun bizga 4 ta quti kerak bo'ladi. Chapda va o'ngda ikkita qator, bitta ko'z uchun jami to'rtta quti. Chap quti bayti chapdagi ikkita qatorni, o'ngdagi quti esa o'ng qatorlarni yopishi kerak. Shunday qilib, bu Momo Havoning to'liq ko'zini tashkil qiladi. Xuddi shu narsani ikkinchi ko'z bilan takrorlasak, biz Momo Havoning neytral ko'rinishini olamiz. Shuni esda tutish kerakki, biz sakkizta maxsus belgidan bittasini ishlatganmiz. Va jami beshta tuyg'u bor: Glee, Sad, Squint, Normal va Blink. Qolgan ettita maxsus belgiga kelsak, biz barcha ifodalarga mos keladigan tarzda sozlashimiz kerak. Bo'sh joy yaratish uchun biz har bir ko'z uchun 2 qutidan foydalanamiz. Hajmi biroz kichikroq bo'lishi ajablanarli emas, lekin bunga inson ko'zlari e'tibor bermaydi. LCD funktsiyalari orasiga biroz kechikishlar qo'shganingizga ishonch hosil qiling, aks holda Arduino beqaror bo'ladi.

10 -qadam: ulanishlarni o'rnatish

Ulanishlarni o'rnatish
Ulanishlarni o'rnatish
Ulanishlarni o'rnatish
Ulanishlarni o'rnatish
Ulanishlarni o'rnatish
Ulanishlarni o'rnatish

LCD moduli: pinlarni bu erda aytib o'tilganidek ulang: RS: qazish pimi 12RW: GndEnable: 7d4: qazish pin 8 d5: qazish pin 9 d6: qazish pin 10 d7: qazish pin 13A (anod) 5vK (katod) ga gCHC 05 moduli: Quyidagi ulanishlarni bajaring: HC 05 TX pin to Arduino RX pinHC 05 RX pin to Arduino TX pin State Arduino pin pin 11 Aloqa TX va RX pinlari yordamida amalga oshiriladi. Shtat pimi HC 05 orqali ulangan yoki ishlamayotganligini tekshirish uchun kerak bo'ladi. WTV 020 SD 16p modulli pin1: Qayta tiklash pimi, uni 2pin7 ga ulang. 4pin15 pinini qazish uchun: 5-pinli 2-pinli bandga ulangan band: bu pinni ovoz balandligi orqali kuchaytirgichga, shuningdek, ayol ovozli ulagichga ulang. pin4 karnayga+pin5 ga ulanishi kerak- Gnd 8 -pin va 16 -pinda 3.3V quvvat manbai.

Kuchaytirgich Momo Havoning ichki dinamikini o'ynashga yordam beradi, audio jak esa tashqi kuchaytirgichga va kattaroq dinamiklarga ulanadi.

11 -qadam: WTV020SD16p moduli (ixtiyoriy)

Image
Image
WTV020SD16p moduli (ixtiyoriy)
WTV020SD16p moduli (ixtiyoriy)
WTV020SD16p moduli (ixtiyoriy)
WTV020SD16p moduli (ixtiyoriy)

Eslatma: bu qadam ixtiyoriy. U WTV 020 SD 16p modulining ishlashi va tavsifi bilan shug'ullanadi.

Ovoz modulining demosini ushbu havolada ko'rishingiz mumkin:

[Videoni ijro etish]

Robotning gapirish rejimi WTV 020 SD moduli bilan bajariladi. Modul robot uchun ovozli fayllarni ijro etish uchun ishlatiladi. Har qanday savol berilganda, arduino modulni SD -kartadagi tegishli ovozli faylni ijro etishga majbur qiladi. Modulda arduino, reset, soat, ma'lumotlar va band pinlar bilan aloqa qilish uchun to'rtta ketma -ket ma'lumotlar liniyasi mavjud va biz kerakli faylni ijro etish uchun.playVoice () buyrug'idan foydalanamiz. Masalan: module.playVoice (9): // SD -kartada saqlangan 9 -faylni o'qing Fayllarning nomlari kasrli bo'lishi kerakligini unutmang (0001, 0002…). Va fayllar AD4 yoki WAV formatida bo'lishi kerak. Bundan tashqari, modul faqat 1 gigabaytli micro SD kartada ishlaydi. Ba'zi modullar hatto 2 gigabaytlik kartalarda ham ishlaydi va kartada maksimal 504 ta ovozli fayl bo'lishi mumkin. Shunday qilib, siz ko'plab savollarga javob beradigan ovozli fayllarni qo'shishingiz mumkin.

Siz hatto o'zingizning ovozli AD4 fayllaringizni yaratishingiz mumkin, birinchidan, sizda ikkita dastur bo'lishi kerak, ovozni tahrirlash dasturi va 4D SOMO TOOL deb nomlangan dastur, bu fayllarni AD4 formatiga o'zgartiradi. Ikkinchidan, siz robot ovozlarini tayyorlashingiz kerak. Siz matnni nutqqa aylantira olasiz, hatto o'z ovozingizni yozib, Robot ovozini chiqarishingiz mumkin. Bularning ikkalasini ham Ovozni tahrirlash dasturida bajarish mumkin. Shubhasiz, robotlar odam ovozi bilan gaplashsalar, yaxshi ko'rinmaydi. Shuning uchun matnni nutqqa aylantirish yaxshiroq bo'lishi kerak. Buning uchun Microsoft Anna va Microsoft Sam kabi turli xil dvigatellar yordam beradi. Meniki Microsoft Eva -ga asoslangan. Bu ovozlar Cortana -ga juda mos keladi. Ovozli fayllarni tayyorlagandan so'ng, uni 32000 Gts va WAV formatida saqlash kerak. Buning sababi, modul 32000 Gts gacha bo'lgan ovozli fayllarni o'ynata oladi. Keyin fayllarni AD4 formatiga o'tkazish uchun 4D SOMO TOOL -dan foydalaning. Buning uchun SOMO TOOL -ni oching, fayllarni tanlang va AD4 kodini bosing va ovozli fayllar tayyor. Malumot uchun yuqoridagi rasmni tekshirib ko'rishingiz mumkin. Agar siz robotik ovozlar haqida batafsil ma'lumotga ega bo'lishni istasangiz, bu erga kirishingiz mumkin: [Robotik ovozlarni chiqarish]

12 -qadam: dasturiy ta'minot qismi

Dasturiy ta'minot qismi
Dasturiy ta'minot qismi
Dasturiy ta'minot qismi
Dasturiy ta'minot qismi
Dasturiy ta'minot qismi
Dasturiy ta'minot qismi

Arduino Pro mini -da dasturlashda ozgina muammo bor. Aslida muammo emas, faqat bitta qo'shimcha qadam. Arduino Pro mini -da boshqa Arduino platalari singari o'rnatilgan dasturchi yo'q. Shunday qilib, siz tashqi yoki UNO eski arduino sotib olishingiz kerak. Bu erda dastur Arduino UNO yordamida dasturni qanday yuklash kerakligi tasvirlangan. Yiqilishdan eski Arduino UNO taxtasini oling va Atmega 328p -ni chiqarib oling. Keyin quyidagicha ulang: 1. UNO -dagi TX pinini Pro Mini -dagi TX -ga 2. UN -ning RX -pinini Pro MIni3 -ning RX -piniga. Birlashgan Millatlar Tashkilotining pinini Pro Mini4 -ni tiklash piniga qaytaring. VCC va Ground Pro Mini -ni UNO -ga ulang. Arduino dasturini, ovozni aniqlash dasturini va pastda joylashgan kutubxonalarni yuklab oling. Dastur hali ishlab chiqilmoqda. Agar sizda bu borada biron bir muammo bo'lsa, so'rashdan qo'rqmang, keyin kabelni kompyuterga ulang. Arduino Pro Mini sifatida taxtani tanlang va to'g'ri COM portini tanlang. Keyin yuklash tugmasini bosing va dastur Pro Mini -ga yuklanganini ko'ring.

Keyin Ovozni aniqlash dasturini va ovozli fayllarni yuklab oling.

13 -qadam: tanani tayyorlash

Tanani tayyorlash
Tanani tayyorlash
Tanani tayyorlash
Tanani tayyorlash
Tanani tayyorlash
Tanani tayyorlash

Men kichkina qutichani topdim va uni tanaga juda mos deb topdim. Siz ustaxonada topilgan har qanday qutini ishlatishingiz mumkin yoki kartondan qutini yasashingiz mumkin. LCD modulini ulash uchun to'rtburchaklar shaklida bo'lakni kesib oling. Yuqorida, men ovoz balandligini ulash uchun kichik bir teshikni kesib oldim va kalitlarga va audio ulagichni ulash uchun. Men g'ildiraklar uchun qutining yon tomonlariga ikkita shisha qopqoqni biriktirdim. Faqat qutida kontaktlarning zanglashiga kirish uchun etarli joy borligiga ishonch hosil qiling. Korpusga, shuningdek kontaktlarning zanglashiga, so'ngra qutining yuqori qismidagi tovushni ulang. Keyin sxemani ichkariga qo'ying va robotingiz tugadi.

14 -qadam: Yaxshi

Juda qoyil!
Juda qoyil!
Juda qoyil!
Juda qoyil!

Endi siz o'zingiz bilan gaplashadigan va o'zingizni baxtli his etadigan yoqimli robot loyihangizni yakunladingiz. Bu sizning loyihangiz tugallangach va to'liq ishlayotganda DIYer bo'lishning eng baxtli nuqtasi. Xavotir olmang, agar siz bir urinishda muvaffaqiyatga erisha olmasangiz, siz robotning har bir qismini tushunish uchun ko'p harakat qilishingiz kerak. Va bu erda DIYers bu dunyoga keladi, lekin bu loyihaning oxiri emas. Momo Havo har doim katta darajada rivojlanadi, men yoki siz kabi DIYers. Bu ko'rsatmalarni ko'rib, nima qilganingizni eshitishni istardim. Hurmat bilan, RS3655

Tavsiya: