April 24, 2024

디바이스마트 미디어:

[66호] 원하는 색상으로 제어가 가능한 아두이노 IoT 스마트 무드등 키트 -

2021-06-25

★2021 ICT 융합 프로젝트 공모전 결과 발표! -

2021-05-12

디바이스마트 국내 온라인 유통사 유일 벨로다인 라이다 공급! -

2021-02-16

★총 상금 500만원 /2021 ICT 융합 프로젝트 공모전★ -

2021-01-18

디바이스마트 온라인 매거진 전자책(PDF)이 무료! -

2020-09-29

[61호]음성으로 제어하는 간접등 만들기 -

2020-08-26

디바이스마트 자체제작 코딩키트 ‘코딩 도담도담’ 출시 -

2020-08-10

GGM AC모터 대량등록! -

2020-07-10

[60호]초소형 레이더 MDR, 어떻게 제어하고 활용하나 -

2020-06-30

[60호]NANO 33 IoT보드를 활용한 블루투스 수평계 만들기 -

2020-06-30

라즈베리파이3가 드디어 출시!!! (Now Raspberry Pi 3 is Coming!!) -

2016-02-29

MoonWalker Actuator 판매개시!! -

2015-08-27

디바이스마트 레이저가공, 밀링, 선반, 라우터 등 커스텀서비스 견적요청 방법 설명동영상 입니다. -

2015-06-09

디바이스마트와 인텔®이 함께하는 IoT 경진대회! -

2015-05-19

드디어 adafruit도 디바이스마트에서 쉽고 저렴하게 !! -

2015-03-25

[29호] Intel Edison Review -

2015-03-10

Pololu 공식 Distributor 디바이스마트, Pololu 상품 판매 개시!! -

2015-03-09

[칩센]블루투스 전 제품 10%가격할인!! -

2015-02-02

[Arduino]Uno(R3) 구입시 37종 센서키트 할인이벤트!! -

2015-02-02

[M.A.I]Ahram_ISP_V1.5 60개 한정수량 할인이벤트!! -

2015-02-02

[53호]Check 책 (한번 펼친 책은 끝까지)

53 ict 끝까지 책 (1)

1.심사평
칩센 전자책이 아닌 일반 아날로그 서책을 디지털을 이용하여 활용하는 아이디어가 신선합니다. 실제 실용성이 있을지에 대한 의문이 있을 수 있지만 참신한 아이디어라고 생각한다.
뉴티씨 현대인의 독서 부족을 보충해줄 수 있는 좋은 아이템이라고 생각한다. 작심삼일이 되기 쉬운데 3일째에 알림을 주면 끝까지 읽을 수도 있지 않을까 생각한다.
위드로봇 책갈피를 스마트폰과 연동하는 아이디어는 좋으나 전체적인 사용 편의성을 고려해 보면 실용성이 많이 떨어진다.

2. 작품 제목
Check 책은 현대인들의 부족한 독서량을 다시 올려줄 수 있는 스마트책갈피로서 책을 자주 확인(check) 하게 한다는 의미로 Check 책이라고 작명하였습니다.

3. 작품 개요 및 설명
문화체육관광부의 작년 조사에 따르면 성인남녀의 약 60%가 자신의 독서량이 부족함을 인지하고 있습니다. 우리 주위에서도 많은 사람들이 책을 읽다가 잠시 그만 읽을 경우 책을 덮고 책의 존재조차 까먹고 다 읽지 못하게 되는 경우를 쉽게 찾을 수 있습니다. 또한, 책의 대한 흥미는 매우 쉽게 사라지기 때문에, 추후에 책을 발견하더라도 이미 책의 대한 관심이 많이 떨어져 다시 책을 보지 않게 됩니다.
현재 우리 사회에서 가장 많이 쓰이는 책갈피인 종이 혹은 코팅 책갈피는 아무 기능이 없이 말 그대로 책에 꽂는 기능뿐입니다. 이에 따라 많은 유용한 기능들을 가진 디지털 책갈피들이 개발되었습니다. 예를 들어, 사전 기능을 탑재한 책갈피 또는 독서시간을 기록해주는 책갈피들이 개발되었습니다. 하지만, 이러한 유용한 책갈피들은 책을 읽는 동안에는 매우 유용하나 책을 읽다 도중에 덮을 경우는 사용자에게 아무 알림을 주지 않아 사용자가 책에 관하여 망각을 할 가능성이 큽니다.
바른ICT연구소의 통계에 따르면 학생은 하루 평균 5시간, 성인은 평균 4시간 스마트폰을 이용하는 것으로 밝혀졌습니다. 이처럼 우리사회에서 스마트폰은 하나의 문화로서 자리잡고 있습니다. 이에 따라, 저희는 책갈피를 꽂는 순간 핸드폰에 신호가 전송되어 일정 시간이 지난 경우 핸드폰이 알림을 보내 사용자에게 책에 관하여 상기시켜주는 책갈피를 개발하기로 결정하였습니다.

3.1. 간단한 작품설명 및 작품사진
책갈피를 책에 꽂으면 핸드폰으로 신호를 전송하여 책갈피가 책에 꽂혀있는 시간을 계산하고, 설정 시간이 된 경우 푸시 알림으로 사용자에게 독서를 장려하는 책갈피입니다.

53 ict 끝까지 책 (4)

3.2. 주요 동작 및 특징
3.2.1. (APP) 기간 설정
사용자는 책갈피를 꽂은 후 어느 정도 기간이 지난 후 알람을 받고 싶은지 설정할 수 있습니다. 만약 설정하지 않는다면 default 값으로 3일이 지정되어 있습니다.

53 ict 끝까지 책 (2)

3.2.2. (아두이노) 책갈피 굽히기(90’->0’/180’)
책갈피를 책에 꽂은 후 윗면을 굽힌다면 책갈피가 책과 정확히 맞닿아 손상의 위험이 매우 적어집니다. 위 그림을 보면 알 수 있듯이 수평으로 넓게 펼쳐진 윗면과 수직으로 세워져 있는 아랫면이 있습니다. 아랫면은 책에 들어가는 책갈피 역할을 해주는 것이고, 윗면은 회로가 올라오는 공간입니다. 하드웨어적으로 윗면은 0 ~ 180도까지 각 움직임의 제한을 가지고 있고 90도 마다 고정하는 잠금장치가 하드웨어적으로 걸려서 윗면을 수직으로 세운다고 해도 쓰러질 염려는 하지 않아도 됩니다. 이 때문에 90’에서 다른 각도로 윗면을 움직이려고 한다면 잠금장치를 풀기 위해 스위치를 눌러야만 합니다.

3.2.3. (아두이노) 블루투스 송신
1. 스위치 누르기 전
2. 스위치 누른 후
3. 스위치 뗀 직후 (Rising edge 발생)
4. 1번으로 돌아옴

책갈피를 굽히기 위해 스위치를 눌렀다 때는 순간 윗면에 부착되어 있는 아두이노 나노에서 특정 신호를 핸드폰에 송신합니다. 구체적으로 설명을 하자면, 회로도 및 밑의 오실로스코프 사진에서 확인할 수 있듯이 풀업저항을 D2, 즉 외부인터럽트와 연결하여 스위치가 눌릴 경우 D2가 LOW가 됩니다. 프로그래밍 시 EICRA = 0×03을 이용하여 외부인터럽트가 Rising edge에 발동하도록 설정하였으므로 스위치를 떼는 순간 외부인터럽트가 발동됩니다. 외부인터럽트가 발동되면 타이머를 설정하여 0.5초가 지나면 타이머 인터럽트가 발동되어 블루투스를 통해 페어링 되어있는 장치, 즉 핸드폰에 특정 신호를 보내는 방식입니다.

53 ict 끝까지 책 (2)

3.2.4. (APP) 푸시알림
아두이노 나노에서 특정 신호를 수신하면 (현재시간-수신한 순간)의 수식을 통해 사용자가 책갈피를 꽂기 시작한 시간을 계산합니다. 만약 사용자가 설정한 기간을 수식의 결과값이 넘게 되면 핸드폰 내부 푸시 알림이 발송되어 사용자에게 책갈피가 꽂혀 있는 책에 대해 상기시켜줍니다.

3.2.5. (아두이노) Sleep 모드
전력을 최대한 절약하기 위해 아두이노 나노는 항상 Sleep모드에 들어가 있습니다. Sleep 모드 중 외부 인터럽트가 발동 즉, 스위치가 눌렸다 떼어지는 순간 Sleep 모드에서 깨어나 1초 내외의 짧은 시간 동안 특정 신호를 핸드폰에 전송하고 다시 Sleep 모드에 들어가 전력을 아낍니다.

3.2.6.(아두이노, APP) 책갈피 펼치기(0’/180’->90’) 및 신호 송수신
앞서 ‘책갈피 굽히기’에서 소개했듯, 0도, 90도, 180도마다 잠금장치가 걸립니다. 사용자가 책을 다시 읽기 위해 책을 펼치면 책갈피 또한 ㄱ자에서 I자로 변경해주어야 합니다. 이때 사용자는 잠금장치를 풀기 위해 스위치를 누르게 되며 스위치를 때는 순간 외부 인터럽트가 발동하여 핸드폰에 신호를 보내게 됩니다. APP에서 신호를 수신하면 책을 펼쳤음을 인지하고 타이머를 정지시킵니다.

3.3. 전체 시스템 구성

53 ict 끝까지 책 (3)

3.4. 개발환경
아두이노 나노는 Arduino IDE를 이용하여 C/C++을 기반으로 개발하였습니다. 구체적으로 블루투스 통신 및 Sleep 모드는 Ardunio 라이브러리를 사용하였고, 이를 제외하고는 전부 Atmega328p의 datasheet을 기반으로 레지스터들을 이용해 개발하였습니다. APP은 App Inventor 2를 이용하여 개발하였습니다.

3.5. 단계별 제작 과정
3.5.1. 간트차트

53 ict 끝까지 책 (4)
3.5.2. 하드웨어
작은 부품을 만드는 일이라서 3D 프린팅도 얼마 걸리지 않을 거라 예상하고 시작한 작업이었지만, 생각보다 어려운 점이 많이 있었고 문제점 해결에 시간이 많이 할애되었습니다.

문제점 1 : 필라멘트의 수축
작은 부품이다 보니 3D프린터의 필라멘트가 식는 과정에서 불과 몇 미리 수축하였을 뿐이지만 상대적으로 많은 영향을 받았고 이에 따라 여러 번의 시도를 하였고, 실험적으로 어느 정도 수축하는지 알아낸 뒤 도면을 다시 그려 해결하였습니다.

문제점 2 : 구조적 문제
우리 작품은 90도의 회전각을 가지는 작품으로써 펴졌다 굽었다를 반복해서 작동하는 시스템입니다. 굽히는 건 문제가 아니었지만 펼쳐졌을 때 고정 방법에 대해 여러 번 생각했고, 단 색 볼펜에서 영감을 얻어 볼펜과 비슷한 구조를 축 내부에 설치하여 90도마다 락이 걸릴 수 있게 하였습니다.

문제점 3 : 건전지 설계
사진처럼 처음엔 건전지 3개를 장착해서 아두이노와 블루투스에 전력을 공급하여 작동시키는 설계를 하였지만, 아래 설계의 문제점은 전류가 부족하여 제대로 블루투스에 전력을 주지 못하여, 블루투스가 꺼졌다 커졌다 하는 문제점이 발생하였습니다.
이에 배터리를 한 개 더 장착해보는 방안을 생각하였고, 최종적으로는 배터리 4개를 장착한 하드웨어를 제작하였고 또한 위에 선이나 부품 파손을 방지하기 위한 덮개를 만들어서 추가적으로 장착하였습니다.

53 ict 끝까지 책 (4)

위 사진이 최종 완성본의 책갈피 모습이다.

3.5.3. 아두이노 소프트웨어

53 ict 끝까지 책 (5)

초기 책갈피는 전원이 들어오면 항상 무한히 신호를 보내며 전원이 끊어지면 신호를 안 보내는 구조로 설계가 되었었습니다. 하지만 이 경우 애플리케이션 개발시 고려할 부분이 많이 생겨 외부인터럽트를 이용하여 버튼을 눌렀다 땔 경우 정확히 한번만 신호를 날리는 것으로 변경하였습니다. 이에 관해, 전력 소모 문제가 새로 대두되었는데, 전력 소모에 관하여는 Sleep 모드를 이용하여 해결하였습니다.

53 ict 끝까지 책 (6)

3.5.4. 어플리케이션

53 ict 끝까지 책 (7)

 

53 ict 끝까지 책 (8)

53 ict 끝까지 책 (9)

 

53 ict 끝까지 책 (10)

개발과정에 있어서 우선적 목표로 했던 애플리케이션은 그렇게 높은 수준의 프로그래밍이 필요한 것은 아니었기 때문에 App Inventor 2로 제작하는 것을 선택하게 되었다. UI는 꼭 필요한 기능만 모아 한 페이지로 아래 그림과 같이 구성하였다.

우선적으로 앱이 실행되면 위와 같이 토스트 메시지가 출력된다.
마지막으로 책을 읽은 시간을 계산하기 위해 우선적으로 블루투스 연결을 해야 하며 연결은 위 그림의 왼쪽 상단 ‘연결하기’버튼을 이용해 구현했다.
‘연결하기’ 버튼을 누르면 우측 그림과 같이 페어링된 기기 목록이 나타난다. 미리 스마트폰의 설정에서 페어링을 시켜놓은 기기는 이 목록에 나타난다. 작품에 사용한 블루투스 통신 모듈 HC-06을 선택하면 잠시 후 연결이 되는데, 연결이 완료된 상태에서 스위치를 누르면 그 시점부터 시간을 재기 시작한다. 왼쪽 그림이 이에 해당한다. 알림을 얼마 후에 실행되도록 할 것인지는 우측 하단의 ‘설정’버튼을 눌러 변경할 수 있다.

‘설정’버튼을 누르면 위와 같이 숨겨진 설정 창이 나타나 알림 주기를 설정할 수 있게 된다. 임시로 1, 2, 3일 후와 테스트용으로 1분 후를 설정할 수 있도록 했다. ‘확인’버튼을 누르면 다시 설정 창이 사라지게 된다.
시간이 흘러 설정한 시간(위 그림에서는 1분으로 설정)에 도달하게 되면 앱은 푸시 알림을 출력한다. 사용자로 하여금 다시 책을 읽도록 알림을 주는 것이다. 스위치를 다시 한번 누르면 경과 시간이 0으로 초기화되기 때문에 어렵지 않고 간단하게 독서에 방해를 주지 않는 최소한의 선에서 효율적인 동기 부여 시스템을 구현할 수 있었다.

4. 참고문헌
문화체육관광부. (2017). 국민 독서실태 조사”, 문화체육관광부, 세종특별자치시, pp73~74
박근용, 임지선. (2017). “[통계실태조사] 스마트폰 중독? 중독이 아니라 이젠 생활이죠!” 바른ICT연구소. <http://barunict.kr/?p=7490>. 2018.03.25

5. 회로도

53 ict 끝까지 책 (11)

6. 아두이노 소스코드

#include<SoftwareSerial.h>
#include<avr/sleep.h>
SoftwareSerial btSerial(1, 0);

void sleep_now() {
set_sleep_mode(SLEEP_MODE_PWR_DOWN);// set sleep mode
sleep_enable();
}

void setup() {
btSerial.begin(9600);
pinMode(2, INPUT);
EICRA = 0×03
EIMSK = (1<<INT0);
sei();
}

ISR(INT0_vect){
TIMSK1 = 0×02;
TCCR1A = 0×00;
TCCR1B =(1 << CS12);
TCNT1 = 0×0000;
OCR1A = 0x7A12;
}

ISR(TIMER1_COMPA_vect){
btSerial.flush();
btSerial.write(‘S’);

TCNT1 = 0×0000;
TIMSK1 = 0×00;
TCCR1B = 0×00;
}
void loop() {
sleep_now();
}

 

 

 

 

Leave A Comment

*