Mündəricat:

Measurino: Ölçmə Təkərinin Konsepsiyası: 9 addım
Measurino: Ölçmə Təkərinin Konsepsiyası: 9 addım

Video: Measurino: Ölçmə Təkərinin Konsepsiyası: 9 addım

Video: Measurino: Ölçmə Təkərinin Konsepsiyası: 9 addım
Video: ASMR Measuring You 📏📝 (Roleplay) 2024, Noyabr
Anonim
Measurino: Ölçmə Təkərinin Konsepsiyasının Dəlili
Measurino: Ölçmə Təkərinin Konsepsiyasının Dəlili

Measurino sadəcə bir təkərin fırlanma sayını sayır və gedən məsafə təkərin radiusu ilə birbaşa mütənasibdir. Bu bir Odometrin əsas prinsipidir və bu layihəni, əsasən, millimetrdən kilometrlərə qədər bir neçə məsafəyə uyğun olan dövrəni (Arduino mikrokontrolörü tərəfindən idarə olunan) necə saxlamağı öyrənmək və mümkün problemləri və ya inkişafları qiymətləndirmək üçün başladım.

Addım 1: hissələr və komponentlər

  • Arduino Nano rev.3
  • 128 × 64 OLED diplay (SSD1306)
  • Artan Fotoelektrik Rotary Enkoder (400P/R)
  • Model təyyarələr üçün rezin təkər (diametri 51 mm)
  • 2 düymə
  • 9v batareya

Addım 2: Kodlayıcı

Enkoder
Enkoder
Enkoder
Enkoder

Bu layihə üçün bir neçə ucuz fırlanan kodlayıcıları sınadım, amma dəqiqlik/həssaslıq problemləri səbəbindən dərhal atdım. Beləliklə, DFRobotun Artan Fotoelektrik Rotary Encoder - 400P/R SKU: SEN0230 -a getdim. Alüminium material, metal qabıq və paslanmayan polad şaftlı sənaye artımlı fotoelektrik fırlanan kodlayıcıdır. Izgara diskinin və optokuplun fırlanması ilə AB iki fazalı ortogonal nəbz siqnalı yaradır. Hər faza üçün 400 puls/dairə və ikiqat fazalı 4 dəfə çıxış üçün 1600 puls/dairə. Bu fırlanan kodlayıcı maksimum 5000 r/dəq sürəti dəstəkləyir. Və sürət, bucaq, bucaq sürəti və digər məlumatların ölçülməsi üçün istifadə edilə bilər.

Fotoelektrik fırlanan kodlayıcı NPN açıq kollektor çıxışına malikdir, buna görə çəkmə rezistorlarından istifadə etməli və ya daxili Arduinonun çəkilməsini aktiv etməlisiniz. DC4.8V-24V geniş diapazonlu güc girişi olan 750L05 gərginlik tənzimləyicisi çipindən istifadə edir.

Addım 3: Həssaslıq

Həssaslıq
Həssaslıq

Bu Optoelektrik Rotary Encoder həqiqətən böyük bir həssaslığa malikdir, bu da milin idarə edilməsi və yerləşdirmə tətbiqləri üçün mükəmməl edir. Amma məqsədimə görə çox məntiqli idi. 51 mm təkər ilə bu kodlayıcı 0.4 mm həssaslığa malikdir, yəni əlinizdə minimal titrəmələr varsa, onlar qeyd olunacaq. Buna görə kəsmə rejiminə bir histerezis əlavə edərək həssaslığı aşağı saldım:

boş fasilə ()

{char i; i = digitalRead (B_PHASE); əgər (i == 1) say += 1; başqa say -= 1; if (abs (say)> = histerezis) {flag_A = flag_A+count; say = 0; }}

Bu hiylə ölçüyə yaxşı bir sabitlik vermək üçün kifayət idi.

Addım 4: Ölçmə

Ölçü vahidinizi (Ondalık və ya İmperatorluq) seçin və sonra təkərin təmas nöqtəsi ilə ölçmənin əvvəlinə yerləşdirin, Sıfırla düyməsini basın və sonuna qədər dönməsini təmin edin. Soldan sağa ölçü artır və yekunlaşdırır, sağdan sola azaldır və çıxarır. Əyri cisimləri də ölçə bilərsiniz (avtomobilinizin forması, spiral pilləkənin tutacağı, dirsək əyilmiş qolunuzun çiynindən biləyə qədər uzanması və s.).

Çəkisi = D olan təkərin tam fırlanması D*π uzunluğunu ölçəcək. Mənim vəziyyətimdə, 51 mm təkərlə, bu 16.02 sm -dir və hər bir gənənin ölçüsü 0.4 mm -dir (Həssaslıq paraqrafına baxın).

Addım 5: Montaj

PoC, dövrə nümayiş etdirmək üçün çörək lövhəsində hazırlanmışdır. Hər bir komponent lövhəyə yapışdırılıb və fırlanan kodlayıcı 2x2 Qütblü Vida Terminal Blokuna qoşulub. Batareya 9v standart bir batareyadır və dövrənin ümumi enerji istehlakı 60mA civarındadır.

Addım 6: Kod

Ekran üçün, bu cür OLED ekranlar üçün çox çevik və güclü olan U8g2lib istifadə etdim, bu da geniş şrift seçiminə və yaxşı yerləşdirmə funksiyalarına imkan verdi. Ekranı məlumatlarla doldurmaq üçün çox vaxt itirmədim, çünki bu yalnız bir Poc idi.

Enkoderi oxumaq üçün 2 mərhələdən birinin yaratdığı fasilələrdən istifadə edirəm: hər dəfə enkoder şaftı hərəkət etdikdə impulsun yüksəlməsi ilə bağlı olan Arduino üçün bir kəsmə yaradır.

attachInterrupt (digitalPinToInterrupt (A_PHASE), kəsmək, RISING);

Ekran avtomatik olaraq milimetrdən metrə, kilometrə və (düymədən seçilərsə) düymdən yarda, milə keçir, RST düyməsi isə ölçünü sıfıra endirir.

Addım 7: sxemlər

Sxemalar
Sxemalar

Addım 8: PoC -dən İstehsalata

Niyə bu bir konsepsiya sübutudur? Tam işləyən bir avadanlıq qurmadan əvvəl edilə biləcək/edilməli olan bir çox təkmilləşdirmənin səbəbi. Bütün mümkün inkişafları ətraflı şəkildə görək:

  • Təkər. Measurinonun həssaslığı/dəqiqliyi təkərdən asılıdır. Kiçik bir təkər, kiçik uzunluqları ölçməkdə sizə daha yaxşı dəqiqlik verə bilər (millimetrdən santimetrə qədər). Uzatma bumu olan daha böyük təkər, yolda gəzməyə və kilometrləri ölçməyə imkan verəcək. Kiçik təkərlər üçün material nəzərə alınmalıdır: tam rezin təkər bir qədər deformasiya edə bilər və dəqiqliyə təsir göstərə bilər, buna görə sürüşməmək üçün yalnız nazik lentli alüminium/polad təkər təklif edəcəyəm. Mənasız bir proqram redaktəsi ilə (bir açarla düzgün təkər diametrini seçin), 4-pinli bağlayıcıdan (məsələn: usb portu) istifadə edərək dəyişdirilə bilən təkərlərin istənilən ölçüyə uyğunlaşmasını düşünə bilərsiniz.
  • Proqram təminatı. Başqa bir düymə əlavə edərək, proqram düzbucaqlıların və ya bucaqların amplitüdünün ölçülməsi sahələrini də idarə edə bilər. Ekrandakı dəyəri oxumadan əvvəl təkərin təsadüfən hərəkət etməməsi üçün ölçüyü dondurmaq üçün "Tut" düyməsini əlavə etməyi məsləhət görürəm.
  • Çarxı bir makara ilə əvəz edin. Qısa tədbirlər üçün (bir neçə metr ərzində) təkər yivli və ya lentli yaylı bir makara ilə əvəz edilə bilər. Bu şəkildə ipi çəkmək (kodlayıcı milini döndərmək), ölçü götürmək və ekranda izləmək lazımdır.
  • Batareya vəziyyətinin görüntüsünü əlavə edin. 3.3v Arduino istinad pin (1%daxilində dəqiq) ADC çeviricisi üçün əsas kimi istifadə edilə bilər. Beləliklə, 3.3V pinində (A1-ə bağlayaraq) rəqəmsal çevrilmə analoqu edərək və sonra bu oxunuşu sensordan oxunuşla müqayisə edərək, VIN nə olursa olsun, əsl oxunuşu ekstrapolyasiya edə bilərik (3.4V -dən yuxarı olduğu müddətdə). İşləyən bir nümunəni bu digər layihəmdə tapa bilərəm.

Addım 9: Şəkil Qalereyası

Tövsiyə: