
"다리떠는 사람잡기"는 진동 감지 센서와 피에조 부저를 이용해 진동이 감지되면 자동으로 피에조 부저에서 "떴다 떴다 비행기"를 재생하는 장치이다.
조장: 최정혁
팀원: 박가은, 서정현, 이주영
역할 분담
코더: 박가은, 서정현
회로 설계: 이주영, 최정혁
다리를 떠는 행동의 자각은 매우 중요하다. 다리를 떠는 행동에 의해 다른 이들에게 피해를 줄 수 있기 때문이다. 따라서, 우리 팀은 이를 해결하기 위한 대응 방안을 모색하다 이번 프로젝트를 고안하게 되었다.
- 진동 감지 센서
- 피에로 부저
- 아두이노
- 브레드보드
개발에 들어가기에 앞서, 우리는 먼저 프로토타입을 만들기로 했다. 하지만, 핵심 부품인 진동 감지 센서가 구비되지 않은 사실을 머지않아 깨닫게 된다. 따라서 이를 해결하기 위해 온라인 상에서 미리 설계를 하기로 계획하고, Thinkercad로 제작하려 했다. 그런데...
Thinkercad 사이트에는 진동 감지 센서가 존재하지 않았다. 진동 감지 센서를 추가하기 위해서는 직접 회로도면을 찾아 만드는 방법밖에 없었다.
우리는 프로토타입 개발이라는 시점에서 약간 벗어나, 피에조 부저를 좀 더 능숙하게 다루기 위한 설계로 계획을 중도 변경하였다. 이 덕에, 떴다 떴다 비행기를 작곡할 수 있었다.

(저 81줄짜리 코드가 보이는가? 아주 아름답다)
한 주 뒤, 학교 어딘가에 보관되어 있던 진동 감지 센서와 블루투스 모듈을 손에 넣으며 마침내 우리 프로젝트는 완전체로 거듭 날 수 있었다.

우리 팀은 여기서 한 가지 고민을 가지게 된다. 유선을 쓸 것인가, 무선을 쓸 것인가에 대한 것. 결론은 생각보다 단순했는데, 데드라인이 바로 코앞이였다. 그렇게 무선으로 개발한다는 계획은 고이 들어가게 된다. 이후에 계획은 착실하게 진행되는 줄 알았으나,
기여이 두번째 문제가 발생하고 말았다. 일단 진동 감지 센서와 피에조 부저를 연결하고 테스트했더니, 소리가 계속해서 재생되는 문제가 생겼다.
우선 문제를 분석하기 위해 부저의 자리에 LED를 끼워넣었는데, 정상적으로 작동하는 것을 확인 할 수 있었다. 그렇다면 코드에는 문제가 없고, 회로를 잘못 설계한 것이 아닐까 생각하던 우리 팀은 부저 앞에 저항을 넣는 것으로 간단히 이를 해결했다.

int SHOCK = 8;
int doo = 523;
int ree = 587;
int mee = 659;
void setup() {
Serial.begin(9600);
pinMode(SHOCK, INPUT);
pinMode(13,OUTPUT);
}
void loop() {
if(digitalRead(SHOCK) == HIGH){
Serial.println("SHOCK!!");
tone(13,mee);
delay(300);
tone(13,ree);
delay(300);
tone(13,doo);
delay(500);
tone(13,ree);
delay(500);
tone(13,mee);
delay(500);
tone(13,0);
delay(10);
tone(13,mee);
delay(500);
tone(13,0);
delay(10);
tone(13,mee);
delay(800);
tone(13,ree);
delay(500);
tone(13,0);
delay(10);
tone(13,ree);
delay(500);
tone(13,0);
delay(10);
tone(13,ree);
delay(800);
tone(13,mee);
delay(500);
tone(13,0);
delay(10);
tone(13,mee);
delay(500);
tone(13,0);
delay(10);
tone(13,mee);
delay(500);
tone(13,0);
delay(100);
tone(13,mee);
delay(700);
tone(13,ree);
delay(300);
tone(13,doo);
delay(500);
tone(13,ree);
delay(500);
tone(13,mee);
delay(500);
tone(13,0);
delay(10);
tone(13,mee);
delay(500);
tone(13,0);
delay(10);
tone(13,mee);
delay(800);
tone(13,ree);
delay(500);
tone(13,ree);
delay(500);
tone(13,mee);
delay(500);
tone(13,ree);
delay(500);
tone(13,doo);
delay(1000);
noTone(13);
delay(3000);
}
else{
Serial.println("NO");
tone(13,LOW);
}
delay(100);
}
덕분에 우리는 좋은 결과를 얻을 수가 있었다. 하지만 아직 발표는 하지 않았기 때문에 이후 발표를 진행하고 나서 소감을 적어볼까 한다.
아직 나지 않음!!!
아직은 몰?루
모든 업데이트는 다음주 수요일날에...