[아두이노] ESP32 CAM - 도깨비 자동차

 최근 전자 부품 (아두이노) 가격이 3배 이상 인상되어 기존에 제작 되어 있는 도깨비 자동차를 저렴한 ESP32 -CAM으로 변경 하는 프로젝트를 시작 하게 되었습니다.

 아직 완성은 하지 못하였으나 ESP32-CAM에 대해서 구글링을 통하여 알게된 사실에 대해서 정보 공유 및 간단한 정보 전달 수준의 글을 등록해 봅니다.

f01ed5b7baf4db9e795a7e2745db866d.jpg

 작년에 온기랩에서 제작한 도깨비 자동차 아두이노 나노 + 블루투스 + 모터 드리버 + 초음파 + 부저로 구성하였으며 핸드폰 블루투스 조정으로 몇 차례 워크샵을 진행 하였다. 


1. ESP32 CAM의 카메라 모듈 예제 포팅


ESP32 CAM은 저렴한 가격으로 카메라가 있는 보드 이다. 자세한 설정은 첫번째 링크를 참조 하시면 큰 어려움이 없이 초기 설정이 가능하다.


기본 예제 소스 ESP32 / Camera / CameraWebServer에서 기본 ssid와 password 변경 후 포팅시 아래와 같은 메세지가 출력되어 문제 해결을 위하여 구글링을 해보았다.


[E][camera.c:1049] camera_probe(): Detected camera not supported.

[E][camera.c:1249] esp_camera_init(): Camera probe failed with error 0x20004


예제가 여러가지 모델을 지원하고 있어 자신에 맞는 define을 선택 후 다시 포팅 해야 된다.

초기 값은 CAMERA_MODEL_WROVER_KIT되어 있어 CAMERA_MODEL_AI_THINKER로 변경

// Select camera model

//#define CAMERA_MODEL_WROVER_KIT

//#define CAMERA_MODEL_ESP_EYE

//#define CAMERA_MODEL_M5STACK_PSRAM

//#define CAMERA_MODEL_M5STACK_WIDE

#define CAMERA_MODEL_AI_THINKER


31907b00c456790bca149942b020a35f.jpg

모듈을 잘 살펴보면 ESP32-S AI-Thinker 글자가 확인 되어 예저 프로그램의 Define문을 수정 후 ESP32 CAM의 카메라 정상 동작 하는 것을 확인 하였다.


2. Web Page를 통한 자동차 제어


 ESP32-CAM의 기본 예제는 간단한 Web Server를 구동 시키고 브라우저 접속으로 카메라 이미지와 Web Page의 버튼 조작으로 자동차를 조작 하는 방식으로 구성 되어 있다.


 2번째 링크를 참조 하여 회로 구성 및 프로그램 포팅시 큰 문제 없이 동작이 확인 되었으나, 기존 도깨비 자동차와 동일하게 초음파 센서 + 부저 연동하기는 물리적으로 사용 가능 포트가 부족 한것으로 판단 된다.


 ESP32 자체를 쓰면 WiFi와 BLE가 기본 내장되어 있어 별도의 블루투스 부품이 필요 없는 장점은 있으나 WiFi와 BLE가 동시 동작 여부는 본인은 테스트 하지 못하였다. (추후 자료를 찾으면 공유 하도록 하겠습니다)


WiFi connected

Camera Stream Ready! Go to: http://192.168.1.87

설정된 WiFi에 접속이 성공한 경우 할당된 IP Address를 Serial Terminal에 정보를 출력하고 모바일 기기에서 해당 IP로 브라우저 접속하면 아래와 같은 화면과 버튼 클릭으로 자동차 조작이 가능하다


ESP32-CAM Remote Controlled Robot Web Server Arduino IDE

 


3. 도깨비 자동차 ESP32-CAM GPIO확인

  

e825509ca9cdfb851da66f948ba361d2.jpg

ESP32-CAM의 GPIO 테스트 및 확인 (1인 확인하여 부정확할수 있음)결과 왼쪽 6개 GPIO에 대하여 정상 동작이 가능하여 모터 드라이버와 초음파 센서 연결핀으로 사용 하기로 결정 하였다.

 GPIO4번 같은 경우 Flash LED와 연결되어 있으나 초음파 센서의 동작시 짧은 순간 LED가 번쩍하기는 하였으나 정상 동작 하는것은 확인 되었으며, 기존 부저는 GPIO의 부족으로 과감히 연동 포기


ESP32-CAM의 사용시 별도의 아두이노 같은 기기를 Serial 통신으로 추가 연동하여 문제를 해결하는 방법도 있으나 저렴한 비용의 제작을 목적으로 하고 있어 최대한 ESP32-CAM을 활용하기로 하였다.


4. Soft AP Mode 추가 와 초음파 센서 연동

  

 2번째 링크의 자동차 제어 프로그램 사용시 Station Mode를 통한 WiFi접속으로 Serial Terminal를 통한 할당 IP Address 확인 필요하며, 매번 접속시 IP Address확인의 번거로움을 해소하기 위하여 LCD를 장착하여 해당 정보를 출력하는 방법도 있으나 모든 GPIO를 사용하고 있어 다른 대안을 고민 하였다.


 ESP32는 WiFi의 Soft AP 와 Station를 동시 지원하고 있어 Soft AP를 코드에 추가 해보았다.


  WiFi.mode(WIFI_AP_STA);

  

  WiFi.softAP(ssidAP, passwordAP);


  IPAddress IP = WiFi.softAPIP();

  

  Serial.print("AP IP address: ");

  Serial.println(IP);


 AP IP address: 192.168.4.1


Soft AP모드의 경우 IP는 192.168.4.1 고정 값이 할당되어 관련 정보 확인할 필요가 없다. 


9c8c8027e3afc76b64dbb7bac4668339.jpg
 

핸드폰 WiFi접속을 설정된 ESP32 연결 후 192.168.4.1로 브라우저 접속 하면 동작 화면을 확인 할수 있으나 WiFi 설정 변경으로 모바일의 다른 인터넷 외부 접속은 불가능한 상태이다.


67d62ea7a9648f4751677c019209f052.jpg

첨부 파일에 수정된 소스와 사용된 초음 센서 라이브러리를 같이 공유하며 문제 발생또는 새로운 기능 추가시 공유를 부탁 드립니다.








 



0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기

메이커 스토리

번호 제목 글쓴이 날짜 조회수
125 아두이노 헬박사님의 로봇팔 살리기 icon 양재동메이커 05-13 4,052
124 일반 레이저 커터 동파 사고 icon 양재동메이커 04-23 4,036
123 일반 기존 고양이 마이크로 파이썬으로 포팅 - 밀린 숙제하기 icon 양재동메이커 01-03 5,738
122 일반 휴식 icon 청계천도사 12-13 5,312
121 일반 기기를 수리한다는 것 icon 청계천도사 09-09 5,821
120 일반 수학 공부 왜 하나요? icon 청계천도사 07-20 6,532
119 아두이노 ESP32 CAM을 활용한 도깨비 자동차 Ver 3.0 icon 양재동메이커 06-12 7,834
118 라즈베리파이 Pupper 시작해서 Mini Pupper로 마무리 - 밀린 숙제하기 icon 양재동메이커 01-08 8,644
117 일반 말벌 인식 및 레이저 타격기 V 2.0 icon 양재동메이커 08-23 10,679
116 아두이노 ESP32 CAM - 도깨비 자동차 2 icon 양재동메이커 07-13 11,594
115 아두이노 ESP32 CAM - 도깨비 자동차 icon 양재동메이커 05-07 13,118
114 일반 급~한~개~발!! icon 청계천도사 04-08 12,147
113 일반 말벌 레이저 타격 테스트 모듈 icon 양재동메이커 03-10 13,307
112 아두이노 로보티즈 다이나믹 셀 MX-12W를 Arduino로 제어하기 (without 3 state buffer) +2 icon 양재동메이커 02-24 17,086
111 일반 2021 피우다 프로젝트 출품작 소개 자료집 icon HellMaker 01-12 12,665
110 일반 서보 모터 관련 여러가지 문제 icon 양재동메이커 11-19 13,499
109 라즈베리파이 Top Maker 해커톤 2021 icon 양재동메이커 08-29 13,034
108 라즈베리파이 라즈베리 파이 4 WiFi 안테나 확장 방법 icon 양재동메이커 08-24 18,472
107 아두이노 Otto Bot Bluetooth 연동하기 icon 양재동메이커 05-14 13,821
106 일반 자이로센서 roll, pitch, yaw 데이터 처리 구조 #2 icon HellMaker 03-01 13,879