ESP32-CAM은 소형카메라에 WIFI까지 내장한 ESP32 프로세서를 탑재하고도 5~6$라는 저렴한 비용으로 판매되고 있기 때문에 매우 인기가 좋다. 그런데 하나 불편한 점이 USB 회로가 내장되어 있지 않아 PC에서 제작한 프로그램을 업로드하기가 번거롭다는 것이었는데 여기 소개하는 Adapter보드를 이용하면 편리하게 프로그램에 활용할 수 있다.
1. ESP32-CAM Adapter보드 소개
ESP32-CAM Adapter보드는 CH340칩을 이용한 USB Inferface 보드로서 일반 어두 이노 나노 보드처럼 PC에서 제작한 프로그램을 업로드할 수 있고 ESP32-CAM보듈에 전원을 공급할 수 있으며 ESP32-CAM 모듈을 꽃을 수 있는 소켓이 내장되어 있다.
ESP32-CAM Adapter보드 위에 ESP32-CAM 모듈을 꽂으면 아래와 같은 모양이 되어 일반적인 아두이노 모듈을 가지고 프로그램하는 것과 비슷한 방식으로 PC에 USB연결 사용할 수 있게 된다.
2. ESP32-CAM Adapter보드 구성
아래와 같이 Power 표시등과 Reset버튼,Download버튼이 내장되어 있다.
3. ESP32-CAM Adapter보드 사용법
1) 아두이노 IDE에서 보드를 AI-Thinker ESP32-CAM로 선택하여 지정한다.
2) ESP32-CAM영 프로그램을 제작한 후 Upload를 실행한 후 대기 중일 때 Adapter 보드의 Download버튼을 한번 눌러주면 LEDrk 깜박깜박하며 프로그램이 ESP32-CAM모듈에 업로드된다. 프로그램이 업로드된 이후에는 Adapter 보드를 분리시키고 ESP32-CAM모듈에 전원을 공급하면 정상 작동된다.
(*** 만약 버튼을 눌러도 다운로드가 실행되지 않고 다음과 같은 메세지가 나오면 ESP32-CAM본체의 RESET버튼을 먼저 한번 눌러 주면 정상처리 된다
"fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header" )
4. AI-Thinker ESP32-CAM 보드가 표시되지 않을 경우
ESP32관련 모듈들이 최근 상태로 설치되어 있지 않은 상태이므로 다음 과정으로 ESP32 Addon모듈들을 설치해 주면 된다.
- 비교적 안정적으로 거리 측정이 되고 거리 이동에 따라 실시간으로 변경되는 등 상당히 정확히 반응했지만 거의 근접했을 떄 음수값이 나오는 등 이상 현상이 발생된다. 모듈별 또는 MCU 기종에 따라 변화되는 내용을 Calibration 작업해 주여야 할 것을 보인다.
-다른 거리측정 방식에 비해 장점은 비교적 정확한 거리 측정이 가능하다는 점 이외에도 중간 장애물이 있어도 사용 가능하다는 것이다. 초음파,레이저에 의한 거리측정의 경우 중간 장애물이 있으면 장애물에서 반사되어 버리기 때문에 중간 장애물과의 거리가 측정되어 버리지만 UWB방식의 거리측정은 두 모듈간 패킷을 주고 받는 시간간격을 측정하여 계산하는 방식이기 때문에 중간장애물이 있어도 크게 영향을 받지 않는다. 실제로 한 모듈은 책상위 또 다른 모듈은 책상아래에 놓고 움직여 보아도 원만하게 거리 변동이 추적된다.
-제조사에서는 PCB내장안테나 만으로도 40m까지 측정가능하다고 하나 약간의 장매울에도 신호감도가 약해지는 것을 볼때 이것이 가능할 것인지는 의문이다. 다른 사용자들의 실험에 의하면 내장안테나 모델일 경우 탁트인 환경에서도 10미터 내외가 한계라는 것을 보아 실무에서 활용할 때에는 최소한 앵커 모듈에는 고출력 외장안테나를 사용하는 방식이 되어야 할 것으로 보인다.
시판되는 DWM1000 모듈은 SMD용으로써 SMD레벨 PCB제작시에는 바로 사용할 수 있지만 전극 사이가 좁아 수작업으로 제작하여 테스트하기에는 매우 불편하다. 따라서 테스트나 프로토타입 개발단계에서는 다음과 같은 Adapter Board에 모듈을 납땜하여 브레드보느나 만능기판에 연결하여 사용한다.
Adater Board의 핀배열은 원래 칩의 핀배열과는 다소 다르게 구성된다.
2. MCU 연결
DWM1000은 통신모듈이기 때문에 특정 기능을 작동시키기 위에서는 Porcessor가 필요한데 DWM1000모듈이 3.3V 기반이고 SPI 방식으로 Processor와 통신하므로 이에 적합한 MCU가 필요하다. 따라서 아두이노 프로미니3.3V형, ESP8266/ ESP32 등 ESP시리즈, STM32 모듈 등을 사용하는데 여기에서는ESP32를 사용해 본다.
DWM1000 모듈핀
ESP32 PIN
CLK
D18
MISO
D19
MOSI
D23
CSN
D2
VCC
3.3V
GND
GND
RESET
D15
IRQ
D5
여기에서 CLK, MISO, MOSI 핀은 ESP32에서 SPI통신을 위해 고정되어 있는 핀으로 반드시 여기에 연결해야 하지만 나머지는 기능 제어를 위한 핀이으로 다른 핀으로 대체할 수 있다.
3. Library설치
DWM000 모듈을 사용하기 위한 Library는 여러가지가 있지만 여기에서는 다음 라이브러리를 사용한다.