LIDAR-Lite v3HP 사용기

DongHee Lim·2022년 5월 5일
0

장비

목록 보기
3/3

서론


Lidar = Light + Radar

레이더(Radar)는 전파를 사용하여 주변을 파악하는 센서이다.

라이다(Lidar)는 빛을 이용하여 주변을 파악한다.

Lidar 특징

장점
1. 높은 공간 분해능
2. 넓은 FOV(Field of View)

단점
1. 날씨 영향
2. 빛의 간섭

아두이노 라이브러리를 지원하는
Sparkfun 의 LIDAR-Lite v3HP 는
자율 주행에서 많이 사용하는 회전식이 아니라
초음파처럼 한쪽 방향의 거리만 측정하는 센서이다.

사용 보드 : ESP32 Dev Module
개발 환경 : Arduino IDE
사용 센서 : LIDAR-Lite v3HP

그 외

  • 4.7kΩ 2개
  • 680 ㎌ 극성 캐패시터 1개

[Sparkfun 아두이노 예제 링크]

위 링크 예제 글쓴이는
680㎌ 말고 1000㎌ 를 사용했다고 하는데
안정적인 전원 공급(노이즈 제거)이 필요해서 사용한 것 같다.

나는 따로 큰 용량의 캐패시터가 없어서 100㎌ 한개 달아줬다.
참고) 캐패시터는 병렬로 연결하면 커짐 (병렬 100㎌ 2개 => 200㎌)

또, 링크에서는 LIDAR-Lite v3 에 대해 작성했는데
라이브러리 예제만 직접 v3HP 를 사용하고 나머지 회로, 구성 같은 것은 일치한다.

예제 참고 유튜브


회로


저항 4.7kΩ
캐패시터 680㎌

ESP32

사용하는 LIDAR 센서는 I2C 통신을 한다.
아두이노에서는 I2C 통신을 wire.h 를 사용하여서 따로 처리할 것은 없다.

단지, MCU 보드에서 지원하는 I2C 핀에만 연결해주면된다.
만약, 다른 보드에서 I2C를 직접 제어할 때 LIDAR 장치의 주소는 0x62 (7 bits) 이다.
-> write 0xC4 (8bits)
-> Read 0xC5 (8bits)

ESP32 I2C
SDA -> IO21 (GPIO 21, D21)
SCL  -> IO22 (GPIO 22, D22)

보드마다 PCB 의 SilkScreen 이 다르긴 하지만 숫자를 보고 찾으면된다.


LIDAR

Lidar

ColorPurpose
RED5V
BlackGND
BlueSDA
GreenSCL
OrangePWR EN
YellowMODE

PWR EN : Power Enable (internal Pullup)
이 선은 잘 모르겠지만 모터 드라이버의 Enable Pin 처럼
라이더 센서의 전원을 끊을 수 있는 기능인 것 같다. (전력 소비를 줄이기 위해서)


MODE    : For PWM Mode (보드 : INPUT)
이 선은 모니터링용 선으로써 초음파처럼 파형을 일정 주기로 내보낸다.
HIGH 인 부분을 이용하면 거리를 계산할 수 있다.

INPUT 핀이라서
보드 내부의 PULLUP 또는 External PULLUP 를 연결하여 Floating을 방지한다.

Output 선과 저항 1kΩ을 연결하여
HIGH 일 때 외부 풀업 구현
LOW 일 때 신호에서 오는 값을 그대로 읽기
를 할 수 있다.


지속적으로 거리만 측정하는 동작을 할 때는
예제 v3HP_I2C.ino 를 사용하고

5V
GND
SDA
SCL

4개의 선만 연결하면된다.
회로도는 링크 참고
[Sparkfun 아두이노 예제 링크]


Code


ESP32 로 I2C 를 사용할 때는 내부 버전에 의해 컴파일 실패가 뜬다.
(requestfrom() 에서 오류가 뜸)

C:\Users\user\AppData\Local\Arduino15\packages\esp32\hardware\esp32

보통 이 위치는 거의 일치하기 때문에 복사하면 된다.

이 위치로 가서 text 파일을 하나 생성해주면 컴파일 오류를 해결 할 수 있다.

파일 이름
platform.local.txt

파일 내용
build.extra_flags=-DLEGACY_I2C

[라이브러리 깃허브 링크]

라이브러리 추가
Download한 알집을 누르면 된다.

예제 열기

profile
하고 싶은 것, 소유하고 싶은 것, 좋아하는 것

0개의 댓글