Mundarija:

Ko'zi ojizlar uchun periferik radar: 14 qadam
Ko'zi ojizlar uchun periferik radar: 14 qadam

Video: Ko'zi ojizlar uchun periferik radar: 14 qadam

Video: Ko'zi ojizlar uchun periferik radar: 14 qadam
Video: Полируй мою катану #1 Прохождение Ghost of Tsushima (Призрак Цусимы) 2024, Noyabr
Anonim
Ko'zi ojizlar uchun periferik radar
Ko'zi ojizlar uchun periferik radar

Dahshatli baxtsiz hodisa natijasida yaqinda bir do'stim o'ng ko'zini ko'rmay qoldi. U uzoq vaqt ishsiz edi va u qaytib kelganida menga aytdi, u eng qiyin ishlardan biri uning o'ng tomonida nima borligini bilmaslikdir. Kamroq periferik ko'rish narsalar va odamlarga urilishni anglatadi. Bu meni bezovta qildi. Men qila oladigan biror narsa bo'lishi kerak deb qaror qildim.

Men do'stimning o'ng tomonidagi narsalarga masofani o'lchaydigan qurilma qurmoqchi edim. Mening rejam - ob'ektni masofaga teskari proportsional ravishda tebranish uchun haptik motordan foydalanish. Agar ob'ektlar uzoqda bo'lsa, vosita tebranmaydi va ob'ekt yaqinroq bo'lganda, u past darajada titray boshlaydi. Agar ob'ekt yaqin bo'lsa, u ancha yuqori darajada (yoki siz xohlagan darajada) tebranar edi. Sensor o'ng tomonga qaragan holda, ko'zoynak yoniga osib qo'yish uchun qurilma juda kichik bo'lishi kerak edi. Do'stim qurilmani ko'zoynagining o'ng tomoniga qo'yar edi, lekin boshqa birov uchun bu chap tomon bo'lishi mumkin edi.

Men uyda akustik masofa sensori borligini esladim. Ammo ular biroz katta va hajmli, aniqroq emas va ko'zoynaklar uchun juda og'ir bo'lishi mumkin. Men boshqa narsani qidira boshladim.

Men topgan narsa-ST Electronics VL53L0X Parvoz vaqti sensori. Bu bitta paketdagi infraqizil lazer va infraqizil detektor. U odamlarga ko'rinadigan diapazondan (940 nm) tashqarida lazer nurining impulsini chiqaradi va aks etgan pulsni aniqlash uchun o'tgan vaqtni qayd qiladi. U bu vaqtni 2 ga bo'linadi va millimetrda juda aniq masofani ishlab chiqaradigan yorug'lik tezligiga ko'payadi. Sensor 2 metrgacha bo'lgan masofani aniqlay oladi, lekin men ko'rganimdek, 1 metr yaxshiroq.

Qanday bo'lsa, Adafruitda VL53L0X uzilish taxtasi mavjud. Shuning uchun menga tebranish dvigateli va hammasini boshqarish uchun mikrokontroller kerak edi. Menda tasodifan PJRC Teensy 3.2 bor edi. Men xohlaganimdan kattaroq bo'lsa -da, u sekin tezlikda harakat qilish qobiliyatiga ega edi. Men quvvatni tejash uchun soat tezligini pasaytirmoqchi edim. Quvvat manbaiga kelsak, menda axlat qutisida AAA batareyasi ushlagichi bilan birga Sparkfun kuchaytirgichi bor edi. Menga kerak bo'lgan hamma narsa bor edi.

1 -qadam: Birinchi prototip

Birinchi prototip
Birinchi prototip
Birinchi prototip
Birinchi prototip

Men qo'limda bo'lgan qismlarni oldim va men tasavvur qilgan qurilmaning qo'lda prototipini yasadim. Men 3D tutqich va o'rnatish plastinkasini chop etdim va barcha elektronikalarni Adafruit protoboardiga lehimladim. Men tebranish motorini Teensy -ga 2N3904 NPN tranzistor orqali uladim. Men qurilma javob beradigan maksimal masofani o'rnatish uchun potentsiometr qo'shdim.

Men uni keyingi dam olish kunigacha ishga tushirdim (yuqoridagi rasmga qarang). Bu chiroyli emas edi, lekin bu printsipni ko'rsatdi. Do'stim qurilmani o'ng tomonida ushlab turishi va qurilmaning foydali yoki yo'qligini tekshirishi mumkin edi.

2 -qadam: № 2 prototip

Prototip #2
Prototip #2
Prototip #2
Prototip #2
Prototip #2
Prototip #2

Birinchi qo'lda ishlaydigan prototipdan keyin men kichikroq versiyasini chiqara boshladim. Men ko'zoynakka mos keladigan narsa yasash maqsadimga yaqinlashmoqchi edim. Portativ versiyada ishlatilgan Teensy menga quvvatni tejash uchun soatni sekinlashtirishga imkon berdi. Ammo o'lcham bir xil bo'lishi kerak edi, shuning uchun men Adafruit Trinket M0 -ga o'tdim. Uning chastotasi 48 MGts ga teng bo'lsa -da, unga asoslangan ARM protsessori sekinroq ishlashi mumkin. Ichki RC osilatoridan foydalanib, u 8, 4 2 va hatto 1 MGts da ishlashi mumkin.

2 -sonli prototip juda tez yig'ildi, chunki men hamma narsani keyingi dam olish kunigacha yig'dim. O'chirish sxemasi ARM M0dan tashqari 1 -sonli prototip bilan bir xil edi. Men 3D o'lchamdagi kichik korpusni chop etdim va yo'riqnomalarni orqa tomonga qo'ydim, shunda ko'zoynak ustiga siljiydi. Yuqoridagi rasmga qarang. Dastlab u 48 MGts chastotada ishlay boshladi.

3 -qadam: №3 prototip

Prototip № 3
Prototip № 3

Shunday qilib, bu ko'rsatma haqiqatan ham shu erda boshlanadi. Men oxirgi prototipni yaratishga qaror qildim. Men uni maxsus PWB -dan foydalanish imkoni bo'lmaganda iloji boricha siqib chiqarishga qaror qildim (bu erda biz ishonamizki). Qo'llanmaning qolgan qismi sizga qanday qilib yasashni ko'rsatib beradi. Xuddi nogiron bolalar uchun 3D bosma qo'llar yasagan odamlar singari, umid qilamanki, odamlar ham xuddi shunday ko'rish qobiliyatini yo'qotganlar uchun ham shunday qilishadi.

Men ehtiyot qismlar ro'yxatini #2 prototipi bilan bir xilda saqladim, lekin men potensiometrni olib tashlashga qaror qildim. Do'stim bilan gaplashgandan so'ng, biz dasturiy ta'minot yordamida maksimal masofani o'rnatishga qaror qildik. Men Teensy -dan foydalanib sensorli sensordan foydalanish imkoniyatiga ega bo'lganim uchun, biz har doim tegib maksimal masofani sozlashimiz mumkin edi. Bir tegish qisqa masofani belgilaydi, yoki uzoqroq masofaga tegsa, boshqasi eng uzun masofaga tegadi va keyin yana bir tegish uchun boshiga o'raladi. Lekin birinchi navbatda, biz harakat qilish uchun belgilangan masofadan foydalanamiz.

4 -qadam: qismlar

Qismlar
Qismlar

Bu prototip uchun menga kichikroq taxta kerak edi. Men Sparkfun protoboard (PRT-12702) bilan bordim, chunki uning kichik o'lchamlari (taxminan 1,8 "X 1,3") suratga olish uchun yaxshi bo'lardi.

Menga quvvat manbai sifatida AAA batareyasidan boshqa narsani ishlatish kerak edi. LiPo to'g'ri tanlov bo'lib tuyuldi, chunki u saqlash hajmi va engil vazniga ega bo'ladi. Men tanga xujayrasini sinab ko'rdim, lekin u motorni uzoq vaqt boshqarishga qodir emas edi. Men 150 mAh quvvatga ega kichik LiPo -ni tanladim.

Men Trinket M0 bilan qolmoqchi edim va, albatta, VL53L0X panelini.

Endi biz batafsil ma'lumotga ega bo'ldik, bu prototipning qismlari ro'yxati:

Adafruit VL53L0X Parvoz masofasi sensori vaqti - MAHSUL raqami: 3317 Adafruit - Vibratsiyali mini dvigatelli disk - MAHSULOT ID: 1201 Adafruit - Lityum -ionli batareyali batareya - 3.7v 150mAh - MAHSULOT ID: 1317 SparkFun - Lehim bilan ishlaydigan non paneli - Mini - PRT -1270 Sparkfun - JST to'g'ri burchakli ulagich - 2 teshikli teshik - PRT -09749 10K ohmli rezistor - axlat qutisi (erga qarang) 2N3904 NPN tranzistorli - axlat qutisi (yoki do'stingizga qo'ng'iroq qiling) Ba'zi ulanish simlari (men 22 o'lchagichli torli)

LiPo batareyasini zaryad qilish uchun men ham oldim:

Adafruit - Micro Lipo - USB LiIon/LiPoly zaryadlovchi - v1 - MAHSULOT ID: 1304

5 -qadam: sxematik

Sxematik
Sxematik

Ushbu qurilmaning sxemasi yuqorida ko'rsatilgan. Sensorli kirish kelgusi versiya uchun bo'ladi, lekin baribir u sxemada ko'rsatilgan. Bundan tashqari, Trinket M0 va 2N3904 bazasi orasidagi 10K rezistor dvigatelni juda qattiq urmasdan yoqish uchun etarli asosni ta'minlaydi.

Quyida montajning bosqichma-bosqich tavsifi berilgan.

6 -qadam: Protoboard

Protoboard
Protoboard

Tajribali ko'pchiligingiz buni bilasiz, lekin bu protoboardlarni lehimlashda yangi bo'lganlar uchun.

Yuqorida ko'rsatilgan Sparkfun protoboardida (PRT-12702) dyuymli bo'shliqning o'ndan uch qismi har tomonida 5 ta pinli 17 ta ustun (guruh) mavjud. Bo'shliqning har ikki tomonidagi 5 pinli har bir vertikal ustun bir -biriga o'xshash. Men shuni aytmoqchimanki, guruhdagi har qanday pin bilan bog'lanish - bu guruhdagi boshqa har qanday pin bilan bog'lanish. Bu kengash uchun bu aniq ko'rinmaydi, lekin siz DVM (Raqamli voltmetr) dan foydalansangiz buni tasdiqlashingiz mumkin. Agar siz orqa tomonga qarasangiz, siz guruhlarni bog'laydigan izlarni aniqlay olasiz.

7 -qadam: Komponentlarni joylashtirish

Komponentlarni joylashtirish
Komponentlarni joylashtirish
Komponentlarni joylashtirish
Komponentlarni joylashtirish

Siz, ehtimol, Trinket M0 va VL53L0X uchun pinli chiziqlarni lehimlashingiz kerak. Ularning ikkalasi ham chiziqlar bilan birga keladi, lekin ularni lehimlash kerak. Adafruit -ning O'quv markazida bu ikkala bo'lim uchun ko'rsatmalar mavjud. Agar siz bu ishda yangi bo'lsangiz, lentalarni taxtalarga lehimlashdan oldin u erga (bu erda va bu erda) boring. Ip chiziqlar rozetkaga qaraganda pastroq profilni ta'minlaydi.

Biror joyni cheklangan protoboardga lehimlashda e'tiborga olish kerak bo'lgan birinchi narsa - bu komponentlarni joylashtirish. Men Trinket va VL53L0X ni yuqoridagi rasmda ko'rsatilgan joylarga joylashtirdim. Trinket taxtaning har ikki chetida ham pim bor, lekin VL53L0X -ning bir chetida 7 ta pin bor. VL53L0X ning pimi bo'lmagan tomoni biz ba'zi komponentalarni ulash uchun foydalanamiz … ko'rib turganimizdek.

Men ham slaydni almashtirgichni joyiga lehimladim va 2N3904 ni lehimladim. Men bu qismlar joylashtirilgan teshiklarni qoraytirdim va 2N3904 uchun qaysi pimlarning Kollektor, Asosiy va Emitent ekanligini aniqladim. Siz uni birinchi marta lehimlaganingizda, uni taxtaga perpendikulyar qoldirishingiz kerak, shunda siz boshqa ulanishlarni lehimlay olasiz. Keyinchalik siz uni ehtiyotkorlik bilan egishingiz mumkin bo'ladi, shuning uchun u taxtaga yaqinroq bo'ladi.

ESLATMA: JST batareyasining uzilishi taxtaga lehimlanmaydi. U taxtaning orqa tomoniga lehimlanadi, lekin biz boshqa ulanishlarni lehimlagandan keyingina. Bu biz lehimlaydigan oxirgi narsa bo'ladi.

8 -qadam: simlar

Simlar
Simlar

Yuqoridagi diagrammada qorong'ilashgan teshiklari bo'lgan protoboard yana ko'rsatilgan. Men ularga simlarni ulashni osonlashtirish uchun chekkalari bo'ylab teglar qo'shdim. E'tibor bering, tebranish dvigateli ko'rsatiladi, lekin u taxtaning orqa tomonida joylashgan va deyarli oxirgi marta ulanadi, shunchaki e'tibor bermang. Men shuningdek, JST batareyasining uzilishini chiziq bilan ko'rsataman. Oldingi bosqichda aniqlanganidek, uni ulamang, lekin taxtaning yuqori qismidagi 4 teshikni ochiq qoldiring (ya'ni ularga lehim qilmang).

O'ylaymanki, siz izolyatsiyani simdan qanday olib tashlashni, uchlarini lehim bilan qoplashni va taxtaga lehimlashni bilasiz. Agar yo'q bo'lsa, lehimlash bo'yicha ko'rsatmalarni ko'rib chiqing.

Sariq rangda ko'rsatilganidek, bu qadam uchun lehim simlari. Oxirgi nuqtalar - siz ularni lehimlashingiz kerak bo'lgan teshiklar. Shuningdek, 10K ohmli rezistorni ko'rgazma sifatida taxtaga lehimlashingiz kerak. Bog'lanishlar quyidagilar:

1. Batareyaning musbat terminalidan slaydni almashtirishning COMmon (markaziy) terminaliga ulanish. Slaydni almashtirishning bir tomoni Trinket -ga BAT kiritish bilan aloqa qiladi. Trinket bort regulyatori BAT kirish voltajidan 3,3V ishlab chiqaradi.

2. Batareyaning manfiy (tuproqli) terminalidan Trinketning eriga ulanish.

3. Batareyaning manfiy (tuproqli) terminalidan 2N3904 emitentiga ulanish

4. Trinketning 3,3 voltli (3V) pinidan VL53L0X VIN -ga ulanish. VL53L0X bundan keyin 2,8 voltgacha o'z ixtiyori bilan tartibga soladi. Bu, shuningdek, bu kuchlanishni pinga olib keladi, lekin u bizga kerak emas, shuning uchun u uzilmagan holda qoladi.

9 -qadam: Boshqa simlar

Boshqa simlar
Boshqa simlar

Shunday qilib, endi biz yuqorida ko'rsatilgan simlarning keyingi guruhini qo'shamiz. Bu erda har bir ulanish ro'yxati:

1. Trinket pinidan 2 deb belgilangan VL53L0X SCL piniga ulanish. Bu I2C soat signalidir. I2C ketma -ket protokoli Trinket tomonidan VL53L0X bilan aloqa qilish uchun ishlatiladi.

2. Trinket pinidan 0 (nol) deb belgilangan VL53L0X SDA piniga ulanish. Bu I2C ma'lumot signalidir.

3. VL53L0X GND pinidan proton taxtasidagi bo'shliq bo'ylab 2N3904 emitentigacha bo'lgan aloqa. Bu VL53L0X uchun asos yaratadi.

4. Trinket pinidan 4 dan 10K gacha bo'lgan qarshilik bilan ulanish. Bu tebranish dvigateli uchun haydovchi. Agar siz ulanish nuqtasini tanlasangiz, bu sim, albatta, taxtaning orqa tomoniga lehimli bo'lishi kerak.

Esda tutingki, har qanday 5 pinli vertikal guruh bir -biri uchun umumiydir, shuning uchun siz ushbu guruhning istalgan joyiga ulanishingiz mumkin. Mening taxtamdagi fotosuratlarda men bir nechta ulanish nuqtalarini o'zgartirganimni sezasiz. Agar ular to'g'ri ulanish bo'lsa, siz qaysi padni tanlasangiz yaxshi bo'ladi.

10 -qadam: Vibratsiyali vosita

Vibratsiyali vosita
Vibratsiyali vosita

Vibratsiyali dvigatelning orqa tomonida qistirmali stiker mavjud. Dvigatelni taxtaning orqa tomoniga yopishtirishga imkon beradigan yopishqoq materialni ko'rsatish uchun siz uni tortib olasiz (lekin yopishtirishdan oldin quyidagi izohga qarang). Men uni hali biz biriktirmagan JST Batareya uzilish taxtasining chap tomoniga (taxtaning orqa tomoniga qarab) joylashtirdim. Shunday qilib, JST Batareyani uzish paneli uchun bir oz joy qoldiring. Men, shuningdek, dvigatelning metall korpusi protobloard oralig'ida hech qanday pinni qisqartirmasligiga ishonch hosil qilmoqchi edim. Shunday qilib, men ikki tomonlama lentaning kichik bir bo'lagini kesib, tebranish dvigatelining yopishqoq tomoniga yopishtirdim. Keyin men uni taxtaning orqa tomoniga surdim. Bu metall korpusni baland qilib turishiga va har qanday pimdan uzoqlashishiga yordam beradi. Shunga qaramay, uni hech qanday qisqichni qisqartirmaydigan qilib joylashtirishga ehtiyot bo'ling.

Vibratsiyali dvigatelning qizil simini Trinketning 3V piniga lehimlang. Vibratsiyali dvigatelning qora simlari 2N3904 kollektoriga lehimlangan. Dasturiy ta'minot 2N3904 (3.3V kabi 1 -mantiqni beradi) impulslari bilan, tranzistor tebranish dvigatelining qora simini erga (yoki unga yaqin) ulashni yoqadi. Bu dvigatelning tebranishini ta'minlaydi.

Vibratsiyali dvigatelning qizil simli ulanish nuqtasida bir oz sig'im qo'shishim mumkin edi. Lekin "Trinket" ning 3.3V liniyasida sig'im bor, shuning uchun ishonchim komilki, bu yaxshi, lekin agar siz boshqa sig'imni qo'shmoqchi bo'lsangiz, uni siqib qo'yishingiz mumkin. Buning uchun qizil sim ulanishi mumkin. to'g'ridan -to'g'ri LiPo batareyasining ijobiy tomoniga. Men kuchlanishni doimiy ushlab turish uchun 3.3V tomonni tanladim. Hozircha yaxshi ishlayotganga o'xshaydi.

11 -qadam: Oxirgi, lekin kam emas …

Oxirgi bo'lsa ham, shu darajada muhim bo'lmagan; bir xil ahamiyatga ega bo'lgan…
Oxirgi bo'lsa ham, shu darajada muhim bo'lmagan; bir xil ahamiyatga ega bo'lgan…
Oxirgi bo'lsa ham, shu darajada muhim bo'lmagan; bir xil ahamiyatga ega bo'lgan…
Oxirgi bo'lsa ham, shu darajada muhim bo'lmagan; bir xil ahamiyatga ega bo'lgan…

Oxir -oqibat, biz JST batareyasining uzilish kartasini protobardning orqa tomoniga ulaymiz. Men pimlarni taxtaga lehimlab qo'ydim va JST Batareya sindiruvchi taxtasini tepasida tepada ko'rsatilgandek joylashtirdim. Quvvat manbai uchun simlarni lehimlaganingizga ishonch hosil qiling va bu qismni joylashtiring. Agar siz xato qilsangiz, siz qismlarning qutblanishini o'zgartirasiz va, ehtimol, hammasini yo'q qilasiz. Batareyani lehimlash va ulashdan oldin, iltimos, tekshiring va qayta tekshiring.

12 -qadam: dasturiy ta'minot

Dasturiy ta'minot
Dasturiy ta'minot

Dasturiy ta'minotni o'rnatish va/yoki o'zgartirish uchun sizga Arduino IDE va Trinket M0 uchun fayllar, VL53L0X kutubxonalari kerak bo'ladi. Bularning barchasi bu erda, bu erda va bu erda.

Adafruit M0 -ni o'quv saytida ishlatish bo'yicha ko'rsatmalarga rioya qiling.

Dasturiy ta'minot yuklanganidan so'ng, taxtani USB -ketma -ket ulanishda ishga tushirish va ishga tushirish kerak. VL53L0X bilan taxtaning yon tomonini devorga yoki qo'lingizga yaqin siljiting, shunda siz motorning tebranishini his qilasiz. Vibratsiya ob'ektdan qanchalik uzoq bo'lsa, amplituda past bo'lishi kerak.

Qurilmada ko'riladigan xatti -harakatlar manba kodidagi izohlarda biroz tushuntirilgan. Ammo biriktirilgan grafik bu fikrni yaxshi ko'rsatishi kerak. Qurilma jismdan taxminan 863 mm gacha tebranishni boshlamasligi kerak. Maksimal tebranish darajasiga ob'ektdan 50 mm masofada erishiladi. Agar siz ob'ektga 50 mm dan yaqinroq yaqinlashsangiz, qurilma 50 mm dan ko'ra ko'proq tebranish chiqarmaydi.

13 -qadam: mahkamlash

Qoplama
Qoplama
Qoplama
Qoplama
Qoplama
Qoplama
Qoplama
Qoplama

Men korpusni loyihalashtirdim va uni ABS plastmassasida 3D chop etdim. Siz uni PLA yoki ABS -da yoki xohlagan materialda chop etishingiz mumkin. Men ABS -dan foydalanaman, chunki agar kerak bo'lsa, men taxtaga aseton bilan payvand qila olaman. Men yaratgan taxta oddiy va Trinket -dagi USB port uchun teshik va quvvat tugmasi uchun teshikka ega. Men ikkita taxtani kichik qo'llar bilan qutining yon tomoniga yopishtirib qo'ydim. Menga bu juda yoqmaydi, shuning uchun uni o'zgartirishim mumkin. Albatta, siz xohlagan narsani o'zgartirishingiz mumkin.

Hozirgi vaqtda ushbu versiya uchun LiPo batareyasini zaryad qilish uchun uni ajratish uchun qutini ochish kerak. Agar men ushbu loyiha uchun elektron karta yaratadigan bo'lsam, batareyani qutini ochmasdan ochish uchun boshqa ulagichni qo'shaman. Buni protoboard dizaynida qilish va ulagichni zaryadlash uchun teshik qilish mumkin. Agar siz buni sinab ko'rmoqchi bo'lsangiz, natijalaringiz bilan o'rtoqlashing.

Men umuman yomon ko'rmaydigan qutini loyihalashga muvaffaq bo'ldim. Biz buni tizimni sinab ko'rish uchun ishlatamiz. Men qutining yuqori va pastki qismini STL fayllari sifatida biriktirdim, shuningdek, pastki qismini qo'shgan qavs/yo'riqnoma. Men qismlarni kimyoviy tarzda payvandlash uchun aseton yordamida bir nechta qo'llanma qo'shdim. Agar shunday qilsangiz, ehtiyot bo'ling. Siz yuqoridagi yig'ilishni ko'rishingiz mumkin.

14 -qadam: Endi nima?

Endi nima?
Endi nima?

Meni tekshiring … Men qarib qoldim, ehtimol biror narsani unutganman yoki chalkashtirib yuborganman. Men buni qayta o'qiyapman va tekshiraman, lekin men hali ham narsalarni sog'inishim mumkin. Menga noto'g'ri qilgan yoki qilmagan ishlarimni aytib bering.

Va endi, siz periferik radar taxtasini qurdingiz va uni yukladingiz va LiPo batareyasi yaxshi 3D bosilgan qutida (men tugatganimda yoki siz o'zingizniki bo'lsa), keyin nima qilasiz? O'ylaymanki, siz uning qanday ishlashini bilib olishingiz va dasturiy ta'minotga o'zgartirish kiritishingiz kerak. Dasturiy ta'minotdagi litsenziya shartnomasida siz undan foydalanishingiz mumkinligi aytilgan, lekin agar siz biron bir o'zgartirish kiritgan bo'lsangiz, ularni ulashishingiz kerak bo'ladi. Men bu loyihaning dasturiy ta'minoti qaysidir ma'noda murakkab yoki hayratlanarli deb aytmayman. U o'z maqsadlariga erishadi, lekin uni yaxshilash uchun joy bor. Bu qurilmani yaxshilashga yordam bering va hammamiz bilan baham ko'ring. Esda tutingki, bu loyiha odamlarga yordam berishdan iborat. Shunday qilib, yordam bering!

Tavsiya: