[55호]스마트 킁킁본
2019 ICT 융합 프로젝트 공모전 우수상
스마트 킁킁본
글 | 국민대학교 이우섭 이다연 유지호 채인석
1. 심사평
칩센 매우 간단한, 하지만 효율적이고 이해가 쉬운 작품이다. 보고서에 언급되었듯이 반려동물을 위한 시장은 매년 크게 성장하고 있으며, 이러한 시장성을 고려했을때도 가능성이 있어 보이는 작품이다. 실제 시연과 동작의 모습을 동영상으로 확인이 가능했다면 더 좋았을 것 같은 아쉬움이 들지만, 실용성과 창의성이 포함된 아이디어 만으로도 충분히 높은 평가를 줄수 있을 것으로 보인다.
뉴티씨 매우 재미있고, 좋은 아이템 같습니다. 요즘 반려견들에 대한 관심이 높은 지금 멀리 있을 때에 핸드폰으로 보면서, 집에서라도 이 장치로 반려견을 살피고 먹이도 주고싶을 것입니다. 기존에 카메라로 보고, 개와 마이크와 스피커로 대화하고, 먹이도 주고, 물도 주고 할 수 있는 장치들은 있었는데, 제자리에서 움직이지 않는 형태로 제공되었습니다. 하지만, 판매량이 대량으로 늘어나지 못한 아쉬움이 있는데, 이는 여러가지 원인이 있겠지만, 무엇보다도 높이 형성된 가격때문이라고 할 수 있습니다. 실제로, 금형 제작과 고사양 스펙으로 높은 가격을 형성하게 되었지만, 필요성과 실용성에 대해서는 항상 요구되어 왔던 것도 사실입니다. 여기에 모터 등으로 움직이는 부분도 붙어 있으므로, 가격에 좀 더 고민해 보아야 합니다. 좀 더 이런 부분에 대한 고민을 더 해서, 좋은 제품으로 시중에 내놓을수도 있게 되기를 바래봅니다.
위드로봇 아이디어가 뛰어난 작품입니다. 소프트웨어 완성도를 더 끌어 올리면 더욱 좋은 작품이 될 것 같습니다.
펌테크 아이디어와 실용성, 상업성을 두루 갖춘 작품이라고 생각합니다. 국내 반려견 인구가 1000만명 시대인 점을 감안한다면 이러한 작품은 상업적으로 큰 가치를 가질 수 있는 작품이라고 생각을 합니다. 아쉬운 점은 제출된 문서상에서는 스마트폰과 연동되는 일부 내용만 확인되었을 뿐 구동되는 동작 영상을 확인할 수 없었습니다. 이러한 점을 감안한다면 최종 완성이 되지는 않은 것으로 판단됩니다.
2. 작품 개요
킁킁본이란 반려견의 특성인 노즈워크(Nose-work, 반려견이 코로 냄새를 맡으며 하는 모든 활동)를 본 딴 의성어 ‘킁킁’과 ‘뼈다귀’(Bone)가 합쳐진 말이다. 이 작품을 통해 반려견의 상태 확인 및 케어, 어플리케이션 연동, 분리불안 및 우울증 예방, 원격 사료 지급을 확인할 수 있다.
2.1. 제안 배경
2.1.1. 사회적 배경
· 1인 가구 및 맞벌이 가정의 증가
· 바쁜 사회 속 반려견에 대한 관심 결여
2.1.2. 문제
· 반려견의 분리 불안 및 우울증 증가
· 반려인 부재 시 반려견에 대한 케어 불가능
2.1.3. 목적
· 상호 통신(양방향 통화)을 통한 반려견의 상태 확인 및 케어
· 반려견에게 끊임없는 관심사 제공으로 분리 불안 및 우울증 예방
· 자동 / 사동 수료 지급
2.2. 시장 분석
2.2.1. 애견용품 시장의 높은 성장률
농협경제연구소가 발표한 보고서에 따르면 국내 반려동물 용품 시장은 사회구조적 변화와 반려동물에 대한 의식 발전에 기인하여 연평균 25%의 속도로 급성장하고 있다.
2.2.2. 디자인, 마케팅 위주의 애견 시장
애견용품 시장의 규모는 계속해서 커져만 가고 있지만 대부분의 애견 용품들의 기능은 비슷한 수준이며 디자인, 마케팅 측면에서만 경쟁을 하고 있다.
2.2.3. 반려견에 대한 사회적 의식 발전
반려동물을 단순히 애완용이 아닌, 가족 구성원으로서 대하는 사회적 인식이 많아짐에 따라 애견용품에 대한 씀씀이도 커져가고 있다.
3. 작품설명
3.1. 주요 동작 및 특징
3.1.1. 구성
마이크로프로세서(ATmega128), DC모터, 서보모터, 카메라, 스피커, 마이크, 초음파 센서, 블루투스 모듈, 사료통 등
3.1.2. 제품 소개
· 어플리케이션 연동 제어 : DC모터 제어(전진, 후진, 좌회전, 우회전), 서보모터 제어(사료 수동 / 자동 지급)
· 내장 카메라, 스피커 및 마이크 활용 : 반려견, 집 내부 영상 실시간 확인, 양방향 음성 통화, 동영상, 사진 촬영 기능
· 초음파 센서 : 자동 주행 모드(장애물을 인식하여 20cm 전방에 장애물이 있을 시 이를 회피하여 주행. 시간 설정 가능)
· 반려견에게 친숙한 뼈다귀 모양의 디자인
3.1.3. 경쟁력
· 반려견의 특성을 이용한 끊임없는 관심사 제공 : 움직이는 사물 및 청각/후각적 자극에 예민한 반려견의 특성을 활용, 모터 제어를 통한 자유로운 움직임, 사료통의 개폐구 조절을 통한 후각적 자극, 주인의 목소리로 소통 및 관심 유도, 불리 불안 해소
· 원격 사료 지급 : 사용자가 지정한 시간에 사료를 지급하는 자동모드, 임의로 사료를 지급하는 수동모드
· 4차 산업혁명 시대에 발맞춘 어플리케이션 연동 : 반려인의 위치에 구애받지 않고 원격으로 반려견의 상태 확인 및 케어 가능
· 시장 경쟁력 : 디자인, 마케팅 측면에만 의존하던 애견용품 시장에서 차별화 된 스마트 기술로 혁신을 주도
· 디자인 : 반려견에게 친숙한 뼈다귀 모양의 디자인
3.2. 전체 시스템 구성
3.2.1. 어플리케이션 연동 제어
‘스마트 킁킁본’의 모든 동작은 어플리케이션 연동을 기본으로 한다. 제어에 있어 두 종류의 어플리케이션을 동시에 사용하는데, 카메라 및 스피커 제어용 APPⅠ, ATmega128 제어용 앱인벤터 APPⅡ로 나뉜다.
① 실시간 영상 : 카메라로 촬영된 영상을 어플리케이션에서 실시간으로 확인할 수 있다.
② 전체화면 : 스위치가 감춰지는 전체화면 모드로 전환한다.
③ 음성 전송(통화) : 스마트 폰에 음성을 입력해 스피커로 출력한다.
④ 볼륨 : 마이크에 입력되는 음성이 어플리케이션으로 출력되는 볼륨
⑤ 사료통 개폐조절 : 서보모터를 작동시켜 사료통의 개폐여부를 조작한다.
① 블루투스 연결 : 블루투스 모듈을 연동시켜 ATmega128과 스마트 폰을 연결한다.
② 방향키(상하좌우) : DC모터를 작동시켜 ‘스마트 킁킁본’을 이동시킨다.
③ 정지 : 작동중인 DC모터를 중지시켜 ‘스마트 킁킁본’을 정지시킨다.
④ 자동주행모드 : 초음파 센서를 사용하여 전방 20cm에 장애물이 있을 경우 이를 회피하여 주행하는 ‘자동주행모드’를 작동한다.
3.2.2. 내장 카메라 활용
3.2.3. DC모터 작동
3.2.4. 서보모터 작동
3.2.5. 양방향 통화
3.3. 개발 환경
3.3.1. 사용 시스템
① 마이크로프로세서(ATmega128) : C를 사용한 코딩
② 앱인벤터 : Scratch를 사용한 코딩
3.3.2. 사용 부품
① ATmega128 [JMOD-128-1]
② DC모터 [RC0004]
③ 배터리 [티웨이 USB식 충전용 건전지]
⑤ 카메라, 스피커 서보모터 및 마이크 [MJSXJ01CM]
⑥ 초음파 센서 [HC-SR04]
⑦ 블루투스 모듈 [HC-06]
⑧ 사료통
⑨ 모터 드라이버 [SZH-EK001]
4. 단계별 제작 과정
4.1. 캡스톤 디자인 연계 제작 과정
①문제인식 – 바쁜 사회 속 반려견에 대한 관심 결여, 1인 가구 및 맞벌이 가정 증가로 인한 반려견의 분리불안+우울증 발생
② 반려견의 분리불안+우울증을 예방할 수 있을만한 관심거리를 제공함과 동시에 반려인이 실시간으로 반려견을 확인/케어 할 수 있도록 설계하는 것을 목표로 설정
③ 반려견의 관심거리 연구를 위해 실제 강아지 관찰
④ 움직이는 물체, 후각+청각적 자극에 호기심을 많이 느낌을 확인
⑤ 뼈다귀모양의 본체에 모터를 연동하여 원격제어 및 통신이 가능한 스마트 킁킁본 구상
⑥ 아트메가128로 카메라를 구현하기에 기술적인 한계
⑦ 어플리케이션 연동이 가능한 카메라[MJSXJ01CM]를 구입하여 분해 및 연구 후 장착
⑧ 원격 제어를 목표로 하였지만 통신에 있어서 제한된 환경에 한계
⑨ 블루투스 및 앱 인벤터를 통해 시제품 개발 성공
⑩ 제한된 환경에서 배터리를 계속하여 소모하기에 어려움을 느낌
⑪ 티웨이사에서 출시한 충전형 배터리 구입
⑫ 최종 결과로 ATmega128이 내장되어 있는 뼈다귀 모양 스마트 애견 장난감 ‘스마트 킁킁본‘ 제작.
4.2. 소스코드(ATmega128)
#include <avr/io.h> volatile unsigned char data;
#include <avr/delay.h>
#include <avr/interrupt.h>
#define Trigger_1A PORTC|=0×01 //초음파 트리거
#define Trigger_0A PORTC&=~0×01//초음파 트리거
#define Echo (PINC&0×04) //초음파 에코
volatile int range;
volatile unsigned char sec=0,min=0;//날짜
volatile int flag=0;
void getEcho(void);
void pulse(void);
void control(void);
void getEcho(void)
{
while(!Echo); // high가 될때까지 대기 //
TCNT3=0×00;
TCCR3B=0×02; // 카운터 시작, 8분주 = 0.5us //
while(Echo); // low가 될때까지 대기 //
TCCR3B=0×08; // 카운터 정지 //
range=TCNT3/116; // Cm로 변경 //
}
void pulse(void)
{
Trigger_1A; _delay_us(10); Trigger_0A; // 10uS 이거 줘야지 신호시작
getEcho();
if(range< 50) { PORTB = 0X01;}
else {PORTB= 0X05;}
}
void control (void)
{
data=UDR0; // udr-> data save or transmit
if(data==’F')
{
PORTB=0×05;
flag=0;
}
if(data==’S')
{
PORTB=0×00;
flag=0;
}
if(data==’L')
{
PORTB=0×01;
flag=0;
}
if(data==’R')
{
PORTB=0×04;
flag=0;
}
if(data==’B')
{
PORTB=0x0A;
flag=0;
}
if(data==’A')
{
flag=1;
}
}
ISR(USART0_RX_vect)
{
control();
}
ISR(TIMER1_OVF_vect) // uart
{
cli();
TCNT1H = 0xC2;
TCNT1L = 0xF6;
UCSR0C = (0<<UPM01)|(1<<UPM00)|(1<<UCSZ01)|(1<<UCSZ00); // 패리티 01로 바꿈
UCSR0B = (1<<RXEN0)|(0<<TXEN0)|(1<<RXCIE0);
UBRR0H = 0X00;
UBRR0L = 0X67;
PORTA^= 0X01;
if(flag==1){
sec++;
if(sec==60){ sec=0; min++;
if(min==60) min =0;
}
if(min <1)
{pulse();}
else PORTB =0X00;
}
else min=sec=0;
sei();
}
int main(void)
{
cli();
DDRB = 0xff;
DDRE = 0X02;
DDRC = 0×01; // PC0 ouput Trigger, PC1 input Echo
DDRD = 0XFF;
DDRA = 0XFF;
TCCR3A=0×00; TCCR3B=0×08; // CTC mode
TIMSK=0×04;
TCCR1A=0×00;
TCCR1B=0×05;//prescale 1024
TCNT1H=0xFF;//initialize
TCNT1L=0xC0;
sei();
do
{
}while(1);
}
4.3. Scratch(앱인벤터)
4.5. 참고문헌
· ‘AVR-ATmega128 마이크로컨트롤러 프로그래밍과 인터페이싱, ITC출판사’
· ‘마이크로컨트롤러 – 따라하면서 배우는, ATmega2560으로 프로그래밍하기, 한빛아카데미’