[Bio-technology, science] Step1.1

in kr-science •  8 years ago  (edited)

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

1.jpg

마실 물을 구매하러 코스트코에 들렀었습니다.
언제? 어제!
아무튼 물만 딱 사서 계산대로 향했습니다.
여러분들은 계산대로 향하며, 어떤 행동과 생각을 하십니까?
저는 빨리 계산하고, 계산대를 빠져 나오기 위해 줄을 선 사람들을 스캔하게됩니다.
먼저 줄의 길이, 카트에 들어있는 물품의 수, 성별, 나이, 단체인지 혼자인지 여부등을
따져서 계산대를 정합니다.
하지만 사람의 감에 의한 이런 선택은 잘 맞지 않는 경우도 많습니다.

step 1.0에서는 정확하고 세세하게 알려드리려다보니 다소 루즈하고
라면받침용 도서를 읽는 느낌을 많이 드린것같아 좀 바꿔보려합니다.

어떻게? 이렇게!!

동영상부터 감상 하시겠습니다.

보시면 알겠지만 팔목부분의 검출을 테스트 해보았습니다.(feat.알바생)
동영상에 보이는 test는 아두이노 UNO보드에 생체인식 앰프를 연결한 구조입니다.
즉 조만간 아두이노와 설계한 보드를 연결해 사용하는 법도 알려드릴 예정입니다.

그래도 혹시나 앞서가실 분이 있으시다면, 언제든 오픈입니다~
그런 의미에서

#include <avr/interrupt.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX

int a = 300; //팔을 움직였을때 근전도 값이 최대로 나오는 값을 입력해야함.
int b = 300;
int c = 300;
void setup() {
Serial.begin(9600);
mySerial.begin(9600);

//////////////////////////////////////////////////////////왼쪽 주먹 초기값
ax12SetRegisterSoft2( 1, AX_GOAL_POSITION_L , 1024 - 100);
ax12SetRegisterSoft2( 2, AX_GOAL_POSITION_L , 0 + 50);

//////////////////////////////////////////////////////////오른쪽 주먹 초기값
ax12SetRegisterSoft2( 3, AX_GOAL_POSITION_L , 0 + 100);
ax12SetRegisterSoft2( 4, AX_GOAL_POSITION_L , 1024 - 50);

//////////////////////////////////////////////////////////회피 초기값
ax12SetRegisterSoft2( 5, AX_GOAL_POSITION_L , 512);

delay(100);
}

void loop() {
// read the state of the pushbutton value:
int sensorValue1 = analogRead(A0);
int sensorValue2 = analogRead(A1);
//int sensorValue2 = analogRead(A2);
// Serial.println(sensorValue1); //왼손
// Serial.println(sensorValue2); //오른속
// Serial.println(sensorValue3); //회피
if (sensorValue1 > a) {
a = sensorValue1;
}
if (sensorValue1 > b) {
a = sensorValue2;
}
// if (sensorValue1 > c) {
// a = sensorValue3;
// }

//////////////////////////////////////////////////////////왼쪽 주먹
if (sensorValue1 > a) {
ax12SetRegisterSoft2( 2, AX_GOAL_POSITION_L , 512);
delay(200);
ax12SetRegisterSoft2( 1, AX_GOAL_POSITION_L , 800);
delay(100);
ax12SetRegisterSoft2( 1, AX_GOAL_POSITION_L , 1024 - 100);
ax12SetRegisterSoft2( 2, AX_GOAL_POSITION_L , 0 + 50);
delay(1000);
}
//////////////////////////////////////////////////////////오른쪽 주먹
if (sensorValue2 > b) {
ax12SetRegisterSoft2( 4, AX_GOAL_POSITION_L , 512);
delay(200);
ax12SetRegisterSoft2( 3, AX_GOAL_POSITION_L , 224);
delay(100);
}
else {
ax12SetRegisterSoft2( 3, AX_GOAL_POSITION_L , 0 + 100);
ax12SetRegisterSoft2( 4, AX_GOAL_POSITION_L , 1024 - 50);
delay(100);
}

//////////////////////////////////////////////////////////회피
// if (sensorValue3 > c) {
// ax12SetRegisterSoft2( 5, AX_GOAL_POSITION_L , 1024 - 200);
// delay(100);
// }
// else {
// ax12SetRegisterSoft2( 5, AX_GOAL_POSITION_L , 512);
// delay(100);
// }

}

void ax12SetRegisterSoft2(int id, int regstart, int data) {
mySerial.write(0xFF);
mySerial.write(0xFF);
mySerial.write(id);
mySerial.write(5);
mySerial.write(AX_WRITE_DATA);
mySerial.write(regstart);
mySerial.write((data & 0xff));
mySerial.write(((data & 0xff00) >> 8));
mySerial.write((0xFF - ((id + 5 + AX_WRITE_DATA + regstart + (data & 0xFF) + ((data & 0xFF00) >> 8)) % 256)));
}

define까지 적기엔 너무 길어 지웠습니다.^^;;

이번엔 삼각근에서의 검출입니다.

(feat.주임)

보시는 것처럼 잘 나옵니다.

오늘은 간단하고 명료하게 마무리하려합니다.
보셔서 알겠지만
그림1.jpg
오늘은 동영상이 2개지요~~!!

결론은!! 어제 손가락을 시험했으니, 나머지 부분의 근육들을 시험해본 것을 올렸습니다.
그래서 무척 만족스런 결과가 나왔단 겁니다.

음하하하하하하하하하하하하하하
좀 정비해서 이다음엔 손으로 그림을 그려보는 방법을 사용해보겠습니다;;
다양하고 아름답게 접근하겠습니다.

부산의 오늘은 무척 흐렸습니다.
그와중에도 낭만적인 순간이 머물다 가길 기대합니다.
감사합니다.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

아! 이런 방식으로 아바타에 나오는 중령악당이 로봇을 조종하는거군요?
이런 중요한 특급비밀소스를 공개해버리시다니~~~~~~~~인류공영에 이바지하신 겁니다!^^

누구라도 사용해서 대박나면 그걸로 만족합니다.
아이디어는 무궁무진하니까요 ^^

오픈 소스에 존경을 표합니다 ㅎㅎㅎ

학부시절 예제할만한 소스 찾던 아픔이 떠올라서 올려보았습니다.

우와 신기합니다. 아두이노 관심은있었는데 활용도가 엄청나군요...
그런데 공개하신 저 코드는 아두이노 어디?!에 얹는 건가요?!
또 생체인식 앰프도 직접 제작하시는건가요?!
신기하니 궁금한 점이 생깁니다 ㅎㅎㅎ

아두이노 UNO모델을 사용했습니다 ㅎㅎ이 질문에 대해서는 한시간뒤에 그냥 포스팅을 해서 알려드리겠습니다. 이런 덧글 너무 설레고 좋습니다 ㅎㅎ감사합니다 ㅎㅎㅎ