November 21, 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

[32호]프리젠터 장갑

ict main2-01

2015 ICT 융합 프로젝트 공모전 참가상

프리젠터 장갑

글 | 충남대학교 김진욱, 박지훈, 이선민

심사평

펌테크  창의적인 아이디어는 좋으나 상품화 측면에서 본다면 프리젠테이션 과정상에 반드시 전용 장갑을 착용해야 하는 과정은 개선이 필요할 것 같다.

JK전자 작품의 향후 계획대로 PC와의 연결을 무선으로 하고 장갑에 연결된 마이크로 프로세서의 크기를 초소형화하고 장갑의 센서를 이용하여 여러가지 제스쳐 동작을 인식하도록 개선한다면 한번쯤은 써볼만한 제품이 나올수도 있겠다.

뉴티씨 간단한 회로를 이용하여 발표용 장갑을 구현했다는 데 의의가 있으며, 이를 최근에 스마트폰과 관련되어 이슈가 되는 블루투스로 통신하여 사용할 수 있도록 한 것이라는 데, 더 의미가 있겠다. 하지만, 기술적인 부분에서 스위치라던가 아이디어 측면에서 좀 더 창의적인 부분들이 있었으면 좋았을텐데 하는 아쉬움이 남는다.

칩센 프리젠테이션 시 두 손을 자유롭게 하는 점은 아이디어는 좋으나, 장갑을 이용한다는 점이 오히려 불편할 수 있다고 생각된다. 실용적으로 생각하여서 외관도 잘 꾸며져야 한다.

위드로봇 가속도 센서를 이용하여 모션 인식을 통한 데모가 추가되었다면 완성도가 더 높은 작품이 되었을 것입니다. 제출한 보고서만으로는 스위치 입력으로 동작하는 부분만 구현된 것으로 보이며, 가속도 센서 인식 부분이 아직 구현이 안되었다 하더라도 어떻게 구현하겠다는 계획이라도 나와 있었으면 좋았을 것 같다.

작품 개요

필요성

요즘에는 혁신적인 아이디어도 중요하지만 그만큼 그런 아이디어를 대중들에게 알려주는 프리젠테이션 능력도 중요하게 여겨지고 있다. 그리고 프리젠테이션이 제품을 발표하는 자리 이외에도 학교 수업, 설명회 등등에서 실용되고 있다. 발표를 할 때는 말 이외에도 신경을 써야할 부분이 바로 비언어적 요소들이지만 대부분 발표자들을 보면 한 손에는 마이크를, 한 손에는 무선 프리젠터를 들고 발표한다.
발표자들의 양손에 무언가 쥐어져 있다면 이런 비언어적 요소들을 사용할 수 없게 되므로 발표의 수준이 떨어지게 된다. 이 프리젠터 장갑을 만들어서 발표자의 손을 보다 더 자유롭게 해주고자 한다.

주요 기능 간략 설명

1) 레이저 ON/OFF
2) 슬라이드 전, 후 이동
3) LCD에 발표 진행 시간, 해당 슬라이드의 주요 멘트 표시

기대효과

1) 비언어적 요소 사용 증가로 청중들의 이해도 증가
2) 발표자의 손이 자유로워서 자연스러운 발표 가능
3) LCD에 나오는 시간으로 발표 시간을 즉각적으로 볼 수 있어서 시간 관리 편리
4) LCD에 주요 멘트가 표시되어 꼭 전달해야 될 내용을 까먹지 않고 전달함

작품 설명

주요 동작 및 특징

1) 주요 기능
· 슬라이드 제어 기능 : PPT 슬라이드를 전후로 이동 가능  [버튼 input 방식 / 가속도 센서로 손 동작 인식 방식 2가지로 작동] · 레이저 ON/OFF 기능
· LCD 디스플레이에 발표 진행 시간, 각 슬라이드의 주요 멘트 표시

2) 기능 상세 설명
· 슬라이드 제어 기능 : 중지, 약손가락 끝에 있는 버튼을 누르게 되면 발표자료를 앞뒤로 이동시킨다. 또, 버튼을 사용하지 않고 가속도 센서로 손의 동작을 인식해서 버튼처럼 사용한다. [버튼 input 방식 / 가속도 센서로 손 동작 인식 방식 2가지로 작동] · 레이저 ON/OFF 기능 : 검지에 있는 버튼을 누르면 레이저가 켜지고, 한 번 더 누르면 레이저가 꺼진다.
· LCD 디스플레이에 발표 진행 시간, 각 슬라이드의 주요 멘트 표시

3) 특징
장갑위에 버튼과 LCD를 부착해야 되는데 아두이노에 맞는 부품을 사야해서 전선도 달리고 좀 거추장스러워 보이지만, 장갑 외부에 부착을 했기 때문에 착용을 해보면 그렇게 많이 무겁지도 않고, 사용하는데 불편하지 않습니다. 또한 뒤에 나오는 사진들은 아두이노로 만든 제품이라 프로토타입 단계이다. 향후 지원을 받아서 시제품으로 개발이 된다면 장갑 내부에 버튼, LCD 등을 넣어 방수기능과 무게를 줄 일 예정이다.

전체 시스템 구성

· 회로도

32 김진욱01

· 순서도(알고리즘)

32 김진욱02

개발 환경(개발 언어, Tool, 사용시스템 등)

32 김진욱03

· 개발 환경 : Arduino IDE (C언어 기반)

· 아두이노 레오나르도 사용 (HID 사용)

단계별 제작 과정

·제작 일정

32 김진욱04

· 활동 사진

32 김진욱05 32 김진욱06
1) 버튼 & 초음파 센서 실습 2) 레이저 작동 실습
32 김진욱07 32 김진욱08
3) 버튼으로 레이저 ON/OFF 제어 4) 버튼으로 레이저, backspace, 마우스 오른쪽버튼 활용 실습
32 김진욱09 32 김진욱010
5) 장갑에 버튼 부착 (1차 작품) 6) LCD 작동 연습
32 김진욱011 32 김진욱012
7) 3D프린터로 아두이노 케이스 제작 8) 완성품 – A
32 김진욱013
8) 완성품 – A

향후 계획

1) 블루투스 모듈을 연결해서 아두이노와 컴퓨터 무선 연결 구현

2) 가속도 센서를 사용해서 정밀한 손동작 인식
· 손동작으로 슬라이드를 넘기는 기능 추가
· 발표 중 특정 사진을 이동, 확대 등 실시간으로 발표자료 변경 가능

3) 파워포인트 이외에도 프레지, 키노트에도 적용

기타
소스코드

#include <Wire.h> //변수 및 라이브러리 선언
#include <Time.h>
#include <LiquidCrystal_I2C.h>
#define LASER 11
#define BUTTON 6

LiquidCrystal_I2C lcd(0×27,16,2);
int buttonState = 0;
int num=0;

const int mouseButton = 4;
int val = 0;
int old_val = 0;
int state = 0;

void setup(){ //아두이노 초기화
pinMode(LASER,OUTPUT);
pinMode(BUTTON,INPUT);
pinMode(mouseButton, INPUT);
lcd.init();
Mouse.begin();
pinMode(8, INPUT_PULLUP);
Keyboard.begin();
setTime(0,0,0,5,3,15);

void loop(){ //초기화 한뒤 무한 반복되는 구간
ButtonSwitch();
MouseControl();
KeyControl();
LcdControl();
digitalClockDisplay();
}

void digitalClockDisplay(){ //LCD위에 시간을 표시하는 함수
lcd.setCursor(0,1);
lcd.print(“TIME “);
lcd.print(hour());
printDigits(minute());
printDigits(second());
delay(100);
}

void printDigits(int digits){ //슬라이드 번호 출력을 10의 자리 보정 함수
lcd.print(“:”);
if (digits < 10)
lcd.print(‘0’);
lcd.print(digits);
}

void LcdControl() { //버튼 input정보에 따라 LCD에 슬라이드 번호 출력
buttonState = digitalRead(mouseButton);
lcd.backlight();
lcd.setCursor(0,0);
lcd.print(num);
if (buttonState==LOW){
lcd.setCursor(0,0);
lcd.clear();
num++;
lcd.print(num);
delay(100);
}
}

void KeyControl(){ //버튼에 Backspace 기능을 구현하는 함수
while (digitalRead(8) == LOW) {
Keyboard.press(KEY_BACKSPACE);
lcd.setCursor(0,0);
lcd.clear();
num–;
lcd.print(num);
delay(100);
}
Keyboard.releaseAll();
}
void MouseControl(){ //버튼으로 마우스 오른쪽을 클릭하게 하는 함수
int clickState = digitalRead(mouseButton);
if(clickState == LOW){
if(!Mouse.isPressed(MOUSE_LEFT)){
Mouse.press(MOUSE_LEFT);
}
}
else{
if(Mouse.isPressed(MOUSE_LEFT)){
Mouse.release(MOUSE_LEFT);
}
}
delay(10);
}
void ButtonSwitch(){ //버튼으로 레이저를 ON/OFF하는 함수
val = digitalRead(BUTTON);
if((val==HIGH) && (old_val == LOW)){
state = 1 - state;
delay(10);
}
old_val = val;
if(state == 1){
digitalWrite(LASER,LOW);
} else {
digitalWrite(LASER,HIGH);
}
}

참고 문헌

· Make: 아두이노 DIY 프로젝트 (키모 카르비넨, 테로 카르비넨 저)
· 손에 잡히는 아두이노(마시모 밴지 저)
· 핵심 예제로 배우는 아두이노 프로그래밍(허경용 저)
· http://cafe.naver.com/arduinostory (아두이노 네이버 카페)

사용 부품 모델명

· Arduino Leonardo (ATmega32u4)
· 아두이노 LCD 모듈 (LCD 1602)
· keyes button 모듈 (3개)
· keyes Laser 모듈

Leave A Comment

*