ЭМОЦИОНАЛДЫҚ РОБОТТАН ҚАУЫТ БОЛМАУ: 11 қадам
ЭМОЦИОНАЛДЫҚ РОБОТТАН ҚАУЫТ БОЛМАУ: 11 қадам
Anonim
ЭМОЦИОНАЛДЫҚ КЕДЕРІС РОБОТТАН ҚАШЫП
ЭМОЦИОНАЛДЫҚ КЕДЕРІС РОБОТТАН ҚАШЫП

Эмоционалды робот. Бұл робот эмоцияларды неопиксельдермен көрсетеді (RGB светодиодтары), мысалы, қайғы, бақыт, ашулану мен қорқу, сонымен қатар ол белгілі бір эмоция кезінде кедергілерден аулақ болады және белгілі бір қозғалыстар жасайды. Бұл роботтың миы - Arduino мега. Есіңізде болсын, бұл мен жасаған бірінші бағдарламаланған робот, және ол мені бағдарламалауға ғашық етті, кодтың өзі өте жаңашыл және оны жеңілдетуге болады.

1 -қадам: БӨЛІМДЕР

БӨЛІКТЕР
БӨЛІКТЕР

-3.2 фут неопиксельді жолақ

-HC-SR04 ультрадыбыстық сенсор (немесе кез келген басқа ультрадыбыстық сенсор)

-айналдыру

-3 3.7в литий -ионды батарея (18650)

-түрлендіргішті күшейту (қуат қадамында түсіндірілген)

-фото резистор (кез келген мән)

-аналогтық дыбыс сенсоры

-6 вольтты тұрақты ток қозғалтқыштары

-l293d (мотор жүргізушісі)

-пластикалық парақ

-картон

-дөңгелек

2 -қадам: неопиксельдер

Неопиксельдер
Неопиксельдер
Неопиксельдер
Неопиксельдер

Менің бюджетім өте тығыз болғандықтан, роботтардың эмоцияларын өмірге келтірудің ең қарапайым және арзан әдісі - бұл неопиксельдер, оларда тек 3 кіріс пен шығыс бар. кірістегі үш түйреуіш 5v, DIN (деректердегі) және GND (жерге) деп белгіленген; шығыс кіріспен бірдей таңбаланады, бірақ оның орнына DO (деректердің шығуы). Бұл светодиодты қосу әдісі - оларды бір -бірімен параллель қосу, сондықтан 5в басқа светодиодта 5в -ке қосылады, ал GND басқа сымды GND -ге қосылады, бірінші сымның DO -сы екінші сымның DIN -ге қосылады. бұл процесс қалаған жолақ ұзындығына жеткенше жалғасады. Неопиксельдердің тұтас жолағы кірістен тек бір цифрлық шығыс түйреуішін қажет етеді, себебі DO мен DIN ұзын тізбекке қосылған, сондықтан олар бір -бірімен деректермен бөліседі. Бұл қажет, себебі біз белгілі бір уақытта жарықдиодты қосамыз және өшіреміз. Бұл үшін пайдалы нұсқаулық NEOPIXEL HELP болып табылады

3 -қадам: Схема

Схемалық
Схемалық

Бұл схема өте қарапайым, себебі роботтың көпшілігі жай ғана бағдарламаланған, қозғалтқыштар l293d қозғалтқышының двигателімен 7в жақын жұмыс істейді. Басқа қосылыстар - Arduino сенсорлары. Және бұл!

4 -қадам: Кодекс

Мен жасаған бірінші нәрсе - кодтауды жеңілдету үшін қажетті кітапханаларды жүктеу, мен қолданған кітапханалар - «FastLED.h» және «NewPing.h». Жылдам светодиод шамдарға арналған, ал жаңа пинг - ультрадыбыстық сенсорларға арналған. Мен жасаған келесі нәрсе - мен қолданған түйреуіштердің барлық анықтамаларын жасау болды, содан кейін ол жарамсыз күйге келтірілді, бұл жерде мен түйреуіш режимдерін және «FastLED.addLeds (leds, NUM_LEDS)» неострипін орнаттым; Мен NUM_LEDS -ті 56 деп анықтадым, себебі мен 56 жарықдиодты қолдандым, светодиодтардың конфигурациясы бет қадамында түсіндіріледі. Содан кейін мен роботтың алға және артқа жылжуына, сондай -ақ оның белгілі бір эмоциясына ие болатын көптеген функцияларды жасадым, содан кейін мен бос циклге келемін, бұл жерде мен өзімнің барлық функцияларымды белгілі бір ретпен шақырамын, мысалы, егер мен роботымның күлгенін қаласам, онда күлімсіреуді қоятын едім ();. Егер мен белгілі бір жарықдиодты қосқым келсе, мен қосар едім, leds [45] = CRGB:: Green;, бұл 45 -ді жасыл түске айналдырады. Мен түсі қара түске қойған кезде, бұл тек өшіруді білдіреді. Есіңізде болсын, бұл менің алғашқы бағдарламаларымның бірі, сондықтан ол мінсіз емес, бірақ ол жұмыс істеді.

КОД

5 -қадам: Бет

Бет
Бет

Бет үшін мен 56 жарықдиодты қолдандым, бұл толық 3,2 футтық неопиксельді жолақ. Мен жолақты 8 светодиодтан 7 жолаққа бөлдім, мен көзге алғашқы 3 жолақты және аузына соңғы 4 жолақты қолдандым. Мен жолақтарды жылан түрінде жалғадым, сіз диаграмманы жақсы түсінесіз деп үміттенемін. Мен бетті аяқтаған кезде, жолақтардың үстіне жұқа пластикалық парақты (қалыңдығы шамамен 2 мм) қойдым.

6 -қадам: Бақытты функция

Бақытты функция
Бақытты функция

Бұл функция олардың ең оңайсы, өйткені ол сенсорларды пайдаланбайды, керісінше сіз ботты қосқан кезде ол сізге бірден күлімсірейді. Бірақ бұл тек жымиып қана қоймайды; ол жымиған кезде, ол кедергілерді болдырмау режимінде де болады. Кедергілерді болдырмау режимі менің кодта роуминг функциясы ретінде көрсетілген. Кедергілерді болдырмау режимі немесе роуминг роботтар жағында екі ультрадыбыстық датчиктерді қолдана отырып жұмыс істейді, егер сенсор кез келген нәрсеге 30см жетсе, объектіге ең жақын сенсорға байланысты оңға немесе солға кетеді.

7 -қадам: қайғылы функция

Өкінішті функция
Өкінішті функция
Өкінішті функция
Өкінішті функция

Роботтың қайғылы болуы үшін мен осы роботтың жеке қасиетін ойлауға мәжбүр болдым, сондықтан мен оны қараңғы ортада қиналуды шештім. Ол үшін мен жарықты сезу үшін фото резисторды қолдандым. Қоршаған орта неғұрлым қараңғы болса, соғұрлым қарсылық жоғары болады және қоршаған орта неғұрлым ашық болса, соғұрлым қарсылық төмен болады. Схема кернеуді бөлгіш ретінде жұмыс істейді, бұл тізбектегі +5в пен GND -ге қосылған екі резисторы бар тізбек, резистордың қосылуының ортасында осы теңдеу арқылы анықталатын кернеу жатыр: кіріс кернеуі*(R2/R1 +R2)). Arduino Analog Pin бұл мәнді оқығанда кернеуді 0 -ден 1023 -ке дейінгі диапазонға түрлендіреді.

8 -қадам: Ашулану функциясы

Ашулану функциясы
Ашулану функциясы
Ашулану функциясы
Ашулану функциясы

Роботты ашуландыру үшін мен оны аударып/құлатуды шештім. Бұл көлбеу қосқышты қолдану арқылы жұмыс істейді, ал көлбеу қосқыш - бұл қалыпты қосқыш, бірақ түйме немесе рокердің орнына сізде белгілі бір бұрышта қисайған жағдайда екі контактіні қосатын және қосылатын сынап бабы бар; сондықтан бұл мән 0 немесе 1, өшіру үшін 0 және қосу үшін 1 болады. Робот ашуланған кезде, ол кедергілерден аулақ болу режимін елемейді және ашуланғандықтан кез келген нәрсені алға қарай бағыттайды.

9 -қадам: қорқынышты функция

Қорқынышты функция
Қорқынышты функция
Қорқынышты функция
Қорқынышты функция

Роботтың соңғы функциясы - бұл роботтың жоғарғы жағында орналасқан дыбыс датчигін қолданатын қорқынышты функция. Робот жүктеме дыбысын естігенде, артқа қарай жүріп қорқады және қалтырайды. Дыбыс сенсоры микрофон болып табылатын конденсаторлы микрофонмен жұмыс істейді, ол дыбыстарды немесе тербелістерді сезгенде кішігірім кернеуді жасайды, әдетте шамамен 100 мВ құрайды, содан кейін бұл кернеу күшейтіледі және Arduino аналогтық штыры арқылы оқылады, кернеу соғұрлым жоғары болады. немесе дыбыс қаттырақ болса, аналогтық мән соғұрлым жоғары болады және керісінше.

10 -қадам: қуат

Қуат
Қуат
Қуат
Қуат

Енді сіз оны қуаттандыру үшін қажет нәрсенің бәрін жасадыңыз, мен бастапқыда 8 АА батареясымен қуаттандыруға тырыстым, бірақ өте көлемді және практикалық емес. Содан кейін мен әрқайсысы 3,5 вольттан тұратын 3 литий -иондық батареяны қолдандым, мен бір аккумуляторды кернеуді күшейткіш түрлендіргішке жалғадым, бұл Arduino -ны қуаттандыру үшін 3,5 в -тан 5 в -қа дейін арттырды, содан кейін мен екі батареяны қолдандым және тікелей қосылдым. Бұл қозғалтқыштар мен светодиоды үшін бұл жақсы идея емес, өйткені кернеу реттелмеген, бірақ менде кернеу реттегіші жоқ, егер сіз оны сынап, құрастырсаңыз, мен 5 вольттан гөрі кернеу реттегішін қолдануды ұсынамын. шамамен 2-3 амперде, бұған мысал LM78S05. Немесе LM7805 көмегімен Arduino -ны қуаттандыруға болады, керісінше кернеуді төмендету және светодиодтар мен қозғалтқыштарды қуаттандыру үшін төмендеткішті немесе конвертерді алуға болады.

11 -қадам: Көңілді болыңыз !

Сіз бұл роботты құрып, уақытты көңілді өткізесіз деп үміттенемін, сонымен қатар сіз бұл роботқа өзіңізді айналдырасыз және оны тірі ету үшін өзіңіздің эмоцияларыңызды жасайсыз деп үміттенемін !!!

Ұсынылған: