ESP32, RC카

샤시 조립#

샤시 부품#

번호부품사진수량용도 및 참고사항
1전륜 회전축
/image/r/ESP32-RC-Car-14.png
2
2베어링(대)
/image/r/ESP32-RC-Car-18.png
2
3스티어링 컵
/image/r/ESP32-RC-Car-08.png
2
4커플러 고정핀
/image/r/ESP32-RC-Car-16.png
2
5베어링(중)
/image/r/ESP32-RC-Car-19.png
2
6(전륜) 육각 커플러
/image/r/ESP32-RC-Car-15.png
2
7
/image/r/ESP32-RC-Car-01.png
4
8나이록 너트(M4)
/image/r/ESP32-RC-Car-22.png
2
9십자형 육각 복스
/image/r/ESP32-RC-Car-17.png
1
10볼 조인트 커넥팅 로드
/image/r/ESP32-RC-Car-09.png
1홀 간격 80.5mm 유지
11볼 조인트 커넥팅 로드
/image/r/ESP32-RC-Car-35.png
1홀 간격 51mm 유지
12서보모터
MG996R
/image/r/ESP32-RC-Car-54.png
1
13ㄴ자 서보모터 브라켓
/image/r/ESP32-RC-Car-11.png
2
14휠 베이스 고정판
/image/r/ESP32-RC-Car-12.png
2
15서보 혼
/image/r/ESP32-RC-Car-25.png
1(볼트 포함)
16나이록 너트
(M2.5)
/image/r/ESP32-RC-Car-23.png
1
17샤시 하판
/image/r/ESP32-RC-Car-03.png
1
18DC엔코더 모터 & 커넥터
/image/r/ESP32-RC-Car-04.png
2
19모터 브라켓
/image/r/ESP32-RC-Car-07.png
2
20샤프트
/image/r/ESP32-RC-Car-10.png
2
21써클립
/image/r/ESP32-RC-Car-24.png
2
22샤프트 베어링
/image/r/ESP32-RC-Car-21.png
4
23기어
(무두볼트(Set Screw) 포함)
/image/r/ESP32-RC-Car-05.png
2
24육각 샤프트 커플링 커넥터
/image/r/ESP32-RC-Car-06.png
2
25범퍼
/image/r/ESP32-RC-Car-02.png
1
26샤시 상판
/image/r/ESP32-RC-Car-34.png
1
27락스위치
/image/r/ESP32-RC-Car-20.png
1
28황동 육각 스터드
(M3×22mm)
/image/r/ESP32-RC-Car-26.png
6휠 베이스 고정용 4개, 상판 고정용 2개
29황동 육각 스터드
(M3×16mm)
/image/r/ESP32-RC-Car-27.png
2범퍼 고정용 2개
30볼트
(Pan head, M4×6mm)
/image/r/ESP32-RC-Car-32.png
6모터 브라켓과 샤시 하판 고정용 6개
31볼트
(Bind-Washer head, M3×6mm)
/image/r/ESP32-RC-Car-28.png
10서보모터와 서보모터 브라켓 고정용 4개, 서보모터 브라켓과 샤시하판 고정용 4개, 범퍼 고정용 2개
32볼트
(Bind head, M3×8mm)
/image/r/ESP32-RC-Car-30.png
14육각 스터드 고정용 12개, 범퍼 고정용 2개
33볼트
(Pan head, M2.5×10mm)
/image/r/ESP32-RC-Car-29.png
7커넥팅 로드 연결용 3개, 휠 베이스 연결용 4개
34볼트
(Flat head, M2.5×5mm)
/image/r/ESP32-RC-Car-31.png
4모터와 모터브라켓 고정
35육각렌치
/image/r/ESP32-RC-Car-33.png
1기어 무두볼트용
36저항
1K or 5.1K
/image/r/ESP32-RC-Car-13.png
2(선택사항) 인코더 풀업저항
37홀센서 칩
SH41F(SOT-23타입)
2(선택사항) 홀 센서를 이중채널로 사용할 필요가 있는 경우에, 각 모터마다 1개씩 추가함
36종

전륜 조향 휠 조립#

사진 오른쪽부터 차례대로 8개의 부품을 끼워 휠을 조립한다. (왼쪽휠/오른쪽휠 각각 1개씩, 총 2개 조립)

ESP32, DC모터, TB6612FNG

DC모터 사용하기#

아두이노의 경우와 마찬가지로 ESP32에서도 TB6612FNG 모터드라이버와 함께, 모터 및 아두이노 단독사용을 위하여 3.7V 18650 2개를 직렬로 연결한 외부전원을 사용한다.


TB6612FNG#

기본 핀 배열#
VM
VCC
GND(*)
AOUT1
AOUT2
BOUT2
BOUT1
GND
/image/t/tb6612fng-01.png
PWMA
AIN2
AIN1
STBY
BIN1
BIN2
PWMB
GND
/image/t/tb6612fng-02.png

핀 배열이 다른 경우#
GND
VCC
AOUT1
AOUT2
BOUT2
BOUT1
VM
GND
/image/t/tb6612fng-03.png
PWMA
AIN2
AIN1
NC (=STBY)
BIN1
BIN2
PWMB
GND
/image/t/tb6612fng-04.png
  • VM (모터 전압) = 15V max
  • VCC (로직 전압) = 2.7 ~ 5.5V
  • GND
    • TB6612FNG 모듈을 여러개 테스트한 결과, 기본 핀 배열을 가진 모듈의 3번핀 GND에 연결할 경우 작동이 안되는 몇몇 제품이 있었음
    • 그러므로 8번핀, 9번핀의 GND 사용을 권장
  • 출력전류: 정전류 1.2A (3.2A peak)까지 (모터 2개 사용시 합산 전류임)
  • 모터 제어모드: CW, CCW, short-brake, STOP, stand-by
  • 두개의 모터 출력을 개별 제어하며, 100kHz의 PWM으로 속도 제어
  • 써멀 셧다운 및 저전압 감지회로 내장

Pin의 사용#

ESP32와 TB6612FNG모듈을 브레드보드를 통해 연결하기 쉽도록 핀을 구성한 Pinmap이므로, 필요에 따라 수정하여 사용할 수 있다. (아래표는 참고만 할 것!)

4WD Bluetooth

4WD Bluetooth#

지금까지 배운 RC카, 블루투스 모듈 사용법, 컨트롤러 사용법을 종합하여 Bluetooth로 조종하는 4WD를 만들어 보겠습니다. IR리모트를 사용한 RC카를 베이스로 하여 IR수신부를 빼고, 블루투스 모듈인 HC-06만 연결하면 됩니다.


schematic#

/image/4wd-bt-17.png

Bluetooth Serial Controller 설정#

여기서는 4WD를 블루투스로 조종하기 위한 콘트롤러를 만들어 봅니다.


  1. 먼저 Bluetooth Serial Controller를 실행시키세요. (블루투스 페어링이나 앱 설치방법은 이전의 글을 참고하세요.) 아래화면은 TERMINAL Mode인 상태입니다. 여기서 스페너 모양 아이콘을 눌러 PREFERCE로 진입하세요.
/image/4wd-bt-01.png

  1. PREFERENCE 화면에서 아무곳이나 누른 뒤, 위로 스크롤하여
/image/4wd-bt-02.png

  1. 9 BUTTON MODE를 활성화 시키고, TERMINAL MODE를 꺼주세요.
/image/4wd-bt-03.png

  1. 그러면 이런 화면이 나타납니다. 이제 각각의 버튼을 정의해보겠습니다.
/image/4wd-bt-04.png

  1. 다시 스페너 모양 아이콘을 눌러 PREFERENCE로 들어간 뒤, BUTTON-Name을 선택합니다.
/image/4wd-bt-05.png

  1. button2, button4, button5, button6, button8을 각각 누른 뒤, 각 버튼 별로 ‘전진’, ‘왼쪽’, ‘정지’, ‘오른쪽’, ‘후진’이라고 이름을 붙여줍니다.
/image/4wd-bt-06.png

  1. 다시 PREFERENCE에서 Command를 누르세요.
/image/4wd-bt-07.png

  1. Command에서 정의해주는 값이 제일 중요한데요. 각 버튼을 누를때, 아두이노로 전달되는 값을 정의해주는 것이기 때문입니다. button2, button4, button5, button6, button8을 각각 누른 뒤, 각 버튼 별로 ‘F’, ‘L’, ‘O’, ‘R’, ‘B’이라고 입력값을 넣어주세요. 이 값은 스케치 작성시 사용해야 하므로 꼭 기억해두어야 합니다.
/image/4wd-bt-08.png

  1. 이제 Visibility로 갑니다.
/image/4wd-bt-09.png

  1. 여기서는 필요없는 버튼을 지워줄 수 있어요. 실제 사용되는 버튼에만 체크하고, 나머지 버튼은 체크 해제합니다.
/image/4wd-bt-10.png

  1. 그러면, 아래와 같은 멋진 블루투스 컨트롤러가 나타납니다.
/image/4wd-bt-11.png

  1. 이 상태에서 돋보기 모양 아이콘을 눌러 HC-06에 접속해 봅니다. 여기서부터는 블루투스 페어링 과정에서 설명했던 부분과 똑같습니다.
/image/4wd-bt-12.png

  1. 모듈ID인 SKS100을 누르면 페어링을 시도하고요.
/image/4wd-bt-13.png

  1. 만일 페어링할 모듈이 나타나지 않으면, Scan for devices로 모듈을 찾아 페어링을 해봅니다.
/image/4wd-bt-14.png

  1. 페어링을 시도하는 중이네요.
/image/4wd-bt-15.png

  1. 페어링 완료! 이제 컨트롤러 사용을 위한 모든 준비과정이 완료되었습니다.
/image/4wd-bt-16.png


4WD 블루투스 초음파센서 자동차#

위 회로에 초음파 센서 하나만 덧붙여봅니다. 50cm 이내에 물체가 접근하면 후진했다가 정지하도록 되어있습니다. (실제로는 50cm보다 훨씬 짧은 거리내에서 후진을 시작하네요.)

DC모터 + 4WD 자동차 만들기 (TB6612FNG)

DC모터 사용하기#

아두이노의 5V, 3.3V핀으로는 모터에 필요한 충분한 전압과 전류를 공급하기 어렵다. 그러므로 사용하려는 모터에 맞는 전압과 전류의 공급을 위한 모터드라이버를 사용해야 한다. 아두이노에서 주로 사용하는 모듈은 L293D, L298N와 TB6612FNG 등이 있으며, 여기서는 TB6612FNG 모터드라이버와 함께, 모터 및 아두이노 단독사용을 위하여 별도의 외부전원을 사용한다. 외부 전원으로는 모터를 위한 1.5V AA*4개와 함께 아두이노 단독사용을 위한 9V 사각전지(6F22)를 추가로 연결하였다.

1.5V AA 6개 혹은 3.7V 18650 2개를 직렬로 연결하여 사용하면, 9V 사각전지(6F22)가 필요하지 않으므로 이 방법을 추천한다. 또한 AA 건전지를 사용하는 경우 4WD기준 연속사용시간은 10분 정도뿐일 정도로 전지 소모가 매우 빠르므로, 충전이 가능한 18650 사용을 추천한다.

Arduino, 라인트레이서, L298N

아두이노를 사용하여 검은색 라인을 따라 움직이는 라인트레이서 자동차를 만들어보자.


TCRT5000 IR reflective sensor#

라인트레이서 제작시 가장 널리 사용되는 IR 센서이다. 감지하는 부분이 검은색으로 되어 있는 부분이라면 IR이 모두 흡수되고, 흰색으로 되어 있는 부분에서는 모두 반사되는 원리를 이용한다.

/image/LT-03.png
  • 장애물이 없는 경우: 1 반환
  • 센서와 12mm이내의 거리에 밝은색이 위치하는 경우: 0 반환
  • 센서와 12mm이내의 거리에 검은색이 위치하는 경우: 1 반환
  • 검은색의 경우도 아주 가까이 가져가면 적외선 수신량이 증가하여 0의 값을 반환할 수 있으므로, 라인트레이서 구성시 감지하는 적당한 거리를 찾는 것이 중요합니다.
  • 10~12mm 정도의 거리에서 측정하는 것을 추천
  • AO 단자를 이용할 경우 아날로그 신호로 처리도 가능

(위 스펙과는 별도로) 라인트레이서 제작시에는 경험상 센서가 바닥면으로부터 2cm정도 떨어지도록 설치하는 것을 추천함