Оглавление:

Measurino: измерительное колесо. Подтверждение концепции: 9 шагов
Measurino: измерительное колесо. Подтверждение концепции: 9 шагов

Видео: Measurino: измерительное колесо. Подтверждение концепции: 9 шагов

Видео: Measurino: измерительное колесо. Подтверждение концепции: 9 шагов
Видео: Top 5 Best Measuring Tapes Review & Buying Guide in 2023 2024, Июль
Anonim
Measurino: измерительное колесо, доказывающее концепцию
Measurino: измерительное колесо, доказывающее концепцию

Measurino просто считает количество оборотов колеса, и пройденное расстояние прямо пропорционально радиусу самого колеса. Это основной принцип одометра, и я начал этот проект в основном для того, чтобы изучить, как поддерживать схему (управляемую микроконтроллером Arduino), совместимую с несколькими диапазонами расстояний, от миллиметров до километров, а также для оценки возможных проблем или улучшений.

Шаг 1: Детали и компоненты

  • Ардуино Нано ред. 3
  • 128 × 64 OLED-дисплей (SSD1306)
  • Инкрементальный фотоэлектрический поворотный энкодер (400P / R)
  • Резиновое колесо для авиамоделей (диаметр 51 мм)
  • 2 кнопки
  • Батарея 9v

Шаг 2: кодировщик

Кодировщик
Кодировщик
Кодировщик
Кодировщик

Для этого проекта я протестировал несколько дешевых поворотных энкодеров, но сразу отказался от них из-за проблем с точностью / чувствительностью. Итак, я пошел к инкрементальному фотоэлектрическому поворотному энкодеру DFRobot - 400P / R SKU: SEN0230. Это промышленный инкрементальный фотоэлектрический датчик угла поворота с алюминиевым материалом, металлическим корпусом и валом из нержавеющей стали. Он генерирует двухфазный ортогональный импульсный сигнал AB за счет вращения диска решетки и оптопары. 400 импульсов / цикл для каждой фазы и 1600 импульсов / цикл для двухфазного 4-кратного вывода. Этот поворотный энкодер поддерживает максимальную скорость 5000 об / мин. И его можно использовать для измерения скорости, угла, угловой скорости и других данных.

Фотоэлектрический энкодер имеет выход с открытым коллектором NPN, поэтому вам нужно использовать подтягивающие резисторы или включить подтягивание внутреннего Arduino. Он использует микросхему регулятора напряжения 750L05, которая имеет широкий диапазон входной мощности постоянного тока 4,8–24 В.

Шаг 3: Чувствительность

Чувствительность
Чувствительность

Этот оптоэлектрический поворотный энкодер обладает действительно высокой чувствительностью, что делает его идеальным для приложений управления валом и позиционирования. Но для моей цели это было слишком разумно. С колесом диаметром 51 мм этот энкодер имеет чувствительность 0,4 мм, что означает, что если у вас в руке минимальные дрожания, они будут записаны. Поэтому я снизил чувствительность, добавив гистерезис в процедуру прерывания:

пустое прерывание ()

{char i; i = digitalRead (B_PHASE); если (i == 1) count + = 1; иначе count - = 1; if (abs (count)> = гистерезис) {flag_A = flag_A + count; count = 0; }}

Этого трюка хватило, чтобы придать мерке хорошую устойчивость.

Шаг 4: Измерение

Выберите единицу измерения (десятичную или британскую), а затем просто поместите колесо так, чтобы его контактная точка находилась в начале измерения, нажмите кнопку «Сброс» и продолжайте вращать колесо до конца. Слева направо мера увеличивается и суммируется, справа налево она уменьшается и вычитается. Вы также можете измерять кривые объекты (форма вашего автомобиля, перила винтовой лестницы, длина руки от плеча до запястья с согнутым локтем и т. Д.).

Полный оборот колеса диаметром = D дает длину D * π. В моем случае с колесом диаметром 51 мм это 16,02 см, а каждая отметка составляет 0,4 мм (см. Параграф «Чувствительность»).

Шаг 5: Сборка

PoC был сделан на макете, чтобы продемонстрировать схему. Каждый компонент был прикреплен к плате, а поворотный энкодер подключен к клеммной колодке с винтовыми полюсами 2x2. Батарея представляет собой стандартную батарею на 9 В, а общая потребляемая мощность цепи составляет около 60 мА.

Шаг 6: Код

Для дисплея я использовал U8g2lib, который является очень гибким и мощным для этого типа OLED-дисплеев, позволяя широкий выбор шрифтов и хорошие функции позиционирования. Я не стал тратить слишком много времени на заполнение дисплея информацией, так как это был просто Poc.

Чтобы прочитать кодировщик, я использую прерывания, генерируемые одной из двух фаз: каждый раз, когда вал кодировщика перемещается, он генерирует прерывание для Arduino, связанное с нарастанием импульса.

attachInterrupt (digitalPinToInterrupt (A_PHASE), прерывание, RISING);

Дисплей автоматически переключается с миллиметров на метры, на километры и (если выбрано с помощью кнопки) с дюймов на ярды и мили, в то время как кнопка RST сбрасывает измерение на ноль.

Шаг 7: Схема

Схемы
Схемы

Шаг 8: От PoC к производству

Почему это доказательство концепции? Из-за множества улучшений, которые можно / нужно сделать до создания полностью функционирующего оборудования. Рассмотрим подробнее все возможные улучшения:

  • Колесо. Чувствительность / точность Measurino зависит от колеса. Колесо меньшего размера может дать вам лучшую точность при измерении малых длин (от миллиметров до сантиметров). Колесо гораздо большего размера с удлиненной стрелой позволит ходить по дороге и измерять километры. Для маленьких колес необходимо учитывать материал: полностью резиновое колесо может немного деформироваться и повлиять на точность, поэтому в этом случае я предлагаю алюминиево-стальное колесо с тонкой лентой, чтобы избежать скольжения. С тривиальным программным редактированием (выберите правильный диаметр колеса с помощью переключателя) вы можете рассмотреть возможность замены сменных колес для адаптации к любым параметрам, используя 4-контактный разъем (например: порт USB).
  • Программное обеспечение. Добавив еще одну кнопку, программное обеспечение может также позаботиться об измерении площадей прямоугольников или амплитуды углов. Я также советую добавить кнопку «Удерживать», чтобы заморозить измерение в конце, избегая непреднамеренного перемещения колеса перед чтением значения на дисплее.
  • Заменить колесо катушкой. На короткие расстояния (в пределах нескольких метров) колесо можно заменить подпружиненной катушкой с нитью или лентой. Таким образом, вам просто нужно потянуть за нить (заставляя вращаться вал энкодера), снять мерку и посмотреть на дисплей.
  • Добавить отображение состояния батареи. Эталонный вывод 3,3 В Arduino (с точностью до 1%) можно использовать в качестве основы для преобразователя АЦП. Итак, выполнив аналого-цифровое преобразование на выводе 3,3 В (подключив его к A1), а затем сравнив это показание с показанием датчика, мы можем экстраполировать реальное показание, независимо от того, какой VIN (пока оно выше 3,4 В). Рабочий пример можно найти в этом другом моем проекте.

Шаг 9: Галерея изображений

Рекомендуемые: