안녕하세요.
세강의 @joonghoonlee입니다.

덧글 알림을 보고 들어갔다가 무척 기분 좋은 일이 있었습니다.
첫 관련 질문을 받았습니다.
그래서 일을 잠시 옆으로 밀어놓고 탄력받은 김에 올리기로 했습니다.
제가 무슨일을 하냐구요?
딱히 비밀도 아니고 궁금하신분이 있다면 조만간 알려드리겠습니다 ^^!
자!!
먼저 구성은 이러합니다.

SG-Power_AMP와 ARDUINO UNO 그리고 SG-90 서보모터와 생체측정패드입니다.
물론 브레드보드와 연결선도 필요합니다.

여기에 보이시는 SG-Power_AMP는 네 맞습니다. 직접 그려서 외주업체에 맡겨 만든겁니다!!ㅎㅎ
SG-Power_AMP에 생체측정 케이블 연결부에 생체측정케이블을 연결시킨 후,
(TP1,VCC,GND,TP2)부분을 아래의 그림과 같이 연결합니다.
SG-90 서브모터는 선 색깔에 맞추어 아두이노에 연결합니다. 이때 연결은 PWM이 지원
되는 아두이노 포트를 사용합니다.
생체전극은 빨강, 초록, 검정이 있습니다. 아래 사진과 같이 제어하고자 하는 근육면에
빨강과, 초록을 부착하고 검정은 측정하고자 하는 근육면과 다른부분에 부착하여 검정(생체
접지)으로 측정하고자 하는 근육면의 신호가 흘러들어가지 않도록 부착하여 줍니다.
실제 테스트에서는 왼손의 근육을 이용하였으나, 제어하고 싶은 근육부위에 부착하여
사용하셔도 됩니다. 검정(생체 접지)을 측정하고자 하는 근육에 같이 사용하게 되면 사용
은 가능하나 만족스러운 데이터를 얻기 힘들 수 있으니 주의합시다.
아래 사진을 참고하시면됩니다.

회로 구성은 다음과 같습니다.

자 회로구성이 완료 되었다면 이제 아두이노 코딩을 해보도록 하겠습니다.
먼저 컴퓨터에 아두이노를 연결해 주시고, 설치된 아두이노 프로그램을 실행합니다.
코딩을 위한 세팅부터 알려드리겠습니다.
물론 기존에 아두이노를 접해보신분은 잘 하시겠지만 이왕하는거 아무것도 모르는 분들을 위해
지금당장 아두이노를 사와도 사용하실수 있도록!!
메뉴에서 [툴] ▶ [보드] ▶ [Arduino Uno] 선택 (처음 한번 세팅되면 다음부터는생략)

메뉴에서 [툴] ▶ [포트] ▶ [COMx] 선택 (단, x는 [시작] ▶ [제어판] ▶ [장치관리자] ▶
[포트] ▶ [Ardino Uno(COMx)]로 보이는 상태에서 x에 대항되는 숫자)

셋팅이 완료되었다면 코딩 준비가 완료된 것입니다.
준비가 되었으니 본격적으로 코딩을 해볼까요?!
#include<Servo.h>
Servo myservo1;
Servo myservo2;
int i = 90;
int up = 380; //팔 위 근전도값 지정
int down = 350; //팔 아래 근전도값 지정
//근전도는 사람마다 전극을 붙이는곳 마다 값이 다르게 뜨기 때문에
//아날로그 입력을 받아서 플로터로 확인후 up, down 값을 자신에 맞게조절
void setup() {
Serial.begin(9600); //서보모터 초기화
myservo1.attach(9); // 1번모터 9번 핀에서 사용
myservo1.write(90); // 1번 모터 90도로 초기화
myservo2.attach(10); // 2번모터 9번 핀에서 사용
myservo2.write(20); // 2번 모터 20도로 초기화
}
void loop() {
int sensorValue1 = analogRead(A0); //근전도 값 받아옴
int sensorValue2 = analogRead(A1); //근전도 값 받아옴
//Serial.println(sensorValue1);
//Serial.println(sensorValue2);
//모터2번 조종
if (sensorValue1 > up + 10 && sensorValue2 > down + 10) {
myservo2.write(170);
delay(3000);
myservo2.write(20);
delay(3000);
}
//모터1번 조종
if (sensorValue1 > up) {
i = i + 20;
if (i >= 150) {
i = 100;
}
delay(700);
}
else if (sensorValue2 > down) {
i = i - 20;
if ( i <= 20) {
i = 20;
}
delay(700);
}
myservo1.write(i);
delay(100);
}
상단 메뉴에서 스케치 아이콘을 찾아 클릭하고 아래쪽에 "스케치 컴파일" ▶ "업로딩" ▶
"업로딩 완료및 "avrdude done, Thank you" 메시지가 나타나는지 확인!
자 이제 모든 준비가 완료 되었습니다.
이제 응용해서 활용하시면 됩니다 ^^
물론
아~ 이렇게되는거구나 하고 넘어가셔도 됩니다!! ㅎㅎ
Q&A는스팀달러 안받고 올려드려요 ㅎㅎ