Оглавление:

Взломанный цифровой штангенциркуль с использованием Arduino: 7 шагов
Взломанный цифровой штангенциркуль с использованием Arduino: 7 шагов

Видео: Взломанный цифровой штангенциркуль с использованием Arduino: 7 шагов

Видео: Взломанный цифровой штангенциркуль с использованием Arduino: 7 шагов
Видео: Ардуино и цифровой штангенциркуль 2024, Сентябрь
Anonim
Взломанный цифровой штангенциркуль с использованием Arduino
Взломанный цифровой штангенциркуль с использованием Arduino

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

Шаг 1. Как это сделать

Как это можно сделать
Как это можно сделать

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

Собственно место для интерфейсной розетки на плате суппорта ЕСТЬ, но на ней ничего не припаяно.

Вы можете просто выдвинуть верхнюю крышку дисплея (не крышку батарейного отсека), и вы найдете 4 колодки, на которых должно быть гнездо для связи с суппортом, но это не так:(.

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

Шли в:

  • Разобрать суппорт
  • Найти Где можно припаять интерфейсный разъем к плате
  • Определите распиновку разъема
  • Припаиваем и собираем суппорт.
  • Обратный инжиниринг переданных данных, чтобы узнать, как работает их протокол
  • Сдвиг уровня сигналов суппорта в соответствии с Arduino
  • Загрузите код и все:)

Что вам понадобится:

  • Цифровой штангенциркуль
  • Arduino (подойдет любой тип)
  • Плата логического преобразователя (для одного я приложу схему)
  • Паяльник с чистым наконечником
  • Тонкая паяльная проволока
  • Некоторые перемычки

Шаг 2: Разберите суппорт

Разобрать суппорт
Разобрать суппорт
Разобрать суппорт
Разобрать суппорт
Разобрать суппорт
Разобрать суппорт
  • Прежде всего снимите батарею суппорта с зажима.
  • Для этой модели вы найдете серебряную направляющую бумагу на задней стороне, а под ней вы найдете четыре крепежных винта. Они держат корпус вместе, и нам нужно их открутить с помощью отвертки Philips. Просто проведите отверткой по бумаге по бокам, и вы заметите их монтажные отверстия.

После этого вы увидите, что плата крепится к передней панели четырьмя винтами, их нужно аккуратно открутить с помощью отвертки Philips с тонким наконечником

Будьте осторожны, чтобы не поцарапать и не порезать следы на обеих сторонах печатной платы

  • Теперь, вытащив все винты и положив их в безопасное место, где их нельзя потерять:),
  • Поднимать печатную плату нужно осторожно, так как дисплей и три резиновые кнопки могут развалиться.
  • На этом этапе вы можете вытащить дисплей и кнопки из печатной платы, закрепить их винтами и продолжить работу с голой печатной платой.

Шаг 3: Найдите необходимые контактные площадки для пайки розетки

Найдите необходимые контактные площадки для пайки розетки
Найдите необходимые контактные площадки для пайки розетки
Найдите необходимые контактные площадки для пайки розетки
Найдите необходимые контактные площадки для пайки розетки
Найдите необходимые контактные площадки для пайки розетки
Найдите необходимые контактные площадки для пайки розетки
Найдите необходимые контактные площадки для пайки розетки
Найдите необходимые контактные площадки для пайки розетки

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

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

Шаг контактных разъемов составляет 100 мил или 2,54 мм, поэтому вы можете либо слегка согнуть их и припаять, либо найти другое гнездо.

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

Я нашел идеальный 4-контактный разъем гибкого кабеля (разъем FPC) на одной из старых печатных плат привода CD-ROM и решил использовать его с суппортом.

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

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

Шаг 4: Определите распиновку разъема

Определите распиновку разъема
Определите распиновку разъема
Определите распиновку разъема
Определите распиновку разъема
Определите распиновку разъема
Определите распиновку разъема

Теперь, когда мы нашли необходимые контактные площадки, нам нужно знать, к чему подключен каждый контакт.

Что ж, это уже было обнаружено в других проектах обратного инжиниринга для этих суппортов, и в большинстве случаев они имеют одинаковую конфигурацию (GND, DATA, CLOCK, VCC).

Чтобы настроить его под себя:

Извлеките аккумулятор

  • установите мультиметр в состояние зуммера (проверка целостности)
  • Начните с подключения одного щупа к клемме аккумуляторной батареи -VE (GND) и найдите, какой контакт на разъеме подключен к земле, используя другой щуп.

  • Сделайте то же самое с клеммой Battery + VE.

Вы можете дать двум другим контактам, подключенным к микросхеме, любые два имени (EX: D0 и D1), поскольку мы узнаем их функции позже на этапе обратного проектирования

Если вы не хотите настраивать распиновку, вы можете оценить распиновку разъема как:

(ЗЕМЛЯ, ДАННЫЕ, ЧАСЫ, VCC)

GND - ближайший контакт к дисплею

VCC - ближайшая площадка к краю печатной платы

и обе большие площадки на краю разъема для крепления разъема подключены к GND (их можно проверить мультиметром)

Шаг 5: обратное проектирование коммуникационного протокола

Обратное проектирование коммуникационного протокола
Обратное проектирование коммуникационного протокола
Обратное проектирование коммуникационного протокола
Обратное проектирование коммуникационного протокола
Обратное проектирование коммуникационного протокола
Обратное проектирование коммуникационного протокола

Вот как это выглядит после проверки сигналов обоих цифровых выходных контактов с помощью осциллографа.

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

Оказывается, что: - Данные отправляются с логическим уровнем 1,5 В (звучит логично, так как это такое же напряжение, как и на нониусной батарее) - Данные отправляются 6 полубайтами (6 x 4 бита), всего 24 бита - Есть около 200 мс между концом каждого пакета данных и началом другого

Я решил выбрать данные по нарастающему фронту часов, поэтому, попробовав различные измерения на штангенциркуле и изменив его режим с (мм на дюйм), а также отобразив некоторые отрицательные значения, я получил эту таблицу (3-е изображения) для моих условий тестирования и я начал выяснять протокол связи

Итак, после изучения собранных данных:

- в мм режиме: биты с 1 по 16 представляют собой двоичное представление числа, отображаемого на штангенциркуле (умноженное на 100) - в режиме (дюйм): биты с 2 по 17 представляют собой двоичное представление числа, отображаемого на измерителе. штангенциркуль (умножить на 1000)

- бит номер 21 представляет отрицательный знак (1, если отображаемое число отрицательное, и 0, если оно положительное)

- бит номер 24 представляет собой единицу измерения (1, если единица измерения (дюймы) и 0, если единица измерения (мм))

- в (дюймовом) режиме: бит № 1 представляет сегмент 0,5 мил (1, если он добавлен, и 0, если нет)

Шаг 6: создание логического преобразователя

Создание логического преобразователя
Создание логического преобразователя
Создание логического преобразователя
Создание логического преобразователя

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

Шаг 7: Код Arduino

Код Arduino
Код Arduino

И теперь вы готовы подключить его к Arduino. Вы можете найти прикрепленный код. Подключите вывод часов к контакту 2 или 3 на Arduino uno, nano или pro-mini (вам понадобится контакт с возможностью прерывания) подключите контакт данных к любой другой контакт. Загрузите код и откройте последовательный монитор, чтобы увидеть измеренные данные

Код может автоматически определять, в каком режиме работает штангенциркуль, путем сканирования 24-го бита данных.

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