Turinys:

Ieva, „Arduino Chatbot“: 14 žingsnių (su nuotraukomis)
Ieva, „Arduino Chatbot“: 14 žingsnių (su nuotraukomis)

Video: Ieva, „Arduino Chatbot“: 14 žingsnių (su nuotraukomis)

Video: Ieva, „Arduino Chatbot“: 14 žingsnių (su nuotraukomis)
Video: Семинар по расширениям Python: фрактальная геометрия с Python Turtle 2024, Lapkritis
Anonim
Image
Image
Ieva, „Arduino Chatbot“
Ieva, „Arduino Chatbot“
Ieva, „Arduino Chatbot“
Ieva, „Arduino Chatbot“

Sveiki, pasidaryk pats, ar buvo atvejų, kai tikrai norėjai su kuo nors pasidalyti savo jausmais, o šalia nebuvo nė vieno patikimo? Šiuolaikiniame judriame pasaulyje tai yra dažnas atvejis. Na, čia gali padėti „chatbot“, kad jaustumėtės geriau. Ir tai pristato Eve. Eve yra mielas mažas pokalbių robotas. Kaip visi žino, „chatterbot“arba „chatbot“yra kompiuterinė programa ar įrenginys, vedantis pokalbį su žmonėmis, remiantis teksto ar klausos metodais. Automatiniai balsai, kuriuos girdite skambindami klientų aptarnavimo tarnyboje arba banko linijoje, yra pokalbių roboto pavyzdys. Su ja galite pasidalyti savo patirtimi, jausmais ir, svarbiausia, ginčytis dėl skirtingų dalykų; ji yra gerai patyrusi. Kadangi tai yra svarbiausia „chatbot“funkcija, priverskite žmogų jaustis laimingu. Ankstyvas natūralaus kalbos apdorojimo (NLU) ir dirbtinio intelekto pavyzdys, Ieva gali atsakyti į bet kurį jos užduodamą klausimą. Nėra taip, kad ji gali atsakyti tik į konkretų klausimų skaičių. Ji gali dainuoti, pasakoti anekdotus, istorijas ir daryti viską, kas leidžia jaustis gerai. Jei ji sako tai, ko nenorite girdėti, tiesiog pasakykite jai, prašau to daugiau nesakyti, ir ji tai prisimins. Ji netgi žino, kad neturėtų kartoti tų pačių atsakymų ir pokalbių, kad pokalbis netaptų nuobodus. Remdamasi paprastais, pigiais komponentais ir pagrindiniu programavimu, ji tikrai gali elgtis protingai. Be to, jos turimos skystųjų kristalų akys parodo, kaip ji jaučiasi, kai ką nors sakote. Taigi iš esmės šioje pamokoje mes pradėsime nuo „chatbot“apibrėžimo, pažvelgsime į dizainą, kai kurias teorijas, kuriomis grindžiama Ieva, gamybą ir galiausiai programavimo dalis. Atrodo, ar tai daug? Nesijaudinkite, kelionėje bus labai įdomu. Roboto demonstraciją galite peržiūrėti aukščiau arba šioje nuorodoje: [Paleisti vaizdo įrašą]

1 žingsnis: „Chatbot“apibrėžimas

„Chatbot“apibrėžimas
„Chatbot“apibrėžimas
„Chatbot“apibrėžimas
„Chatbot“apibrėžimas
„Chatbot“apibrėžimas
„Chatbot“apibrėžimas

Kaip minėta aukščiau, „chatbot“yra programa, vedanti pokalbį su žmonėmis. Šiais laikais jie yra tokie įprasti, kad vargu ar yra nežinomų žmonių. Pradedant nuo virtualių asistentų, „Siri“ir „Google Assistant“, yra „Mitsuku“ir „Evie“, su kuriais galite pasidalyti savo jausmais. Kaip minėta aukščiau, pokalbių robotai yra pagrįsti tekstiniu arba garsiniu metodu, todėl juos galima suskirstyti į du. Teksto metodu pokalbiai vyksta rašytinio teksto pavidalu, kaip ir „WhatsApp“. Tuo tarpu klausos metodu pokalbiai vyksta žodžiu, kaip su tikru žmogumi. Manau, įdomiau yra su kuo nors pasikalbėti žodžiu kalbant su juo, o ne tik rašyti jam žinutes. Be jokios abejonės, tekstinės komunikacijos pranešimų programos atitinka žmonių reikalavimus, tačiau manau, kad kalbėjimas kalbant yra geriausias būdas atsikratyti emocinių sutrikimų ir jaustis geriau. Taigi tai yra pagrindinė priežastis, kodėl suprojektavau Ievą kaip klausos pokalbių robotą.

2 žingsnis: Ievos kilmė

Ievos kilmė
Ievos kilmė

Na, vieną dieną Ieva man į galvą šovė. Taip atsitiko, kai pamačiau, kaip vaikas vienas klajojo mokykloje, o kiti žaidė proto kupini džiaugsmo. Tą kartą galvojau apie draugą, kuris niekam nediskriminuoja ir neleidžia niekam jaustis įskaudintam, su kuriuo gali pasidalyti savo jausmais ir būti laiminga visą laiką. Tada mano galvoje šmėkštelėjo maža miela Ievos struktūra, prie kurios pradėjau dirbti. Ieva mane nuvylė maždaug šimtą kartų. Manau, tai buvo 101 -as kartas, kai ji dirbo ir privertė mane jaustis tikrai laimingu. Taigi tai buvo Ievos kilmė. Norėjau, kad ji būtų protinga, bet kuo paprastesnė, kad kiekvienas ją lengvai padarytų. Be jokios abejonės, ji nėra visiškai protinga ir kartais sako kvailus atsakymus, ji gali elgtis kaip draugė. O dabar užteks istorijų, pradėkime kurti Ievą.

3 žingsnis: Surinkite komponentus ir įrangą:

Komponentų ir įrangos surinkimas
Komponentų ir įrangos surinkimas
Komponentų ir įrangos surinkimas
Komponentų ir įrangos surinkimas
Komponentų ir įrangos surinkimas
Komponentų ir įrangos surinkimas

Toliau pateikiami komponentai, kuriuos reikia surinkti: „Arduino Pro Mini“(arba „Arduino Nano“) Wtv-020-SD-16p garso modulis HC-05 „Bluetooth“modulis 16x2 LCD modulis LM7805 reguliatorius ICA stiprintuvo modulis (aš naudojau PAM8403 grandinę) 8 omų garsiakalbis A moteris garso jacka 9v baterija ir „Android“telefonas Taigi tai yra būtini komponentai. Kitas svarbus dalykas - kaina. Ieva man kainavo apie 3000 INR. Kaina jūsų šalyje gali skirtis, tačiau Indijoje tai yra maždaug tokia kaina. Mažas dalių aprašymas: „Arduino Pro mini“yra pagrindinis mūsų roboto MCU. Aš jį naudoju dėl mažo dydžio, paprastumo ir puikaus veikimo. Jis atitinka visus mūsų roboto reikalavimus. Išskyrus balso atpažinimo funkciją, kurią atlieka „Android“(aptarta vėliau), visos kitos funkcijos, pradedant raktinių žodžių paieška ir išvesties formavimu, atliekamos pačiame „Pro Mini“. Nesijaudinkite dėl aukščiau paminėtų terminų, jei to nesuprantate, visi jie aptariami vėlesnėje dalyje. Wtv020sd 16p modulis naudojamas garso failams atkurti, hc 05 „Bluetooth“ryšiui su „Android“ir LCD ekranas emocijas. Mums reikia moteriško garso lizdo, kad robotas būtų prijungtas prie išorinio stiprintuvo. „Arduino“čia naudojamas kaip pagrindinis valdiklis. Jis gauna „Bluetooth“duomenis per „HC 05“„Bluetooth“modulį ir atkuria failą per balso modulį WTV-020-SD-16p. Emocijos rodomos skystųjų kristalų modulyje ir 9 V maitinimo elementui. Ieva atpažįsta kalbas per „Android“įrenginio „Google Voice“atpažinimą. Vėliau jis bus tinkamai aptartas atitinkamame žingsnyje. Blogos naujienos apie „Arduino Pro Mini“: IT RETIRED iš rinkos. Tai reiškia, kad „Arduino“oficialiai nustojo jį gaminti. Tačiau vis tiek galite jį rasti daugelyje svetainių, įskaitant „Ebay“. Daugelis trečiųjų šalių gamintojų vis dar gali gaminti ir parduoti plokštę. Nesijaudinkite, jei nepavyko jo rasti, galite naudoti „Arduino Nano“. Tai neturi įtakos našumui ir dydžiui.

4 žingsnis: teorija 1 dalis: istorija ir įvadas

1 teorija. Istorija ir įvadas
1 teorija. Istorija ir įvadas
1 teorija. Istorija ir įvadas
1 teorija. Istorija ir įvadas

Ieva yra pagrįsta ankstyva natūralios kalbos apdorojimo forma, „modelio atitikimo“technologija. Ji veikia taip, kad gavus eilutę, ji ieško iš anksto apibrėžto žodžio ar frazės toje eilutėje. Tarkime, į klausimą „kiek tau metų?“Programa ieško „seno“žodžio. Jei tai pavyksta, jis paleidžia atitinkamą balso failą per „wtv020sd“modulį. Jei nepavyksta, jis ieško kito iš anksto apibrėžto raktinio žodžio. Kaip ir mes turime sukurti iš anksto nustatytų žodžių žodyną. Atrodo sunku, ar ne? Tarsi turėtume sukurti visų angliškų žodžių žodyną ir iš viso yra apie 230 tūkstančių žodžių anglų kalba. Faktas yra tas, kad mums tereikia pridėti keletą pagrindinių žodžių, kurie dažniausiai naudojami mūsų bendravime. Vis dar atrodo kietas? Nesijaudinkite, darbą jau atliko Joseph Wizembaum. Dalis Ievos atsakymų ir iš anksto apibrėžtų raktinių žodžių buvo įtraukti į pačią pirmąją pokalbių programą „Eliza“, kurią sukūrė Joseph Wizembaum (pavaizduota aukščiau). Eliza buvo sukurta kaip Rogerijos terapeutė. Tai nėra labai mokslinis terminas, tai reiškia, kad ji patarinėjo žmonėms, priversdama juos geriau suprasti save ir priversti juos mąstyti pozityviau. Atrodo tikrai gerai, tiesa? O Eliza labai gerai sugebėjo atlikti savo pareigą. Jos smalsų ir skeptišką požiūrį pamėgo žmonės. Net Vizembaumas buvo nustebintas žmonių svarbos Elizei. Atrodė, kad jie pamiršo, kad kalbasi su kompiuteriu, ir susižavėjo gražia ponia, sėdinčia kompiuterio viduje, su jais besišnekučiuojančių. Bet Eliza nebuvo tokia protinga; tai netrukus suprato. Laikui bėgant žmonės pradėjo nuobodžiauti dėl riboto bendravimo ir ji buvo vadinama „durnu“. Nenuostabu, kokia ji buvo kvaila, tai buvo didelis šuolis dirbtinio intelekto ir natūralios kalbos apdorojimo istorijoje. Įkūrę „Chatterbots“bazę, į rinką atėjo įvairūs robotai su nauja ir geresne technologija. Ir dabar mes juos turime visur. Kaip minėta, dalis Ievos atsakymų buvo gauta iš ELIZA. Tai reiškia, kad net Ieva tam tikru mastu turės Elizos požiūrį ir kai kurias mano idėjas. Kitas svarbus dalykas yra atsakymai. Turėtų būti tikrai nuobodu gauti tuos pačius atsakymus kiekvieną kartą, kai užduodate tą patį klausimą. Todėl į tą patį raktinį žodį saugoma daug atsakymų. Ieva atsitiktinai pasirenka, kurį failą paleisti, taip pat įsitikindama, kad nekartoja to paties failo. Štai viskas, paprasta duona ir sviestas, tačiau svarbu sumaniai užprogramuoti atsakančius balsus, kad jie žiūrovams suteiktų iliuziją, tarsi ji tikrai atsakytų į mūsų klausimus. Taigi tai buvo trumpas įvadas į Ievos veikimą. Kitame etape mes tai išsamiai išnagrinėsime ir programuosime.

5 veiksmas: ieškokite raktažodžio

Raktinio žodžio paieška
Raktinio žodžio paieška
Raktinio žodžio paieška
Raktinio žodžio paieška
Raktinio žodžio paieška
Raktinio žodžio paieška
Raktinio žodžio paieška
Raktinio žodžio paieška

Paskutiniame etape aš paminėjau apie Ievos modelių derinimo technologiją ir ankstyvą natūralios kalbos apdorojimo formą. Taigi, kas tai yra ir kaip tai veikia? Tai yra pagrindinis dalykas, kurį aptarsime šiame žingsnyje. Taigi pagalvokite, kažkas klausia jūsų vardo ir turite pasakyti, kas tai yra. Kiek būdų galime užduoti tą patį klausimą? Jūsų mokytojas gali paklausti „ar pasakyk man savo vardą?“Giminaitis gali paklausti: "koks tavo vardas?" Jūsų brolis gali pasakyti: "Ei, aš tiesiog pamiršau tavo vardą. Ar pasakysi tai dar vieną kartą?" Taigi tai reiškia, kad tą patį klausimą galima užduoti keliais būdais. Tačiau turime atsakyti tuo pačiu, savo vardu. Taigi tai reiškia, kad visuose sakiniuose turime rasti kažką bendro. Aiškiai matyti, kad žodis „tavo vardas“yra visuose sakiniuose. Taigi tai mūsų užuomina. Į visus klausimus, užduodančius vardą, turime ieškoti frazės „tavo vardas“. Laikydamiesi šio pagrindinio modelio, mes galime numatyti atitinkamą atsakymą į visas įvesties eilutes. Tarkime, kažkas pasakė: „Radau tavo vardą laukiančiųjų sąraše. Tikėjausi, kad būsi rezervuotose vietose.“. Dabar, kai šioje eilutėje yra „tavo vardas“, Ieva, būdama nekalta, pasakys savo vardą asmeniui… Kvailas tiesa? Tai yra vienas iš pagrindinių šio pagrindinio algoritmo trūkumų. Šiaip ar taip, tai būtų reti atvejai. Priešingu atveju algoritmas yra labai efektyvus. Dabar, kai jau minėjau apie modelio atitikimo technologiją, atėjo laikas pagalvoti, iš kur atsiranda ši įvesties eilutė, kur mes ieškome šios eilutės. Na, ši eilutė iš tikrųjų yra mūsų balsas, kurį „Google“balso atpažinimas pavertė tekstu. Čia naudojama programa konvertuoja mūsų balsą į tekstą ir tada siunčia tą patį „arduino“per „Bluetooth“. Aš naudoju programą, nes ji yra paprasčiausia ir geriausia tokio pobūdžio. Pavadinimas yra „AMR Voice“ir jį galima lengvai rasti „Google Play“.

6 žingsnis: atsakymų formulavimas

Atsakymų formulavimas
Atsakymų formulavimas

Dabar, kai mes atpažinome klausimus, kitas žingsnis turėtų būti rasti atsakymus. Čia yra įdomi ir svarbi dalis … Turime rasti tinkamus atsakymus, kad patenkintume kiekvieną klausimą. Ir čia yra dar viena funkcija, įtraukta iš ELIZA. „Wizembaum“sukūrė tam tikrus raktinių žodžių atsakymus. Pavyzdys yra raktinis žodis „tu“. Kai tik buvo aptiktas programos rezultatas, „mes aptarėme jus, o ne mane“. Taigi atsakymas buvo pateiktas taip, kad tiktų visiems sakiniams, kuriuose yra „tu“. Toliau Eliza kiekvieną kartą davė vis kitokį atsakymą. Kiekvienam atsakymui buvo pateiktas tam tikras skaitinis adresas. Tai buvo padidinta (pridėta 1) kiekvieną kartą, kai buvo suformuluotas atsakymas. Tarkime, kaip ir aukščiau pateiktame pavyzdyje, jei atsakymo adresas buvo 1, adresas buvo pakeistas į 2, todėl failas 2 buvo paleistas toliau. Tačiau mes nesilaikysime šio didinimo algoritmo. Matote, po tam tikro nuolatinio programinės įrangos naudojimo, atsakymai tapo nuspėjami. Jūs supratote, kuris atsakymas bus pateiktas toliau. Taigi šiuo tikslu mes gaminsime atsitiktinius kiekvieno raktinio žodžio adresus. Apskritai abiem atvejais yra tas pats, tik skirtumas yra tas, kad negalime numatyti, ką robotas pasakys toliau dėl to paties raktinio žodžio.

7 žingsnis: draudžiami pareiškimai ir kt

Draudžiami pareiškimai ir kt
Draudžiami pareiškimai ir kt

Jūsų pokalbyje gali būti atvejų, kai robotas sako tai, ko nenorite girdėti. Taigi čia atsiranda poreikis pridėti draudžiamus teiginius. Draudžiami teiginiai yra daugybė adresų, kurių negalima leisti. Balso adresas apibūdinamas kaip draudžiamas teiginys vartotojo prašymu. Be to, šis adresas turi būti saugomas „Arduino“EEPROM, kad Ieva nepamirštų, jog tai yra draudžiamas teiginys net ir tada, kai ji yra išjungta. Iš esmės tai, ką programa daro, yra patikrinti kiekvieną adresą, kuris turi būti paleistas. Jei adresas yra vienas iš draudžiamų, jis padidinamas arba sumažinamas. Be to, gali būti atvejis, kai norite leisti robotui pasakyti anksčiau uždraustą žodį. Tokiu atveju turėtum pasakyti Ievai, kad ji gali pasakyti paskutinį draudžiamą žodį. Žodis, kuris paskutinį kartą buvo uždraustas, dabar bus žaidžiamas. Kad visus draudžiamus teiginius būtų galima paleisti, turime prijungti atstatymo jungiklį. Jei paspausite, visi draudžiami teiginiai taps žaidžiami. Kitas svarbus dalykas bus įsitikinti, kad Ieva nekartoja atsakymų. Tai savotiškas atsitiktinių skaičių trūkumas. Tikėtina, kad tie patys atsitiktiniai skaičiai bus gaminami serijoje. Tai privers mūsų robotą kartoti tą patį atsakymą. Tam turime įtraukti dar vieną nedidelę funkciją, kuri neleidžia kartoti teiginių. Tam turime atmintyje išsaugoti paskutinio teiginio adresą ir patikrinti, ar jis sutampa su dabartiniu. Jei taip, tada adreso vertė padidinama arba sumažinama, kaip ir draudžiamų teiginių atveju.

8 žingsnis: kodo rašymas

Rašymas kode
Rašymas kode
Rašymas kode
Rašymas kode
Rašymas kode
Rašymas kode

Raktinio žodžio paieškai naudojame komandą indexOf. Komanda suranda simbolį ar eilutę kitoje eilutėje. Jei randama, ji grąžina tos eilutės indeksą, o -1 -jei nerasta. Taigi savo programoje turime ją parašyti taip: if (voice.indexOf ("tavo vardas")> -1) {// jei indeksas yra didesnis nei -1 // tai reiškia, kad eilutė buvo rasta} Dabar kad eilutę išsaugojome atmintyje ir jos viduje taip pat radome raktinį žodį, dabar turėsime tvarkyti atsakymus. Kaip minėta, atsitiktiniai skaičiai generuojami tam tikrame skaičių diapazone (balso failų adresai). Čia ateina komanda random (). Toliau pateikiama sintaksė: atsitiktinė (min, max); // atsitiktinis skaičius generuojamas min ir max diapazone. Mes apibrėžiame mažiausią skaičių ir didžiausią kiekvieno diapazono skaičių, ir tai pritaikius mūsų kodas atrodo maždaug taip: if (voice.indexOf ("jūsų vardas")> - 1)) {minNo = 0; maxNo = 5; Atsitiktinis skaičius = atsitiktinis (minNo, maxNo);} Dabar ateina atsakymų tvarkymas. Paskutiniame žingsnyje sakiau, kad skaičiai didinami arba mažinami pagal algoritmą. Šis algoritmas yra tai, apie ką mes dabar diskutuojame. Ši dalis yra labai svarbi ta prasme, kad jūs negalite tiesiog padidinti ar sumažinti taip, kaip norite. Padidintas arba sumažintas skaičius turi būti diapazone. Tarkime, kaip ir aukščiau nurodytu atveju, raktinio žodžio „tavo vardas“diapazonas yra nuo 0 iki 5, o atsitiktinis skaičius yra 5, taigi, jei jį padidinsite, galiausiai paleisite kito raktinio žodžio balso failą. Kaip manai, kaip bus? Jūs klausiate: „Ei, prašau, pasakyk man savo vardą“, o robotas atsako: „Man patinka valgyti sausainius ir elektros krūvį“. Tas pats pasakytina ir apie minimalų skaičių. Jei atsitiktinis skaičius yra 0, jo sumažinti negalima. Todėl algoritmas yra labai svarbus. Pagalvokite: mes galime padidinti, kai skaičius yra mažesnis už didžiausią skaičių, ir sumažinti, kai jis yra didesnis už minimalų skaičių. Kai sukurtas skaičius yra lygus 0 arba mažesnis nei 5, skaičius padidinamas. Kita vertus, kai jis yra lygus 5, mes jį sumažiname, kad įsitikintume, jog skaičius yra nurodytame diapazone. Dabar apie draudžiamus teiginius. Kaip minėta, jie saugomi EEPROM. Tam pirmiausia ieškome laisvos atminties uždraustame masyve. Tarkime, kad adresas 4 yra laisvas, tada įvedame failo numerį į laisvojo masyvo adresą ir tą patį adresą įrašome į EEPROM.for (int i; i if (never == 0) {EEPROM.write (niekada , atmintis);}} Taigi viskas, Wtv020sd16p modulis bus paleistas naudojant modulį.playVoice () ir siūlomą failo numerį. Wtv020 modulio veikimas bus aptartas vėliau.

9 žingsnis: įterpkite emocijas

Emocijų įterpimas
Emocijų įterpimas
Emocijų įterpimas
Emocijų įterpimas
Emocijų įterpimas
Emocijų įterpimas

Iki šiol mūsų robotas gali atpažinti tai, ką sakome, išsaugoti atmintyje ir rasti tinkamą atsakymą į klausimus. Dabar kyla klausimas, kaip įterpti emocijas. Tikrai visiems patiks gyvas veidas kartu su kokia nors kvaila maža atsakymų į klausimus programa. Projekte naudojamas 16x2 skystųjų kristalų ekranas. Pakanka spausdinti akis. Norėdami sukurti akis, turime naudoti pasirinktinę simbolių funkciją. Pasirinktinis simbolis leidžia mums sukurti naujus simbolius, apibrėžiant pikselius. Apie tai išsamiau pateiksime šiek tiek vėliau. Pirmiausia svarbu prisiminti, kad „Arduino“palaiko tik 8 pasirinktinius simbolius. Taigi emocijas turime valdyti tik su 8 simboliais. Kiekvienas simbolis turi būti atspausdintas tam tikrame laukelyje, jame yra 16 stulpelių ir 2 eilutės, iš viso sudarytos 32 langeliai.

Internete galite rasti geros informacijos apie pasirinktinius „Arduino“simbolius. Taip pat galite apsilankyti šioje nuorodoje:

[Pasirinktiniai simboliai Arduino] Tinkinto simbolio baito struktūra turėtų atrodyti taip:

Įprasta išvaizda: kairioji dėžutė. Taigi tai reiškia, kad iš viso mums reikės 4 dėžių, kad užpildytume visą akį. Dvi eilutės kairėje ir dvi dešinėje - iš viso keturi langeliai vienai akiai. Kairysis langelio baitas turi apimti dvi eilutes kairėje, o dešinysis langas - dešines. Taigi tai sudaro visišką Ievos akį. Ir dabar kartodami tą patį antrai akiai, mes gauname neutralų Ievos žvilgsnį. Dabar svarbu prisiminti, kad panaudojome vieną iš aštuonių pasirinktų simbolių. Iš viso yra penkios emocijos: „Glee“, „Liūdnas“, „Squint“, „Normal“ir „Blink“. Iš likusių septynių pasirinktinių simbolių turime prisitaikyti, kad tilptų visos išraiškos. Norėdami užpildyti erdvę, kiekvienai akiai naudosime 2 dėžutes. Nenuostabu, kad dydis bus šiek tiek mažas, tačiau žmogaus akis į tai neatsižvelgs. Tiesiog pridėkite šiek tiek vėlavimų tarp LCD funkcijų, kitaip „Arduino“taps nestabilus.

10 veiksmas: užmegzkite ryšius

Ryšių užmezgimas
Ryšių užmezgimas
Ryšių užmezgimas
Ryšių užmezgimas
Ryšių užmezgimas
Ryšių užmezgimas

LCD modulis: Prijunkite kaiščius, kaip minėta čia: RS: kasimo kaištis 12RW: Gnd Įgalinti: 7d4: kasimo kaištis 8 d5: kasimo kaištis 9 d6: kasimo kaištis 10 d7: kasimo kaištis 13A (anodas) iki 5vK (katodas) prie gnd HC 05 modulis: Sekite šias jungtis: HC 05 TX kaištis į „Arduino RX“kaištį HC 05 RX kaištis į „Arduino TX“kaištį Valstybinis kaištis į „Arduino“kasimo kaištį 11 Ryšiai atliekami naudojant TX ir RX kaiščius. Būsenos kaištis reikalingas norint patikrinti, ar per HC 05 yra prijungtas, ar neveikia. WTV 020 SD 16p modulio kaištis 1: atstatymo kaištis, prijunkite jį prie 2 kaiščio 7: laikrodžio kaištis, prijunkite jį prie 3 kaiščio kaiščio10: duomenų kaištis, prijunkite Norėdami iškasti kaištį 4 smeigtukai Nuo 8 -ojo kaiščio iki gnd ir pateikite 3,3 V maitinimo šaltinį 16 -oje kaištyje.

Stiprintuvas padės paleisti vidinį „Eve“garsiakalbį, o garso lizdas - prijungti prie išorinio stiprintuvo ir didesnių garsiakalbių.

11 veiksmas: WTV020SD16p modulis (pasirenkamas)

Image
Image
„WTV020SD16p“modulis (pasirenkamas)
„WTV020SD16p“modulis (pasirenkamas)
„WTV020SD16p“modulis (pasirenkamas)
„WTV020SD16p“modulis (pasirenkamas)

Pastaba: šis veiksmas yra neprivalomas. Jame aptariamas WTV 020 SD 16p modulio veikimas ir aprašymas.

Garso modulio demonstraciją galite pamatyti šioje nuorodoje:

[PLAY VIDEO]

Roboto kalbėjimo režimą atlieka „WTV 020 SD“modulis. Modulis naudojamas roboto balso byloms paleisti. Kai užduodamas bet koks klausimas, arduino privers modulį paleisti atitinkamą balso failą SD kortelėje. Modulyje yra keturios serijinės duomenų linijos, skirtos bendrauti su arduino, atstatymu, laikrodžiu, duomenimis ir užimtais kaiščiais, o norimą failą paleisti naudojame komandą.playVoice (). Pavyzdžiui: module.playVoice (9): // atkurti 9 failą, saugomą SD kortelėje Nepamirškite, kad failų pavadinimai turi būti dešimtainiai (0001, 0002…). Ir kad failai turėtų būti AD4 arba WAV formatu. Be to, modulis veikia tik su 1 GB „micro SD“kortele. Kai kurie moduliai netgi veikia 2 GB kortelėse, o kortelėje gali būti ne daugiau kaip 504 balso failai. Taigi, norėdami paleisti daugybę klausimų, galite įtraukti daugybę balso failų.

Jūs netgi galite sukurti savo balso AD4 failus. Pirma, turite turėti dvi programas, garso redagavimo programinę įrangą ir programinę įrangą, vadinamą 4D SOMO TOOL, kuri konvertuotų failus į AD4 formatą. Antra, turite paruošti robotų balsus. Galite konvertuoti tekstą į kalbą arba net įrašyti savo balsą ir padaryti roboto balsus. Abu šiuos veiksmus galima atlikti naudojant garso redagavimo programinę įrangą. Bet tikrai, robotai neatrodo gerai, jei kalba žmogaus balsu. Taigi turėtų būti geriau tekstą paversti kalba. Yra įvairių variklių, tokių kaip „Microsoft Anna“ir „Microsoft Sam your Computer“, kurie padėtų tai padaryti. Mano pagrindas yra „Microsoft Eva“. Jo balsai didžiąja dalimi atitinka „Cortana“. Paruošę balso failus, turite juos išsaugoti 32000 Hz dažniu ir WAV formatu. Taip yra todėl, kad modulis gali atkurti balso failus iki 32000 Hz. Tada naudokite 4D SOMO TOOL, norėdami konvertuoti failus į AD4 formatą. Norėdami tai padaryti, tiesiog atidarykite SOMO TOOL, pasirinkite failus ir spustelėkite AD4 Encode ir jūsų balso failai bus paruošti. Galite peržiūrėti paveikslėlį aukščiau. Jei norite gauti daugiau informacijos apie robotų balsus, galite eiti čia: [Robotų balsų kūrimas]

12 veiksmas: programinės įrangos dalis

Programinės įrangos dalis
Programinės įrangos dalis
Programinės įrangos dalis
Programinės įrangos dalis
Programinės įrangos dalis
Programinės įrangos dalis

Programoje „arduino Pro mini“yra nedidelė programavimo problema. Tiesą sakant, tai nėra problema, tik vienas papildomas žingsnis. „Arduino Pro mini“neturi integruoto programuotojo, kaip ir kitos „Arduino“plokštės. Taigi jums reikia arba nusipirkti išorinį, arba seną arduino UNO. Šiame žingsnyje aprašoma, kaip įkelti programą naudojant „Arduino UNO“. Tiesiog paimkite iš avarijos seną „Arduino UNO“plokštę ir išimkite „Atmega 328p“. Tada prijunkite, kaip nurodyta: 1. TX kaištis ant UNO prie TX kaiščio „Pro Mini 2.“. UNO RX kaištis prie „Pro MIni3“RX kaiščio. Iš naujo nustatykite UNO kaištį į „Pro Mini4“atstatymo kaištį. prijunkite „Pro Mini“VCC ir „Ground“prie UNO. Atsisiųskite „Arduino“programą, balso atpažinimo programinę įrangą ir apačioje pateiktas bibliotekas. Programa dar tik kuriama. Taigi, jei turite kokių nors problemų, nedvejodami paklauskite. Tada prijunkite kabelį prie kompiuterio. Pasirinkite plokštę kaip „Arduino Pro Mini“ir pasirinkite tinkamą COM prievadą. Tada paspauskite mygtuką Įkelti ir pamatysite, kaip programa įkeliama į „Pro Mini“.

Tada atsisiųskite balso atpažinimo programinę įrangą ir balso failus.

13 žingsnis: Kūno paruošimas

Kūno paruošimas
Kūno paruošimas
Kūno paruošimas
Kūno paruošimas
Kūno paruošimas
Kūno paruošimas

Radau mažą siūlų dėžutę ir supratau, kad ji puikiai tinka kūnui. Galite naudoti bet kokią dėžę, kurią rasite dirbtuvėse, arba galite pagaminti iš kartono. Tiesiog iškirpkite nedidelę stačiakampę dalį, skirtą LCD moduliui pritvirtinti. Viršuje išpjoviau nedidelę skylę garsui pritvirtinti, o šonuose - jungikliams ir garso jungčiai pritvirtinti. Ratų dėžutės šonuose pritvirtinau du butelių dangtelius. Tiesiog įsitikinkite, kad dėžutėje yra pakankamai vietos grandinei įdėti. Prie korpuso ir grandinės pritvirtinkite jungiklį, tada garsumą dėžutės viršuje. Tada tiesiog įdėkite grandinę į vidų ir jūsų robotas bus baigtas.

14 žingsnis: gerai padaryta

Šauniai padirbėta!
Šauniai padirbėta!
Šauniai padirbėta!
Šauniai padirbėta!

Dabar baigėte savo mielą mažo roboto projektą, kuris gali su jumis kalbėtis ir priversti jus jaustis laimingais. Tai yra pats laimingiausias „pasidaryk pats“taškas, kai jūsų projektas yra baigtas ir visiškai veikia. Nesijaudinkite, jei jums nepavyksta vieno bandymo, turite labai stengtis, kad suprastumėte kiekvieną savo roboto dalį. Ir štai „DIYers“ateina į šį pasaulį. Tačiau tai nėra projekto pabaiga. Ieva visada bus kuriama labiau nei aš, nei aš, kaip ir tu. Norėčiau išgirsti, ką padarėte matydami tai pamokomą. Pagarba, RS3655

Rekomenduojamas: