Mundarija:

Measurino: o'lchov g'ildiragining kontseptsiyasi: 9 qadam
Measurino: o'lchov g'ildiragining kontseptsiyasi: 9 qadam

Video: Measurino: o'lchov g'ildiragining kontseptsiyasi: 9 qadam

Video: Measurino: o'lchov g'ildiragining kontseptsiyasi: 9 qadam
Video: Наконечник ИНДИКАТОРА с ВРАЩАЮЩИМСЯ роликом 2024, Noyabr
Anonim
Measurino: kontseptsiyani o'lchaydigan g'ildirak isboti
Measurino: kontseptsiyani o'lchaydigan g'ildirak isboti

Measurino g'ildirakning aylanish sonini hisoblab chiqadi va bosib o'tgan masofa g'ildirakning radiusiga to'g'ridan to'g'ri proportsionaldir. Bu Odometrning asosiy printsipi va men bu loyihani asosan millimetrdan kilometrgacha bo'lgan bir necha masofalarga mos keladigan sxemani (Arduino mikrokontroldori boshqaradi) qanday saqlashni o'rganish va mumkin bo'lgan muammolar yoki yaxshilanishlarni baholash uchun boshladim.

1 -qadam: qismlar va komponentlar

  • Arduino Nano rev.3
  • 128 × 64 OLED diplay (SSD1306)
  • Qo'shimcha fotoelektrik aylanadigan kodlovchi (400P/R)
  • Samolyot modellari uchun rezina g'ildirak (diametri 51 mm)
  • 2 ta tugma
  • 9v batareya

2 -qadam: Enkoder

Enkoder
Enkoder
Enkoder
Enkoder

Ushbu loyiha uchun men bir nechta arzon aylanuvchi kodlovchini sinab ko'rdim, lekin aniqlik/sezuvchanlik muammolari tufayli ularni darhol tashladim. Shunday qilib, men DFRobot -ning qo'shimcha fotoelektrik aylanuvchi kodlovchi - 400P/R SKU: SEN0230 -ga bordim. Bu alyuminiy materialli, metall qobiqli va zanglamaydigan po'latdan yasalgan milga ega bo'lgan sanoatning qo'shimcha fotoelektrli aylanadigan kodlovchi. Panjara disk va optokuplning aylanishi orqali AB ikki fazali ortogonal puls signalini ishlab chiqaradi. Har bir faza uchun 400 impuls/dumaloq, va ikki fazali 4 marta chiqish uchun 1600 puls/dumaloq. Bu aylanadigan kodlovchi maksimal 5000 r/min tezlikni qo'llab -quvvatlaydi. Va u tezlik, burchak, burchak tezligi va boshqa ma'lumotlarni o'lchash uchun ishlatilishi mumkin.

Fotoelektrik aylanuvchi kodlovchi NPN ochiq kollektor chiqishiga ega, shuning uchun tortishish rezistorlaridan foydalanish yoki Arduino ichki tortilishini yoqish kerak. U DC4.8V-24V keng diapazonli quvvat manbai bo'lgan 750L05 kuchlanish regulyatori chipidan foydalanadi.

3 -qadam: sezuvchanlik

Sezuvchanlik
Sezuvchanlik

Bu Optoelektrik Rotary Enkoder haqiqatan ham katta sezuvchanlikka ega, bu esa milni boshqarish va joylashishni aniqlash uchun mukammal qiladi. Lekin mening maqsadim uchun bu juda mantiqiy edi. G'ildirak 51 mm bo'lgan bu kodlovchi 0,4 mm sezuvchanlikka ega, ya'ni qo'lingizda minimal titrash bo'lsa, ular yozib olinadi. Shunday qilib, men tanaffus tartibiga histerezis qo'shib, sezuvchanlikni pasaytirdim:

bo'sh uzilish ()

{char i; i = digitalRead (B_PHASE); agar (i == 1) hisoblash += 1; boshqa hisoblash -= 1; if (abs (hisoblash)> = histerezis) {flag_A = flag_A+count; hisoblash = 0; }}

Bu hiyla o'lchovga yaxshi barqarorlik berish uchun etarli edi.

4 -qadam: o'lchash

O'lchov birligingizni (o'nlik yoki imperiya) tanlang, so'ngra o'lchash boshida g'ildirakni aloqa nuqtasi bilan joylashtiring, Reset tugmasini bosing va oxirigacha aylantirib turing. O'lchov chapdan o'ngga ko'payadi va yig'iladi, o'ngdan chapga kamayadi va kamayadi. Siz egri chiziqli narsalarni ham o'lchashingiz mumkin (sizning avtomobilingiz shakli, spiral zinapoyaning tutqichi, qo'lingizning elkasidan bilagigacha cho'zilgan tirsagi va boshqalar).

Diametri = D bo'lgan g'ildirakning to'liq aylanishi D*π uzunligini o'lchaydi. Mening holatimda, 51 mm g'ildirak bilan, bu 16,02 sm va har bir belgining o'lchami 0,4 mm (sezuvchanlik bandiga qarang).

5 -qadam: yig'ish

PoC sxemani ko'rsatish uchun non panelida qilingan. Har bir komponent bortga biriktirilgan va aylanadigan kodlovchi 2x2 qutbli vintli terminal blokiga ulangan. Batareya 9V standart batareyadir va kontaktlarning zanglashiga olib keladigan umumiy quvvati 60mA atrofida.

6 -qadam: kod

Displey uchun men U8g2lib -dan foydalandim, u shu turdagi OLED -displeylar uchun juda moslashuvchan va kuchli bo'lib, shriftlarning keng tanlovini va joylashishni aniqlashning yaxshi funktsiyalarini beradi. Men displeyni ma'lumot bilan to'ldirishga ko'p vaqt sarflamadim, chunki bu faqat Poc edi.

Enkoderni o'qish uchun men 2 bosqichdan birida hosil bo'lgan uzilishlardan foydalanmoqdaman: har safar kodlovchi o'qi harakatlansa, u impulsning ko'tarilishida bog'langan Arduino uchun uzilish hosil qiladi.

attachInterrupt (digitalPinToInterrupt (A_PHASE), uzilish, RISING);

Displey avtomatik ravishda millimetrdan metrga, kilometrga va (agar tugmachadan tanlansa) dyuymdan yardga, milga o'tadi, RST tugmasi esa o'lchovni nolga qaytaradi.

7 -qadam: sxemalar

Sxemalar
Sxemalar

8 -qadam: PoCdan ishlab chiqarishga

Nima uchun bu kontseptsiya isboti? To'liq ishlaydigan uskunani qurishdan oldin amalga oshirilishi mumkin bo'lgan ko'pgina yaxshilanishlar. Keling, barcha yaxshilanishlarni batafsil ko'rib chiqaylik:

  • G'ildirak. Measurino sezgirligi/aniqligi g'ildirakka bog'liq. Kichikroq g'ildirak sizga kichik uzunliklarni o'lchashda yaxshiroq aniqlik berishi mumkin (millimetrdan santimetrgacha). Uzaytiruvchi bumli ancha katta g'ildirak yo'lda yurish va kilometrlarni o'lchash imkonini beradi. Kichik g'ildiraklar uchun materialni hisobga olish kerak: to'liq kauchuk g'ildirak biroz deformatsiyalanishi va aniqlikka ta'sir qilishi mumkin, shuning uchun men toymasin uchun alyuminiy/po'lat g'ildirakni faqat ingichka tasmasi bilan taklif qilaman. Dasturiy ta'minotni ahamiyatsiz tahrirlashda (kalit bilan g'ildirakning to'g'ri diametrini tanlang), siz 4-pinli ulagich yordamida (masalan, usb port) har qanday o'lchovga moslasha oladigan g'ildiraklarni ko'rib chiqishingiz mumkin.
  • Dasturiy ta'minot. Boshqa tugmachani qo'shib, dastur to'rtburchaklar yoki amplitudali burchaklarni o'lchash bilan shug'ullanishi mumkin. Men, shuningdek, displeydagi qiymatni o'qishdan oldin g'ildirakni bexosdan siljitib qo'ymaslik uchun o'lchovni oxirigacha muzlatish uchun "ushlab turish" tugmachasini qo'shishni maslahat beraman.
  • G'ildirakni g'altakka almashtiring. Qisqa choralar ko'rish uchun (bir necha metr ichida) g'ildirakni ip yoki tasma bo'lgan bahorli g'altakka almashtirish mumkin. Shunday qilib, siz shunchaki ipni tortishingiz kerak (enkoder milini aylantirib), o'lchovingizni oling va displeyda tomosha qiling.
  • Batareya holati ko'rsatkichini qo'shing. 3.3v Arduino mos yozuvlar pimi (1%ichida aniq) ADC konvertori uchun asos sifatida ishlatilishi mumkin. Shunday qilib, 3.3V pinli raqamli konvertatsiyani analog qilib (A1 ga ulab) va keyin bu o'qishni sensordan o'qish bilan solishtirib, VIN nima bo'lishidan qat'i nazar, haqiqiy o'qishni ekstrapolyatsiya qilishimiz mumkin. 3.4V dan yuqori ekan). Ishchi misolni mening boshqa loyihamda topish mumkin.

9 -qadam: Rasm galereyasi

Tavsiya: