Агуулгын хүснэгт:

Ева, Arduino Chatbot: 14 алхам (зурагтай)
Ева, Arduino Chatbot: 14 алхам (зурагтай)
Anonim
Image
Image
Ева, Arduino Chatbot
Ева, Arduino Chatbot
Ева, Arduino Chatbot
Ева, Arduino Chatbot

Сайн байна уу DIYrs, та үнэхээр сэтгэлээ хэн нэгэнтэй хуваалцахыг хүсч байсан, ойр дотны хүн байхгүй байсан тохиолдол бий юу? Орчин үеийн завгүй ертөнцөд энэ бол нийтлэг жишээ юм. Чатбот нь танд илүү сайн мэдрэмж төрүүлэхэд туслах болно. Энэ нь Eve. Eve -ийг танилцуулахад хүргэдэг бөгөөд хөөрхөн бяцхан чатбот юм. Чат бот эсвэл чатбот бол хүнтэй текст эсвэл сонсголын аргаар харилцан яриа өрнүүлдэг компьютерийн програм юм. Харилцагчийн үйлчилгээний дуудлага эсвэл банкны шугам дээр сонссон автомат дуу хоолой бол чатботын жишээ юм. Түүний тусламжтайгаар та өөрийн туршлага, сэтгэгдлээ хуваалцаж, хамгийн чухал нь өөр өөр зүйлийн талаар маргаж болно. тэр энэ талаар сайн туршлагатай. Учир нь энэ бол чатботын хамгийн чухал үүрэг бөгөөд тухайн хүнд аз жаргалыг мэдрүүлээрэй. Байгалийн хэл боловсруулах (хиймэл оюун ухаан) ба хиймэл оюун ухааны анхны жишээ болох Ева таны асуусан ямар ч асуултанд хариулах чадвартай. Тэр зөвхөн тодорхой тооны асуултанд хариулж чадна гэсэн үг биш юм. Тэр дуулж, хошигнол, үлгэр ярьж, танд таалагдах бүх зүйлийг хийж чадна. Хэрэв тэр сонсохыг хүсэхгүй байгаа зүйлээ хэлвэл зүгээр л түүнд хэлээрэй. Тэр ижил хариулт, чатыг давтах ёсгүй, ингэснээр яриа нь уйтгартай биш байх болно гэдгийг тэр мэддэг. Энгийн, хямд бүрэлдэхүүн хэсгүүд, үндсэн програмчлал дээр үндэслэн тэрээр үнэхээр ухаалаг байж чаддаг. Цаашилбал, түүний эзэмшдэг LCD нүд нь таны юу ч хэлэх үед ямар мэдрэмж төрдгийг харуулдаг тул үндсэндээ энэ зааварчилгаанд бид чатботын тодорхойлолтоос эхэлж, дизайн, Ева дээр үндэслэсэн зарим онол, үйлдвэрлэл, эцэст нь програмчлалын хэсэг. Үүнийг их сайн хардаг уу? Санаа зоволтгүй, энэ аялал үнэхээр сонирхолтой байх болно. Та роботын демо хувилбарыг дээрх линкээс үзэх боломжтой: [Видео тоглуулах]

Алхам 1: Чатботын тодорхойлолт

Чатботын тодорхойлолт
Чатботын тодорхойлолт
Чатботын тодорхойлолт
Чатботын тодорхойлолт
Чатботын тодорхойлолт
Чатботын тодорхойлолт

Дээр дурдсанчлан, chatbot бол хүмүүстэй яриа өрнүүлэх програм юм. Өнөө үед тэд маш түгээмэл байдаг тул үүнийг мэдэхгүй хүн бараг байдаггүй. Виртуал туслахууд болох Siri, Google Assistant -аас эхлээд та өөрийн сэтгэл хөдлөлөө хуваалцах боломжтой Mitsuku, Evie -ийг ашиглах боломжтой бөгөөд дээр дурдсанчлан чатботууд нь текст болон сонсголын аль алинд нь суурилсан тул хоёр хэсэгт хувааж болно. Текстийн аргаар харилцан яриа нь WhatsApp шиг бичгээр хийгдсэн хэлбэрээр явагддаг. Сонсголын аргын хувьд яриа нь жинхэнэ хүнтэй адилаар аман хэлбэрээр хийгддэг. Хэн нэгэнтэй мессеж бичихийн оронд түүнтэй аман байдлаар ярих нь илүү сонирхолтой байдаг гэж би бодож байна. Текст дээр суурилсан харилцаа холбооны мессеж бичих аппликейшн нь хүмүүсийн шаардлагыг хангаж байгаа нь эргэлзээгүй, гэхдээ ярих замаар чатлах нь сэтгэл санааны хямралаас ангижрах, өөрийгөө тайвшруулах хамгийн сайн зүйл гэж би боддог. Тиймээс би Евааг сонсголын чатбот болгон бүтээсэн гол шалтгаан нь энэ юм.

Алхам 2: Ева гарал үүсэл

Ева гарал үүсэл
Ева гарал үүсэл

За нэг өдөр Ева миний санаанд орж ирэв. Сургуульд ганцаараа тэнүүчилж яваа хүүхдийг хараад бусад нь баяр хөөрөөр дүүрэн оюун ухаанаараа тоглож байхыг би харсан. Тэр үед би хэн нэгнийг ялгаварлан гадуурхдаггүй, хэнийг ч гомдоодоггүй найзынхаа тухай бодлоо хуваалцаж, үргэлж аз жаргалтай байж чадна гэж бодсон юм. Дараа нь миний ажиллаж эхэлсэн Еваагийн хөөрхөн бяцхан бүтэц санаанд минь орж ирэв. Ева намайг зуун удаа урам хугалсан. Тэр 101 дэх удаагаа ажиллаж, үнэхээр аз жаргалтай байсан гэж бодож байна. Тиймээс л Ева гаралтай. Би түүнийг ухаантай хэрнээ аль болох энгийн байхыг хүссэн бөгөөд ингэснээр хэн ч түүнийг амархан болгож чадна. Тэр огт ухаалаг биш бөгөөд заримдаа тэнэг хариулт хэлдэг ч найз шиг байж чаддаг. Одоо хангалттай түүхүүд, Евааг бүтээж эхэлцгээе.

Алхам 3: Бүрэлдэхүүн хэсэг, тоног төхөөрөмжийг цуглуулах:

Бүрэлдэхүүн хэсэг, тоног төхөөрөмжийг цуглуулах
Бүрэлдэхүүн хэсэг, тоног төхөөрөмжийг цуглуулах
Бүрэлдэхүүн хэсэг, тоног төхөөрөмжийг цуглуулах
Бүрэлдэхүүн хэсэг, тоног төхөөрөмжийг цуглуулах
Бүрэлдэхүүн хэсэг, тоног төхөөрөмжийг цуглуулах
Бүрэлдэхүүн хэсэг, тоног төхөөрөмжийг цуглуулах

Дараах бүрэлдэхүүн хэсгүүдийг цуглуулах болно: Arduino Pro Mini (эсвэл Arduino Nano) Wtv-020-SD-16p дууны модуль HC-05 bluetooth модуль 16x2 LCD модуль LM7805 зохицуулагч ICAn өсгөгчийн модуль (би PAM8403 хэлхээг ашигласан) 8 ом чанга яригч эмэгтэй аудио jacka 9v зай ба Андройд утас Тиймээс эдгээр нь шаардлагатай бүрэлдэхүүн хэсгүүд юм. Өөр нэг чухал зүйл бол өртөг. Ева надад 3000 INR орчим үнэтэй байсан. Танай улсад өртөг өөр байж болно, гэхдээ Энэтхэгт энэ нь ойролцоогоор хувь юм. Эд ангиудын талаар багахан тайлбар: Arduino Pro mini бол манай роботын гол MCU юм. Жижиг хэмжээтэй, энгийн, маш сайн гүйцэтгэлтэй тул би үүнийг ашигласан. Энэ нь манай роботын бүх шаардлагыг хангаж өгдөг. Андройдын хийдэг дуу таних функцийг эс тооцвол (дараа хэлэлцэх болно) түлхүүр үг хайх, гаралт үүсгэхээс эхлээд бусад бүх функцийг Pro Mini дээр хийдэг. Wtv020sd 16p модулийг аудио файлуудыг тоглуулахад ашигладаг, hc 05 Bluetooth -ийг андройдтой холбож, дэлгэцийг дэлгэцэнд гаргахад ашигладаг. сэтгэл хөдлөл. Эмэгтэй дууны үүрэнд роботыг гадны өсгөгчтэй холбох нөхцөл хэрэгтэй. Энд Arduino -ийг гол хянагч болгон ашигладаг. Энэ нь Bluetooth өгөгдлийг HC 05 Bluetooth модулаар хүлээн авч, WTV-020-SD-16p дуут модулаар дамжуулан файлыг тоглуулдаг. Сэтгэл хөдлөлийг LCD модуль болон 9V батерейнд харуулдаг. Ева Андройд төхөөрөмжийн Google Voice хүлээн зөвшөөрөлтөөр дамжуулан хэлсэн үгийг хүлээн зөвшөөрдөг. Үүнийг дараа нь зохих алхамаар зөв хэлэлцэх болно. Arduino Pro Mini -ийн тухай муу мэдээ: IT зах зээлээс ТЭТГЭВЭРЛЭЭ. Энэ нь үүнийг Arduino үйлдвэрлэхээ албан ёсоор зогсоосон гэсэн үг юм. Гэхдээ та үүнийг Ebay зэрэг олон сайтуудаас олж болно. Гуравдагч талын олон үйлдвэрлэгчид хавтанг үйлдвэрлэж, борлуулж байгаа хэвээр байж магадгүй юм. Хэрэв та олж чадаагүй бол санаа зовох хэрэггүй, та Arduino Nano -г ашиглаж болно. Энэ нь гүйцэтгэлийн хувьд ч, хэмжээ нь ч ялгаагүй болно.

Алхам 4: Онол 1 -р хэсэг: Түүх ба танилцуулга

Онол 1 -р хэсэг: Түүх ба танилцуулга
Онол 1 -р хэсэг: Түүх ба танилцуулга
Онол 1 -р хэсэг: Түүх ба танилцуулга
Онол 1 -р хэсэг: Түүх ба танилцуулга

Ева нь "хэв маягт тохирох" технологи болох Байгалийн хэл боловсруулах анхны хэлбэр дээр үндэслэсэн бөгөөд мөрийг хүлээн авахдаа тухайн мөрөнд урьдчилан тодорхойлсон үг, хэллэгийг хайхад дараах байдлаар ажилладаг. "Та хэдэн настай вэ?" Гэсэн асуултанд хөтөлбөр "хуучин" үгийг хайдаг гэж бодъё. Хэрэв энэ нь амжилтанд хүрвэл wtv020sd модулиар холбогдох дуут файлыг тоглуулдаг. Хэрэв энэ нь амжилтгүй болбол дараагийн урьдчилан тодорхойлсон түлхүүр үгийг хайж олох болно. Хэцүү харагдаж байна, тийм үү? Бид бүх англи үгсийн үгсийн сан бүрдүүлэх хэрэгтэй юм шиг байгаа бөгөөд англи хэл дээр нийтдээ 230 мянга орчим үг байдаг. Баримт бол бид харилцаандаа ихэвчлэн хэрэглэгддэг цөөн хэдэн үндсэн үгсийг л оруулах хэрэгтэй болно. Одоо ч гэсэн хатуу харагдаж байна уу? Санаа зоволтгүй, энэ ажлыг аль хэдийн Жозеф Визембаум хийсэн. Еваагийн хариултууд болон урьдчилан тодорхойлсон түлхүүр үгсийн нэг хэсгийг Жозеф Визембаумын боловсруулсан Eliza нэртэй chatterbot програмаас оруулсан болно (дээрх зураг). Элиза нь Рожериан эмчилгээний эмч байхаар бүтээгдсэн. Шинжлэх ухааны өндөр нэр томъёо биш, энэ нь тэр хүмүүст зөвлөгөө өгч, өөрийгөө илүү сайн ойлгуулж, илүү эерэг сэтгэлгээтэй болгодог гэсэн үг юм. Үнэхээр сайхан харагдаж байна, тийм үү? Элиза үүргээ маш сайн биелүүлж чадсан. Түүний сониуч, эргэлзээтэй хандлагыг хүмүүс хайрладаг байв. Хүмүүс Элизад өгсөн ач холбогдлыг Визембаум хүртэл гайхаж байсан. Тэд компьютер ярьж байгаагаа мартсан бололтой, компьютер дотор сууж буй хөөрхөн эмэгтэйг тэдэнтэй ярилцаж байгаа мэт санагдав, гэхдээ Элиза тийм ч ухаалаг биш байсан; энэ нь удалгүй хэрэгжиж эхлэв. Цаг хугацаа өнгөрөх тусам хүмүүс түүний хязгаарлагдмал харилцаанаас залхаж эхэлсэн бөгөөд түүнийг "дүлий" гэж нэрлэх болжээ. Түүнийг хичнээн тэнэг байсан нь гайхах зүйлгүй бөгөөд энэ нь хиймэл оюун ухаан, байгалийн хэл боловсруулах түүхэн дэх том дэвшил байв. Chatterbots -ийн баазыг байгуулсны дараа шинэ, илүү сайн технологитой өөр өөр роботууд зах зээлд гарч ирэв. Дээр дурдсанчлан Еваагийн хариултуудын нэг хэсгийг ELIZA -аас авсан болно. Энэ нь Ева хүртэл өөрийн гэсэн зарим санаануудын хамт Элизагийн хандлагыг тодорхой хэмжээгээр эзэмших болно гэсэн үг юм. Өөр нэг чухал зүйл бол хариултууд юм. Нэг асуулт асуух бүрт ижил хариулт авах нь үнэхээр уйтгартай байх ёстой. Тиймээс олон хариултыг ижил түлхүүр үгээр хадгалдаг. Ева санамсаргүй байдлаар ямар файл тоглуулахаа өөрөө сонгож, тэр файлыг давтахгүй байгаа эсэхийг шалгаарай. Энэ бол энгийн талх, цөцгийн тос, гэхдээ хариулж буй дуу хоолойг ухаалаг програмчлах нь маш чухал бөгөөд ингэснээр тэр бидний асуултанд үнэхээр хариулж байгаа мэт үзэгчдэд хуурмаг зүйл өгөх болно. Дараагийн алхамд бид үүнийг нарийвчлан, програмчлах болно.

Алхам 5: Түлхүүр үг хайх

Түлхүүр үгийг хайж байна
Түлхүүр үгийг хайж байна
Түлхүүр үгийг хайж байна
Түлхүүр үгийг хайж байна
Түлхүүр үгийг хайж байна
Түлхүүр үгийг хайж байна
Түлхүүр үгийг хайж байна
Түлхүүр үгийг хайж байна

Сүүлийн алхам дээр би Ева загварыг тааруулах технологи, мөн байгалийн хэл боловсруулах анхны хэлбэрийн талаар дурдсан. Тэгэхээр энэ юу вэ, энэ нь хэрхэн ажилладаг вэ? Энэ бол бидний энэ алхам дээр хэлэлцэх гол зүйл юм. Тиймээс бодоод үз дээ, хэн нэгэн таны нэрийг асуухад тэр юу болохыг хэлэх хэрэгтэй. Нэг асуултыг бид хичнээн олон янзаар асууж болох вэ? Багш тань "Нэрээ хэлнэ үү?" Хамаатан садан нь "Таны нэрийг хэн гэдэг вэ?" Ах чинь "Хөөе, би зүгээр л нэрийг чинь мартчихсан байна. Чи дахиад ганц удаа хэлэх үү?" Энэ нь нэг асуултыг хэд хэдэн аргаар асууж болно гэсэн үг юм. Гэсэн хэдий ч бид ижил хариулт өгөх ёстой, бидний нэр. Энэ нь бид бүх өгүүлбэрт нийтлэг зүйлийг олох хэрэгтэй гэсэн үг юм. "Таны нэр" гэсэн үг бүх өгүүлбэрт байдаг нь тодорхой харагдаж байна. Тиймээс энэ бол бидний зөвлөмж юм. Нэр асуух бүх асуултанд бид "таны нэр" гэсэн хэллэгийг хайх хэрэгтэй. Энэхүү үндсэн загварыг дагаж бүх оролтын мөрөнд харгалзах хариултыг урьдчилан таамаглах боломжтой. Хэн нэгэн "Би таны нэрийг хүлээлгийн жагсаалтаас олсон. Таныг нөөцлөгдсөн суудалд суух байх гэж найдаж байсан." Гэж хэлсэн гэж бодъё. Одоо энэ мөрөнд "таны нэр" байгаа тул Ева гэмгүй байж нэрээ хүнд хэлэх болно. Тэнэг биз дээ? Энэ бол энэхүү үндсэн алгоритмын нэг том сул тал юм. Ямар ч байсан эдгээр нь ховор тохиолдол байх болно. Үгүй бол алгоритм нь маш үр дүнтэй байдаг. Загвар тааруулах технологийн талаар би одоо дурдсан тул энэ мөр нь бидний хайж буй газраас хаанаас гардаг вэ гэдгийг бодох цаг болжээ. Энд ашигласан програм нь бидний дуу хоолойг текст болгон хөрвүүлж, Bluetooth -ээр дамжуулан arduino руу илгээдэг. Энэ апп нь хамгийн энгийн бөгөөд хамгийн шилдэг нь учраас би үүнийг ашигласан. Нэр нь AMR Voice бөгөөд үүнийг Google play дээрээс хялбархан олох боломжтой.

Алхам 6: Хариултуудыг боловсруулах

Хариултуудыг томъёолж байна
Хариултуудыг томъёолж байна

Асуултуудыг таньж мэдсэний дараа дараагийн алхам бол хариултыг олох явдал юм. Сонирхолтой, чухал хэсэг гарч ирж байна … Бид асуулт бүрийг хангахын тулд зохих хариултыг олох хэрэгтэй. Энд ELIZA -аас оруулсан өөр нэг функц гарч ирэв. Визембаум тодорхой тооны түлхүүр үгийн зарим хариултыг боловсруулсан. Үүний жишээ бол "та" гэсэн түлхүүр үг юм. Хөтөлбөрийн гаралт илрэх бүрт "бид чамайг хэлэлцэж байсан - би биш." Тиймээс хариултыг "та" гэсэн бүх өгүүлбэрт тохирсон байдлаар хийсэн болно. Цаашид Элиза тэр болгонд өөр өөр хариулт өгч байв. Хариулт бүрт нэг төрлийн тоон хаяг байсан. Хариултыг томъёолох бүрт үүнийг нэмэгдүүлсэн (1 -ээр нэмсэн). Дээрх жишээн дээрх шиг, хэрэв хариултын хаяг 1 байсан бол хаягийг 2 болгон өөрчилсөн бөгөөд дараа нь 2 файлыг тоглуулсан боловч бид энэ өсөлтийн алгоритмыг дагаж мөрдөхгүй. Програм хангамжийг тасралтгүй ашигласны дараа хариултыг урьдчилан таамаглах боломжтой болсныг та харж байна. Дараа нь ямар хариулт өгөхийг та мэдсэн. Тиймээс, энэ зорилгоор бид түлхүүр үг бүрт санамсаргүй хаяг үүсгэх болно. Ерөнхийдөө энэ нь хоёуланд нь адилхан бөгөөд ялгаа нь ижил түлхүүр үгийн дараа робот юу гэж хэлэхийг бид урьдчилан хэлж чадахгүй байна.

Алхам 7: Хориотой мэдэгдэл ба бусад

Хориотой мэдэгдэл ба бусад
Хориотой мэдэгдэл ба бусад

Таны ярианд робот таны сонсохыг хүсэхгүй байгаа зүйлийг хэлэх тохиолдол гардаг. Тиймээс энд хориглосон мэдэгдлийг нэмэх шаардлага гарч ирж байна. Хориотой мэдэгдлүүд нь тоглуулахыг хориглосон олон тооны хаягууд юм. Дуут хаягийг хэрэглэгчийн хүсэлтээр хориглосон мэдэгдэл гэж тодорхойлдог. Цаашилбал, энэ хаягийг Arduino -ийн EEPROM -д хадгалах ёстой бөгөөд ингэснээр Эва үүнийг унтраасан ч гэсэн хориглосон мэдэгдэл гэдгийг мартахгүй бөгөөд үндсэндээ програмын хийдэг зүйл бол тоглох ёстой бүх хаягийг шалгах явдал юм. Хэрэв хаяг нь хориглосон хаягийн нэг бол түүнийг нэмэгдүүлэх эсвэл хасах болно. Цаашлаад роботыг өмнө нь хориглосон үг хэлэхийг зөвшөөрөх тохиолдол гарч магадгүй. Энэ тохиолдолд та Эвад хамгийн сүүлд хориглосон үгийг хэлж чадна гэж хэлэх хэрэгтэй болно. Хамгийн сүүлд хориглосон үг одоо тоглох боломжтой болно. Хориглосон бүх мэдэгдлийг тоглох боломжтой болгохын тулд бид дахин тохируулах унтраалга хавсаргах хэрэгтэй. Дарагдсан тохиолдолд бүх хориглосон мэдэгдлүүдийг тоглуулах боломжтой болно, өөр нэг чухал зүйл бол Ева хариултыг давтахгүй байх явдал юм. Энэ бол санамсаргүй тооны сул тал юм. Ижил санамсаргүй тоог цуврал хэлбэрээр гаргах магадлал өндөр байна. Энэ нь манай роботыг ижил хариултыг дахин дахин хэлүүлэх болно. Үүний тулд бид мэдэгдлийг давтахаас сэргийлдэг өөр нэг жижиг функцийг оруулах ёстой. Үүний тулд бид сүүлийн мэдэгдлийн хаягийг санах ойд хадгалж, одоогийнхтой ижил эсэхийг шалгах хэрэгтэй. Хэрэв тийм бол, хориглосон мэдэгдлүүдийн хувьд хаягийн утга өсөх эсвэл буурах болно.

Алхам 8: Код бичих

Код бичих
Код бичих
Код бичих
Код бичих
Код бичих
Код бичих

Бид түлхүүр үг хайхын тулд indexOf командыг ашигладаг. Тушаал нь өөр тэмдэгт мөр эсвэл тэмдэгт мөрийг олдог. Хэрэв олдвол тэр мөрийн индексийг буцаана, харин -1 олдохгүй бол буцаана. Тиймээс манай програмд үүнийг дараах байдлаар бичих хэрэгтэй: if (voice.indexOf ("таны нэр")> -1) {// хэрэв индекс -1 -ээс их бол // мөр олдсон гэсэн үг} Одоо Бид мөрийг санах ойд хадгалсан бөгөөд түлхүүр үгээ дотор нь оруулсан тул одоо бид хариултуудыг зохицуулах шаардлагатай болно. Дээр дурдсанчлан санамсаргүй тоонууд нь тодорхой тооны хязгаарт (дуут файлуудын хаяг) бий болдог. Энд random () тушаал гарч ирнэ. Энд синтакс байна: санамсаргүй (мин, хамгийн их); // санамсаргүй тоог хамгийн бага ба хамгийн их хязгаарт бий болгодог. Бид муж бүрийн хамгийн бага тоо ба хамгийн их тоог тодорхойлдог бөгөөд үүнийг ашигласнаар манай код дараах байдлаар харагдаж байна: if (voice.indexOf ("таны нэр")> - 1)) {минNo = 0; maxNo = 5; RandomNumber = санамсаргүй (minNo, maxNo);} Одоо хариултуудыг зохицуулж байна. Сүүлчийн алхамд би алгоритм дээр үндэслэн тоонуудыг нэмэгдүүлж, бууруулж байгааг хэллээ. Энэ алгоритм нь бидний одоо хэлэлцэж буй зүйл юм. Энэ хэсэг нь хүссэнээрээ өсгөж, бууруулж болохгүй гэдэг утгаараа маш чухал юм. Өсөн нэмэгдэж буй эсвэл буурсан тоо нь мужид байх ёстой. Дээрх тохиолдолд "таны нэр" гэсэн түлхүүр үгийн хувьд бид 0 -ээс 5 хооронд хэлбэлздэг бөгөөд санамсаргүй тоо 5 байна, хэрэв та үүнийг нэмэгдүүлэх юм бол өөр түлхүүр үгийн дуут файлыг тоглуулах болно.. Яаж байх бол гэж бодож байна? Та "Хөөе, нэрээ хэлнэ үү" гэж асуухад робот "Би жигнэмэг идэх, цахилгаан цэнэглэх дуртай" гэж хариулдаг. Хамгийн бага тооны хувьд ч мөн адил. Хэрэв үүсгэсэн санамсаргүй тоо 0 бол та үүнийг бууруулах боломжгүй. Тиймээс энэ алгоритм нь маш чухал юм. Бодоод үз дээ: Бид тоо хамгийн их тооноос бага байх үед өсгөж, хамгийн бага тооноос их байх үед бууруулах боломжтой. Үүсгэсэн тоо 0 -тэй тэнцүү эсвэл 5 -аас бага байвал тоог нэмэгдүүлэх боломжтой. Нөгөөтэйгүүр, энэ нь 5 -тай тэнцүү бол бид энэ тоог заасан хязгаарт байгаа эсэхийг шалгахын тулд үүнийг багасгадаг. Дээр дурдсанчлан тэдгээрийг EEPROM -д хадгалдаг. Үүний тулд эхлээд хориотой массив дахь чөлөөт санах ойг хайж олох хэрэгтэй. 4 -р хаягийг үнэгүй гэж бодъё, дараа нь бид үнэгүй массивын хаягаар файлын дугаарыг оруулаад EEPROM -д ижил хаягийг бичнэ.for (int i; i if (хэзээ ч == 0) {EEPROM.write (хэзээ ч , санах ой);}} Энэ бол Wtv020sd16p модулийг module.playVoice () тушаал болон санал болгож буй файлын дугаарыг ашиглан тоглуулах болно. Wtv020 модулийн ажиллагааг дараа хэлэлцэх болно.

Алхам 9: Сэтгэл хөдлөл оруулах

Сэтгэл хөдлөл оруулах
Сэтгэл хөдлөл оруулах
Сэтгэл хөдлөл оруулах
Сэтгэл хөдлөл оруулах
Сэтгэл хөдлөл оруулах
Сэтгэл хөдлөл оруулах

Өнөөг хүртэл манай робот бидний хэлж буй зүйлийг таньж, ой санамждаа хадгалж, асуултуудад тохирох хариултыг олох чадвартай болсон. Одоо сэтгэл хөдлөл оруулах асуулт гарч ирж байна. Хүн бүр амьд нүүр царай, асуулт хариулах тэнэг програмтай байх нь гарцаагүй. Төсөлд 16х2 хэмжээтэй LCD дэлгэцийг ашигладаг. Нүдээ хэвлэхэд хангалттай сайн. Нүд үүсгэхийн тулд бид өөрчлөн тохируулсан тэмдэгтийн функцийг ашиглах хэрэгтэй. Гаалийн тэмдэгт нь пикселийг тодорхойлох замаар шинэ тэмдэгт үүсгэх боломжийг бидэнд олгодог. Бид энэ талаар хэсэг хугацааны дараа дэлгэрэнгүй ярих болно. Нэгдүгээрт, Arduino нь зөвхөн 8 тусгай тэмдэгтийг дэмждэг гэдгийг санах нь чухал юм. Тиймээс бид зөвхөн 8 тэмдэгтээр сэтгэл хөдлөлөө удирдах хэрэгтэй. Тэмдэгт бүрийг тодорхой хайрцагт хэвлэх бөгөөд 16 багана, 2 мөр бөгөөд нийт 32 хайрцгийг багтаасан болно.

Та Arduino дахь өөрчлөн тохируулсан дүрүүдийн талаар онлайнаар сайн мэдээлэл олж авах боломжтой. Мөн энэ линкээр орж үзэх боломжтой:

[Custom Characters Arduino] Захиалгат тэмдэгтийн байтын бүтэц иймэрхүү харагдах болно.

Хэвийн харагдац: Зүүн талын хайрцаг0b01111, 0b01111, 0b01111, 0b01111, 0b01111, 0b01111, 0b01111, 0b01111, баруун хайрцаг. Энэ нь бүхэл бүтэн нүдийг дүүргэхийн тулд бидэнд нийт 4 хайрцаг хэрэгтэй болно гэсэн үг юм. Зүүн талд хоёр, баруун талд хоёр эгнээ хийж, нэг нүдэнд зориулж дөрвөн хайрцаг хийдэг. Зүүн хайрцагны байт нь зүүн талын хоёр эгнээ, баруун талын хайрцаг нь баруун мөрийг далдлах ёстой. Тиймээс энэ нь Евагийн бүрэн харцыг бүрдүүлдэг. Хоёр дахь нүдээрээ ижил зүйлийг давтаж хэлэхэд бид Еваагийн төвийг сахисан дүр төрхийг олж авдаг. Бид одоо байгаа захиалгат найман тэмдэгтийн нэгийг ашигласан гэдгийг санах нь чухал юм. Glee, Sad, Squint, Normal and Blink гэсэн таван нийт сэтгэл хөдлөл байдаг. Долоон өөрчлөн тэмдэгтийн хувьд бид бүх илэрхийлэлд тохируулан тохируулах хэрэгтэй. Орон зайг бүрдүүлэхийн тулд бид нүд бүрт 2 хайрцаг ашиглах болно. Хэмжээ нь жаахан бага байх нь гайхах зүйл биш боловч үүнийг хүний нүд анзаарахгүй байх болно. Зүгээр л LCD функцуудын хооронд бага зэрэг саатал нэмэх хэрэгтэй, эс тэгвээс Arduino тогтворгүй болно.

Алхам 10: Холболт хийх

Холболт хийх
Холболт хийх
Холболт хийх
Холболт хийх
Холболт хийх
Холболт хийх

LCD модуль: Энд дурдсанчлан тээглүүрүүдийг холбоно уу: RS: ухах зүү 12RW: GndEnable: 7d4: ухах зүү 8 d5: ухах зүү 9 d6: ухах зүү 10 d7: ухах зүү13A (анод) 5vK (катод) руу gndThe HC 05 модуль: Эдгээр холболтуудыг дагана уу: HC 05 TX pin to Arduino RX pinHC 05 RX pin to Arduino TX pinState pin to Arduino dig pin 11 Харилцаа холбоо нь TX ба RX зүү ашиглан хийгддэг. Улсын зүү нь HC 05 -ээр холбогдсон эсвэл идэвхгүй байгаа эсэхийг шалгах шаардлагатай байдаг. зүү 4pin15 ухах: завгүй зүү, ухах зүү 5pin2-ийг холбох: энэ зүүг өсгөгч рүү чанга дуугаар холбож, мөн эмэгтэй аудио үүрэнд холбоно уу. pin4-ийг чанга яригч+пин5-тэй холбох хэрэгтэй. Gnd 8 -р зүү, 16 -р зүү дээр 3.3V цахилгаан тэжээл өгөх.

Өсгөгч нь Евагийн дотоод чанга яригчийг тоглуулахад туслах бөгөөд аудио үүр нь гадаад өсгөгч болон том чанга яригчтай холбогдох ёстой.

Алхам 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 форматтай байх ёстой. Цаашилбал, модуль нь зөвхөн 1gb micro SD карт дээр ажилладаг. Зарим модуль нь 2gb карт дээр ажилладаг бөгөөд карт нь хамгийн ихдээ 504 дуут файлыг багтаах боломжтой. Тиймээс та олон тооны асуултуудад тоглохын тулд олон тооны дуут файлуудыг оруулж болно.

Та AD4 файлыг өөрийн гараар хийж болно. Нэгдүгээрт, та хоёр програм хангамжтай байх ёстой, дууны засварлах програм, AD4 формат руу хөрвүүлэх 4D SOMO TOOL нэртэй програм хангамж. Хоёрдугаарт, та роботын дуу хоолойг бэлтгэх хэрэгтэй. Та текстийг ярианд хөрвүүлэх эсвэл бүр өөрийн дуу хоолойг бичиж, роботын дуу хоолойг гаргах боломжтой. Эдгээрийг хоёуланг нь Дуу засварлах програм хангамж дээр хийж болно. Гэхдээ робот хүний дуугаар ярьдаг бол тийм ч сайхан харагдахгүй нь лавтай. Тиймээс текстийг ярианд хөрвүүлэх нь дээр байх. Майкрософт Анна, Майкрософт Сэм гэх мэт янз бүрийн хөдөлгүүрүүд үүнийг хийхэд тусална. Mine нь Microsoft Eva дээр суурилсан. Энэ дуу хоолой нь Кортана -тай ихээхэн нийцдэг. Дуут файлуудыг бэлтгэсний дараа та үүнийг 32000 Гц давтамжтай, WAV форматаар хадгалах ёстой. Учир нь модуль нь 32000 Гц хүртэл дуут файлуудыг тоглуулж чаддаг. Дараа нь 4D SOMO TOOL ашиглан файлуудыг AD4 формат руу хөрвүүлнэ. Үүнийг хийхийн тулд SOMO TOOL -ийг нээгээд файлуудыг сонгоод AD4 Encode дээр дарахад таны дуут файлууд бэлэн болно. Та роботын дуу хоолой гаргах талаар илүү дэлгэрэнгүй мэдээлэл авахыг хүсвэл дээрх зургийг үзнэ үү: [Making Robotic Voices]

Алхам 12: Програм хангамжийн хэсэг

Програм хангамжийн хэсэг
Програм хангамжийн хэсэг
Програм хангамжийн хэсэг
Програм хангамжийн хэсэг
Програм хангамжийн хэсэг
Програм хангамжийн хэсэг

Arduino Pro mini -д програмчлахад бага зэрэг асуудал гардаг. Үнэндээ асуудал биш, зөвхөн нэг нэмэлт алхам. Arduino Pro mini нь бусад Arduino самбаруудын нэгэн адил суулгагдсан програмист байдаггүй. Тиймээс та гаднаас эсвэл хуучин arduino UNO худалдаж авах хэрэгтэй. Энд байгаа алхам нь Arduino UNO ашиглан програмыг хэрхэн байршуулах талаар тайлбарласан болно. Ослын үед хуучин Arduino UNO самбарыг аваад Atmega 328p -ийг аваарай. Дараа нь доор дурдсанчлан холбоно уу: 1. UNO дээрх TX зүү нь Pro Mini дээрх TX зүү рүү 2. UNO -ийн RX зүү нь Pro MIni3 -ийн RX зүү рүү. НҮБ -ын зүүг Pro Mini4 -ийн дахин тохируулах зүү рүү дахин тохируулна уу. VCC ба Ground of Pro Mini -ийг НҮБ -д холбоно уу. Arduino програм, дуу таних програм хангамж, доод талд байгаа номын санг татаж авах. Хөтөлбөрийг боловсруулж байгаа хэвээр байна. Хэрэв танд ямар нэгэн асуудал байгаа бол асуугаарай, дараа нь кабелийг компьютерт холбоно уу. Самбарыг Arduino Pro Mini гэж сонгоод зөв COM портыг сонгоно уу. Дараа нь Байршуулах товчийг дарж програмыг таны Pro Mini дээр татаж авахыг үзнэ үү.

Дараа нь Дуу таних програм хангамж болон дуут файлуудыг татаж аваарай.

Алхам 13: Биеэ бэлдэх

Бие махбодийг бэлтгэх
Бие махбодийг бэлтгэх
Бие махбодийг бэлтгэх
Бие махбодийг бэлтгэх
Бие махбодийг бэлтгэх
Бие махбодийг бэлтгэх

Би жижигхэн хайрцагтай шүдний оосор олж, биед төгс тохирсон болохыг олж мэдэв. Та семинарт олдсон хайрцгийг ашиглаж болно, эсвэл картоноор хийж болно. LCD модулийг холбохын тулд жижиг тэгш өнцөгт хэсгийг хайчилж ав. Дээд талд нь би дууны хэмжээг холбох жижиг нүх, хажуу тийш нь унтраалга, аудио холбогчийг холбох зорилгоор хайчилж авав. Би дугуйны хайрцгийн хоёр талд хоёр шилний таг таг хийв. Зөвхөн хайрцагт хэлхээг дотор нь оруулах хангалттай зай байгаа эсэхийг шалгаарай. Шилжүүлэгчийг бие болон хэлхээнд, дараа нь хайрцгийн дээд хэсэгт эзлэхүүнийг хавсаргана уу. Дараа нь хэлхээг дотор нь оруулаад робот чинь дууссан байна.

Алхам 14: Сайн байна

Сайн хийлээ!
Сайн хийлээ!
Сайн хийлээ!
Сайн хийлээ!

Одоо та тантай ярилцаж, аз жаргалыг мэдрүүлэх хөөрхөн бяцхан роботынхоо төслийг дуусгалаа. Энэ бол таны төсөл дуусч, бүрэн ажиллаж байгаа үед DIYer болох хамгийн аз жаргалтай үе юм. Хэрэв та нэг оролдлогоор амжилтанд хүрээгүй бол санаа зовох хэрэггүй, ингэснээр та роботынхоо хэсэг бүрийг ойлгохын тулд маш их хичээх хэрэгтэй. Эндээс гар хийцийнхэн энэ ертөнцөд ирдэг боловч энэ нь төслийн төгсгөл биш юм. Ева үргэлж илүү их хэмжээгээр хөгжих болно, эсвэл би эсвэл чам шиг DIYers. Энэхүү зааварчилгааг хараад таны хийсэн зүйлийг сонсох дуртай байсан. Хүндэтгэсэн, RS3655

Зөвлөмж болгож буй: