Оглавление:

Рулетка для социальной дистанции 1,50 м: 3 шага (с изображениями)
Рулетка для социальной дистанции 1,50 м: 3 шага (с изображениями)

Видео: Рулетка для социальной дистанции 1,50 м: 3 шага (с изображениями)

Видео: Рулетка для социальной дистанции 1,50 м: 3 шага (с изображениями)
Видео: 10 Онлайн Фриланс Профессий с Заработком от 120$ в день (от 15$ в час) - Онлайн Работа на Дому 2024, Ноябрь
Anonim
Image
Image
Схема
Схема

В этой сборке я адаптирую обычную рулетку для измерения пройденного расстояния в 1,5 м. Я тогда скажу «полтора метра». Он также будет указывать зеленым или красным светом, если вы находитесь выше или ниже этого расстояния.

Этот проект был выполнен из-за задачи, начатой Хенком Райкаертом в его сериале De Koterij на YouTube, и я хотел связать его с текущими проблемами COVID19 и социальным дистанцированием. Голландский разговорный видеоролик на YouTube об этой сборке можно найти на Youtube Weyn. Tech (Добавлены английские подписи).

Используемые материалы:

  1. Рулетка
  2. Оптический кодировщик: e4p-100-079
  3. Аудио: DFPlayer Mini + SD-карта
  4. Мощность: PowerBoost 1000C
  5. MCU: Adafruit HUZZAH32 - ESP32 Feather (также можно использовать любой другой Arduino, поскольку я не использую функции BLE или Wi-Fi в этой сборке)
  6. Neopixel
  7. Оратор
  8. Аккумулятор
  9. Переключатель включения / выключения

Шаг 1: Схема

Схема
Схема

Подключите компоненты, как показано на схеме. Корпус был повторно использован и адаптирован из другой сборки, но вы можете использовать любую прямоугольную коробку, которая достаточно велика, чтобы вместить компоненты. Вам понадобится целый комплект для вашего динамика, рулетки и кнопки включения / выключения (а в идеале - для usb min для зарядки аккумулятора).

Прикрепите металлическую пластину с индикаторами к вращающейся части измерительной ленты, убедитесь, что вы центрировали ее как можно лучше.

На SD-карту для DFPlayer вы должны скопировать mp3, который вы хотите воспроизвести, когда пройдёт установленное вами расстояние.

Шаг 2: Код

Код
Код

Весь код можно найти на github.

ESP32 (также можно использовать любой другой Arduino) будет непрерывно опрашивать выход A и B кодировщика и будет увеличивать или уменьшать счетчик. Когда оно превышает -2150, я знаю по рулетке, что оно превышало 1,5 метра. Вам нужно будет откалибровать это для вашего глюкометра. В зависимости от значения цвет светодиода меняется, и DFPlayer получает команду воспроизвести mp3, который находится на SD-карте.

Шаг 3: объяснение кодировщика

Объяснение кодировщика
Объяснение кодировщика

Как мы можем измерить, насколько мы развернули счетчик?

Это объяснение является расшифровкой видео:

Для этого я использую оптический энкодер, а именно инкрементальный энкодер. У вас также есть другие, например абсолютные энкодеры. Они очень подходят для определения точного положения за 1 оборот. Но инкрементальный, с другой стороны, дает фиксированные импульсы во время смещения, поэтому вы можете измерить вращение самостоятельно, также в диапазоне различных вращений. Таким образом, вы можете измерить само вращение даже при разных вращениях. Я использую квадратурный энкодер, который выдает два сигнала, чтобы можно было определить направление.

Как именно это работает?

На круглом диске есть черные отметки. Этот диск прикреплен к рулетке и поэтому будет вращаться вместе с ней. Сам датчик состоит из светодиода и двух фотодетекторов, которые измеряют, отражается ли свет. Если светодиод светит на черную линию, свет будет отражаться меньше или совсем не будет отражаться, чем когда он светит на металл между черной меткой. Затем этот сигнал будет преобразован в прямоугольную волну на выходе. Выходы A и B расположены таким образом, чтобы вы могли видеть, из какой комбинации из 2 происходит изменение направления.

Давайте посмотрим на это подробнее

С каждым изменением кромки A вы можете изменять значение B, в каком направлении мы поворачиваемся. В кодировщике, который я использую, импульс A начнется перед импульсом B, если мы повернем его по часовой стрелке. И наоборот, если повернуть против часовой стрелки. Таким образом, мы можем распознать 3 импульса, которые что-то говорят нам о том, сколько было повернуто. У моего энкодера 100 циклов на оборот (CPR). в данном случае он повернулся почти на 10,8 градуса. Если вы посмотрите на таблицы данных, обратите особое внимание на то, что подразумевается под CPR, иногда это количество циклов на оборот, иногда количество отсчетов на оборот (или индивидуальные разные состояния на оборот). Каждый импульс содержит 4 различных состояния. Высокий или низкий у A и B. Это в 4 раза больше, чем с циклами на оборот. PPR или количество импульсов на оборот обычно используются для измерения количества импульсов на полный оборот. Но в некоторых таблицах данных здесь указано количество различных состояний импульса на оборот. Также здесь внимательно посмотрите в таблице данных, что имеется в виду. Здесь мы видим, что импульс A предшествует импульсу B.

Легкий способ обработать это в коде - это когда сигнал A изменяется, чтобы увидеть, каково значение сигнала B. Если сигнал B не имеет значения сигнала A, мы поворачиваем по часовой стрелке и каждый раз можем увеличивать или увеличивать счетчик.

Теперь мы получаем 200 изменений фронта за полный оборот, потому что у нас есть 2 изменения на импульс. Итак, если счетчик на 200, мы повернулись на полный оборот. Или повернут на 360 градусов. И наоборот, если мы повернемся в противоположном направлении, вы увидите, что сигнал A будет генерировать те же 3 импульса.

Итак, здесь мы также видим, что он повернулся на 10,8 градуса. Но на этот раз сигнал B имеет то же значение, что и сигнал A, поэтому мы знаем, что сигнал B уже опережает сигнал A. А значит, поворачиваем против часовой стрелки. В этом случае мы можем уменьшить счетчик. Теперь мы знаем, сколько раз обрезалась рулетка. Если мы хотим знать фиксированное расстояние, это довольно просто.

Например, здесь на полтора метра счетчик должен быть -2150. Другими словами, 3870 градусов против часовой стрелки.

Если вы всегда хотите знать, сколько было развернуто, вы должны учитывать, что диаметр становится все меньше, другими словами, расстояние на рулетке будет все меньше и меньше за полный оборот.

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