<p>안녕하세요.<br> 세강의 @joonghoonlee입니다.</p> <p><img src="https://steemitimages.com/DQmZ3yrGUXA6wjget4Wiue691qHfGbypWDyQEu6MKQzdT43/q%26a.jpg" alt="q&a.jpg"></p> <p>덧글 알림을 보고 들어갔다가 무척 기분 좋은 일이 있었습니다.<br> <img src="https://steemitimages.com/DQmeR8mTVLJrugG2RAzje4mPjEdZMusG37ztWvD74kfexzR/%EC%A7%88%EB%AC%B8.JPG" alt="질문.JPG"></p> <p>첫 관련 질문을 받았습니다.<br> 그래서 일을 잠시 옆으로 밀어놓고 탄력받은 김에 올리기로 했습니다.<br> 제가 무슨일을 하냐구요?<br> 딱히 비밀도 아니고 궁금하신분이 있다면 조만간 알려드리겠습니다 ^^!</p> <p>자!!<br> 먼저 구성은 이러합니다.<br> <img src="https://steemitimages.com/DQmS7UVGJv8ffmjrLkGoG7MSweo9tmLqQUJtCy6YkCC2pGc/1.jpg" alt="1.jpg"><br> SG-Power_AMP와 ARDUINO UNO 그리고 SG-90 서보모터와 생체측정패드입니다.<br> 물론 브레드보드와 연결선도 필요합니다.<br> <img src="https://steemitimages.com/DQmW2ZiKUsnRLTu12tthy77iTCXpGuaghoxf2jFfJRrKiQ2/21.jpg" alt="21.jpg"><img src="https://steemitimages.com/DQmeuHiRg96NFTDgcwom6iTbbhNcKAbww1nuvhN3FgPsUZ2/22.JPG" alt="22.JPG"><br> 여기에 보이시는 SG-Power_AMP는 네 맞습니다. 직접 그려서 외주업체에 맡겨 만든겁니다!!ㅎㅎ</p> <p>SG-Power_AMP에 생체측정 케이블 연결부에 생체측정케이블을 연결시킨 후,</p> <p>(TP1,VCC,GND,TP2)부분을 아래의 그림과 같이 연결합니다.</p> <p>SG-90 서브모터는 선 색깔에 맞추어 아두이노에 연결합니다. 이때 연결은 PWM이 지원</p> <p>되는 아두이노 포트를 사용합니다.</p> <p>생체전극은 빨강, 초록, 검정이 있습니다. 아래 사진과 같이 제어하고자 하는 근육면에<br> 빨강과, 초록을 부착하고 검정은 측정하고자 하는 근육면과 다른부분에 부착하여 검정(생체<br> 접지)으로 측정하고자 하는 근육면의 신호가 흘러들어가지 않도록 부착하여 줍니다.<br> 실제 테스트에서는 왼손의 근육을 이용하였으나, 제어하고 싶은 근육부위에 부착하여<br> 사용하셔도 됩니다. 검정(생체 접지)을 측정하고자 하는 근육에 같이 사용하게 되면 사용<br> 은 가능하나 만족스러운 데이터를 얻기 힘들 수 있으니 주의합시다.<br> 아래 사진을 참고하시면됩니다.<br> <img src="https://steemitimages.com/DQmWud7eKAzafQBk6KBUDhYjdpijpxdc6db4CNCin2mTRT4/31.jpg" alt="31.jpg"></p> <p>회로 구성은 다음과 같습니다.<br> <img src="https://steemitimages.com/DQmVAVMdX41FKz4rnuLYN6uG376Zz88xzrSYNDtoM1VNeAg/41.jpg" alt="41.jpg"></p> <p>자 회로구성이 완료 되었다면 이제 아두이노 코딩을 해보도록 하겠습니다.<br> 먼저 컴퓨터에 아두이노를 연결해 주시고, 설치된 아두이노 프로그램을 실행합니다.<br> 코딩을 위한 세팅부터 알려드리겠습니다.<br> 물론 기존에 아두이노를 접해보신분은 잘 하시겠지만 이왕하는거 아무것도 모르는 분들을 위해<br> 지금당장 아두이노를 사와도 사용하실수 있도록!!</p> <p>메뉴에서 [툴] ▶ [보드] ▶ [Arduino Uno] 선택 (처음 한번 세팅되면 다음부터는생략)<br> <img src="https://steemitimages.com/DQmYo36JYNUejwxofE5ArHKrPhGSZBJkKnSxSzhmsdaXVam/51.jpg" alt="51.jpg"><br> 메뉴에서 [툴] ▶ [포트] ▶ [COMx] 선택 (단, x는 [시작] ▶ [제어판] ▶ [장치관리자] ▶<br> [포트] ▶ [Ardino Uno(COMx)]로 보이는 상태에서 x에 대항되는 숫자)<br> <img src="https://steemitimages.com/DQmWjjAZJ6Q3LFW8YqcS94Zt7CtPA6rWGhdVuj5bXr5U5bT/52.jpg" alt="52.jpg"></p> <p>셋팅이 완료되었다면 코딩 준비가 완료된 것입니다.</p> <p>준비가 되었으니 본격적으로 코딩을 해볼까요?!</p> <p>#include<Servo.h><br> Servo myservo1;<br> Servo myservo2;<br> int i = 90;<br> int up = 380; //팔 위 근전도값 지정<br> int down = 350; //팔 아래 근전도값 지정<br> //근전도는 사람마다 전극을 붙이는곳 마다 값이 다르게 뜨기 때문에<br> //아날로그 입력을 받아서 플로터로 확인후 up, down 값을 자신에 맞게조절</p> <p>void setup() {<br> Serial.begin(9600); //서보모터 초기화<br> myservo1.attach(9); // 1번모터 9번 핀에서 사용<br> myservo1.write(90); // 1번 모터 90도로 초기화<br> myservo2.attach(10); // 2번모터 9번 핀에서 사용<br> myservo2.write(20); // 2번 모터 20도로 초기화<br> }<br> void loop() {<br> int sensorValue1 = analogRead(A0); //근전도 값 받아옴<br> int sensorValue2 = analogRead(A1); //근전도 값 받아옴<br> //Serial.println(sensorValue1);<br> //Serial.println(sensorValue2);<br> //모터2번 조종<br> if (sensorValue1 > up + 10 && sensorValue2 > down + 10) {<br> myservo2.write(170);<br> delay(3000);<br> myservo2.write(20);<br> delay(3000);<br> }</p> <p>//모터1번 조종<br> if (sensorValue1 > up) {<br> i = i + 20;<br> if (i >= 150) {<br> i = 100;<br> }<br> delay(700);<br> }<br> else if (sensorValue2 > down) {<br> i = i - 20;<br> if ( i <= 20) {<br> i = 20;<br> }<br> delay(700);<br> }<br> myservo1.write(i);</p> <p>delay(100);<br> }</p> <p>상단 메뉴에서 스케치 아이콘을 찾아 클릭하고 아래쪽에 "스케치 컴파일" ▶ "업로딩" ▶<br> "업로딩 완료및 "avrdude done, Thank you" 메시지가 나타나는지 확인!</p> <p>자 이제 모든 준비가 완료 되었습니다.</p> <p>이제 응용해서 활용하시면 됩니다 ^^<br> 물론<br> 아~ 이렇게되는거구나 하고 넘어가셔도 됩니다!! ㅎㅎ<br> Q&A는스팀달러 안받고 올려드려요 ㅎㅎ</p>