Mundarija:

"Uyda yolg'iz" o'g'irlikdan qochish/ Stepiny va Servo haydash uchun Attiny13 -dan foydalaning: 5 qadam
"Uyda yolg'iz" o'g'irlikdan qochish/ Stepiny va Servo haydash uchun Attiny13 -dan foydalaning: 5 qadam

Video: "Uyda yolg'iz" o'g'irlikdan qochish/ Stepiny va Servo haydash uchun Attiny13 -dan foydalaning: 5 qadam

Video:
Video: Prolonged Field Care Podcast 137: PFC in Ukraine 2024, Noyabr
Anonim
"Uyda yolg'iz" o'g'rilarning oldini olish/ Stepinmotor va servo haydash uchun Attiny13 -dan foydalaning
"Uyda yolg'iz" o'g'rilarning oldini olish/ Stepinmotor va servo haydash uchun Attiny13 -dan foydalaning
"Uyda yolg'iz" o'g'rilarning oldini olish/ Stepinmotor va servo haydash uchun Attiny13 -dan foydalaning
"Uyda yolg'iz" o'g'rilarning oldini olish/ Stepinmotor va servo haydash uchun Attiny13 -dan foydalaning

Bu mening eng g'alati loyihalarimdan biri bo'lishi mumkin:-) Ammo, garchi siz o'g'rilarni olib ketishdan manfaatdor bo'lmasangiz ham, bu loyiha sizga steppermotor yoki servo dvigatel yoki hatto Attiny13 bilan bir nechta shahar motorini haydash kerak bo'lgan hamma narsada ishlatilishi mumkin. Ko'pchiligingiz "Uyda yolg'iz" filmini eslaysiz, u erda MakKauli Kalkin o'g'rilarga o'zini uyda yolg'iz emasligini ko'rsatishga urinib ko'radi, kartondan yasalgan rasmni pleyerga qo'yib, odamlarga taqlid qilishi uchun boshqa kartonli figuraga iplar qo'yadi. Men tez -tez uydan uzoqda bo'lganim uchun, men o'z uyimni hali ham band bo'lgandek tashlab ketishni juda ongli ravishda bilaman. Chunki men "Uy simulyatori" ni nashr etdim, u chiroqni ma'lum bir tartibda, tasodifiylik bilan o'zgartiradi. kimdir hozir bo'lganga o'xshaydi. Men "soxta televizor" ni qo'shdim, bu televizor o'ynayotganga o'xshaydi, bularning hammasi yordam beradi, lekin agar mavjudlikni simulyatsiya qilishga kelsak, haqiqiy harakatdan yaxshiroq narsa yo'q. Shunday qilib, men harakatlanadigan narsaga muhtoj edim va menda pleyer yo'q edi va men bo'lmaganimda ishlashim mumkin bo'lgan narsani xohlaganim uchun, menga yanada mustahkamroq narsa kerak edi. Kartondan yasalgan rasmga ega bo'lishning eng aniq usuli harakat taassurotini yaratadi. 90 gradusga burish uchun u navbat bilan yorug'likni to'sib qo'yadi va nurni to'sib qo'ymaydi. Men buni avval arzon servo bilan qildim, lekin bu ikkita muammo tug'dirdi: o'qga kartondan yasalgan rasmni ham katta bo'lmaganini qo'shish qiyin edi. Men qildim, bu servo uchun tortishish juda ko'p bo'ladi. Kuchliroq servo narxlari keskin ko'tarildi, shuning uchun men "Steppermotor" deb o'ylay boshladim. Menda hali ham bor edi, chunki u sovutgichga ulangan edi, shuning uchun u ideal ko'rinardi. Steppermotorni burish dasturi Arduino -da osongina yozilgan edi, lekin karton rasmim o'lchamiga ega bo'lgani uchun tortish hali ham biroz muammo tug'dirdi. inson tanasi (uzunligi taxminan 80 sm). Men yo kartonni kuchaytirishim kerak, uni og'irlashtirar edim, yoki kichikroq qilib qo'yishim kerak edi. Ikkinchisi eng yaxshi echim bo'lib tuyuldi, chunki men uni yorug'likka yaqinroq qo'yishim mumkin edi. Shu vaqt mobaynida men ham figurani ko'tarish haqida o'ylardim. Dvigatellar, kasnaklar va boshqalar xayolimdan o'tdi va men bu fikrdan butunlay voz kechmagan bo'lsam -da, hozircha men karton rasmga kichik bir xususiyat qo'shishga qaror qildim va bu harakatlanuvchi bosh edi. Mening fikrimcha, bu raqam 90 gradusga burilish edi. Shunday qilib, u to'liq soyaga tushadi va keyin boshini qimirlatadi. va bu erda mening servoim yana kirdi, men karton shaklini aylantirish uchun butun arduino qurbon qilishni xohlamadim. Konteynerda, men o'zim yotqizgan Attiny13 bu ishni ham yaxshi bajara olishini taxmin qildim: qadam uchun 4 pin, servo uchun 1 pin. Men shuni tan olamanki, ba'zida men juda zich bo'la olaman, men qandaydir vaqtni, ma'lum bir vaqtda ishlash uchun qanday ssenariylarni o'ylab topganman, chunki men nazorat qilishni xohlardim. Men yuqorida aytib o'tgan "Uy simulyatoridan". Men sim yoki simsiz aloqa haqida o'yladim, lekin keyin Attin13 Manchestercode bilan bog'liq muammo emas edi va men qabul qilgich uchun pin kerak edi va bu arzon qabul qiluvchilarning sezgirligi unchalik yaxshi emas edi. Men allaqachon tijorat taymerini almashtirish haqida o'yladim, lekin keyin men ahmoq ekanligimni angladim. Nimaga o'z shaxsiy PSU kerak bo'lsa, nima uchun devor simini olmaysiz va uni uy simulyatorimdan boshqaradigan masofadan boshqarish pultiga qo'ymaysizmi?

Arzon ServoA SteppermotorA karton quti Attiny 13An 8 pinli IC rozetkasi Stripboard bo'lagi 17 teshikli 9 tasma Ba'zi servo uzatma kabellari A ULN2003A 16 pinli IC rozetkasi 10 k rezistor Plastik kesish taxtasi (yoki boshqa engil material) 3 pinli erkak boshi (servo uchun) 6 pinli erkak boshi (steppermotor uchun) yopishqoq lenta (albatta)

Qo'shimcha: Attini dasturlash usuli

Steppermotor haqida faqat izoh. Men eski 55SI-25DAWC-dan foydalanaman, lekin agar siz hali ham sotib olishingiz kerak bo'lsa, juda arzon steppermotor/haydovchi kombinatsiyasi mavjud: 28BYJ-48. Dvigatelning o'zi 1,50 evroni tashkil qiladi, lekin 2 evro evaziga siz xuddi shu dvigatelni haydovchi platasi bilan sotib olishingiz mumkin. shuning uchun bu yaxshi shartnoma

1 -qadam: "Uyda yolg'iz" kartonli odamni qurish

"Uyda yolg'iz" kartonli odamni qurish
"Uyda yolg'iz" kartonli odamni qurish
"Uyda yolg'iz" kartonli odamni qurish
"Uyda yolg'iz" kartonli odamni qurish

Qutidan 40x20 sm bo'lak va 18x18 bo'lak kesib oldim. Men ikkita bo'lakni bosh va torso qilib yopishtirdim, yopishqoq lenta yordamida, ikkita bo'lak o'rtasida kichik bo'shliq qoldirib, bo'yniga menteşe hosil qilish uchun yopishqoq lenta bilan qoplangan. (Rasmlar buni aniq ko'rsatib turibdi) Eski kesish taxtasidan men uzunligi 20 sm, qalinligi taxminan yarim sm (taxtaning qalinligi) va kengligi taxminan 1,5 sm bo'lgan bo'lakni kesib tashladim. 1,5 sm uzunlikdagi qadamimning o'qiga mos kelish uchun etarli edi. Agar sizda boshqa qadam bo'lsa, u holda siz kesgan bo'lak qadamning o'qi uchun etarlicha keng ekanligiga ishonch hosil qiling, mening o'qimga mos keladigan o'lik markaz teshilgan, keyin men plastmassani karton tagiga yopishtirdim. "bo'yin" ostida, karton bo'laklaridan men servo uchun ushlagich qurdim. Albatta, bu burchakli temir (yoki plastmassa) yordamida amalga oshirilishi mumkin, lekin uni karton tanasiga yopishtirish biroz qiyin, shuning uchun men servoga mos keladigan kartondan foydalandim. Men kesish taxtasidan 11 x 0,6 x 0,6 plastmassadan yasalgan servoga qo'l qo'shdim va uni Servoga mahkamladim. Shunga qaramay, bu qanday amalga oshirilayotganini ko'rish uchun rasmlarga qarang, garchi mening qadamim kartondan yasalgan rasmni ko'tarish uchun etarlicha og'ir bo'lsa -da, uning burilish momenti va tortishuvi dvigatelni "yurishni" boshlashiga olib keladi, shuning uchun men taglik plitasini yaratdim. 24 * 11 sm kesish taxtasi. Men qadam dvigatelini ulash uchun ikkita teshik ochdim va boshqaruvchi uchun hali ham bo'sh joy bor edi. Servo 180 gradusga burilgan bo'lsa -da, men qo'lni shunday joylashtirdimki, u boshini to'g'ri qo'ymaydi. Shunday qilib, servo 0 holatiga qaytsa, u osongina orqaga qaytadi

2 -qadam: "Uyda yolg'iz" boshqaruvchini qurish

"Uyda yolg'iz" boshqaruvchisini qurish
"Uyda yolg'iz" boshqaruvchisini qurish
"Uyda yolg'iz" boshqaruvchisini qurish
"Uyda yolg'iz" boshqaruvchisini qurish
"Uyda yolg'iz" boshqaruvchisini qurish
"Uyda yolg'iz" boshqaruvchisini qurish
"Uyda yolg'iz" boshqaruvchisini qurish
"Uyda yolg'iz" boshqaruvchisini qurish

Nazoratchi ULN2003 ga ulangan Attiny13. Mening versiyamda men boshqa loyihalar uchun taxtani moslashuvchan qilish uchun bir oz ko'proq pin ishlatgan bo'lsam -da, sizga kerak bo'lgan yagona sarlavha 3 pinli erkak servo sarlavhasi va qadam uchun 6 pinli erkak sarlavhasi.

3 -qadam: "Uyda yolg'iz": dasturiy ta'minot

EDIT 2019 Loyiha Attiny13 uchun bir vaqtlar mashhur bo'lgan "Smeezekitty" yadrosi asosida yaratilgan. Hozirda MCUDude -dan tez -tez ishlatib turadigan MicroCore, kechikish mikrosaniyalaridagi o'zgaruvchilar bilan bog'liq muammolarga ega. Agar siz undan foydalansangiz, "delayMicroseconds (300 + p * (2500/180))" ni almashtiring; "kechiktirish (5)" bilan

Yuqoridagi dasturda mening maxsus qadamimni qanday haydash kerakligi ko'rsatilgan va agar sizda anotehr qadam bo'lsa, PORTBga yoziladigan qiymatlarni o'zgartirishingiz kerak bo'ladi. Attiny13 xotirasi juda kichik bo'lgani uchun juda ko'p pimlarni ta'minlamaganligi sababli, dastur ba'zi murakkabliklarni o'tkazib yuboradi. To'g'ridan -to'g'ri PORTBga yozish yaxshi, lekin bu holda u PB4 va PB5 ga "0" yozadi. PB5 muammo emas, lekin siz PB4 dan foydalanishni xohlashingiz mumkin. Mening holatimda, men servo qo'ygan joyim va bu muammo tug'dirmaydi, chunki men ularni bir vaqtning o'zida ishlatmayman.

Ammo, agar siz 328 kabi boshqa mikrokontrolderni ishlatmoqchi bo'lsangiz va PB4 va PB5 va PB6 va PB7 ga yozishdan qochmoqchi bo'lsangiz, niqobdan faqat 0-3 bitgacha yozing. Buning uchun niqob B00001111.

Agar siz 0 va 2 bitli bitlarni o'rnatmoqchi bo'lsangiz, quyidagicha o'ting:

PORTB = 5 o'rniga, davlat: PORTB = (PORTB & ~ mask) | (B00000101);

Buni juda sirli deb biladiganlar uchun:

bu birinchi navbatda NOT maskasi bo'lgan PORTB qiymatini, YoKI natijasini biz yozmoqchi bo'lgan qiymat bilan qaytaradi va uni PORTBga qaytaradi.

Shunday qilib, deylik, PORTB = 00010000 va biz unga 00000101 yozmoqchimiz, buni darhol tayinlay olmaymiz, chunki bu PB4ni tozalaydi.

Ammo, agar biz ta'riflanganidek qilsak, shunday bo'ladi:

PORTB = (PORTB va 11110000) | 00000101

PORTB = (00010000 va 11110000) | 00000101

PORTB = 00010000 | 00000101

PORTB = 00010101

Biz o'z qiymatimizni yozdik va PB4ni saqladik

Xo'sh, nima uchun biz birinchi navbatda AND-in o'rniga kerakli qiymatni darhol OR PORTB bera olmaymiz?

Chunki bu PB4 va PB5ni ushlab turishi mumkin … lekin u PB3-PB0 ni o'zgarishsiz qoldiradi, agar ulardan birida "1" bo'lsa

Albatta, agar biz uni teskari qilib belgilagan bo'lsak, niqobni teskari aylantirishning hojati yo'q edi, lekin buni odatdagidek bajarish odatiy holdir.

4 -qadam: "Uyda yolg'iz" o'g'rilarning oldini olish: Foydalanish

ishlayotganini ko'rish uchun videoni tomosha qiling (-90 daraja burildi, afsus)

Ushbu qurilmaning maqsadi - pardalarga yoki pardalarga harakatlanuvchi soyalarni tashlash. Shuning uchun u engil pardalar bilan yaxshi ishlaydi. Qurilmaning o'zi tashqaridan ko'rinmasligi kerak. Uning orqa tarafida yorug'lik manbai borligiga ishonch hosil qiling, men bu qurilmaning devor devorini quvvatlantiruvchi tarmoq rozetkasidagi masofaviy kalitga RF signalini yuborish orqali boshqaraman, lekin siz taymerdan ham foydalanishingiz mumkin.

5 -qadam: "Uyda yolg'iz" nima ishlamadi ……

Bu videoda mening katta tanasi va oddiy servo bilan oldingi tajribalarimdan biri ko'rsatilgan. Shubhasiz, yaxshi dizayn emas

Tavsiya: