Mündəricat:

1.50m Sosial Məsafə Bant Ölçüsü: 3 Addım (Şəkillərlə birlikdə)
1.50m Sosial Məsafə Bant Ölçüsü: 3 Addım (Şəkillərlə birlikdə)

Video: 1.50m Sosial Məsafə Bant Ölçüsü: 3 Addım (Şəkillərlə birlikdə)

Video: 1.50m Sosial Məsafə Bant Ölçüsü: 3 Addım (Şəkillərlə birlikdə)
Video: 30 см между нами. 2024, Noyabr
Anonim
Image
Image
Sxematik
Sxematik

Bu quruluşda, 1,5 m məsafə qət edildikdə ölçmək üçün adi bir lent ölçüsünü uyğunlaşdırıram. Sonra "bir yarım metr" deyəcəyəm. Bu məsafənin altında və ya altında olduğunuzu da yaşıl və ya qırmızı işıqla göstərəcək.

Bu layihə, Henk Rijckaertin De Koterij adlı youtube seriyasında başladığı bir problem səbəbiylə edildi və mən bunu COVID19 və sosial uzaqlaşmanın mövcud problemləri ilə əlaqələndirmək istədim. (İngilis dilində başlıqlar əlavə olunur).

İstifadə olunan materiallar:

  1. Bir lent ölçüsü
  2. Optik kodlayıcı: e4p-100-079
  3. Səs: DFPlayer Mini + sd-kart
  4. Güc: PowerBoost 1000C
  5. MCU: Adafruit HUZZAH32 - ESP32 Feather (bu quruluşda BLE və ya Wi -Fi xüsusiyyətlərindən istifadə etmədiyim üçün hər hansı digər arduino da istifadə edilə bilər)
  6. Neopixel
  7. Dinamik
  8. Batareya
  9. Açma/söndürmə açarı

Addım 1: sxematik

Sxematik
Sxematik

Komponentləri sxematik şəkildə göstərildiyi kimi bağlayın. Korpus başqa bir quruluşdan yenidən istifadə edildi və uyğunlaşdırıldı, ancaq komponentlərə uyğun olacaq qədər böyük olan hər hansı bir düzbucaqlı qutudan istifadə edə bilərsiniz. Dinamikiniz üçün lent ölçüsü və açma/açma düyməsinə ehtiyacınız var (və ideal olaraq batareyanı doldurmaq üçün usb min üçün).

Göstəriciləri olan metal lövhəni ölçmə lentinin fırlanan hissəsinə yapışdırın, mümkün qədər yaxşı ortaladığınızdan əmin olun.

DFPlayer üçün SD Kartda, təyin etdiyiniz məsafə keçdikdə çalmaq istədiyiniz mp3-ni kopyalamalısınız.

Addım 2: Kod

Kod
Kod

Bütün kodları github -da tapa bilərsiniz.

ESP32 (hər hansı digər arduino da istifadə edilə bilər), kodlayıcının A en B çıxışını davamlı olaraq yoxlayacaq və sayğacı artıracaq və ya azaldacaq. -2150 -ni keçəndə lent ölçüsümün 1,5 metrdən artıq olduğunu bilirəm. Bunu sayğacınız üçün kalibr etməli olacaqsınız. Dəyərdən asılı olaraq LED rəngi dəyişdirilir və DFPlayer-ə sd-kartdakı mp3 çalması əmr edilir.

Addım 3: Kodlayıcının izahı

Enkoder izah edildi
Enkoder izah edildi

Sayğacın nə qədər açıldığını necə ölçə bilərik?

Bu izahat videonun transkriptidir:

Yaxşı, bunun üçün bir optik kodlayıcıdan, yəni artan bir fırlanan kodlayıcıdan istifadə edirəm. Başqalarınız da var, məsələn mütləq kodlayıcılar. 1 dönmə ərzində dəqiq mövqeyi bilmək üçün çox uyğundur. Ancaq artımlı, əksinə, yerdəyişmə zamanı sabit zərbələr verir, buna görə də fırlanmanı özünüz də, müxtəlif fırlanma aralığında da ölçə bilərsiniz. Fərqli fırlanmalarda belə fırlanmanın özünü ölçə bilərsiniz. İstiqamətin də təyin oluna bilməsi üçün iki siqnal verən dördbucaqlı kodlayıcıdan istifadə edirəm.

Bu tam olaraq necə işləyir?

Dəyirmi diskdə qara işarələr var. Bu disk lent ölçüsünə bərkidilir və buna görə də onunla fırlanır. Sensorun özü bir LED və işığın əks olub olmadığını ölçən iki foto detektordan ibarətdir. LED qara xətt üzərində işıq saçırsa, qara işarə arasındakı metal üzərində parıldadığından daha az və ya heç bir işıq əks olunmayacaq. Bu siqnal daha sonra çıxışda kvadrat dalğaya çevriləcək. A və B çıxışı 2 -nin hansı birləşməsindən istiqamətin döndüyünü görə biləcəyiniz şəkildə yerləşdirilmişdir.

Buna ətraflı baxaq

A -nın hər kənar dəyişikliyi ilə, B -nin dəyərini hansı istiqamətə çevirdiyimizi dəyişə bilərsiniz. İstifadə etdiyim kodlayıcıda, saat əqrəbi istiqamətində dönsək A pulse B pulsundan əvvəl başlayacaq. Və əksinə saat yönünün əksinə dönsək. Beləliklə, nə qədər döndüyümüzü izah edən 3 zərbəni tanıya bilərik. Mənim kodlayıcımda hər dövrədə 100 dövr var (CPR). bu halda demək olar ki, 10.8 dərəcə dönmüşdür. Məlumat cədvəllərinə baxırsınızsa, CPR -in nə demək olduğunu diqqətlə izləyin, bəzən bunlar inqilab başına dövrlərin sayı, bəzən də inqilab başına sayların sayıdır (və ya ayrı -ayrı dövrlərdə fərqli vəziyyətlər). Hər nəbz 4 fərqli vəziyyətdən ibarətdir. A və B -də yüksək və ya aşağı. Bu, hər İnqilab Dövrü ilə müqayisədə 4 dəfə çoxdur. Bir inqilab başına PPR və ya pulslar, adətən tam bir inqilabda vurulan puls sayını ölçmək üçün istifadə olunur. Ancaq buradakı bəzi məlumat vərəqələri, bir inqilabda fərqli nəbz vəziyyətlərinin sayı deməkdir. Buna görə də burada nə demək istədiyini məlumat cədvəlinə diqqətlə baxın. Burada A nəbzinin B pulsundan əvvəl gəldiyini görürük.

Bunu kodda emal etməyin asan bir yolu, B siqnalının dəyərinin nə olduğunu görmək üçün A siqnalının dəyişməsidir. B siqnalının A siqnalının dəyəri yoxdursa, saat əqrəbi istiqamətində dönərik və hər dəfə sayğacı artıra və ya artıra bilərik.

Pulse başına 2 ədəd olduğu üçün indi tam dönüşdə 200 kənar dəyişiklik alırıq. Beləliklə, sayğac 200 -dədirsə, tam bir dönmə döndərdik. Və ya 360 dərəcə döndüyümüz tərsinə, əks istiqamətə dönsək, A siqnalının eyni 3 paxlalı yaradacağını görə bilərsiniz.

Beləliklə, burada da 10.8 dərəcə döndüyümüz var. Amma bu dəfə B siqnalı A siqnalı ilə eyni dəyərə malikdir, ona görə də bilirik ki, B siqnalı artıq A siqnalını qabaqlayır. Və buna görə də saat yönünün əksinə dönürük. Bu vəziyyətdə sayğacı azalda bilərik. İndi lent ölçüsünün neçə dəfə kəsildiyini bilirik. Sabit bir məsafəni bilmək istəyiriksə, bu olduqca sadədir.

Məsələn, burada bir yarım metr üçün sayğac -2150 olmalıdır. Başqa sözlə, saat yönünün əksinə 3870 dərəcə.

Həmişə nə qədər açıldığını bilmək istəyirsinizsə, diametrin bir az kiçildiyini nəzərə almalısınız, tam fırlanma zamanı lent ölçüsündə getdikcə daha az məsafə olacaq.

Tövsiyə: