Мазмуну:

ЭМОЦИОНАЛДЫК РОБОТТОН КАЧУУ: 11 кадам
ЭМОЦИОНАЛДЫК РОБОТТОН КАЧУУ: 11 кадам

Video: ЭМОЦИОНАЛДЫК РОБОТТОН КАЧУУ: 11 кадам

Video: ЭМОЦИОНАЛДЫК РОБОТТОН КАЧУУ: 11 кадам
Video: Эмоционалдык жактан жетилүү эмне үчүн керек? 2024, Ноябрь
Anonim
ЭМОЦИОНАЛДЫК РОБОТТОН КАЧУУ
ЭМОЦИОНАЛДЫК РОБОТТОН КАЧУУ

Эмоционалдык робот. Бул робот эмоцияларды неопикселдер (RGB LED'лери) менен көрсөтөт, мисалы, кайгы, бакыт, ачуулануу жана коркуу, ошондой эле тоскоолдуктардан качып, белгилүү бир эмоция учурунда кээ бир кыймылдарды жасай алат. Бул роботтун мээси Arduino мега болуп саналат. Эсиңизде болсун, бул менин эң биринчи программаланган роботум жана ал мени программалоого ашык кылып койгон, коддун өзү абдан башталгыч жана жөнөкөйлөштүрүлүшү мүмкүн.

1 -кадам: БӨЛҮКТӨР

БӨЛҮКТӨР
БӨЛҮКТӨР

-3.2ft неопикселдик тилке

-HC-SR04 Ultrasonic Sensor (же башка УЗИ сенсор)

-которуу

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

-Boost Converter (күч кадамында түшүндүрүлөт)

-Сүрөт резистору (каалаган мааниде)

-аналогдук үн сенсору

-2 DC кыймылдаткычтары 6v

-l293d (мотор айдоочу)

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

-картон

-дөңгөлөк

2 -кадам: Neopixels

Neopixels
Neopixels
Neopixels
Neopixels

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

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

Схемалык
Схемалык

Роботтун көпчүлүгү жөн эле программалангандыктан, моторлор артка карай алдыга жылуу үчүн моторлорду башкаруу үчүн l293d мотор айдоочусу менен 7в жакын иштейт. Башка байланыштар Arduino үчүн сенсорлор. Жана бул!

4 -кадам: Код

Мен жасаган биринчи нерсе, коддоону бир аз жеңилдетүү үчүн керектүү китепканаларды жүктөп алуу, мен колдонгон китепканалар "FastLED.h" жана "NewPing.h". Тез башкаруучу ледтер үчүн, ал эми жаңы пинг - УЗИ сенсорлору үчүн. Кийинки кылган нерсем, мен колдонгон казыктар үчүн бардык аныктамаларды жасоо болду, ошондон кийин жараксыз орнотуу бул жерде мен пин режимдерин жана "FastLED.addLeds (leds, NUM_LEDS)" neostripин орноттум; Мен NUM_LEDSти 56 деп аныктадым, анткени мен 56 ледди колдонгондуктан, леддердин конфигурациялары жүз кадамында түшүндүрүлөт. Мен андан кийин роботумдун алдыга жана артка жылышына жана анын эмоциясына ээ болуу үчүн көптөгөн функцияларды түздүм, ошондон кийин боштуктун айлануусуна келем, бул жерде мен каалаган бардык функцияларды белгилүү бир ырааттуулукта чакырам, мисалы, эгер мен роботумдун жылмайышын кааласам, анда жылмайып коймокмун ();. Эгерде мен кандайдыр бир LEDдин күйгүзүлүшүн кааласам, 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 -кадам: Angry Function

Angry Function
Angry Function
Angry Function
Angry Function

Роботту ачуулантуу үчүн мен аны оодарып/кулатууну чечтим. Бул эңкейиш которгучту колдонуу менен иштейт, жана эңкейиш которгуч негизинен кадимки эле которгуч, бирок баскычтын же рокердин ордуна сизде сымап топу бар, эгерде ал белгилүү бир бурчта кыйшайса, эки контактты бириктирип күйгүзөт; Демек, бул маани 0 же 1, өчүрүү үчүн 0 жана күйгүзүү үчүн 1. Робот ачууланганда, ал тоскоолдуктан качуу режимине көңүл бурбайт жана каарынан улам алдыга карай бир нерсени кочкорлойт.

9 -кадам: корккон функция

Корккон функция
Корккон функция
Корккон функция
Корккон функция

Роботтун акыркы функциясы - бул коркуу функциясы, ал роботтун үстүнө коюлган үн сенсорун колдонот. Качан робот жүктүн ызы -чуусун укса, артка кетип баратканда коркуп, калтырап кетет. Үн сенсору микрофон болгон конденсатор микрофонун колдонуу менен иштейт, ал үндөрдү же дирилдөөнү сезгенде кичинекей чыңалууну жаратат, адатта болжол менен 100 мВ, бул чыңалуу күчөтүлөт жана Arduino аналогдук пини аркылуу окулат, ошончолук жогорку чыңалуу же катуу үн аналогдук мааниси ошончолук жогору болот жана тескерисинче.

10 -кадам: Күч

Күч
Күч
Күч
Күч

Эми сиз аны кубаттоо үчүн керектүү нерселердин бардыгын курдуңуз, мен аны 8 АА батарейкасы менен иштетүүгө аракет кылдым, бирок өтө көлөмдүү жана практикалык эмес. Мен андан кийин 3 литий -ион батареяларын колдондум, алардын ар биринде 3,5В, мен бир батареяны күчөткүчкө айландыруучуга туташтырдым, бул менин 3.5v -ды 5v чейин күчөтүп, Arduino -ду иштетүү үчүн, андан кийин эки батареяны колдондум жана түз туташтым Бул моторлорго жана светодиоддорго, бул жакшы идея эмес, анткени чыңалуу жөнгө салынган эмес, бирок менде чыңалуу жөнгө салуучу жок болчу, эгер сиз муну аракет кылсаңыз жана 5v кыла албаганыңызга караганда чыңалуу жөндөгүчүн колдонууну сунуштайм. 2-3 ампердин тегерегинде бул мисал LM78S05. Же сиз LM7805ти Arduino -ны иштетүү үчүн колдонсоңуз болот, анын ордуна чыңалууну төмөндөтүү жана светодиоддорду жана моторлорду иштетүү үчүн бир аз ылдый которгучту же долларды алмаштыргычты аласыз.

11 -кадам: Көңүл ачыңыз !

Мен бул роботту куруп, кызыктуу убакыт өткөрөсүз деп үмүттөнөм, мен дагы сиз бул роботко өзүңүздүн айланууңузду салып, аны тирүү кылуу үчүн өз эмоцияларыңызды жаратасыз деп ишенем !!!

Сунушталууда: