이 프로젝트는 값싼 "X-40" 레이저 줄자의 리버스 엔지니어링 전자 장치(레이저 거리 측정기 모듈)에 대한 나의 작업을 설명합니다.
저는 이 모듈을 DIY 목적으로 사용할 수 있는 자체 펌웨어를 만듭니다.
지원되는 모듈 유형은 "512A" 및 "701A"입니다. "703A"의 작동은 "Damian"에 의해 확인되었습니다: 링크.
UPD 2019년 11월: 주의: 최신 "x-40" 레이저 줄자가 "M88B" 모듈과 함께 제공되는 것으로 나타났습니다. MCU 근처 PCB에 "88B"로 표시되어 있습니다. 해당 모듈은 STM32F0 MCU(QFN-32 패키지 포함)를 기반으로 합니다. 해당 모듈은 내 펌웨어에서 지원되지 않습니다!
UPD 06/2022: STM32F0 MCU를 기반으로 하는 최신 U85A/U85B 모듈에 대한 지원이 추가되었습니다. Code/CortexM0 폴더를 참조하세요.
UPD 10/2024: STM32G0 MCU를 기반으로 하는 최신 B2A 모듈에 대한 지원이 추가되었습니다. Code/CortexM0_STM32G0 폴더를 참조하세요.
"701A" 모듈 크기: 25x13x50mm.
"U85/B2A" 모듈 크기: 17x7x41mm, 무게: ~4g
자세한 내용은 Github Wiki를 참조하세요!
러시아어로 된 큰 기사: https://habr.com/post/327642/
구글 번역: 링크.
다른 프로젝트 페이지: https://hackaday.io/project/25515-cheap-laser-tape-measure-reverse-engineering
내가 수행한 단계:
비디오(거리 측정기 모듈 테스트): https://youtu.be/bJaUrZ7ZMj4
레이저 거리 측정기 모듈의 주요 부품은 STM32F100C8T6 MCU, Si5351 듀얼 PLL, APD(알 수 없는 유형), 레이저 다이오드, 전원입니다.
레이저 줄자 구조 회로도:
레이저 거리 측정기 모듈을 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 - 물체까지의 거리(mm).
AMP - 신호 진폭. TEMP - APD 온도(원시 ADC 값).
VOLT - APD 전압. 문자열 길이는 일정합니다.
거리 데이터는 지속적으로 전송됩니다.
UART 전송 속도 - 256000.
UART 명령("Firmware_dist_calculation_fast"):
"E" - 레이저 및 측정 프로세스를 활성화합니다.
"D" - 레이저 및 측정 프로세스를 비활성화합니다.
"C" - 영점 거리 교정을 시작합니다. 처음 시작할 때 영점 거리 교정을 실행해야 합니다. 보정하기 전에 레이저 테이프에서 10cm 이상 떨어진 곳에 흰색 물체를 놓습니다.
거리 측정 속도 - 거의 60Hz.
거리 측정 정확도는 거리와 표면 유형에 따라 1~10mm까지 다양합니다.
더 나은 결과를 얻으려면 APD가 있는 작은 보드를 외부 조명으로부터 닫아야 합니다.