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

지난 3개월 동안 틈틈히 시간내서 이것 저것 시도 했던 내용을 정리하여 공유 해 본다. 지극 히 개인 적인 경험으로 각자의 상황에 따라 조금씩 틀릴수 있는점 양해 부탁 드립니다. 


24b90ead4b8580ad39634b6a21a949c8.jpg
 

 최초 링크의 소스를 참조하여 GPIO12을 모터 드라이버 제어에 사용 하려고 하였으나 적용된 모터 드라이버 문제 인지 초기 동작시 해당 IO에 연결된 모터가 동작 되어다 ESP32 CAM이 계속 Restart되는 문제가 발생되어 초음파 센서로 대체 하여 사용 IO를 할당 하였다.

 e5b59323bf2f2eb0f1475643ac8f044b.jpg 

L9110S L9110 H-브리지 스테퍼 모터 듀얼 DC 모터 드라이버 컨트롤러 보드 모듈  가장 저렴한 모터 드라이버로 2개의 모터를 제어 할수 있으며 이전 아두이노 나노 도깨비  자동차에서도 사용 하였다. 

 특별할게 없는 모터 드라이버 인데 ESP32 CAM (AI THINKER)의 GPIO 12번 연결 사용시 초기 모터가 동작하는 것으로 보아 해당 핀이 초기 설정 값이 HIGH 또는 내부 회로로 구성이 다른 IO 과 틀린 부분이 있지 않을까 의심 해본다.


ESP32 CAM의 도깨비 자동차의 주요 기능 정의


1. WiFi는 AP Mode와 Station Mode 동시 지원

AP Mode를 접속하여 Station Mode WiFi의 설정 정보 설정 및 저장 (EEPROM 영역에 저장)


2. 모터 속도 제어 및 관련 설정

설정 페이지에 접속하여 모터 속도 설정 (EEPROM 영역에 저장)


3. Web Page를 통하 영상 이미지 확인 및 자동차 제어


b113a7ccbc4343b098facfcbc0f1fd21.jpg
 

 WiFi검색 후 Pro+Makers AP에 연결 후  192.168.4.1 웹 주소 접속 하면 위와 같은 화면을 볼수 있다. 기본 적은 WiFi 설정 정보 입력 후 Update 버튼 클릭시 해당 정보가 EEPROM에 저장되어 추가 설정 없이 사용이 가능 하다. 추가적으로  모터의 전진/후진 시 속도 제어 값도 설정 할수 있도록 하였다.

(아두이노 나노와 다르게 ESP32는 별도의 EEPROM영역이 없다 Flash Memory를 일부를 할당하여 사용되며 사용 함수도 살짝 상이한 부분있다.)

7ccdafc7ffd3b23a426e065a8134f8d5.jpg 6599071179d465f060b69541561e49c3.jpg 

ESP32 CAM과 초음파 센서 전원 터미널드 커페시터를 회로 구성, 스위치는  Boot Mode 선택에 사용되며 시리얼 통신은 뒤면에 별도의 보드를 연동하여 사용 하도록 하였다.

7753b3fa6aee23ae45cefc8a899825a1.jpg

전원 보드는 28650 리튬이온 배터리의 충전 모듈과 DC UP (3,7~4,2V to 5V) 모듈 장착, DC UP 모듈은 3A까지 지원 된다고 하는데, 테스트 시 전원 부족으로 제어 보드가 Reboot 되는 현상이 발생 된다. (모터 2개를 동시 동작시 주로 발생)


fb3567b136efca85dbb9ae057125c804.jpg

완성된 도깨비 자동차 기존 레이저 커터를 활용하여 장착해 보았으며, 시간을 두고 기구 및 관련 문제를 해결해 나갈 예정이다. 

756c464fc24ae6563765ebd57ee03d27.jpg
설정 화면 하단에 카메라 화면과 제어 버튼 들이 배치 되어 있고.  버튼 누를때 해당 동작이 서버로 전송 되며 땔때 정지 동작이 서버로 전송 되도록 HTML이 구성되어 있다. 




 참고한 예제 같은 경우 Web Server호출된  처리 Handler 함수에서 모터 제어가 이루어 지고 있는데, 여러번 제어 명령을 내릴 경우 처리 속도가 계속 느려지는 문제가 확인 되어 Handler에서 이벤트만 등록 하고 IO처리는 Loop 에서 처리하도록 로직을 변경 하였다.


 추측으로는 ESP32는 CPU0에서는 시스템 (통신)  CPU1에서 사용자 로직을 처리 하도록 설계된것으로 알고 있으며 귀차니즘으로 인하여 이런 차이로 문제가 발생 되지 않았나 생각 해 본다, 추후 자세한 원인 파악이 되면 관련 내용을 업데이트 하도록 하겠다.


P.S : 해당 소는 정리 후 빠른 시일내에 공개 하도록 하겠다.



 




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

메이커 스토리

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