초소형 TF 루나 라이다 센서로 ESP32·RPI Pico 완벽 연동하기
TF Luna 라이다 센서 완전 정복!
오늘은 TF Luna라는 신기한 라이다 센서에 대해 알아볼 거야. 이 센서가 뭔지, 어떻게 작동하는지, 그리고 ESP32랑 라즈베리 파이 피코랑 어떻게 연결해서 사용하는지까지! 심지어 윈도우 프로그램으로 센서 설정도 바꿀 수 있다고 하니, 끝까지 집중해줘!
TF Luna, 도대체 뭘까?
TF Luna는 시간차 비행(Time-of-Flight, TOF) 방식을 사용하는 라이다 센서야. 쉽게 말해, 빛을 쏴서 물체에 맞고 돌아오는 시간을 재서 거리를 알아내는 거지.
- 거리 측정: 20cm부터 최대 8m까지 측정 가능하고, 1cm 단위로 정확하게 알아낼 수 있어.
- 빠른 반응: 1초에 최대 250번까지 측정할 수 있어서, 움직이는 물체도 빠르게 감지할 수 있지.
- 밝은 곳에서도 OK: 70,000 럭스까지 밝은 빛에도 영향을 받지 않아.
- 전압: 3.3V ~ 5V 전압을 사용하지만, 신호는 3.3V 로직 레벨이니까 5V 로직을 직접 연결하면 안 돼!
- 전력: 평소에는 70mA 이하로 적게 먹고, 초저전력 모드도 있어. 최대 150mA까지 쓸 수 있어.
- 통신 방식: 시리얼(UART) 또는 I2C 통신으로 연결할 수 있어.
TF Luna, 어떻게 생겼고 어떻게 연결할까?
TF Luna는 작고 귀여운 생김새를 하고 있어. 앞쪽에는 빛을 쏘고 받는 창이 있고, 뒤쪽에는 6개의 핀이 있는 커넥터가 있어.
핀 설명:
- VCC (전원): 3.3V ~ 5V 연결.
- RX (시리얼 모드) / SDA (I2C 모드): 통신 데이터 선.
- TX (시리얼 모드) / SCL (I2C 모드): 통신 클럭 선.
- GND (접지): 전원 접지.
- MODE (모드 선택):
- 연결 안 함 또는 HIGH: 시리얼(UART) 모드 (기본값)
- LOW (GND 연결): I2C 모드
- MULTIPLEX (다기능 핀):
- 시리얼 모드: 특정 거리에 도달하면 신호를 보내는 기능.
- I2C 모드: 데이터가 준비되면 알려주는 신호선.
통신 모드 설정:
- 시리얼(UART) 모드: MODE 핀을 연결하지 않거나 HIGH로 만들면 돼. 기본 속도는 115200 bps야.
- I2C 모드: MODE 핀을 GND에 연결하면 돼. 최대 속도는 400kbps이고, 기본 I2C 주소는
0x10
이야.
어떤 데이터를 보내줄까?
TF Luna는 거리(cm), 신호 강도, 그리고 센서 칩의 온도를 함께 보내줘.
윈도우에서 TF Luna 사용하기
TF Luna를 컴퓨터에 연결해서 데이터를 확인하고 설정을 바꿀 수 있는 윈도우 프로그램이 있어!
- 준비물: TF Luna 센서, 3.3V 로직을 지원하는 FTDI USB-to-TTL 변환기 (ESP32 캠 만들 때 썼던 거랑 비슷할 거야).
- 연결 방법:
- TF Luna VCC 핀 → FTDI VCC 핀
- TF Luna RX 핀 → FTDI TX 핀
- TF Luna TX 핀 → FTDI RX 핀
- TF Luna GND 핀 → FTDI GND 핀
- MODE 핀은 시리얼 모드로 사용하기 위해 연결하지 않아.
- 프로그램 실행: 제조사 웹사이트에서 제공하는 윈도우 유틸리티를 다운로드해서 실행해.
- 설정: 프로그램에서 COM 포트와 보드레이트(시리얼 모드일 경우)를 설정하고 연결하면, 센서에서 오는 거리, 신호 강도 데이터를 그래프로 볼 수 있어. 프레임 속도나 보드레이트 같은 설정을 여기서 바꿀 수도 있지!
ESP32와 함께 사용하기 (I2C 모드)
이제 TF Luna를 ESP32랑 연결해서 사용해볼 거야. 여기서는 I2C 모드로 연결할 거야.
- 준비물: TF Luna 센서, ESP32 보드.
- 연결 방법:
- TF Luna VCC 핀 → ESP32 3.3V 핀
- TF Luna SDA 핀 → ESP32 GPIO 17번 핀
- TF Luna SCL 핀 → ESP32 GPIO 16번 핀
- TF Luna GND 핀 → ESP32 GND 핀
- TF Luna MODE 핀 → ESP32 GND 핀 (I2C 모드 설정)
- MULTIPLEX 핀은 사용하지 않아.
- 코드 작성:
- ESP32에서 I2C 통신을 위한
Wire
라이브러리를 사용해. - TF Luna의 I2C 주소(
0x10
)로 데이터를 보내고 받아오는 코드를 작성하면 돼. - 센서에서 오는 데이터(거리, 신호 강도, 온도)를 시리얼 모니터로 출력하도록 만들면 돼.
- ESP32에서 I2C 통신을 위한
실행 결과: ESP32에 연결된 TF Luna가 물체까지의 거리를 실시간으로 측정해서 보여줄 거야. 초음파 센서보다 훨씬 빠르게 반응하는 걸 느낄 수 있을 거야!
라즈베리 파이 피코와 함께 사용하기 (UART 모드)
이번엔 라즈베리 파이 피코와 마이크로파이썬을 사용해서 TF Luna를 연결해볼 거야. 여기서는 시리얼(UART) 모드로 연결할 거야.
- 준비물: TF Luna 센서, 라즈베리 파이 피코 (마이크로파이썬 설치 필요).
- 연결 방법:
- TF Luna VCC 핀 → 피코 3.3V 핀 (36번 핀)
- TF Luna RX 핀 → 피코 UART1 TX 핀 (11번 핀, GPIO 8번)
- TF Luna TX 핀 → 피코 UART1 RX 핀 (12번 핀, GPIO 9번)
- TF Luna GND 핀 → 피코 GND 핀
- TF Luna MODE 핀은 시리얼 모드이므로 연결하지 않아.
- MULTIPLEX 핀은 사용하지 않아.
- 코드 작성 (마이크로파이썬):
machine
모듈에서UART
를 임포트해서 사용해.- 피코의 UART1 (GPIO 8, 9번 핀)을 TF Luna와 연결하고, UART0은 USB 통신에 사용해.
- TF Luna에서 오는 9바이트 데이터를 받아서, 첫 번째 바이트가
0x59
인지 확인해서 유효한 데이터인지 체크해. - 데이터에서 거리, 신호 강도, 온도를 추출해서 UART0으로 피코의 시리얼 모니터에 출력하면 돼.
실행 결과: 피코에 연결된 TF Luna도 ESP32와 마찬가지로 물체까지의 거리를 측정해서 보여줄 거야. 코드를 잘 보면 100Hz 업데이트 속도로 설정되어 있어서 빠르게 데이터를 받을 수 있다는 걸 알 수 있지.
마무리
TF Luna 라이다 센서는 작지만 성능이 뛰어나서 다양한 프로젝트에 활용할 수 있는 멋진 센서야. ESP32나 라즈베리 파이 피코와 함께 사용하면 더욱 재미있는 결과물을 만들 수 있을 거야!
더 자세한 정보나 프로그램 다운로드는 영상과 함께 제공되는 글을 참고하면 돼. 그리고 드론봇 워크샵 웹사이트에서 뉴스레터 구독이나 포럼 가입도 잊지 말고! 구독과 알림 설정도 꼭 해줘!
다음 시간에 더 재미있는 내용으로 돌아올게! 안녕!