ROBOTDAN TUG'ILGAN HISSIYa To'siq: 11 qadam
ROBOTDAN TUG'ILGAN HISSIYa To'siq: 11 qadam

Video: ROBOTDAN TUG'ILGAN HISSIYa To'siq: 11 qadam

Video: ROBOTDAN TUG'ILGAN HISSIYa To'siq: 11 qadam
Video: Shanghai Yuuki(上海遊記) 11-21 Ryunosuke Akutagawa (Audiobook) 2025, Yanvar
Anonim
ROBOTNI QO'YISHGA TUSHUNCHI TUG'ILISH
ROBOTNI QO'YISHGA TUSHUNCHI TUG'ILISH

Hissiy robot. Bu robot qayg'u, baxt, g'azab va qo'rquv kabi neopikselli (RGB LED) his -tuyg'ularni namoyish etadi, shuningdek, ma'lum his -tuyg'ular paytida to'siqlardan qochib, ba'zi harakatlarni bajarishi mumkin. Bu robotning miyasi Arduino megasidir. Shuni yodda tutingki, bu men yaratgan birinchi dasturlashtirilgan robot, va u meni dasturlashga oshiq qildi, kodning o'zi juda yangi va uni soddalashtirish mumkin.

1 -qadam: QISMLAR

QISMLAR
QISMLAR

-3,2 futlik neopixel tasmasi

-HC-SR04 Ultrasonik Sensor (yoki boshqa ultrasonik sensor)

-siljish tugmasi

-3 3.7V lityum -ionli batareya (18650)

-konvertorni kuchaytirish (quvvat bosqichida tushuntirilgan)

-rasm qarshiligi (har qanday qiymat)

-analog ovoz sensori

-2V shahar 6v dvigatellari

-l293d (dvigatel haydovchisi)

-plastmassa varaq

-karton

-g'ildirak g'ildiragi

2 -qadam: Neopiksellar

Neopiksellar
Neopiksellar
Neopiksellar
Neopiksellar

Qattiq byudjetda bo'lganim sababli, robotlarning his -tuyg'ularini hayotga qaytarishning eng oddiy va eng arzon usuli - bu neopikseldir, ular bor -yo'g'i 3 ta kirish va chiqish. kirishdagi uchta pim 5v, DIN (ma'lumotlar in) va GND (tuproq) bilan belgilanadi; chiqish kirish bilan bir xil deb belgilanadi, lekin uning o'rniga DO ma'lumoti (ma'lumotlar chiqishi). Ularni ulash usuli - bu ularni bir -biriga parallel ravishda ulash, shuning uchun 5v boshqa vidada 5v ga ulanadi va GND boshqa LED GND ga ulanadi, birinchi svetoforning DO ikkinchi LEDning DIN ga ulanadi. bu jarayon siz xohlagan chiziq uzunligiga yetguncha davom etadi. Neopixellarning butun chizig'i kirish uchun faqat bitta raqamli chiqish pinini talab qiladi, chunki DO va DIN uzun zanjirda ulangan, shuning uchun ham ular bir -biri bilan ma'lumot almashadilar. Bu zarur, chunki biz ma'lum vaqtlarda ma'lum LEDlarni yoqish va o'chirishimiz kerak. NEOPIXEL HELP bu borada yordam beradi

3 -qadam: sxematik

Sxematik
Sxematik

O'chirish juda oddiy, chunki ko'pchilik robot faqat dasturlashtirilgan, dvigatellar l293d dvigateli bilan 7v ga yaqin ishlaydi va dvigatellarni oldinga siljishini nazorat qiladi. Boshqa ulanishlar Arduino uchun sensorlardir. Va bu hammasi!

4 -qadam: Kod

Men qilgan birinchi narsa, kodlashni biroz osonlashtirish uchun kerakli kutubxonalarni yuklab olish, men ishlatgan kutubxonalar "FastLED.h" va "NewPing.h". Tez boshqariladigan LEDlar uchun, yangi ping - ultratovushli sensorlar uchun. Keyingi qilgan ishim, men ishlatgan pinlar uchun barcha ta'riflarni berish edi, shundan so'ng bo'sh o'rnatish o'rnatildi, bu erda men pin rejimlarini o'rnatdim va "FastLED.addLeds (leds, NUM_LEDS)" neostripini o'rnatdim. Men NUM_LEDSni 56 deb aniqladim, chunki men 56 ta LEDni ishlatganim uchun, LEDlarning konfiguratsiyasi yuz bosqichida tushuntiriladi. Keyin men robotning oldinga va orqaga harakatlanishi uchun bir qator funktsiyalarni yaratdim, shuningdek, uning hissiyotiga ega bo'ldim, shundan so'ng men bo'shliqqa kelaman, bu erda men o'zim xohlagan ketma -ketlikdagi barcha funktsiyalarni chaqiraman. agar men robotimning tabassumini xohlasam, tabassum qilardim ();. Agar men ma'lum bir LEDni yoqishni xohlasam, qo'yardim, leds [45] = CRGB:: Green;, bu 45 -ni yashil rangga o'rnatadi. Rangni qora rangga qo'yganimda, bu shunchaki o'chirilgan degan ma'noni anglatadi. Shuni yodda tutingki, bu mening birinchi dasturlarimdan biri, shuning uchun u mukammal emas, lekin u hali ham ishlagan.

KOD

5 -qadam: yuz

Yuz
Yuz

Yuz uchun men 56 LEDni ishlatardim, bu deyarli to'liq 3.2 futlik neopixel tasmasi. Men chiziqni 8 ta svetodiodli 7 ta bo'lakka kesib tashladim, ko'zlar uchun birinchi 3 tasini va og'iz uchun oxirgi 4 tasini qo'lladim. Men chiziqlarni ilon shaklida bog'ladim, umid qilamanki, siz diagramani yaxshiroq tushunasiz. Yuzni tugatganimda, chiziqlar ustiga yupqa plastmassa (qalinligi taxminan 2 mm) qo'ydim.

6 -qadam: Baxtli funktsiya

Baxtli funktsiya
Baxtli funktsiya

Bu funksiya ulardan eng osoni, chunki u hech qanday datchiklarni ishlatmaydi, aksincha siz botni yoqsangiz, u darhol sizga tabassum qiladi. Lekin bu nafaqat tabassum qiladi; tabassum qilganda, u ham to'siqni oldini olish rejimida. To'siqlardan qochish rejimi rouming funktsiyasi sifatida mening kodimda ko'rsatilgan. To'siqni oldini olish rejimi yoki yurishdan qochish robotlar tomonidagi ikkita ultratovushli datchik yordamida amalga oshiriladi, agar sensor 30 sm ga yaqinlashsa, u zaxira qiladi va ob'ektga eng yaqin bo'lgan sensorga qarab o'ngga yoki chapga o'tadi.

7 -qadam: qayg'uli funktsiya

Qayg'uli funktsiya
Qayg'uli funktsiya
Qayg'uli funktsiya
Qayg'uli funktsiya

Robot g'amgin bo'lishi uchun men bu robotning o'ziga xos xususiyati haqida o'ylashim kerak edi, shuning uchun men uni qorong'i muhitda xafa qilishga qaror qildim. Buning uchun men yorug'likni sezish uchun foto rezistordan foydalandim. Atrof -muhit qanchalik qorong'i bo'lsa, qarshilik shunchalik yuqori bo'ladi va atrof -muhit qanchalik engil bo'lsa, qarshilik shunchalik past bo'ladi. O'chirish +5v va GND ga ketma -ket ulangan ikkita rezistorli zanjir bo'lgan kuchlanish bo'luvchi sifatida ishlaydi, rezistor ulanishining o'rta nuqtasida bu tenglama bilan aniqlanishi mumkin bo'lgan kuchlanish yotadi: kirish voltaji*(R2/R1 +R2)). Arduino analog pin bu qiymatni o'qiganida, u kuchlanishni 0 dan 1023 gacha o'zgartiradi.

8 -qadam: G'azablanish funktsiyasi

G'azablanish funktsiyasi
G'azablanish funktsiyasi
G'azablanish funktsiyasi
G'azablanish funktsiyasi

Robotni g'azablantirish uchun men uni ag'darishga/ag'darishga qaror qildim. Burilish tugmasi yordamida ishlaydi va burilish tugmasi asosan oddiy kalit, lekin tugma yoki rokerning o'rniga sizda simob to'pi bor, agar u ma'lum burchak ostida egilsa, ikkita kontaktni bog'lab yoqadi; shuning uchun bu qiymat 0 yoki 1, o'chirish uchun 0 va yoqish uchun 1 ga teng. Robot g'azablanganida, u to'siqni chetlab o'tish rejimini ham e'tiborsiz qoldiradi va g'azablangani uchun hamma narsani oldinga siljitadi.

9 -qadam: qo'rqinchli funktsiya

Qo'rqqan funktsiya
Qo'rqqan funktsiya
Qo'rqqan funktsiya
Qo'rqqan funktsiya

Robotning oxirgi vazifasi - bu qo'rqitish funktsiyasi bo'lib, u robotning tepasida joylashgan ovoz sensori yordamida amalga oshiriladi. Qachonki, robot yuk shovqinini eshitsa, orqaga ketayotganda qo'rqadi va qaltiraydi. Ovoz sensori mikrofon bo'lgan kondensator mikrofoni yordamida ishlaydi, u tovush yoki tebranishni sezganda kichik kuchlanish hosil qiladi, odatda taxminan 100 mV, keyin bu kuchlanish kuchayadi va Arduino analog pimi orqali o'qiladi. yoki baland ovozda analog qiymati qanchalik baland bo'lsa va aksincha.

10 -qadam: quvvat

Quvvat
Quvvat
Quvvat
Quvvat

Endi siz uni quvvatlantirish uchun kerak bo'lgan hamma narsani qurdingiz, men dastlab 8 ta AA batareyasi bilan quvvatlantirmoqchi bo'ldim, lekin juda katta va amaliy emas edi. Men keyin 3 lityum -ionli batareyadan foydalandim, ularning har birida 3,5 V quvvat bor, men bitta batareyani kuchlanish kuchaytirgichi bo'lgan konvertorga uladim, bu Arduino -ni quvvatlantirish uchun 3,5 V dan 5 V gacha kuchaytirdi, keyin ikkita batareyani ishlatdim va to'g'ridan -to'g'ri ulandim Bu dvigatellar va LEDlar uchun, bu yaxshi fikr emas, chunki kuchlanish tartibga solinmagan, lekin menda voltaj regulyatori yo'q edi, agar siz buni sinab ko'rsangiz va qursangiz, men 5Vdan ko'ra voltaj regulyatoridan foydalanishni tavsiya qilaman. 2-3 amper atrofida, bunga misol-LM78S05. Yoki siz LM7805 -dan Arduino -ni quvvatlantirish uchun ishlatishingiz mumkin, buning o'rniga kuchlanishni pasaytirish va LED va dvigatellarni quvvatlantirish uchun pastga yoki pastga konvertorni olishingiz mumkin.

11 -qadam: Xursand bo'ling !!

Umid qilamanki, siz ushbu robotni qurasiz va vaqtingizni maroqli o'tkazasiz, umid qilamanki, siz ushbu robotga o'zingizni aylantirasiz va uni tirik qilish uchun o'z his -tuyg'ularingizni yaratasiz !!!