# **1. Overview**
최근 AI assistant, IoT 기술이 발달하면서 가정용 로봇이 현실화되고 있습니다. 하지만, 가격이 비싸고 어린이, 노년층과 같은 특정 사용자에게 특화된가정용 로봇이 대부분이라, 상용화 하는데 어려움이 있습니다.
본 문서는 사용자의 스마트폰, 로봇청소기, 그리고 사용자가 제작한 TIZEN IoT를 활용하고, SmartThings App을 통해 사용자가 원하는 기능을 부여할 수 있는 DIY 가정용 로봇을 소개하며, 이를 제작하는 과정을 소개합니다.

> 제작 결과물: DIY 가정용 로봇
@[youtube](https://youtu.be/qjLCnOoIqNM)
> 작동 영상: 로봇청소기가 DIY 가정용 로봇으로 탈바꿈되는 모습 (SmartThings 모드 기능 활용)
SmartThings App 내 기능인 모드, 자동실행 규칙을 적절히 활용하여 사용자가 원하는 가정용 로봇의 기능을 맞춤 설정할 수 있습니다.
**DIY 가정용 로봇 활용 예시**
- "사용자의 기상시간에 맞춰서 잠을 깨워주는 가정용 로봇"
SmartThings App에서 자동 규칙을 생성하여 기상 시간이 되면, DIY 가정용로봇이 침대 옆으로 와서 사용자를 깨울 수 있습니다.
- "가족 구성원이 올 때 현관에서 반겨주는 가정용 로봇"
SmartThings App에서 자동 규칙을 생성하여 가족 구성원의 위치가 집과 가까워지면, DIY 가정용로봇이 현관 앞으로 와서 구성원을 반길 수 있습니다.
# 2. 준비물
하드웨어 준비물
- 라즈베리파이3
- (TIZEN 설치된) Micro SD 카드 8GB
*설치 방법: https://developer.tizen.org/development/iot-preview*
- Arduino Uno – [구매 링크](http://mechasolution.com/shop/goods/goods_view.php?goodsno=194&category=)
- High-toque 서보 모터 2개 - [구매 링크](http://www.devicemart.co.kr/goods/view?no=1324845)
- Micro 서보 모터 2개 – [구매 링크](http://mechasolution.com/shop/goods/goods_view.php?&goodsno=9155)
- 보조 배터리 – [구매 링크](https://www.coupang.com/vp/products/122754141?itemId=364095098&vendorItemId=4201768746&q=%EC%83%A4%EC%98%A4%EB%AF%B8+%EB%B3%B4%EC%A1%B0%EB%B0%B0%ED%84%B0%EB%A6%AC&itemsCount=36&searchId=a3f5278147364acb8b870cf3d3ac7747&rank=0)
- 무선충전패드 (선택 사항)
**와이어링 준비물**
- M/M 점퍼 케이블 (2.54mm 헤더 용)
- M/F 점퍼 케이블 (2.54mm 헤더 용)
- Micro-5핀 USB 케이블
- 와이어 스트리퍼
- 열 수축 튜브
- 인두기 및 실납
ㅤ
**외관 제작용 준비물**
- 투명 3T 아크릴 판 - 아크릴 판은 아래의 도면으로 레이저 커팅하여 준비
*레이저 커팅 장비가 없을 경우 MDF 나무 합판과 CNC 밀링 장비로 대체 가능*
- 3D 프린터 결과물 (TIZEN IoT Head, Body, Ear, 먼지통, 아두이노 서포터)
- 플렌지 베어링 (F623ZZ/내경3mm,외경 10mm,두께 4mm) 12개 - [구매 링크](https://www.devicemart.co.kr/goods/view?no=1241374)
- M3 너트 6개
- M3 볼트 8mm 2개
- M3 볼트 12mm 6개
Adobe Illustrator 도면 : https://www.dropbox.com/s/gjvwjo5qj9g1ovw/LaserCutting.ai?dl=0
3D Modeling 도안(.stl) : https://www.dropbox.com/sh/858a7jsfjrdhi8a/AADtnCLSAYnrcdpY9zFCm5LAa?dl=0
# **3. 프로젝트 생성하기**
SmartThings 개발자 Worskpace와 TIZEN Studio에서 DIY 가정용 로봇 프로젝트를 생성해줍니다.
(SmartThings 기기 등록 및 TIZEN 프로젝트 생성 과정 설명: [링크](https://craftroom.tizen.org/diy_iot_tutorial2/))
ㅤ
(1) SmartThings 기기 등록하기 : https://devworkspace.developer.samsung.com/
본격적인 개발에 앞서 SmartThings 개발자 Workspace에서 제작하고자 하는 기기의 정보를 등록해 줍니다.

> 기기 프로파일 설정
Device profile name: DIY_Homebot
Vendor ID: DIY_Homebot_001
Description: A DIY home robot to customize the shape and feature user wants via smartphone and voice commands
Device type: Others
Components : Switch - turn a device on and off / Switch Level – Control the brightness of lights
Dashboard state / Dashboard command: Switch

> 기기 등록 설정
Connection type: Directly connected device
Device name: DIY_Homebot
Display name: DIY_Homebot
Device profile: DIY_Homebot
이후 Device onboarding information을 정의한 뒤, self-publish를 완료하여 SmartThings 기기 등록 과정을 완료합니다.
**(2) TIZEN 프로젝트 생성하기**
TIZEN 스튜디오를 실행시켜 새로운 프로젝트를 생성해 줍니다.

> 프로젝트 설정
Profile & Version: Custom / IoT-headless v4.0
Application type: Native application
Template: Headless things app
Project name: DIY_Homebot
Device/Platform : Others
Device name: DIY_Homebot
Setup ID: match with onboarding ID
Vendor ID: DIY_Homebot_001
Manufacturer Name: match with MNID in your Samsung account
Resource/Property: x.com.st.powerswitch / oic.r.light.dimming
# **4. 어플리케이션 업로드하기**
앞서 생성한 DIY 가정용 로봇 TIZEN Studio 프로젝트에 아래의 과정을 거쳐 어플리케이션을 불러어고 라즈베리파이3 에 업로드해줍니다.

> 프로젝트 폴더 내 tizen-manifest.xml 파일을 실행시켜 나오는 TIZEN manifest 에디터에서 사진과 같이
<privilege>http://tizen.org/privilege/peripheralio</privilege>를 추가해줍니다.

> https://www.dropbox.com/sh/1402f8m05bvvi3u/AAC3PCuuUsX3zfBwZVyxHKrqa?dl=0 에서 3개의 파일을 다운로드 받은 뒤, TIZEN 스튜디오의 workspace 폴더 내 생성된 DIY_Homebot 프로젝트 폴더를 찾아, 다운로드 받은 파일의 압축을 풀어 나온 GPIO.h 파일은 inc 폴더로, 나머지 두개의 파일은 src 폴더로 넣고 덮어 씌웁니다.

> Project Explorer에서 DIY_Homebot 프로젝트를 마우스 오른쪽 클릭한 뒤, 'Build Signed Package’를 눌러줍니다.

> 이후 라즈베리파이3 와 타이젠 스튜디오를 SDB를 통해 연결한 뒤, Project Explorer에서 DIY_Homebot 프로젝트를 마우스 오른쪽 클릭하고 'Run As - 1.Tizen Native Application’를 실행하여 어플리케이션을 라즈베리파이3에 업로드 해줍니다.
(SDB 연결 방법: [링크](https://craftroom.tizen.org/diy-iot-%ED%8A%9C%ED%86%A0%EB%A6%AC%EC%96%BC-1-%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0/))
# **5. 아두이노 설정하기**

> https://www.dropbox.com/s/nhxfsjtn1574gla/URP_1209.zip?dl=0에서 아두이노(.ino) 파일을 다운받고, 컴퓨터에 아두이노를 연결합니다. 그리고 Tool – 보드/포트를 열어 연결한 아두이노가 맞는지 확인하고 업로드합니다.
# **6. 하드웨어 제작하기**
아래의 사진 순서에 따라 하드웨어를 제작합니다. DIY 가정용 로봇은 로봇청소기, 스마트폰, TIZEN IoT로 이루어져있고, 아래의 과정에서 말하는 하드웨어는 TIZEN IoT의 외형과 이를 로봇청소기에 고정시켜주는 부품을 뜻합니다.

> 프린트한 Supporter를 활용하여 아두이노와 라즈베리파이를 결합합니다.
>

> 플렌지 베어링을 활용하여, 프린트한 결과물과 레이저 커팅한 아크릴의 일부를 조립합니다.
>

> 남은 아크릴 부품과 서보모터를 체결하고 하드웨어를 완성합니다.
>

> Head 뒷면에 Ear가 탑재된 Micro-서보모터를 장착하고 회로를 제작합니다.
>
**참고)**



> 로봇청소기의 기존 먼지통 대신 프린트한 먼지통을 끼웁니다.
>

> 새로운 먼지통을 장착하고 앞서 만든 하드웨어를 슬라이드 방식으로 체결합니다.
>
# **7. 테스트**
만든 DIY 가정용 로봇 (TIZEN IoT, 로봇청소기)를 전원에 연결한 뒤, SmartThings 어플리케이션에 설치하여 테스트합니다.

> 완성된 모습
>

> 스마트 폰의 SmartThings 어플리케이션을 킨 뒤, '디바이스 - 디바이스 추가’를 눌러줍니다. 검색 목록에서 DIY를 선택하여 설치해줍니다.

> SmartThings App내 기능인 모드와 자동실행 규칙을 활용하여 다양한 로봇의 기능을 만들고 사용할 수 있습니다. (자동화 규칙 및 음성 제어 설정 방법: 링크)
>
@[youtube](https://youtu.be/cCMXaH9BfKY)
@[youtube](https://youtu.be/kDxp7eS4G1Q)
# **8. 마무리**
본 게시물에서는 사용자가 직접 형태와 기능을 맞춤 설정할 수 있는 DIY 가정용 로봇의 제작 과정을 소개하였습니다. 또한, 제작과정 뿐만 아니라 쉽게 활용할 수 있는 기능들을 점차 보완할 예정입니다.
이러한 재밌는 시도는 여러 IoT 기기를 쉽게 조합하고 활용할 수 있는 SmartThings App 내의 좋은 기능이 있기에 가능합니다. 하지만, 이런 활용법을 위해 만들어진 것이 아니기 때문에, 본 로봇을 유용하게 쓰기에는 아직 어려움이 있습니다. DIY 가정용 로봇을 개발하면서 느꼈던 SmartThings의 개선 방안들을 공유합니다. 이러한 점들이 개선된다면 누구나 쉽고 재밌게 DIY 가정용 로봇를 제작하고 활용할 수 있을 것이라고 기대합니다.
**개선 방안**
- 본 게시물에서는 로봇청소기를 활용하여 가정용 로봇의 기동성을 구현하였습니다. 하지만, SmartThings App 내의 로봇청소기 기능은 청소에 초점이 맞추어져 있어 가정용 로봇을 자유롭게 움직이게 하기엔 어려움이 있습니다.
-- 첫 째, 회전 버튼은 "청소 시작 - 회전 - 청소 정지"가 실행되어 연속적으로 누를 수 없습니다. 하지만, 리모컨의 회전 버튼은 누르는 만큼 연속적으로 회전운동을 합니다. 마치 RC카를 조종하듯 App으로도 자유롭게 움직일 수 있는 방법이 있길 기대합니다.
-- 둘 째, 리모컨으로 할 수 있는 레이저 포인팅 기능은 로봇 청소기의 움직임을 보다 자유롭게 합니다. 하지만, SmartThings App으로는 기능을 활용할 수 없었습니다. 이 점을 보완할 수 있는 기능이 App에 추가되길 기대합니다.
- 로봇의 다양한 감정표현을 구현하기 위해 Switch Level의 1~100 밝기 값을 4등분하여 1~25일 때 신난 모습, 26~50일 때 리듬 타는 모습 등으로 로봇을 조작하였습니다. 이는 Toggle 형태의 Switch 기능이 하나만 탑재할 수 있기 때문에 차선책으로 선택한 방법입니다. TIZEN IoT를 개발할 때 하나의 Component를 여러 개로 탑재할 수 있길 기대합니다.
- 본 로봇은 모터로 감정표현을 합니다. 로봇의 디스플레이로 활용하려고 했던 스마트폰에 비록 로봇 눈의 사진을 띄웠지만, 감정 표현에 맞게 눈이 움직이지 않아 아쉬움이 있었습니다. SmartThings App내에서 사용자가 직접 Interactive한 화면을 제작할 수 있는 기능이 있길 기대합니다.
- 스마트폰을 올려놓고 사용하는 가정용 로봇이기 때문에, 원격으로 빅스비 호출, 모드 실행하는 경우가 많습니다. 현존하는 방법은 가까운 곳에서 음성으로 빅스비 호출, U-Flex와 같은 블루투스 무슨 이어폰으로 호출할 수 있는 버튼이 있습니다. SmartThings의 모드를 원격으로도 실행할 수 있는 기능이 생기길 기대합니다.
본 게시물에서는 특정 형태와 기능으로 제작 과정을 설명했지만, 자신이 원하는 형태와 기능으로 DIY 가정용 로봇을 제작할 수 있습니다. 하나뿐인 자신만의 가정용 로봇 제작을 시도해보면서 여러가지 로봇 형태와 활용 방법들이 Craftroom에서 공유되면 재밌을 것 같네요! 즐거운 경험이 되길 바라요.
Notice
Are you sure to delete this post?
[DIY IoT 사례] DIY 가정용 로봇 제작하기
1
0
|
Last modified on December 17, 2018
Craft info. | |
Maker |
![]() |
Status | In Progress |
Period | 2018-12-10 ~ |
About This Craft | |
DIY로 나만의 가정용 로봇을 만들어보는 과정입니다. 사용자의 스마트폰과 로봇청소기, 그리고 직접 제작한 TIZEN IoT기기가 필요합니다. SmartThings 어플리케이션의 원격 제어, 자동 규칙 제어, 혹은 Bixby 음성을 통해 다양한 활용 시나리오를 만들고 사용할 수 있습니다. | |
Making Note