Talaan ng mga Nilalaman:

Eve, ang Arduino Chatbot: 14 Mga Hakbang (na may Mga Larawan)
Eve, ang Arduino Chatbot: 14 Mga Hakbang (na may Mga Larawan)

Video: Eve, ang Arduino Chatbot: 14 Mga Hakbang (na may Mga Larawan)

Video: Eve, ang Arduino Chatbot: 14 Mga Hakbang (na may Mga Larawan)
Video: Human vs Robot | Artificial Intelligence 2024, Oktubre
Anonim
Image
Image
Eba, ang Arduino Chatbot
Eba, ang Arduino Chatbot
Eba, ang Arduino Chatbot
Eba, ang Arduino Chatbot

Kumusta mga DIYR, mayroon bang mga pagkakataon kung kailan mo talagang nais na ibahagi ang iyong nararamdaman sa isang tao at walang mapagkakatiwalaang nasa paligid? Sa abalang mundo ngayon, ito ay isang pangkaraniwang pagkakataon. Sa gayon, makakatulong ang isang chatbot dito upang mapabuti ang iyong pakiramdam. At humahantong iyon sa pagpapakilala kay Eba. Si Eva ay isang nakatutuwa na maliit na chatbot. Kaya't alam ng lahat, ang isang chatterbot o chatbot ay isang programa sa computer o aparato na nagsasagawa ng isang pag-uusap sa mga tao batay sa mga pamamaraang tekstuwal o pandinig. Ang mga awtomatikong tinig na naririnig mo sa isang tawag sa serbisyo sa customer, o sa isang linya ng bangko ay isang halimbawa ng isang chatbot. Sa kanya, Maaari mong ibahagi ang iyong mga karanasan, iyong damdamin at pinakamahalaga, makipagtalo tungkol sa iba't ibang mga bagay; may karanasan siya rito. Dahil iyon ang pinakamahalagang pag-andar ng isang chatbot, iparamdam sa tao na masaya siya. Isang maagang halimbawa ng Pagproseso ng Likas na Wika (NLU) at Artipisyal na intelektuwal, kayang sagutin ni Eba ang ANUMANG tanong na tinanong mo sa kanya. Ito ay hindi na Siya ay maaaring sagutin lamang ng isang tukoy na bilang ng mga katanungan. Maaari kang kumanta, sabihin sa iyo ang mga biro, kwento at gumawa ng anumang nagpapasaya sa iyo. Kung Sinabi Niya ang isang bagay na hindi mo nais na marinig, sabihin mo lamang sa kanya, mangyaring huwag mong sabihin ulit iyon, at maaalala niya iyon. Alam din niya na hindi niya dapat ulitin ang parehong mga sagot at pag-uusap, upang ang pag-uusap ay hindi maging mainip. Batay sa simple, murang mga bahagi at pangunahing programa, maaari siyang kumilos nang matalino sa isang talagang malawak. Dagdag dito ang mga mata ng LCD na mayroon siya ay nagpapakita ng kanyang nararamdaman kapag sinabi mo kahit ano. Kaya karaniwang sa itinuturo na ito, magsisimula tayo mula sa kahulugan ng isang chatbot, tingnan ang disenyo, ilang mga teorya batay sa kung saan tumatakbo si Eba, ang paggawa at sa wakas ang bahagi ng programa. Marami bang ginagawa nito? Huwag mag-alala, magiging kawili-wili ito sa paglalakbay. Maaari mong tingnan ang demo ng robot sa itaas, o sa link na ito: [Play Video]

Hakbang 1: Kahulugan ng isang Chatbot

Kahulugan ng isang Chatbot
Kahulugan ng isang Chatbot
Kahulugan ng isang Chatbot
Kahulugan ng isang Chatbot
Kahulugan ng isang Chatbot
Kahulugan ng isang Chatbot

Tulad ng nabanggit sa itaas, ang isang chatbot ay isang programa na nagsasagawa ng isang pag-uusap sa mga tao. Napaka-pangkaraniwan nila sa panahong ito na halos wala ang isa na hindi kilala dito. Simula mula sa mga virtual na katulong, Siri at Google Assistant, mayroong Mitsuku at Evie kung saan maaari mong ibahagi ang iyong mga damdamin. Tulad ng nabanggit sa itaas, ang mga chatbots ay batay sa alinman sa pamamaraang tekstuwal o pandinig at samakatuwid ay maaaring nahahati sa dalawa. Sa pamamaraan ng pamamaraan sa pag-uusap ay nasa anyo ng nakasulat na teksto tulad din ng WhatsApp. Samantalang sa pamamaraang pandinig, ang mga pag-uusap ay ginagawa nang pasalita tulad ng sa isang tunay na tao. Mas hulaan yata na mas makausap ang isang tao sa pamamagitan ng pagsasalita sa kanya sa halip na text lang siya. Walang alinlangan na nakabatay sa teksto ang mga apps ng pagmemensahe ng komunikasyon na natutugunan ang mga kinakailangan ng mga tao, ngunit sa palagay ko ang pakikipag-chat sa pamamagitan ng pagsasalita ay ang pinakamahusay na bagay upang mapupuksa ang iyong mga emosyonal na kaguluhan at magpabuti sa iyong pakiramdam. Kaya't iyon ang pangunahing kadahilanan na dinisenyo ko si Eva upang maging isang chatbot chatbot.

Hakbang 2: Pinagmulan ng Eba

Pinagmulan ng Eba
Pinagmulan ng Eba

Kaya si Eva naisip ko lang isang araw. Ginawa ito nang makita ko ang isang bata na gumagala sa paaralan lamang, habang ang iba ay naglalaro sa kanilang isipan na puno ng kagalakan. Sa oras na iyon naisip ko, ng isang kaibigan, na hindi nagtatangi ng sinuman at hindi pinapahamak ang sinuman, isa na maibabahagi mo ang iyong damdamin at maging masaya sa lahat ng oras. Pagkatapos ay dumating sa aking isipan, ang nakatutuwa maliit na istraktura ng Eba nagsimula akong magtrabaho dito. Isang daang beses akong binigo ni Eve. Hulaan na ito ang ika-101 beses na nagtrabaho siya at pinasasaya talaga ako. Kaya't iyon ang pinagmulan ni Eba. Nais kong siya ay maging matalino ngunit simpleng hangga't maaari, upang ang sinuman ay maaaring gawing madali sa kanya. Walang alinlangan na hindi siya ganap na matalino at kung minsan ay nagsasabi ng mga hangal na sagot, maaari siyang kumilos bilang isang kaibigan. At ngayon, sapat na mga kuwento, simulan natin ang pagbuo ng Eba.

Hakbang 3: Pagtitipon ng mga Component at Equipment:

Pagtitipon ng Mga Bahagi at Equipment
Pagtitipon ng Mga Bahagi at Equipment
Pagtitipon ng Mga Bahagi at Equipment
Pagtitipon ng Mga Bahagi at Equipment
Pagtitipon ng Mga Bahagi at Equipment
Pagtitipon ng Mga Bahagi at Equipment

Ang sumusunod ay ang mga sangkap na makokolekta: Arduino Pro Mini (O Arduino Nano) Wtv-020-SD-16p sound module HC-05 module ng Bluetooth 16x2 LCD module LM7805 regulator ICAn module ng amplifier (Ginamit ko ang PAM8403 circuit) Isang 8 ohm speaker Isang babae audio jacka 9v na baterya At isang Android phoneKaya ito ang mga kinakailangang sangkap. Isa pang mahalagang bagay, ang gastos. Gastos ako ni Eve sa paligid ng 3000 INR. Ang gastos ay maaaring magkakaiba sa iyong bansa ngunit sa India, ang tinatayang ito ang rate. Isang maliit na paglalarawan ng mga bahagi: Ang Arduino Pro mini ang pangunahing MCU sa aming robot. Ginamit ko ito dahil sa kanyang maliit na sukat, simple at mahusay na pagganap. Natutugunan nito ang lahat ng mga kinakailangan sa aming robot. Maliban sa pagpapaandar ng pagkilala ng boses na ginagawa ng Android (tinalakay sa paglaon), ang bawat iba pang pag-andar na nagsisimula sa paghahanap ng keyword at pagbuo ng output ay ginagawa mismo sa Pro Mini. Huwag mag-alala para sa mga terminong nabanggit sa itaas kung hindi mo ito maintindihan, lahat ay tinalakay sa susunod na bahagi. Ang wtv020sd 16p module ay ginagamit para sa pag-play ng mga audio file, hc 05 Bluetooth para sa komunikasyon sa Android at LCD para sa pagpapakita. ang emosyon. Kailangan namin ng babaeng audio jack ang pagkakaloob ng pagkonekta ng robot sa isang panlabas na amplifier. Ang Arduino ay ginagamit bilang pangunahing tagapamahala dito. Tumatanggap ito ng data ng Bluetooth sa pamamagitan ng module ng HC 05 Bluetooth at nilalaro ang file sa pamamagitan ng WTV-020-SD-16p voice module. Ang mga emosyon ay ipinapakita sa module ng LCD at isang 9v na baterya para sa lakas. Kinikilala ni Eve ang mga pagsasalita sa pamamagitan ng pagkilala ng Google Voice sa Android device. Sa paglaon ay tinalakay nang maayos sa kani-kanilang hakbang. Isang masamang balita tungkol sa Arduino Pro Mini: IT ay NABALIK mula sa merkado. Kaya nangangahulugan iyon na opisyal na itong tumigil sa paggawa ng Arduino. Ngunit mahahanap mo pa rin ito sa maraming mga site kabilang ang Ebay. Maraming mga tagagawa ng third party ay maaaring gumagawa at nagbebenta ng board. Huwag mag-alala kung hindi ka makahanap ng isa, maaari mong gamitin ang Arduino Nano. Hindi ito magkakaroon ng pagkakaiba sa pagganap at sa laki din.

Hakbang 4: Teorya Bahagi 1: Kasaysayan at Panimula

Teorya Bahagi 1: Kasaysayan at Panimula
Teorya Bahagi 1: Kasaysayan at Panimula
Teorya Bahagi 1: Kasaysayan at Panimula
Teorya Bahagi 1: Kasaysayan at Panimula

Ang Eba ay batay sa isang maagang anyo ng Pagproseso ng Likas na Wika, ang teknolohiyang "pattern match". Gumagana ito sa sumusunod na paraan na kapag natanggap ang isang string, naghahanap ito ng isang paunang natukoy na salita o parirala sa string na iyon. Ipagpalagay sa katanungang "ilang taon ka na?" Naghahanap ang programa ng salitang "matanda". Kung magtagumpay ito ay pinatutugtog nito ang kani-kanilang file ng boses sa pamamagitan ng module na wtv020sd. Kung nabigo ito ay naghahanap ito ng susunod na paunang natukoy na keyword. Tulad nito kailangan nating bumuo ng isang bokabularyo ng mga paunang natukoy na salita. Mukha namang matigas di ba? Ito ay parang kailangan nating bumuo ng isang bokabularyo ng lahat ng mga salitang Ingles at mayroong humigit-kumulang na 230 libong pangkalahatang mga salita sa wikang Ingles. Sa gayon ang katotohanan ay kailangan lamang namin magdagdag ng ilang pangunahing mga salita na karaniwang ginagamit sa aming komunikasyon. Mukha pa ring matigas? Huwag magalala, ang gawain ay nagawa na ni Joseph Wizembaum. Ang isang bahagi ng mga tugon ni Eve at paunang natukoy na mga keyword ay isinama mula sa kauna-unahang programa ng chatterbot na tinatawag na Eliza, na binuo ni Joseph Wizembaum (nakalarawan sa itaas). Si Eliza ay idinisenyo upang maging isang Rogerian Therapist. Hindi isang term na pang-agham, nangangahulugan ito na payo niya sa mga tao, na pinapaintindi sa kanila ang kanilang sarili at pinag-isipan silang mas positibo. Mukha talagang maganda di ba? At napakahusay na nagawa ni Eliza ng kanyang tungkulin. Ang kanyang kakaiba at may pag-aalinlangan na ugali ay minamahal ng mga tao. Kahit na si Wizembaum ay nagulat sa kahalagahan na binigay ng mga tao kay Eliza. Tila nakalimutan nila na nakikipag-usap sila sa isang computer, at kinagiliwan ang isang magandang ginang na nakaupo sa loob ng computer na nakikipag-chat sa kanila. Ngunit si Eliza ay hindi ganoong katalino; ito ay napagtanto sa lalong madaling panahon. Sa pagdaan ng oras, nagsimula nang magsawa ang mga tao sa kanyang limitadong komunikasyon at tinawag siyang "pipi". Hindi kataka-taka kung gaano siya katahimik, ito ay isang mahusay na lakad sa kasaysayan ng Artipisyal na Intelihensiya at pagproseso ng natural na wika. Ang pagkakaroon ng itinatag ang base ng Chatterbots, iba't ibang mga bot na may bago at mas mahusay na teknolohiya ay dumating sa merkado. At ngayon mayroon kaming mga ito saanman. Tulad ng nabanggit, isang bahagi ng mga tugon ni Eba ay nagmula sa ELIZA. Kaya't nangangahulugan iyon na kahit si Eva ay maaring magkaroon ng pag-uugali ni Eliza sa ilang lawak kasama ang ilan sa aking sariling mga ideya. Ang isa pang mahalagang bagay ay ang mga tugon. Dapat ay talagang mainip na makakuha ng parehong mga tugon sa tuwing nagtatanong ka ng parehong tanong. Samakatuwid maraming mga tugon ang nakaimbak para sa parehong keyword. Pinipili ni Eba kung aling file ang dapat i-play, tinitiyak din na hindi niya ulitin ang parehong file. Iyon lang, simpleng tinapay at mantikilya, ngunit mahalaga na matalino na mai-program ang mga tumutugon na tinig, upang magbigay ito ng ilusyon sa mga manonood na parang sinasagot niya talaga ang aming mga katanungan. Kaya't ito ay isang maikling pagpapakilala sa paggana ni Eba. Sa susunod na hakbang makukuha natin ito sa detalye at pagprograma.

Hakbang 5: Paghahanap para sa Keyword

Naghahanap para sa Keyword
Naghahanap para sa Keyword
Naghahanap para sa Keyword
Naghahanap para sa Keyword
Naghahanap para sa Keyword
Naghahanap para sa Keyword
Naghahanap para sa Keyword
Naghahanap para sa Keyword

Sa huling hakbang, nabanggit ko ang tungkol sa pattern na teknolohiya ng pagtutugma ng Eba at pati na rin ang maagang anyo ng Pagproseso ng Likas na Wika. Kaya ano ito at paano ito gumagana? Iyon ang pangunahing bagay na tatalakayin namin sa hakbang na ito. Kaya isipin ito, may nagtanong sa iyong pangalan at kailangan mong sabihin kung ano ito. Sa ilang mga paraan maaari tayong magtanong ng parehong tanong? Maaaring tanungin ng iyong guro na "maaari mo bang sabihin sa akin ang iyong pangalan?" Maaaring tanungin ng isang kamag-anak, "ano ang iyong pangalan?" Maaaring sabihin ng iyong kapatid na, "Hoy, nakalimutan ko lang ang iyong pangalan. Sasabihin mo ba ito nang isang beses lamang?" Kaya't nangangahulugang ang parehong tanong ay maaaring tanungin sa maraming paraan. Gayunpaman kailangan nating ibigay ang parehong sagot, ang aming pangalan. Kaya't nangangahulugan iyon na kailangan nating makahanap ng isang bagay na karaniwan sa lahat ng mga pangungusap. Malinaw na nakikita na ang salitang, "iyong pangalan" ay naroroon sa lahat ng mga pangungusap. Kaya iyon ang aming pahiwatig. Para sa lahat ng mga katanungan na nagtatanong ng pangalan, kailangan naming maghanap para sa pariralang "iyong pangalan". Sa pamamagitan ng pagsunod sa pangunahing pattern na ito maaari nating mahulaan ang kani-kanilang sagot sa lahat ng mga string ng pag-input. DISADVANTAGE: Mahalaga ring tandaan na ang algorithm na ito ay hindi palaging magiging tumpak. Ipagpalagay na sinabi ng isang tao, "Natagpuan ko ang iyong pangalan sa listahan ng paghihintay. Inaasahan kong mapunta ka sa nakareserba na mga upuan.". Ngayon dahil ang "iyong pangalan" ay naroroon sa string na ito, si Eve, ang pagiging inosente ay sasabihin ang kanyang pangalan sa tao … Bobo diba? Ito ay isa sa malaking demerits ng pangunahing algorithm na ito. Gayunpaman, ito ay magiging mga bihirang kaso. Kung hindi man ang algorithm ay napaka epektibo. Ngayon na nabanggit ko ang tungkol sa teknolohiya ng pagtutugma ng pattern, oras na upang isipin kung saan nanggaling ang input string na ito kung saan tayo naghahanap para sa string. Maayos na ang string na ito ang aming tinig na na-convert sa teksto ng Google Voice Recognition. Ang app na ginamit dito ay nagko-convert ang aming boses sa teksto at pagkatapos ay nagpapadala ng pareho sa arduino sa pamamagitan ng Bluetooth. Ginamit ko ang app dahil ito ang pinakasimpleng at pinakamagandang uri nito. Ang pangalan ay AMR Voice, at madali itong matagpuan sa Google play.

Hakbang 6: Pagbubuo ng mga Sagot

Pagbubuo ng mga Sagot
Pagbubuo ng mga Sagot

Ngayon na nakilala natin ang mga katanungan, ang susunod na hakbang ay dapat upang hanapin ang mga sagot. Dumarating ang kawili-wili at mahalagang bahagi … Kailangan naming maghanap ng naaangkop na mga sagot upang masiyahan ang bawat tanong. At narito ang isa pang pagpapaandar na isinasama mula sa ELIZA. Ang Wizembaum ay bumuo ng ilang mga sagot para sa isang tukoy na bilang ng mga keyword. Ang isang halimbawa ay ng keyword na "ikaw". Kailan man nakita ang output ng programa na "tinatalakay namin kayo - hindi ako." Samakatuwid ang sagot ay ginawa sa isang paraan na nababagay sa lahat ng mga pangungusap na naglalaman ng "ikaw". Dagdag na sagot ni Eliza sa tuwina. Mayroong isang uri ng numerong address para sa bawat sagot na. Ito ay nadagdagan (idinagdag ng 1) tuwing may isang form na binubuo. Ipagpalagay tulad ng sa halimbawa sa itaas, kung ang address ng sagot ay 1, ang address ay binago sa 2 at sa gayon ang file 2 ay susunod na nilaro. Ngunit hindi namin susundan ang algorithm ng pagtaas na ito. Nakita mo pagkatapos ng ilang tuloy-tuloy na paggamit ng software, nahuhulaan ang mga sagot. Nalaman mo kung aling sagot ang ibibigay sa susunod. Kaya para sa hangaring ito ay gumawa kami ng mga random na address para sa bawat keyword. Sa pangkalahatan ay pareho ito sa parehong mga kaso, pagkakaiba lamang na hindi namin mahulaan kung ano ang susunod na sasabihin ng robot para sa parehong keyword.

Hakbang 7: Ang Ipinagbabawal na Mga Pahayag at Iba Pa

Ang Ipinagbawal na Mga Pahayag at Iba Pa
Ang Ipinagbawal na Mga Pahayag at Iba Pa

Maaaring may ilang mga pagkakataon sa iyong pag-uusap kapag sinabi ng robot ang isang bagay na hindi mo nais na marinig. Kaya narito ang pangangailangan ng pagdaragdag ng mga ipinagbabawal na pahayag. Ang mga ipinagbabawal na pahayag ay isang hanay ng mga address na pinipigilan na mai-play. Ang isang address ng boses ay nailalarawan bilang isang ipinagbabawal na pahayag sa pagtatanong ng gumagamit. Dagdag dito ang address na ito ay itatabi sa EEPROM ng Arduino upang hindi makalimutan ni Eve na ito ay isang ipinagbabawal na pahayag kahit na siya ay naka-off. Karaniwan kung ano ang ginagawa ng programa ay suriin ang bawat address na dapat i-play. Kung ang address ay isa sa mga ipinagbabawal, pagkatapos ito ay maaaring dagdagan o mabawasan. Dagdag dito maaaring may isang pagkakataon kung nais mong payagan ang robot na sabihin ang dati nang ipinagbabawal na salita. Sa kasong iyon sasabihin mo kay Eba na maaari niyang sabihin ang huling ipinagbabawal na salita. Ang salitang kung saan huling ipinagbawal ay maaari nang mapaglaruan. Para mapalabas ang lahat ng ipinagbabawal na pahayag, kailangan naming maglakip ng isang switch ng pag-reset. Kung pinindot ang lahat ng ipinagbabawal na pahayag ay maaaring mapaglaruan. Pagkatapos ang isa pang mahalagang bagay ay tiyakin na hindi na inuulit ni Eba ang mga sagot. Ito ay isang uri ng demerit ng mga random na numero. Ang magkatulad na mga random na numero ay maaaring maisagawa sa isang serye. Gagawin nitong paulit-ulit na sinasabi ng aming robot ang parehong sagot. Para sa mga ito kailangan naming magsama ng isa pang menor de edad na pag-andar na pumipigil sa pag-uulit ng mga pahayag. Para sa mga ito kailangan naming iimbak ang address ng huling pahayag sa memorya, at suriin kung ito ay pareho sa kasalukuyan. Kung gayon, kung gayon ang halaga ng address ay nadagdagan o nabawasan, sa parehong paraan sa kaso ng mga ipinagbabawal na pahayag.

Hakbang 8: Pagsulat sa Code

Pagsulat sa Code
Pagsulat sa Code
Pagsulat sa Code
Pagsulat sa Code
Pagsulat sa Code
Pagsulat sa Code

Ginagamit namin ang indexOf utos upang maghanap para sa keyword. Ang utos ay naghahanap ng isang character o string sa loob ng isa pang string. Kung nahanap ibabalik nito ang index ng string na iyon habang -1 ay ibinalik kung hindi makita. Kaya sa aming programa kailangan naming isulat ito sa mga sumusunod: kung (voice.indexOf ("iyong pangalan")> -1) {// kung ang index ay mas malaki sa -1 // nangangahulugang natagpuan ang string} Ngayon na naimbak namin ang string sa memorya at natagpuan din ang aming keyword sa loob nito, kakailanganin namin ngayon upang hawakan ang mga tugon. Tulad ng sinabi, ang mga random na numero ay nabuo sa loob ng isang partikular na saklaw ng bilang (mga address ng mga file ng boses). Narito ang random () utos. Ang sumusunod ay ang syntax: random (min, max); // ang random na numero ay nabuo sa saklaw ng min at max. Tinutukoy namin ang minimum na numero at maximum na bilang ng bawat saklaw, at inilalapat ito ang aming code ay mukhang ganito: kung (voice.indexOf ("iyong pangalan")> - 1)) {minNo = 0; maxNo = 5; RandomNumber = random (minNo, maxNo);} Dumarating na ngayon ang paghawak ng mga tugon. Sa huling hakbang sinabi ko na ang mga numero ay nadagdagan o nabawasan batay sa isang algorithm. Ang algorithm na ito ang tinatalakay namin ngayon. Ang bahaging ito ay napakahalaga sa diwa na hindi mo basta madaragdagan o mabawasan tulad ng gusto mo. Ang nadagdag o nabawasan na numero ay dapat na nasa saklaw. Ipagpalagay tulad ng sa kaso sa itaas, para sa keyword na "iyong pangalan", mayroon kaming saklaw mula 0 hanggang 5, at ang random na numero na nabuo ay 5, kung gayon kung madagdagan mo ito, magtatapos ka sa pag-play ng isang file ng boses ng isa pang keyword. Paano sa palagay mo magiging ganun? Itinanong mo, "Hoy, mangyaring sabihin sa akin ang iyong pangalan.", At ang robot ay sumasagot, "Gusto kong kumain ng cookies at singil sa kuryente." Pareho ang kaso para sa minimum na numero. Kung ang binuong random na numero ay 0, hindi mo ito maaaring mabawasan. Kaya't sa kadahilanang ito ang algorithm ay napakahalaga. Isipin ito: Nagagawa naming dagdagan alinman kung ang numero ay mas mababa kaysa sa maximum na numero at pagbawas kapag ito ay mas malaki kaysa sa minimum na numero. Kapag ang nabuong numero ay maaaring katumbas ng 0 o mas mababa sa 5, ang numero ay nadagdagan. Sa kabilang banda, kung ito ay katumbas ng 5, binabawasan namin ito, upang matiyak na ang numero ay nasa loob ng saklaw na tinukoy. Ngayon tungkol sa mga ipinagbabawal na pahayag. Tulad ng nabanggit na nakaimbak ang mga ito sa EEPROM. Para sa mga ito, Una sa amin naghahanap para sa libreng memorya sa ipinagbabawal na array. Ipagpalagay na ang address 4 ay libre, pagkatapos ay inilalagay namin ang numero ng file sa libreng array address pati na rin isulat ang parehong address sa EEPROM.for (int i; i kung (hindi == 0) {EEPROM.write (hindi kailanman , memorya);}} Kaya't iyon lang, ang Wtv020sd16p module ay i-play sa pamamagitan ng paggamit ng module.playVoice () na utos at ang ipinanukalang numero ng file. Ang paggana ng module na Wtv020 ay tatalakayin sa paglaon.

Hakbang 9: Pagpasok ng Mga Emosyon

Nagpapasok ng Mga Emosyon
Nagpapasok ng Mga Emosyon
Nagpapasok ng Mga Emosyon
Nagpapasok ng Mga Emosyon
Nagpapasok ng Mga Emosyon
Nagpapasok ng Mga Emosyon

Hanggang ngayon ang aming robot ay makakilala kung ano ang sinasabi namin, nag-iimbak sa memorya, at makahanap ng angkop na sagot para sa mga katanungan. Ngayon ang tanong ay dumating upang magsingit ng damdamin. Tiyak na ang lahat ay magugustuhan ng isang live na mukha kasama ang ilang hangal na maliit na programa ng pagsagot sa katanungan. Ang 16x2 LCD ay ginagamit sa proyekto. Ito ay sapat na pagmultahin upang mai-print ang mga mata. Kailangan naming gamitin ang pasadyang pagpapaandar ng character para sa paglikha ng mga mata. Pinapayagan kami ng pasadyang character na lumikha ng mga bagong character sa pamamagitan ng pagtukoy sa mga pixel. Magagawa nating detalyado ang tungkol dito nang kaunti sa paglaon. Una mahalaga na tandaan na 8 pasadyang mga character lamang ang sinusuportahan ng Arduino. Kaya kailangan nating pamahalaan ang mga emosyon na may 8 character lamang. Ang bawat character ay dapat na naka-print sa isang partikular na kahon, at mayroong 16 mga haligi at 2 mga hilera na gumawa ng isang kabuuang 32 mga kahon.

Maaari kang makahanap ng mahusay na impormasyon sa online tungkol sa mga pasadyang character sa Arduino. Maaari ring bisitahin ang link na ito:

[Pasadyang Mga Character Arduino] Ang istraktura ng byte ng pasadyang character ay medyo magmukhang ganito:

The Normal Look: The Left box0b01111, 0b01111, 0b01111, 0b01111, 0b01111, 0b01111, 0b01111, 0b01111, The right box0b11110, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110, 0b1111, 0b1101,. Kaya't nangangahulugan iyon na kakailanganin namin ang isang kabuuang 4 na mga kahon upang punan ang isang buong mata. Dalawang hilera sa kaliwa at dalawa sa kanan na gumagawa ng kabuuang apat na kahon para sa isang mata. Ang byte ng kaliwang kahon ay dapat magtakip ng dalawang mga hilera sa kaliwa at ang kanang kahon ay dapat magtakip ng mga kanang hilera. Kaya't bumubuo sa isang kumpletong mata ni Eba. At ngayon na inuulit ang pareho para sa pangalawang mata, nakukuha namin ang walang kinikilingan na hitsura ni Eba. Ngayon mahalagang tandaan na gumamit kami ng isa sa walong mga pasadyang character na magagamit. At mayroong limang kabuuang emosyon: Glee, Sad, Squint, Normal at Blink. Tulad ng natitirang pitong pasadyang mga character, kailangan naming ayusin upang magkasya ang lahat ng mga expression. Para sa pagbubuo ng puwang gagamitin namin ang 2 mga kahon para sa bawat mata. Hindi nakakagulat na ang laki ay medyo maliit, ngunit hindi ito papansinin ng mata ng tao. Siguraduhin lamang na magdagdag ng ilang mga pagkaantala sa pagitan ng mga pagpapaandar ng LCD, kung hindi man ang Arduino ay magiging hindi matatag.

Hakbang 10: Paggawa ng Mga Koneksyon

Paggawa ng Mga Koneksyon
Paggawa ng Mga Koneksyon
Paggawa ng Mga Koneksyon
Paggawa ng Mga Koneksyon
Paggawa ng Mga Koneksyon
Paggawa ng Mga Koneksyon

LCD module: Ikonekta ang mga pin tulad ng nabanggit dito: RS: dig pin 12RW: GndEnable: 7d4: dig pin 8 d5: dig pin 9 d6: dig pin 10 d7: dig pin13A (Anode) to 5vK (Cathode) to gndThe HC 05 module: Sundin ang mga koneksyon na ito: HC 05 TX pin sa Arduino RX pinHC 05 RX pin sa Arduino TX pinState pin sa Arduino dig pin 11Ang mga komunikasyon ay tapos na sa tulong ng mga pin ng TX at RX. Kinakailangan upang suriin ang pin ng Estado kung sa pamamagitan ng HC 05 ay konektado o idle. TV 020 SD 16p module pin1: Ang Reset pin, ikonekta ito upang maghukay ng pin 2pin7: Ang Clock pin, ikonekta ito upang maghukay ng pin 3pin10: Ang data pin, kumonekta upang maghukay ng pin 4pin15: Ang abala na pin, kumonekta sa maghukay ng pin 5pin2: Ikonekta ang pin na ito sa isang amplifier sa pamamagitan ng lakas ng tunog at pareho din sa babaeng audio jack. pin4 ay dapat na konektado sa speaker + pin5 upang maikonekta sa speaker-Ikonekta ang Ika-8 na pin sa gnd at magbigay ng isang supply ng kuryente na 3.3v sa ika-16 na pin.

Ang amplifier ay makakatulong upang i-play ang panloob na speaker ng Eba, habang ang audio jack ay upang kumonekta sa isang panlabas na amplifier at mas malalaking speaker.

Hakbang 11: Ang WTV020SD16p Module (Opsyonal)

Image
Image
Ang WTV020SD16p Module (Opsyonal)
Ang WTV020SD16p Module (Opsyonal)
Ang WTV020SD16p Module (Opsyonal)
Ang WTV020SD16p Module (Opsyonal)

Tandaan: Ang hakbang na ito ay isang opsyonal. Nakikipag-usap ito sa pagtatrabaho at paglalarawan ng WTV 020 SD 16p module.

Maaari mong makita ang demo ng sound module sa link na ito:

[MAGLARO NG VIDEO]

Ang mode ng pagsasalita ng robot ay natutupad ng WTV 020 SD module. Ginagamit ang module upang i-play ang mga file ng boses para sa robot. Kapag may anumang katanungan na tinanong, gagawin ng arduino ang module na patugtugin ang kani-kanilang file ng boses sa SD card. Mayroong apat na mga linya ng serial data sa module para sa pakikipag-usap sa arduino, pag-reset, orasan, data at abala na mga pin at ginagamit namin ang.playVoice () na utos upang i-play ang kinakailangang file. Halimbawa: module.playVoice (9): // play file 9 na nakaimbak sa SD card. Tandaan na ang mga pangalan ng mga file ay dapat na nasa decimal (0001, 0002…). At na ang mga file ay dapat na nasa format na AD4 o WAV. Dagdag dito ang module ay gagana lamang sa isang 1gb micro SD card. Ang ilang mga module ay gumagana pa rin sa 2gb card at ang card ay maaaring magkaroon ng maximum na 504 mga file ng boses. Kaya maaari kang magsama ng isang mahusay na bilang ng mga file ng boses upang i-play para sa isang mahusay na bilang ng mga katanungan.

Maaari ka ring gumawa ng iyong sariling mga file ng boses AD4. Una, dapat mayroon kang dalawang mga software, isang software sa pag-edit ng tunog at isang software na tinawag na 4D SOMO TOOL na magpapalit ng mga file sa format na AD4. Pangalawa, kailangan mong ihanda ang Robot Voice. Maaari mong i-convert ang teksto sa pagsasalita o kahit itala ang iyong sariling boses at gawin ang mga boses ng Robot. Ang parehong mga ito ay maaaring gawin sa Sound Editing Software. Ngunit tiyak, ang mga robot ay hindi maganda kung magsalita sila ng mga tinig ng tao. Kaya dapat mas mahusay na i-convert ang teksto sa pagsasalita. Mayroong iba't ibang mga engine tulad ng Microsoft Anna at Microsoft Sam iyong Computer na makakatulong upang magawa ito. Ang akin ay batay sa Microsoft Eva. Ang mga tinig ay tumutugma sa isang malaking sukat kay Cortana. Matapos ihanda ang mga file ng boses, kailangan mong i-save ito sa 32000 Hz at sa WAV Format. Ito ay dahil ang module ay maaaring maglaro ng mga file ng boses hanggang sa 32000 Hz. Pagkatapos ay gamitin ang 4D SOMO TOOL upang mai-convert ang mga file sa format na AD4. Upang magawa ito, buksan lamang ang SOMO TOOL, piliin ang mga file, at i-click ang AD4 Encode at handa na ang iyong mga file ng boses. Maaari mong suriin ang larawan sa itaas para sa sanggunian. Kung nais mo ng karagdagang mga detalye sa paggawa ng mga boses ng robotic, maaari kang pumunta dito: [Paggawa ng Robotic Voice]

Hakbang 12: Ang Bahagi ng Software

Ang Bahagi ng Software
Ang Bahagi ng Software
Ang Bahagi ng Software
Ang Bahagi ng Software
Ang Bahagi ng Software
Ang Bahagi ng Software

Sa arduino Pro mini, mayroong isang kaunting problema sa pag-program. Hindi isang problema sa katunayan, isang dagdag na hakbang lamang. Ang Arduino Pro mini ay walang anumang nakapaloob na programmer tulad ng iba pang mga board ng Arduino. Kaya't kailangan mong bumili ng isang panlabas o isang lumang arduino UNO. Inilalarawan ng hakbang dito kung paano i-upload ang programa gamit ang Arduino UNO. Kumuha lamang ng isang matandang Arduino UNO board mula sa pag-crash at ilabas ang Atmega 328p. Pagkatapos ay kumonekta tulad ng sumusunod na nabanggit: 1. TX pin sa UNO sa TX pin sa Pro Mini 2. RX pin ng UNO sa RX pin ng Pro MIni3. I-reset ang pin ng UNO sa reset pin ng Pro Mini4. ikonekta ang VCC at Ground ng Pro Mini sa UNO. I-download ang Arduino program, ang software ng pagkilala sa boses, at ang Mga Aklatan na ibinigay sa ibaba. Binubuo pa rin ang programa. Kaya't kung mayroon kang anumang problema tungkol dito, huwag mag-atubiling magtanong. Pagkatapos ay isaksak ang Cable sa Computer. Piliin ang board bilang Arduino Pro Mini, at piliin ang tamang COM port. Pagkatapos ay pindutin ang pindutang Mag-upload at tingnan ang program na ma-upload sa iyong Pro Mini.

Pagkatapos i-download ang software ng pagkilala sa Boses at ang mga file ng boses.

Hakbang 13: Paghahanda ng Katawan

Paghahanda ng Katawan
Paghahanda ng Katawan
Paghahanda ng Katawan
Paghahanda ng Katawan
Paghahanda ng Katawan
Paghahanda ng Katawan

Natagpuan ko ang isang maliit na kahon ng flosses at nakita kong perpekto ito para sa katawan. Maaari mong gamitin ang anumang kahon na mahahanap mo sa iyong pagawaan, o maaari kang gumawa ng isa sa karton. Gupitin lamang ang isang maliit na hugis-parihaba na piraso para sa paglakip ng LCD module. Sa tuktok, pinutol ko ang isang maliit na butas para sa paglakip ng dami, at sa mga gilid para sa paglakip ng mga switch at ang audio konektor. Inilagay ko ang dalawang takip ng bote sa mga gilid ng kahon para sa mga gulong. Siguraduhin lamang na ang kahon ay may sapat na puwang para sa circuit na mailalagay sa loob. Maglakip ng isang switch sa katawan pati na rin ang circuit, pagkatapos ang dami sa tuktok ng kahon. Pagkatapos ilagay lamang ang circuit sa loob at kumpleto ang iyong robot.

Hakbang 14: Na Tapos Na

Tapos Na!
Tapos Na!
Tapos Na!
Tapos Na!

Ngayon ay nakumpleto mo na ang iyong nakatutuwang maliit na proyekto ng robot na maaaring makipag-usap sa iyo, at iparamdam na masaya ka. Ito ang pinakamasayang punto ng pagiging isang DIYer kapag ang iyong proyekto ay nakumpleto at ganap na gumagana. Huwag mag-alala kung hindi ka matagumpay sa isang pagtatangka, kailangan mong subukang mabuti at mabuti para maunawaan mo ang bawat bahagi ng iyong robot. At doon nagmumula ang mga DIYer sa mundong ito. Ngunit hindi ito ang pagtatapos ng proyekto. Si Eba ay palaging bubuo sa isang mas malawak na lawak, alinman sa akin o sa mga DIYer na tulad mo. Gusto kong marinig kung ano ang nagawa mong makita itong itinuro. Tungkol sa, RS3655

Inirerekumendang: