
Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-06-01 06:10

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: Галерея изображений
Рекомендуемые:
Специальное дозирующее колесо (горшок как датчик положения): 10 шагов

Custom Stering Wheel (горшок как датчик положения): отказ от ответственности: не обвиняйте меня в том, что я не показываю шаг за шагом, это просто ссылка, и я просто говорю, что я сделал, и результат, у него есть некоторые основные недостатки, такие как шум, так что не делай так, как я, и ожидаешь выдающегося результата, и е
Колесо музыкальных впечатлений сегодняшнего шоу: 7 шагов

Колесо музыкальных впечатлений сегодняшнего шоу. Эта машина вдохновлена фрагментом вечернего шоу, в котором Джимми Фэллон в главной роли называется «Колесо музыкальных впечатлений». Сначала вы нажимаете кнопку на коробке, и на ЖК-дисплее отображается случайный певец и песня. Тогда вам придется подражать
КОЛЕСО ДЛЯ ПК: 5 шагов

ГОНКОВОЕ КОЛЕСО ДЛЯ ПК: Вы когда-нибудь мечтали создать свою собственную модную игровую консоль? Решение, которое поможет вам утолить жажду, находится здесь. Интересно, можем ли мы использовать оптическую мышь в качестве рулевой консоли для игр, в которых предусмотрена эта функция. начал работать и
Колесо обозрения: 10 шагов (с изображениями)

Движущееся колесо обозрения: это простое движущееся колесо обозрения, которое я разработал, может быть интересным обучением для детей и взрослых! В детстве мне всегда было любопытно, как выглядят движущиеся игрушки внутри. Поэтому я специально использовала прозрачный акрил, чтобы
Manta Drive: Доказательство концепции силовой установки ROV: 8 шагов (с изображениями)

Manta Drive: испытание концепции силовой установки ROV. У каждого подводного аппарата есть слабые места. Все, что протыкает корпус (дверь, кабель), является потенциальной утечкой, и если что-то должно одновременно проткнуть корпус и двигаться, вероятность утечки умножается. Это руководство описывает