이 프로젝트에서 라인 팔로워 로봇, 엣지 회피 로봇, DTMF 로봇, 제스처 제어 로봇 등과 같은 인기있는 로봇 프로젝트를 개발 한 후 블루투스 제어 로봇 자동차 를 개발할 예정 입니다. 여기에서는 블루투스 모듈을 사용하여 차량을 제어했으며 Android 기반 애플리케이션이기도합니다.
구성품
- Arduino UNO
- DC 모터
- 블루투스 모듈 HC-05
- 모터 드라이버 L293D
- 9 볼트 배터리 및 6 볼트 배터리
- 배터리 커넥터
- 장난감 자동차
블루투스 제어 차량 은 버튼, 제스처 등의 다른 방법 대신 안드로이드 휴대폰을 사용하여 제어합니다. 여기서는 안드로이드 폰의 버튼을 터치하기 만하면 차량을 전진, 후진, 좌, 우 방향으로 제어 할 수 있습니다. 그래서 여기서는 안드로이드 폰을 송신 장치로 사용하고 차량에 설치된 블루투스 모듈을 수신기로 사용합니다. 안드로이드 폰은 내장 블루투스를 이용하여 차량에 명령을 전송하여 전진, 후진, 좌회전, 우회전, 정지 등 필요한 방향으로 이동할 수 있습니다.
블루투스 모듈
HC 블루투스 모듈은 블루투스 직렬 인터페이스 모듈과 블루투스 어댑터의 두 가지로 구성됩니다. Bluetooth 직렬 모듈은 직렬 포트를 Bluetooth로 변환하는 데 사용됩니다.
블루투스 모듈은 어떻게 작동하나요?
블루투스 모듈의 설정을 변경할 필요가 없으므로 시중에서 구입 한 후 직접 블루투스 모듈을 사용할 수 있습니다. 새 Bluetooth 모듈의 기본 전송 속도는 9600bps입니다. rx 및 tx를 컨트롤러 또는 직렬 변환기에 연결하고 모듈에 5V DC 조정 전원 공급 장치를 제공하기 만하면됩니다.
블루투스 모듈에는 두 가지 모드가 있습니다. 하나는 마스터 모드이고 두 번째는 슬레이브 모드입니다. 사용자는 일부 AT 명령을 사용하여 두 모드 중 하나를 설정할 수 있습니다. 사용자도 AT 명령어를 이용하여 모듈의 설정을 할 수 있습니다. 다음은 몇 가지 명령 사용이 제공됩니다.
먼저 사용자는 블루투스 모듈에서 EN 버튼을 누르거나 EN 핀에서 HIGH 레벨을 제공하여 38400 bps 전송 속도로 AT 모드로 들어가야합니다. 참고: 모든 명령은 \ r \ n (0x0d 및 0x0a) 또는 키보드에서 Enter 키로 끝나야합니다.
그 후 AT를 모듈로 보내면 모듈이 OK로 응답합니다.
AT → 테스트 명령
AT + ROLE = 0 → 슬레이브 모드 선택
AT + ROLE = 1 → 마스터 모드 선택
AT + NAME = xyz → 블루투스 이름 설정
AT + PSWD = xyz → 비밀번호 설정
AT + UART =
예: AT + UART = 9600,0,0
가속도계 핀 설명
- STATE → 열기
- Rx → 직렬 수신 핀
- Tx → 직렬 전송 핀
- GND → 접지
- Vcc → +5 볼트 dc
- EN → AT 모드로 들어가기
작업 설명
이 프로젝트에서 우리는 데모를 위해 장난감 자동차를 사용했습니다. 여기서 우리는 왼쪽 오른쪽 스티어링 기능이있는 RF 장난감 자동차를 선택했습니다. 이 차를 구입 한 후 RF 회로를 Arduino 회로 로 교체했습니다. 이 차는 전면과 후면에 두 개의 DC 모터가 있습니다. 앞쪽 모터는 자동차 방향을 지정하는 데 사용되며 실제 자동차 스티어링 기능과 같이 왼쪽 또는 오른쪽으로 회전하는 것을 의미합니다. 그리고 리어 사이드 모터는 차량을 전후 방향으로 운전하는 데 사용됩니다. 블루투스 모듈은 안드로이드 폰에서 명령을 수신하는 데 사용되며 Arduino UNO는 전체 시스템을 제어하는 데 사용됩니다.
블루투스 제어 차량은 안드로이드 블루투스 모바일 앱에서 터치 한 버튼에 따라 움직입니다. 이 프로젝트를 실행하려면 먼저 Google Play 스토어에서 블루투스 앱을 다운로드해야합니다. 데이터를 지원하거나 전송할 수있는 모든 Bluetooth 앱을 사용할 수 있습니다. 다음은 올바르게 작동 할 수있는 일부 앱의 이름입니다.
-블루투스 Spp 프로
-블루투스 컨트롤러
앱을 설치 한 후 앱을 열고 블루투스 장치를 검색하고 원하는 블루투스 장치를 선택해야합니다. 그런 다음 키를 구성하십시오. 이 프로젝트에서는 블루투스 컨트롤러 앱을 사용했습니다.
- Bluetooth 컨트롤러를 다운로드하여 설치합니다.
- 모바일 블루투스를 사용 설정했습니다.
- 이제 블루투스 컨트롤러 앱을 엽니 다.
- 프레스 스캔
- 원하는 블루투스 장치 선택
- 이제 화면에서 설정 버튼을 눌러 키를 설정합니다. 키를 설정하려면 '설정 버튼'을 누르고 아래 그림에 따라 키를 설정해야합니다.
키 설정 후 확인을 누릅니다.
블루투스 컨트롤러 앱에서 앞으로 버튼을 터치하면 자동차가 앞으로 이동하기 시작하고 다음 명령이 올 때까지 계속 앞으로 이동합니다.
블루투스 컨트롤러 앱에서 뒤로 버튼을 터치하면 자동차가 역방향으로 움직이기 시작하고 다음 명령이 올 때까지 역방향으로 계속 이동합니다.
블루투스 컨트롤러 앱에서 왼쪽 버튼을 터치하면 차가 왼쪽 방향으로 움직이기 시작하고 다음 명령이 올 때까지 왼쪽으로 계속 움직입니다. 이 상태에서 앞쪽 모터는 앞쪽 바퀴를 왼쪽 방향으로 돌리고 뒤쪽 모터는 앞쪽으로 움직입니다.
블루투스 컨트롤러 앱에서 오른쪽 버튼을 터치하면 자동차가 올바른 방향으로 움직이기 시작하고 다음 명령이 올 때까지 오른쪽으로 계속 이동합니다. 이 상태에서 앞쪽 모터는 앞쪽 바퀴를 오른쪽 방향으로 돌리고 뒤쪽 모터는 앞쪽으로 움직입니다.
그리고 정지 버튼을 터치하면 차를 정지시킬 수 있습니다.
회로도 및 설명
블루투스 제어 차량의 회로도 는 위 그림과 같습니다. 자동차를 운전하기 위해 모터 드라이버가 arduino에 연결됩니다. 모터 드라이버의 입력 핀 2, 7, 10 및 15는 각각 arduino의 디지털 핀 번호 12, 11, 10 및 9에 연결됩니다. 여기서 우리는 모터 구동기 3과 6의 출력 핀에 하나의 모터가 연결되고 11과 14에 다른 모터가 연결된 자동차를 구동하기 위해 두 개의 DC 모터를 사용했습니다. 6 볼트 배터리는 모터 구동 용 모터 구동기에 전원을 공급하는데도 사용됩니다.. Bluetooth 모듈의 rx 및 tx 핀은 Arduino의 tx 및 rx에 직접 연결됩니다. 그리고 블루투스 모듈의 vcc와 ground pin은 Arduino의 + 5V와 gnd로 연결됩니다. 그리고 Arduino의 Vin 핀에서 회로에 전원을 공급하기 위해 9V 배터리가 사용됩니다.
프로그램 설명
프로그램에서 먼저 모터에 대한 출력 핀을 정의했습니다.
#define m11 11 // 후면 모터 #define m12 12 #define m21 10 // 전면 모터 #define m22 9
그런 다음 설정에서 핀에 대한 지침을 제공했습니다.
void setup () {Serial.begin (9600); pinMode (m11, OUTPUT); pinMode (m12, OUTPUT); pinMode (m21, OUTPUT); pinMode (m22, OUTPUT); }
그 후 블루투스 모듈에서 시리얼 통신을 이용하여 입력을 읽고 그에 따른 동작을 수행합니다.
void loop () {while (Serial.available ()) {char ch = Serial.read (); str = ch; if (str == '1') {Serial.println ("Forward"); 앞으로(); i = 0; } else if (str == '2') {Serial.println ("Left"); 권리(); i = 0; } else if (str == '3') {Serial.println ("오른쪽"); 왼쪽(); i = 0; }
그런 다음 자동차의 다양한 방향에 대한 함수를 만들었습니다. 이 Bluetooth 제어 차량 에는 방향을 제공하는 데 사용되는 5 가지 조건이 있습니다.
블루투스 컨트롤러 앱의 터치 버튼 |
방향을 제공하는 전면 모터 용 출력 |
후방 모터가 전진 또는 후진하는 출력 |
|||
단추 |
M11 |
M12 |
M21 |
M22 |
방향 |
중지 |
0 |
0 |
0 |
0 |
중지 |
앞으로 |
0 |
0 |
0 |
1 |
앞으로 |
뒤로 |
0 |
0 |
1 |
0 |
뒤로 |
권리 |
1 |
0 |
0 |
1 |
권리 |
왼쪽 |
0 |
1 |
0 |
1 |
왼쪽 |