질문이요!!

14 views
Skip to first unread message

Minjung Kim

unread,
Dec 14, 2010, 4:58:14 AM12/14/10
to honaya_piny_kk_2010
아 춥습니다.ㅠㅠㅠ

아두이노로 빛센서를 읽어 프로세싱으로 받는데
프로세싱에서 받을 수 있는 언어가 어떤언어로되어있는지..ㅠ
빛센서를 읽는것까지는 했는데
프로세싱에는 ~read가 없어서.. 아두이노에서 아날로그리드 같은 기능을 하는 언어의 힌트!!
부탁드려용

Donghee Park

unread,
Dec 14, 2010, 5:24:03 AM12/14/10
to honaya_pi...@googlegroups.com
아 민정님. 
 
 
빛센서 -> 아두이노 -> 프로세싱
 
이순서로 전달하면 되는데
 
아두이노와 프로세싱은 값 전달은 시리얼 통신을 이용해요.
프로세싱의 시리얼통신 관련된 예제를 살펴보면 도움이 될거에요.
 
우선 아두이노와 프로세싱 각각 처리하는 함수(언어?)가 있어요.
아두이노쪽에서는
   Serial.print(val, DEC);
 
이런식으로 전달하구요
 
프로세싱에서는
void setup() {
myPort = new Serial(this, portName, 9600);
}
Serial을 사용하시면 됩니다.
 
^^; 우선 이정도!
 
 
요기 참고하세요. 프로세싱 예제의 SerialPort read 하는 예제 보는것도 좋구!
 
2010/12/14 Minjung Kim <uzni...@gmail.com>

Minjung Kim

unread,
Dec 14, 2010, 5:28:49 AM12/14/10
to honaya_pi...@googlegroups.com
와우 :) 감사합니다!!!!
우히히히
화이팅 !

김동은 / Dora Kim

unread,
Dec 14, 2010, 8:01:34 AM12/14/10
to honaya_pi...@googlegroups.com
아 동히님도 어드바이스를 해주시고계시네요..ㅜㅜ
저희는 아두이노없이 결국 컴퓨터 내장마이크(소음 이용)를 쓰는데
그부분의 코드를 찾기가너무 힘들어서요...

래퍼런스 참고라는게, 말이 참고지 도무지 어떤부분이 저희가 필요한 부분인지 아닌지,
이 부분이 이 기능의 부분인지를 구분하는 것조차 너무 힘이들어서요.. 허허 ^^:;
물론 알아내기 위해 많이많이 구글링도 하고 오픈프로세싱에서도 찾고있지만
해결이 나지않아 여쭤봅니다. ㅜㅜ 간단한 팁이라도 부탁드릴게요.....



SeungBum Kim

unread,
Dec 14, 2010, 9:18:01 AM12/14/10
to honaya_pi...@googlegroups.com
너무 멀리서 찾으면 안됩니다.!!!

이전 메일 쓰레드에 마이크 사용 관련된 내용이 있어요. 

프로세싱 예제의 Library > Minim > GetLineIn 참고해보세요. 

2010/12/14 김동은 / Dora Kim <dddesi...@gmail.com>



--
김 승 범 (SB Kim)
http://piny.cc - PINY (Powerful Idea jourNeY)
Digital Literacy & Communication
010 - 2686 - 6855
http://xenbio.net | http://squeak.kr

Minjung Kim

unread,
Dec 14, 2010, 9:26:44 AM12/14/10
to honaya_pi...@googlegroups.com
확인못하셨나 해서 다시 올립니다. ㅠㅠㅠㅠㅠㅠㅠ

아직도 답을 찾지 못했어요..

아.. 얼마 되지도 않아 다시 벽에 부딪혔어요..ㅜ ㅠ

아두이노에서 프로세싱으로 넘어갈 때 숫자가 바뀌어서 
아두이노에서 10에 읽혀도 프로세싱으로 넘어가면 숫자가 바뀌는 현상 때문에
아두이노에서 serial이 10 이하의 숫자를 인지할 때 yes라고 뜨게 했습니다.
그러고나니 프로세싱에서도 10이하의 숫자를 인지할 때에만 숫자가 뜨더군요(규칙적이지는 않아도?)

문제는 이것을 1번, 2번, 3번, 4번 만졌을때의 결과가 달라야 하는데..
말하자면 누적이지요..
이것은 프로세싱에서 void touchOnce(){  } 이런 식으로 지정해줘야하나요??
그리고 1번, 2번, 3번, 4번 만졌다는 것을 지정할 수 있는 누적 명령이 있는지....ㅠ

제가 10이하면 변수가 1씩 증가한다.
라는 것으로 될 줄 알았는데 만지고 있는 내내 증가하는 바람에 그는 안될것같아요..
그럼 딜레이를 4초 정도로 늘려주면 될까요...ㅠ ㅠ 

....하악................ 

Minjung Kim

unread,
Dec 14, 2010, 9:27:52 AM12/14/10
to honaya_pi...@googlegroups.com

SeungBum Kim

unread,
Dec 14, 2010, 10:24:02 AM12/14/10
to honaya_pi...@googlegroups.com
아. 아직 해결된게 아니군요. 늦은 시간까지 고생 많네요. 추운데....

이런 경우에는 현재 상태를 저장하는 변수를 두고 터치가 있을 때 마다 해당 상태를 변경해줘야 합니다.

예를 들어 상태는 0부터 4까지 가능하다고 합시다. 터치가 없는 것 부터 4번째까지...

터치(10이하의 숫자가 올때인가요?)가 발생하면 yes 라고 뜨게 하듯이 상태를 변경하는 함수를 호출합니다. nextStatus() 정도가 될 수 있겠네요. 

그러면 그 함수는 내부적으로 상태값을 0부터 4까지 변경시키는 작업을 합니다. 0이면 1로, 1이면 2로, 3이면 4로, 4면 0으로 계속 순환하게요.

그런데 문제는 이걸 그냥 터치시 작용 한다고 하면 0부터 4까지의 상태가 만지는 내내 계속 빠르게 순환하겠죠.

그럼 현재 터치냐 아니냐 상태를 저장하는 변수를 더 만듭니다. 현재 상태가 터치 중일 경우는 nextStatus()를 계속 불러줄 필요가 없고, 현재 터치가 아닐 경우에 터치 입력이 들어오면 상태를 터치로 바꿔주면서 nextStatus()를 불러주는 것이지요.

흠.. 이해가나요?

2010/12/14 Minjung Kim <uzni...@gmail.com>

Donghee Park

unread,
Dec 14, 2010, 10:37:02 AM12/14/10
to honaya_pi...@googlegroups.com
잠깐 다른일을 했어요. ^^; 오늘 늦게 끝나서
자 봅시다~

2010/12/14 Minjung Kim <uzni...@gmail.com>

확인못하셨나 해서 다시 올립니다. ㅠㅠㅠㅠㅠㅠㅠ

아직도 답을 찾지 못했어요..

아.. 얼마 되지도 않아 다시 벽에 부딪혔어요..ㅜ ㅠ

아두이노에서 프로세싱으로 넘어갈 때 숫자가 바뀌어서 
아두이노에서 10에 읽혀도 프로세싱으로 넘어가면 숫자가 바뀌는 현상 때문에

어떻게 바뀌나요? 예제를 주면 이해하기 좋은데~
화면 캡쳐 해주면 좋을듯~
 
아두이노에서 serial이 10 이하의 숫자를 인지할 때 yes라고 뜨게 했습니다.
그러고나니 프로세싱에서도 10이하의 숫자를 인지할 때에만 숫자가 뜨더군요(규칙적이지는 않아도?)
음 이건 제대로 전달되지 않아서 그런듯 합니다!

Donghee Park

unread,
Dec 14, 2010, 10:51:52 AM12/14/10
to honaya_pi...@googlegroups.com
문제는 이것을 1번, 2번, 3번, 4번 만졌을때의 결과가 달라야 하는데..
말하자면 누적이지요..
이것은 프로세싱에서 void touchOnce(){  } 이런 식으로 지정해줘야하나요??
그리고 1번, 2번, 3번, 4번 만졌다는 것을 지정할 수 있는 누적 명령이 있는지....ㅠ

버튼 1번 눌렀을때와 버튼 연속으로 4번요?  맞나요?

누적 명령은 없어요. 프로그램 해야죠. @_@

계속 올라가는걸을 막기 위해서는
한번 붙었다 때어지는 순간에 이벤트를 발생시켜야 해요.

붙었다 떨어지는 순간 한번만 count 하는거죠
자 프로그래머는 코드로 설명해야겠쬬?

loop() {
previous_value = digitalRead(1); // 
if (previous_valuel != digitalRead(1)) { // 버튼 상태가 바뀌는 순간.
  delay(20); //보통 20msec동안 쉬고 다음 버튼 상태를 읽음.
  if (digitalRead(1) == HIGH) { // 20msec후 다시 읽어서 버튼이 떼어져 있으면
   Serial.Write('R'); //여기서 R은 프로세싱에 릴리즈라고 보냄
}
}
}

고민해보고 적용해보세요~


Minjung Kim

unread,
Dec 14, 2010, 12:05:56 PM12/14/10
to honaya_pi...@googlegroups.com
와우... 생각보다 방법이 많군요.ㅠㅠㅠㅠㅠ
중간에 정지해줘야하는게 필요해서 한참고민했어요...ㅠㅠㅠㅠㅠ

늦은 시간 감사합니다 :-)
다 할 수 있을진 모르겠지만 하는데 까지 
열심히 해갈게용!!!!

2010년 12월 15일 오전 12:51, Donghee Park <dongh...@gmail.com>님의 말:
Reply all
Reply to author
Forward
0 new messages