일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 볼트 모델링
- Premiere
- ChatGPT
- suno
- BrainCar
- 구루미비즈
- 3dmodeling
- 22ww.tistory.com
- 3D 모델링
- 무드등
- 구루미biz(gooroomeebiz)
- 3d
- FUSION 360
- fusion360
- 레이저커팅
- 3Dprinting
- seoulmysoul
- laserutting
- 구루미 고객센터
- 구루미 장애사항
- 3D modeling
- micro-bit
- 3D PRINTING
- 서울마이소울
- 3D프린팅
- 3D모델링
- LayerCutting
- lasercutting
- 프리미어
- 구루미biz
- Today
- Total
CodingMaker
아두이노 RC카 만들기 본문
1. 재료 살펴보기
DC 모터와 on/off 스위치의 경우 납땜이 되어있지 않아 점퍼선으로 납땜을 하였다.
전원 케이블 역시 스위치에 연결하기위해 빨강선을 잘라 점퍼선을 끼울수 있게 만들었다. 납땜이 힘들경우 남땜이 되어있는 재료를 구입할 수 있다.(이 경우는 추가비용이 발생한다.)
2. DC 모터 회전시켜보기
DC 모터에는 A(파랑색)을 사용)와 B(초록색) 두개의 선이 있다. 이 두개의 선에 전압을 넣어주면 DC 모터가 회전하거나 정지하게 할 수 있다.
전압에 따른 회전 방향 (9V 연결잭에 건전지를 끼운 후 두 전선을 모터와 연결한 후 회전 방향을 확인해 본다)
B 전선 | A 전선 | 회전 방향 |
0V | 0V | 정지 |
5V | 0V | 정회전 |
0V | 5V | 역회전 |
5V | 5V | 정지 |
그럼 아두이노의 4번과 5번핀에 DC모터를 연결한 후 회전 시켜보자.
DC모터의 두개의 선을 각각 디지털 4번과 5번 핀에 연결한다.
이렇게 코딩을 했지만 모터가 회전하지 않는다 왜냐하면 전류 공급이 DC 모터를 돌릴수 없을 정도로 작기 때문이다. 그래서 "모터드라이버"를 사용한다.
모터 드라이버는 강한 전류 공급을 위한 펌프 역할을 한다.
모터드라이버 | 아두이노 |
B-1A | D3 |
B-1B | D5 |
GND | GND |
VCC | Vin |
A-1A | D6 |
A-1B | D9 |
회로도
DC모터의 두개의 핀을 각각 모터드라이버의 연두색 부분(터미널)에 연결한 후 드라이버로 조여 준다.
모터 드라이버의 6개의 핀을 표와 같이 아두이노에 연결한다.
모터를 시계방향 반시계방향으로 회전 시켜본다.
블루투스를 여러 사람이 동시에 잡게 되면 보통 HC-06이 휴대폰에 엄청 많아져서 내꺼 블루투스를 찾기가 힘들다.
그래서 블루투스의 이름을 바꿔주는 작업을 미리하면 좋다.
먼저 아래와 같은 코드를 아두이노 스케치에서 작성한다.
#include <SoftwareSerial.h> SoftwareSerial BT(7, 8); // RX, TX void setup() { Serial.begin(9600); BT.begin(9600); } void loop() { if (BT.available()) { Serial.write(BT.read()); } if (Serial.available()) { BT.write(Serial.read()); } } |
그런다음 블루투스의 RX를 아두이노의 8번에 꽃고 블루투스의 TX는 아두이노의 7번에 꽂아준다.
그런다음 코드를 아두이노에 업로드한다. 이때 포트가 제대로 연결되어있는지와 아두이노가 우노이면 우노가 선택되었는지 등의 연결을 반드시 체크한다.
그런다음 시리얼모니터를 켠다.
아래와 같이 시리얼 모니터에 AT라고 입력한 후 Enter를 누른다.
혹시 OK가 입력되지 않으면 line ending 없음과 9600 보드레이트가 선택되어있는지 확인한다.
잘 설정이 되어있으면 아래와 같이 OK가 입력된다. 그럼 잘 연결된 것이다.
이제 AT+NAME를 입력하고 그 다음에는 새롭게 지정할 자신만 알아볼수 있는 이름을 만든다.
예제에서는 KTB1이라는 이름을 만들었다. 이때 띄어쓰기는 하지 않는다.
이름이 넣어 Enter를 누르면 아래와 같이 OKsetname이라는 메세지가 뜨면 이름바꾸기 성공!!!
왼쪽처럼 처음의 블루투스 이름은 HC-06으로 동일하다. 그래서 오른쪽처럼 KTB1처럼 자신만의 이름으로 바꿔주면 블루투스 찾기가 용이하다.
아래와 같이 RC카 앱을 만든후 블루투스를 연결하려한다면 쉽게 자신의 이름을 찾을 수 있다.
3. 모터카 본체 모델링하기
아두이노 보드와 브래드보드 기타 부품들이 안착할 메인 판을 Fusion 360으로 모델링한후 3D 프린터로 출력한다.
모델링과 3D 프린터가 힘들경우 관련 키트를 구매하면 레이저커팅된 판이 같이 온다. 구매해서 간편하게 사용할 수 있다.
2차 사이즈와 위치 수정한 후의 모델링
4. 모터카 조립하기
1차 모델링해서 출력한 판에 모터카를 조립해본다.
다행히 한번의 재 수정으로 딱 맞게 각각의 부품들이 자리를 잡았다.
14센티로 작게 만든 이유는 MARV 프린터가 최대로 쓸수 있는 사이즈여서 할수없이 빡빡하게 모델링할수 밖에 없었다.
크게 뽑을수 있는 프린터가 있을 경우 좀 더 여유있는 사이즈로 모델링을 하면 더 좋겠다.
오른쪽 바퀴의 아래쪽 선이 가장 오른쪽에 연결하고 왼쪽 아래 선이 가장 왼쪽에 연결한다.
모터드라이브와 아두이노 메인보드를 각각 핀의 위치에 연결한다.
블루투스 센서를 메인보드에 연결한다.
5. 아두이노
아두이노에서 아래와 같이 코드를 작성한 후 업로드한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
#include <SoftwareSerial.h>
SoftwareSerial BT(7, 8);
void forward1() {
analogWrite(3, 0); //오른쪽 아래
analogWrite(5, 150);
analogWrite(6, 150);
analogWrite(9, 0); //왼쪽 아래
}
void backward1() {
analogWrite(3, 150);
analogWrite(5, 0);
analogWrite(6, 0);
analogWrite(9, 150);
}
void turnleft() {
analogWrite(3, 150);
analogWrite(5, 0);
analogWrite(6, 150);
analogWrite(9, 0);
}
void turnright() {
analogWrite(3, 0);
analogWrite(5, 150);
analogWrite(6, 0);
analogWrite(9, 150);
}
void stopall() {
analogWrite(3, 0);
analogWrite(5, 0);
analogWrite(6, 0);
analogWrite(9, 0);
}
void setup() {
pinMode(3, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(9, OUTPUT);
BT.begin(9600);
}
void loop() {
// 함수를 사용하여 전진,후진,좌회전,우회전,정지
if (BT.available()) {
char c = BT.read();
if (c == 'f')forward1();
if (c == 'b')backward1();
if (c == 'l')turnleft();
if (c == 'r')turnright();
if (c == 's')stopall();
}
}
|
기본적으로 RC카는 무선으로 조정하기 때문에 앱인밴터를 사용하여 스마트폰으로 RC카를 제어하는 코드를 작성한다.
6. 스마트폰으로 모터카 제어하기
이미지 파일을 먼저 다운 받는다.
아두이노에 블루투스센서를 추가하여 앱인벤터에서 코드를 작성한 후 스마트폰으로 모터카를 조정해본다.
먼저 아래와 같이 앱인벤터를 열어서 작성한다.
7. 스마트폰으로 모터카 운전 테스트하기
앱 인벤터로 만든 앱으로 자동차가 우회전 좌회전 직진 후진이 정상적으로 작동하는치 테스트해본다.
'Arduino' 카테고리의 다른 글
아두이노_미세먼지 측정기(온 습도, LCD 1602, 미세먼지 센서) (0) | 2019.06.24 |
---|---|
미세먼지 메이커 프로젝트 1 (0) | 2018.10.05 |
CNC (0) | 2018.09.15 |
스마트무드등 만들기 (0) | 2018.07.28 |
아두이노 PCB 작성중, 도트매트릭스 ppt (0) | 2018.04.20 |