В этом проекте описана моя работа по реверс-инжинирингу электроники (модуля лазерного дальномера) дешевой лазерной рулетки «Х-40».
Я создаю свою собственную прошивку, позволяющую использовать этот модуль в самодельных целях.
Поддерживаемые типы модулей: «512A» и «701A». Работу «703А» подтверждает «Дамиан» здесь: Ссылка.
UPD 11/2019: Внимание: Выяснилось, что новые лазерные рулетки «х-40» идут в комплекте с модулями «М88Б». Маркировка «88B» на печатной плате возле MCU. Эти модули основаны на микроконтроллере STM32F0 (имеет корпус QFN-32). Эти модули не поддерживаются моей прошивкой!
UPD 06/2022: Добавлена поддержка новых модулей U85A/U85B на базе микроконтроллера STM32F0. См. папку Code/CortexM0.
UPD 10/2024: Добавлена поддержка новых модулей B2A на базе микроконтроллера STM32G0. См. папку Code/CortexM0_STM32G0.
Размеры модуля «701А»: 25х13х50 мм.
Размеры модуля «U85/B2A»: 17x7x41 мм, вес: ~4 г.
См. Github Wiki для получения дополнительной информации!
Большая статья на русском: https://habr.com/post/327642/
Гугл перевел: Ссылка.
Еще одна страница проекта: https://hackaday.io/project/25515-cheap-laser-tape-measure-reverse-engineering.
Шаги, которые я сделал:
Видео (тестирование модуля дальномера): https://youtu.be/bJaUrZ7ZMj4
Основными частями модуля лазерного дальномера являются микроконтроллер STM32F100C8T6, двойной ФАПЧ Si5351, ЛФД (неизвестного типа), лазерный диод, источники питания.
Схема структуры лазерной рулетки:
Статья о подключении модуля лазерного дальномера к Arduino:
https://www.hackster.io/iliasam/making-a-cheap-laser-rangefinder-for-arduino-4dd849
Видео: https://youtu.be/FA4mfvgpOQQ
Пример данных UART («Firmware_dist_calculation_fast»):
DIST;01574;AMP;0993;TEMP;1343;VOLT;082rn
DIST - расстояние до объекта в мм.
AMP – амплитуда сигнала. TEMP – температура APD (необработанное значение ADC).
ВОЛЬТ – напряжение АФД. Длина строки постоянна.
Данные о расстоянии передаются непрерывно.
Скорость UART - 256000.
Команды UART («Firmware_dist_calculation_fast»):
«Е» — включить лазер и процесс измерения.
«D» — отключить лазер и процесс измерения.
«С» — начать калибровку нулевой дистанции. При первом запуске необходимо выполнить калибровку нулевого расстояния. Перед калибровкой поместите любой белый предмет на расстоянии > 10 см от лазерной ленты.
Скорость измерения расстояния – около 60 Гц.
Точность измерения расстояния варьируется от 1 до 10 мм в зависимости от расстояния и типа поверхности.
Для получения лучших результатов небольшую плату с ЛПД необходимо закрыть от внешнего света.