Mundarija:

1.50m Ijtimoiy masofani o'lchash tasmasi: 3 qadam (rasmlar bilan)
1.50m Ijtimoiy masofani o'lchash tasmasi: 3 qadam (rasmlar bilan)

Video: 1.50m Ijtimoiy masofani o'lchash tasmasi: 3 qadam (rasmlar bilan)

Video: 1.50m Ijtimoiy masofani o'lchash tasmasi: 3 qadam (rasmlar bilan)
Video: Ахоли фаровонлиги ва ижтимоий таъминот (2-қисм) 2024, Noyabr
Anonim
Image
Image
Sxematik
Sxematik

Bu qurilishda men 1,5 m masofani bosib o'tishni o'lchash uchun oddiy lenta o'lchovini moslashtiraman. Men "bir yarim metr" deb aytaman. Agar siz bu masofadan yuqorida yoki pastda bo'lsangiz, u yashil yoki qizil chiroq bilan ko'rsatiladi.

Bu loyiha Henk Rijckaert o'zining De Koterij youtube seriyasida boshlagan qiyinchilik tufayli amalga oshirildi va men uni COVID19 va ijtimoiy uzoqlashuvning dolzarb muammolari bilan bog'lamoqchi edim. (Inglizcha taglavhalar qo'shilgan).

Ishlatilgan materiallar:

  1. Lenta o'lchovi
  2. Optik kodlovchi: e4p-100-079
  3. Ovoz: DFPlayer Mini + sd-karta
  4. Quvvat: PowerBoost 1000C
  5. MCU: Adafruit HUZZAH32 - ESP32 Feather (har qanday boshqa arduino ham ishlatilishi mumkin, chunki men bu konstruksiyada BLE yoki Wi -Fi xususiyatlaridan foydalanmayman)
  6. Neopixel
  7. Karnay
  8. Batareya
  9. Yoqish/o'chirish tugmasi

1 -qadam: sxematik

Sxematik
Sxematik

Sxemada ko'rsatilganidek, komponentlarni ulang. Korpus boshqa konstruktsiyadan qayta ishlatildi va moslashtirildi, lekin siz komponentlarga mos keladigan etarlicha katta to'rtburchaklar qutidan foydalanishingiz mumkin. Sizga karnay, lenta o'lchagichi va yoqish/yoqish tugmasi kerak bo'ladi (va batareyani zaryad qilish uchun usb min uchun ideal).

Ko'rsatkichlari bo'lgan metall plastinkani o'lchash tasmasining aylanadigan qismiga mahkamlang, uni iloji boricha markazlashtirganingizga ishonch hosil qiling.

DFPlayer uchun SD-kartada siz o'rnatmoqchi bo'lgan masofani bosib o'tganda ijro etishni xohlagan mp3-ni nusxalashingiz kerak.

2 -qadam: kod

Kod
Kod

Barcha kodlarni github -da topish mumkin.

ESP32 (har qanday boshqa arduino ham ishlatilishi mumkin) kodlovchining A en B chiqishini doimiy ravishda so'roq qiladi va hisoblagichni oshiradi yoki kamaytiradi. Qachonki -2150 dan oshsa, men bilaman, uning o'lchagichi 1,5 metrdan oshdi. Buni hisoblagich uchun sozlashingiz kerak bo'ladi. Qiymatga qarab, asosiy rang o'zgaradi va DFPlayerga sd-kartadagi mp3larni ijro etish buyuriladi.

3 -qadam: Enkoder tushuntiriladi

Enkoder tushuntirildi
Enkoder tushuntirildi

Hisoblagichni qancha ochganimizni qanday o'lchash mumkin?

Bu tushuntirish videoning transkripti:

Xo'sh, buning uchun men optik kodlovchi, ya'ni ortib boruvchi aylanadigan kodlovchi ishlataman. Sizda boshqalar ham bor, masalan, mutlaq kodlovchilar. Ular 1 aylanish ichida aniq pozitsiyani bilish uchun juda mos keladi. Ammo, aksincha, joy o'zgarishi paytida sobit pulslarni beradi, shuning uchun siz aylanishni o'zingiz ham, har xil aylanishlar oralig'ida ham o'lchashingiz mumkin. Shunday qilib, aylanishni o'zi o'lchashingiz mumkin, hatto har xil aylanishlarda ham. Men to'rtta enkoderdan foydalanaman, u ikkita signalni beradi, shunda yo'nalish ham aniqlanishi mumkin.

Bu qanday aniq ishlaydi?

Dumaloq diskda qora belgilar mavjud. Bu disk lenta o'lchagichiga biriktirilgan va shuning uchun u bilan aylanadi. Sensorning o'zi LED va yorug'lik aks etadimi -yo'qligini o'lchaydigan ikkita foto detektordan iborat. Agar LED qora chiziqda yonib tursa, yorug'lik qora nuqta orasidagi metallga qaraganda kamroq aks etadi. Keyin bu signal chiqishda kvadrat to'lqinga aylanadi. A va B chiqishi shunday joylashtirilganki, siz qaysi kombinatsiyadan yo'nalish burilganligini ko'rasiz.

Keling, buni batafsil ko'rib chiqaylik

A ning har bir chekkasi o'zgarishi bilan siz V qiymatini o'zgartirishingiz mumkin. Men foydalanadigan enkoderda, agar biz soat yo'nalishi bo'yicha aylansak, A zarbasi B pulsidan oldin boshlanadi. Va aksincha, agar biz soat sohasi farqli o'girilsa. Shunday qilib, biz qancha burilish haqida nimadir gapiradigan 3 ta impulsni taniy olamiz. Mening enkoderimda bir aylanish uchun 100 tsikl bor (CPR). bu holda u deyarli 10,8 darajaga burildi. Agar siz ma'lumotlar varaqlarini ko'rib chiqsangiz, CPR nimani anglatishini diqqat bilan kuzatib boring, ba'zida bu aylanishlar sonining soni, ba'zida bir inqilobdagi hisoblar soni (yoki har bir burilishdagi alohida holatlar). Har bir puls 4 xil holatni o'z ichiga oladi. A va B darajasida yuqori yoki past. Bu inqilob davriga qaraganda 4 baravar ko'p. PPR yoki inqilobdagi pulslar, odatda, to'liq inqilobdagi pulslar sonini o'lchash uchun ishlatiladi. Ammo bu erda ba'zi ma'lumotlar varaqlari inqilobda har xil pulsli holatlar sonini bildiradi. Shunday qilib, bu erda ma'lumotlar jadvalida nimani nazarda tutilganligini diqqat bilan ko'rib chiqing. Bu erda A zarbasi B pulsidan oldin kelishini ko'ramiz.

Buni kodda qayta ishlashning oson usuli - bu B signalining qiymatini ko'rish uchun A signalining o'zgarishi. Agar B signalida A signalining qiymati bo'lmasa, biz soat yo'nalishi bo'yicha aylanamiz va har safar hisoblagichni oshirishimiz yoki ko'paytirishimiz mumkin.

Endi biz har bir burilishda 200 ta chekka o'zgarishlarga ega bo'lamiz, chunki pulsda 2 ta. Shunday qilib, agar hisoblagich 200 bo'lsa, biz to'liq burilishni aylantirdik. Yoki 360 gradusga burildi, aksincha, agar biz teskari tomonga burilsak, A signalining bir xil 3 ta impuls hosil qilishini ko'rishingiz mumkin.

Shunday qilib, bizda bu erda harorat 10,8 darajaga burilgan. Ammo bu safar B signal A signalining qiymatiga teng, shuning uchun biz bilamizki, B signal A signalidan oldinda. Va shuning uchun biz soat sohasi farqli o'laroq aylanamiz. Bunday holda, biz hisoblagichni kamaytirishimiz mumkin. Endi biz lenta o'lchami necha marta kesilganini bilamiz. Agar biz aniq masofani bilishni istasak, bu juda oddiy.

Misol uchun, bu erda, bir yarim metr uchun hisoblagich -2150 bo'lishi kerak. Boshqacha aytganda, soat sohasi farqli o'laroq 3870 daraja.

Agar siz har doim qancha ochilganligini bilmoqchi bo'lsangiz, diametri kichrayib borayotganini hisobga olishingiz kerak, to'la aylanishda lenta o'lchovida masofa kamroq bo'ladi.

Tavsiya: