Мазмуну:

Measurino: түшүнүктү өлчөөчү дөңгөлөк: 9 кадам
Measurino: түшүнүктү өлчөөчү дөңгөлөк: 9 кадам

Video: Measurino: түшүнүктү өлчөөчү дөңгөлөк: 9 кадам

Video: Measurino: түшүнүктү өлчөөчү дөңгөлөк: 9 кадам
Video: ASMR Measuring You 📏📝 (Roleplay) 2024, Ноябрь
Anonim
Measurino: Концепциянын өлчөөчү дөңгөлөгү
Measurino: Концепциянын өлчөөчү дөңгөлөгү

Measurino жөн эле дөңгөлөктүн айлануу санын эсептейт жана басып өткөн аралык дөңгөлөктүн радиусуна түз пропорционалдуу. Бул одометрдин негизги принциби жана мен бул долбоорду негизинен миллиметрден километрге чейинки бир нече аралыктарга шайкеш келген схеманы (Arduino микроконтроллери башкарат) кантип сактоо керектигин жана мүмкүн болгон көйгөйлөрдү же жакшыртууларды баалоо үчүн баштадым.

1 -кадам: Бөлүктөр жана компоненттер

  • Arduino Nano rev.3
  • 128 × 64 OLED диплей (SSD1306)
  • Фотоэлектрдик Ротари Кодер (400P/R)
  • Учак моделдери үчүн резина дөңгөлөк (диаметри 51 мм)
  • 2 баскычтар
  • 9v батарея

2 -кадам: Encoder

Encoder
Encoder
Encoder
Encoder

Бул долбоор үчүн мен бир нече арзан айлануучу коддогучтарды сынап көрдүм, бирок тактык/сезимталдык маселелерине байланыштуу аларды дароо жок кылдым. Ошентип, мен DFRobotтун Фотоэлектрдик Ротари Encoder - 400P/R SKU: SEN0230го бардым. Бул алюминийден жасалган материалдык, металл корпусу жана дат баспас болоттон жасалган вал менен өнөр жайлык фотоэлектрдик айлануучу кодер. Бул АБ эки фазалуу ортогоналдык импульстук сигналды тордун дискинин жана оптокуплердин айлануусу аркылуу пайда кылат. Ар бир фаза үчүн 400 импульс/тегерек, жана эки фазалуу 4 эсе чыгаруу үчүн 1600 импульс/тегерек. Бул айлануучу кодер 5000 r/min ылдамдыгын колдойт. Ал ылдамдык, бурч, бурчтук ылдамдык жана башка маалыматтарды өлчөө үчүн колдонулушу мүмкүн.

Фотоэлектрдик айлануучу кодер NPN ачык коллектордук чыгармасына ээ, андыктан сиз тартылуу каршылыгын колдонушуңуз керек же ички Arduino тартууну иштетишиңиз керек. Бул DC4.8V-24V кеңири диапазондогу кубаттуулугу бар 750L05 чыңалуу жөндөгүч чипин колдонуп жатат.

3 -кадам: Сезгичтик

Сезгичтик
Сезгичтик

Бул Оптоэлектрдик Ротари Encoder чындыгында чоң сезгичтикке ээ, бул аны валдарды көзөмөлдөө жана позициялоо үчүн кемчиликсиз кылат. Бирок менин максатым үчүн бул өтө акылга сыярлык болчу. 51 мм дөңгөлөк менен, бул коддогучтун сезгичтиги 0,4 мм, бул сиздин колуңузда эң аз титирөө болсо, алар жазылат дегенди билдирет. Ошентип, мен үзгүлтүккө учуроо процессине гистерезис кошуу менен сезимталдыкты төмөндөттүм:

боштук үзгүлтүккө учуроо ()

{char i; i = digitalRead (B_PHASE); if (i == 1) count += 1; else count -= 1; if (abs (count)> = hysteresis) {flag_A = flag_A+count; count = 0; }}

Бул фокус ченемге жакшы туруктуулукту берүү үчүн жетиштүү болгон.

4 -кадам: өлчөө

Ченөө бирдигин (ондук же империялык) тандап, анан дөңгөлөктү ченегичтин башталышында анын байланыш чекити менен жайгаштырыңыз, Reset баскычын басыңыз жана аягына чейин айлантууну улантыңыз. Солдон оңго ченем көбөйөт жана жыйынтыкталат, оңдон солго азайтуу жана азайтуу. Сиз ошондой эле ийри нерселерди өлчөй аласыз (сиздин машинаңыздын формасы, спираль тепкичтин кармагычы, колдун далысынан билегине чейин чыканагы бүгүлгөн ж. Б.).

Диаметри = D болгон дөңгөлөктүн толук айлануусу D*π узундугун өлчөйт. Менин учурда, 51мм дөңгөлөк менен, бул 16.02см жана ар бир кене 0.4мм өлчөйт (Сезгичтик пунктун караңыз).

5 -кадам: чогултуу

PoC схеманы көрсөтүү үчүн нан тактасында жасалган. Ар бир компонент тактага бекитилген жана айлануучу кодер 2х2 полюстук бурамалуу терминалдык блокко туташкан. Батарея 9v стандарттык батарейка жана схеманын жалпы энергия керектөөсү 60mA тегерегинде.

6 -кадам: Код

Дисплей үчүн, мен U8g2libди колдондум, ал мындай OLED дисплейлери үчүн абдан ийкемдүү жана күчтүү, бул ариптердин кеңири тандалышына жана жакшы жайгашуу функцияларына мүмкүнчүлүк берет. Мен дисплейди маалымат менен толтурууга көп убакыт короткон жокмун, анткени бул жөн гана Poc болчу.

Коддогучту окуу үчүн, мен 2 фазанын бирөөсү тарабынан түзүлгөн үзгүлтүктөрдү колдонуп жатам: коддогучтун огу кыймылдаган сайын, ал импульстун жогорулашына байланган Ардуиного үзгүлтүк жаратат.

attachInterrupt (digitalPinToInterrupt (A_PHASE), үзүү, RISING);

Дисплей автоматтык түрдө миллиметрден метрге, километрге жана (эгер баскычтан тандалган болсо) дюймдан, ярдга, милге которулат, ал эми RST баскычы нөлдү нөлгө кайтарат.

7 -кадам: схемалар

Схемалар
Схемалар

8 -кадам: PoCдон өндүрүшкө

Эмне үчүн бул концепциянын далили? Толук иштөөчү жабдууну куруудан мурун жасалышы мүмкүн болгон көптөгөн жакшыртуулардан улам. Мүмкүн болгон бардык жакшыртууларды майда -чүйдөсүнө чейин карап көрөлү:

  • Wheel. Measurino сезгичтиги/тактыгы дөңгөлөккө жараша болот. Кичинекей дөңгөлөк кичинекей узундуктарды өлчөөдө жакшыраак тактык бере алат (миллиметр сантиметрге чейин). Узартуу буму бар алда канча чоң дөңгөлөк жолдо жүрүүгө жана километрди өлчөөгө мүмкүндүк берет. Чакан дөңгөлөктөр үчүн материалды эске алуу керек: толук резина дөңгөлөк анча-мынча деформацияланат жана тактыкка таасирин тийгизиши мүмкүн, андыктан мен алюминий/болоттон жасалган дөңгөлөктү тайып кетпөө үчүн жука тасма менен сунуштайм. Программалык камсыздоонун анча маанилүү эмес түзөтүүсү менен (которгуч менен дөңгөлөктүн туура диаметрын тандап алыңыз), 4-пин туташтыргычты колдонуу менен, каалаган дөңгөлөккө ыңгайлаштыруу мүмкүнчүлүгүн карасаңыз болот (б.а. USB порту).
  • Программалык камсыздоо. Башка баскычты кошуу менен, программа ошондой эле тик бурчтуктардын же бурчтардын амплитудасынын аймактарын өлчөөгө кам көрө алат. Мен ошондой эле дисплейдеги маанини окуудан мурун дөңгөлөктү байкабай жылдыруудан качып, ченди аягында тоңдуруу үчүн "Hold" баскычын кошууну сунуштайм.
  • Рулду дөңгөлөккө алмаштырыңыз. Кыска чараларды көрүү үчүн (бир нече метр аралыкта) дөңгөлөктү жип же скотч камтылган спулга алмаштырууга болот. Ушундай жол менен сиз жипти тартып алышыңыз керек (коддогучтун огун айлантуу), ченемиңизди алып, дисплейде көрүү.
  • Батарея абалынын дисплейин кошуу. 3.3v Arduino маалымдама пин (1%ичинде так) ADC алмаштыргыч үчүн база катары колдонулушу мүмкүн. Ошентип, 3.3V пиндеги санариптик конверсияга аналог жасоо менен (аны A1ге туташтыруу менен) жана андан кийин бул окууну сенсордон алынган көрсөткүчкө салыштыруу менен, VIN кандай болсо да, чыныгы окууну экстраполяциялай алабыз (3.4V жогору болгондо). Жумушчу мисалды менин башка долбоорумдан тапса болот.

9 -кадам: Сүрөт галереясы

Сунушталууда: