<div>안녕하세요?</div> <div><br></div> <div>스르륵 이민자입니다.</div> <div><br></div> <div>기술이민 증빙자료입니다. ㄷㄷㄷㄷㄷ</div> <div><br></div> <div><br></div> <div><br></div> <div>레고 테크닉을 수동으로 움직이는것에 만족하지 못하고 프로그래밍해서 움직이고자 시도하게되었습니다.</div> <div><br></div> <div>아두이노를 이용하여 테크닉 모터를 스마트폰으로 제어하게 만들었습니다.</div> <div><br></div> <div><br></div> <div>=====================================================================================================</div> <div><br></div> <div> <div style="font-family:dotum;"><b><span style="font-size:24pt;">1. 하드웨어 준비 작업</span></b></div> <div style="font-family:dotum;"><br></div> <div style="font-family:dotum;"><b><span style="font-size:14pt;">준비물</span></b></div> <div style="font-family:dotum;"><br></div> <div style="font-family:dotum;"> <table border="0" width="671" cellspacing="1" cellpadding="1" bgcolor="#B7BBB5" style="height:40px;"><tbody><tr bgcolor="#FFFFFF"><td width="223" style="font-size:9pt;text-align:center;"><span style="font-size:18pt;"><b><span style="font-size:12pt;">명칭</span></b></span></td> <td width="223" style="font-size:9pt;text-align:center;"><b><span style="font-size:12pt;">가격대</span></b></td> <td width="223" style="font-size:9pt;text-align:center;"><b><span style="font-size:14pt;"><span style="font-size:12pt;">설명</span></span></b></td></tr><tr bgcolor="#FFFFFF"><td style="font-size:9pt;"> 아두이노 우노 R3 (호환보드가능)</td> <td style="font-size:9pt;"> 11,000원 (호환보드)</td> <td style="font-size:9pt;"> 제어보드</td></tr><tr bgcolor="#FFFFFF"><td style="font-size:9pt;"> SN754410 </td> <td style="font-size:9pt;"> 5,000원</td> <td style="font-size:9pt;"> 모터 제어용 IC</td></tr><tr bgcolor="#FFFFFF"><td style="font-size:9pt;"> HC-06 </td> <td style="font-size:9pt;"> 11,000원</td> <td style="font-size:9pt;"> 블루투스 슬레이브 모듈</td></tr><tr bgcolor="#FFFFFF"><td style="font-size:9pt;"> 브레드보드</td> <td style="font-size:9pt;"> 4,000원</td> <td style="font-size:9pt;"> 회로용 기판</td></tr><tr bgcolor="#FFFFFF"><td style="font-size:9pt;"> 브레드보드용 점퍼선</td> <td style="font-size:9pt;"> 6,000원</td> <td style="font-size:9pt;"> 배선</td></tr><tr bgcolor="#FFFFFF"><td style="font-size:9pt;"> 8886 레고® 파워 펑션 연장선 8" </td> <td style="font-size:9pt;"> 6,000원</td> <td style="font-size:9pt;"> 배터리박스 및 모터 연결용</td></tr><tr bgcolor="#FFFFFF"><td style="font-size:9pt;"> 8881 레고® 파워 펑션 배터리 박스 </td> <td style="font-size:9pt;"> 12,000원</td> <td style="font-size:9pt;"><br></td></tr><tr bgcolor="#FFFFFF"><td style="font-size:9pt;"> 8883 레고® 파워펑션 M-모터</td> <td style="font-size:9pt;"> 19,000원</td> <td style="font-size:9pt;"> </td></tr></tbody></table><br></div></div> <div style="font-family:dotum;"><br></div> <div style="font-family:dotum;"><br></div> <div style="font-family:dotum;"> <div><b><span style="font-size:24pt;">2. 연장선 작업</span></b></div> <div><span style="font-size:9pt;line-height:1.5;">연장선은 절반으로 잘라서 아래와 같이 피복을 벗겨 인두로 납을 뭍혀둡니다. (브레드보드에 꽂기 편하도록)</span></div> <div><span style="font-size:9pt;line-height:1.5;"><br></span></div> <div><span style="font-size:9pt;line-height:1.5;"></span> <div style="text-align:left;"><img src="http://thimg.todayhumor.co.kr/upfile/201505/1431321226JLBg5S8xelab.jpg" width="800" height="453" alt="선까기.jpg" class="chimg_photo" style="border:none;"></div><br></div> <div> <div>연장선의 양쪽 컨넥터는 하부쪽 디자인이 다른데, 한쪽(회색)은 아랫쪽에 단자가 있고, 다른쪽(검정색)은 없습니다.</div> <div>아래에 단자가 있는 케이블은 배터리 박스에 연결하고, 단자가 없는 케이블은 모터에 연결합니다.</div></div> <div><br></div> <div> <div style="text-align:left;"><img src="http://thimg.todayhumor.co.kr/upfile/201505/1431321257jYjyIwy4u1vY.jpg" width="800" height="671" alt="핀맵3.jpg" class="chimg_photo" style="border:none;"></div> <div style="text-align:left;"><br></div> <div style="text-align:left;"> <div>배터리 박스 연결용 케이블은 9V, GND(0V) 만 사용하고, <span style="font-size:9pt;line-height:1.5;">모터 연결용 케이블은 C1, C2만 사용합니다.</span></div> <div><span style="font-size:9pt;line-height:1.5;"><br></span></div> <div>9V, GND 단자는 배터리 박스 스위치의 방향에 관계없이 똑같이 9V, 0V가 각각 인가되는 반면</div> <div>C1, C2는 스위치 방향에 따라 9V와 0V가 서로 바뀌게 되어 모터 회전 방향을 변경합니다.</div> <div><br></div> <div>아두이노 보드에 연결하는 전원은 방향이 바뀌면 안되므로 9V, GND를 사용하고,</div> <div>모터는 C1, C2를 연결하여 방향 제어를 하도록 회로를 꾸미면 됩니다.</div> <div><br></div> <div><br></div> <div><br></div> <div><br></div> <div> <div><span style="font-size:24pt;"><b>3. 회로 꾸미기</b></span></div> <div><br></div> <div>아래 그림을 참조하여 브레드보드에 회로를 꾸밉니다.</div> <div><br></div> <div><b><span style="font-size:14pt;">아두이노 보드 핀맵</span></b></div> <div> <table border="0" width="671" cellspacing="1" cellpadding="1" bgcolor="#B7BBB5" style="height:40px;"><tbody><tr bgcolor="#FFFFFF"><td width="335" style="font-size:9pt;"><b> 핀번호</b></td> <td width="335" style="font-size:9pt;"><b> 설명</b></td></tr><tr bgcolor="#FFFFFF"><td style="font-size:9pt;"> </td> <td style="font-size:9pt;"><br></td></tr><tr bgcolor="#FFFFFF"><td style="font-size:9pt;"> 4번핀</td> <td style="font-size:9pt;"> 블루투스 통신용 RX</td></tr><tr bgcolor="#FFFFFF"><td style="font-size:9pt;"> 5번핀</td> <td style="font-size:9pt;"> 블루투스 통신용 TX</td></tr><tr bgcolor="#FFFFFF"><td style="font-size:9pt;"> 6번핀</td> <td style="font-size:9pt;"> 모터 정방향 회전</td></tr><tr bgcolor="#FFFFFF"><td style="font-size:9pt;"> 7번핀</td> <td style="font-size:9pt;"> 모터 역방향 회전<br></td></tr></tbody></table><br></div></div> <div> <div style="text-align:left;"><img src="http://thimg.todayhumor.co.kr/upfile/201505/1431321294rWMGSFEMAWNgE72e15ZcK8XIPi.jpg" width="800" height="563" alt="회로도2.jpg" class="chimg_photo" style="border:none;"></div><br></div></div><br></div> <div> <div>아래 사진은 참고만 하세요. </div> <div><br></div> <div>저기서 약간 배선이 변경되었습니다. (ic에 5v로 EN 입력을 하는 선을 빼버림. 위의 회로도를 보시고 작업하세요)</div></div> <div><br></div> <div> <div style="text-align:left;"><img src="http://thimg.todayhumor.co.kr/upfile/201505/1431321318y6xMIMdYHzZZjdrmEyPEtq7.jpg" width="800" height="453" alt="우노_브레드.jpg" class="chimg_photo" style="border:none;"></div> <div style="text-align:left;"><br></div> <div style="text-align:left;"><br></div> <div style="text-align:left;"><br></div> <div style="text-align:left;"> <div><b style="font-size:32px;line-height:48px;">4. 프로그래밍</b></div> <div><br></div> <div>아두이노 스케치 프로그램에 새 스케치를 생성하고 다음과 같이 코딩합니다.</div> <div><br></div> <div>속도 조절기능이 있었는데 이건 삭제했습니다.</div> <div><br></div> <div>속도 조절이라는게 전류조절이라 힘이 약해지는데다가, 안그래도 아두이노 우노는 IO가 적어서 여러개의 모터를</div> <div><br></div> <div>제어하려면 IO단자 하나가 아쉽거든요. ㅎㅎ</div> <div><br></div> <div>과감히 삭제했습니다.</div> <div><br></div> <div><br></div> <div> <table border="0" cellpadding="0" cellspacing="0" width="272" style="border-collapse:collapse;width:204pt;"><colgroup><col width="272" style="width:204pt;"></colgroup><tbody><tr height="22" style="height:16.5pt;"><td height="22" width="272" style="font-size:9pt;height:16.5pt;width:204pt;">// 코딩시작======================================================</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"></td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;">#include <SoftwareSerial.h></td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;">SoftwareSerial mySerial(4,5);//HC-06 블루투스 모듈 설정 rx, tx</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"></td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"><br></td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;">int dir1PinA = 6; // 전진</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;">int dir2PinA = 7; // 후진</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"></td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;">byte rcvByte; // 블루투스 데이터 읽기</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"></td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;">int spd_val_mtrA; // 속도값</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"></td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;">void setup() {</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> // 아두이노 전원 인가시 1회만 실행됨</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"></td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> // 블루투스 모듈 동작시킴</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> mySerial.begin(9600); </td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> </td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> // 핀 설정</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> pinMode(spdPinA, OUTPUT); </td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> pinMode(dir1PinA, OUTPUT);</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> pinMode(dir2PinA, OUTPUT);</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> </td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> // 핀 기본값 OFF </td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> // LOW -> OFF</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> // HIGH -> ON</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> digitalWrite(dir1PinA, LOW);</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> digitalWrite(dir2PinA, LOW);</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;">}</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"></td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"></td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;">void loop() {</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> // 계속 반복 동작하는 부분</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> </td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> </td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> if (mySerial.available() > 0) { // 블루투스로 데이터를 읽었을때...</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> rcvByte = mySerial.read(); // 블루투스로 읽은 데이터를 rcvByte에 넘겨줌.</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> </td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> if (rcvByte == 'f') { // f 문자가 입력되었으면 전진 동작</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> digitalWrite(dir1PinA, HIGH);</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> digitalWrite(dir2PinA, LOW);</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> }</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> </td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> if (rcvByte == 'b') { // b 문자가 입력되었으면 후진 동작</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> digitalWrite(dir1PinA, LOW);</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> digitalWrite(dir2PinA, HIGH);</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> }</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> </td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> if (rcvByte == 's') { // s 문자가 입력되었으면 정지</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> digitalWrite(dir1PinA, LOW);</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> digitalWrite(dir2PinA, LOW);</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> }</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> }</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"> </td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;">}</td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;"></td></tr><tr height="22" style="height:16.5pt;"><td height="22" style="font-size:9pt;height:16.5pt;">//코딩끝===============================================================<br><br><br><div style="text-align:left;"><img src="http://thimg.todayhumor.co.kr/upfile/201505/1431321339LbWFdpg6wdVCicbS35c5qeUWFF.jpg" width="800" height="924" alt="코딩.jpg" class="chimg_photo" style="border:none;"></div><br></td></tr></tbody></table><br></div> <div><br></div> <div>코딩이 끝나면 USB 케이블을 연결하여 보드로 프로그램을 업로드합니다.</div> <div><br></div> <div><br></div> <div> <div style="text-align:left;"><img src="http://thimg.todayhumor.co.kr/upfile/201505/1431321361VIgOO1ubNQKRIz4FeCWDGLIl3zMFADRQ.jpg" width="800" height="453" alt="다운로드.jpg" class="chimg_photo" style="border:none;"></div><br></div> <div><br></div> <div><br></div> <div> <div><b style="font-size:32px;line-height:48px;">5. 스마트폰 블루투스 설정 작업</b></div> <div><br></div> <div>1) 플레이스토어에서 BlueTooth Controller 라는 어플을 다운받습니다.</div> <div><br></div> <div>2) 실행후 키설정 버튼을 클릭합니다.</div></div> <div><br></div> <div> <div style="text-align:left;"><img src="http://thimg.todayhumor.co.kr/upfile/201505/143132139998hVoNNLcTPud.jpg" width="221" height="345" alt="bt1.jpg" style="border:none;"></div><br></div> <div>3) 4,5,6번째칸에 다음과 같이 입력한뒤 맨 아래 OK 버튼을 클릭합니다.</div> <div> <div style="text-align:left;"><img src="http://thimg.todayhumor.co.kr/upfile/201505/1431321433z2xDvC1tMVy1OKaB.jpg" width="215" height="351" alt="bt2.jpg" style="border:none;"></div> <div style="text-align:left;"><br></div> <div style="text-align:left;"> <div>4) 장치검색을 클릭하고, HC-06 항목을 선택합니다.</div> <div>키는 기본값으로 1234 또는 0000을 입력합니다.</div> <div> <div style="text-align:left;"> <div style="text-align:left;"><img src="http://thimg.todayhumor.co.kr/upfile/201505/1431321468VTebzRokimlV88gariDfnu3P6F.jpg" width="213" height="343" alt="bt3.jpg" style="border:none;"></div><br></div> <div style="text-align:left;">5) 연결되었다는 메시지가 뜨면 전진/정지/후진 버튼을 각각 클릭하여 모터가 구동되는지 확인합니다.</div> <div style="text-align:left;"><br></div> <div style="text-align:left;"><br></div> <div style="text-align:left;"> <div><b style="font-size:32px;line-height:48px;">6. 동작 확인</b></div> <div><span style="font-size:9pt;line-height:1.5;"><br></span></div> <div>배터리박스와 모터를 연결한 후 전원을 올리고 동작을 테스트합니다.</div> <div><br></div> <div> <div style="text-align:left;"><img src="http://thimg.todayhumor.co.kr/upfile/201505/1431321497mxCwSMLHD3.jpg" width="800" height="531" alt="DSC03127.JPG" class="chimg_photo" style="border:none;"></div><br></div></div><br></div></div><br></div> <div> <div>1) 동작영상</div> <div>- 아웃 트리거를 동작시켜봤습니다. 요즘 왠지 블루투스 통신이 좀 느려서 반응이 늦네요.</div></div> <div><iframe width="560" height="315" src="https://www.youtube.com/embed/VKHs6GSKfWU" frameborder="0"></iframe><br></div> <div><br></div> <div> <div>2) 응용 동작</div> <div>- 초음파 거리센서를 이용하여 (화면 상단쪽에 있음) 손을 가까이 대면 멈추고, 손을 떼면 동작하게끔 만들었습니다.</div> <div>근데 카메라 들고 찍으니 제대로 안보이네요. -_-a</div> <div><iframe width="560" height="315" src="https://www.youtube.com/embed/j7uHiRzJWLI" frameborder="0"></iframe><br></div></div></div><br></div></div>
이 게시물을 추천한 분들의 목록입니다.
[1] 2015/05/11 14:30:45 121.176.***.95 프로셀피나
133270[2] 2015/05/11 14:31:05 223.62.***.215 왜이래미러
49703[3] 2015/05/11 14:31:59 14.48.***.68 車力史차력사
511258[4] 2015/05/11 14:35:19 125.130.***.87 방망이깎는노인
357860[5] 2015/05/11 14:39:25 117.111.***.137 카우보이비빔
212914[6] 2015/05/11 14:47:19 175.223.***.201 오늘은이만
89626[7] 2015/05/11 14:51:12 121.168.***.84 operand
554731[8] 2015/05/11 15:01:41 203.254.***.175 서어나무
404003[9] 2015/05/11 15:02:43 114.70.***.208 유리화
108713[10] 2015/05/11 15:10:06 111.65.***.199 배영수
168073
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.