본문 바로가기

IT/Tizen

[2019 서울 하드웨어 해커톤] 1일차 : 타이젠 환경설정(RPI3) 및 앱 개발 기초

업데이트 : '19. 8. 18, 워크숍 동영상 & 앱 개발 관련 동영상 추가

 

 

 

0. 워크숍 1일차 전체 동영상 : 4시간 분량

- G Camp 측에서 강의 전체를 인코딩해주셨습니다. 자신에게 필요한 부분만 들으세요.

 

0. 사전 준비

* 총정리 게시물 주소(본 게시물) : https://bit.ly/2MmsVii

* 슬랙 채널 : (해커톤 참가자 전용 초대장) https://join.slack.com/t/tizen-iot/shared_invite/enQtNzIzMTQzMTQzNTA1LTU2N2JmODhlMTNkYzcwOGQ4NDRiOTUzZTlmN2NlODYxOTJmYTM5MGFiNDNlY2I5MzU4ZGIzOTQ0NDU2YTdkNDYhttps://join.slack.com/t/tizen-iot/shared_invite/enQtNzY3NDIyMDA4MjQ3LWQ4NTQ2ZmQ3MzU5YWM5ZTg5YTkxMmI2NjZmOTI5MDYxMTdmNjg1OWMyOTEyNWJjN2I1NWU2NzRlYTQ2OGY1NDE

* 타이젠 스튜디오 설치하기 : 1~4페이지 참고, http://tizenschool.org/tutorial/149/contents/1

 

1. 해커톤 소개

* 주제 : 사람들의 간절한 문제를 해결하는 탑 메이커

* 구현기술 : 타이젠을 기본으로 하는 솔루션 구축

* 일정 : 1박 2일, 9. 21(토) ~ 22(일)

  - 1일차(토)

    13:00 ~ 18:00 모두 발언, 해커톤 진행(기술지원 ~ 21:00)

  -  2일차(일)

    11:00 ~ 12:00 제출 완료

    13:00 ~ 18:00 발표

 

* 보드 : ① RPI 3 Model B+ 혹은 ② SDTA7D

* 부속기기 : 센서, LED, 카메라 등 

* 평가배점 : 100점 = 심사위원 평가 60점 + 동료 평가 40점

* 심사위원 : 5명(타이젠팀 3명, IT전문가 2명)

* 심사위원 평가기준

    

  - 발표시간 : 팀당 각 10분 이내(3분 발표, 7분 질의응답)

  - 최종결과물 시연영상 : 휴대폰 촬영 영상 / 제시된 양식으로 제출

  - 전체 프로젝트 코드리뷰 : github에 업로드 필수, 코드작성자 기록 필수, 타이젠 스튜디오로 빌드 필수

  - 단, 사업아이템인 경우에는 비공개 요청을 별도로 하여야 함.

 

* 동료평가 기준

  - 당일 참가자에 스티커를 부여하여 각 팀의 시작품 중 우수시작품에 스티커 부착하기

  - 점수 산식 : (그 팀이 받은 스티커수/벽면 부착된 스티커 총수) x 40점

 

* 혜택

 

* 타이젠 스페셜리스트 선정 : https://developer.tizen.org/blog/tizen-specialist-program

  - 코드 리뷰를 통해 우수한 개발자는 타이젠 스페셜리스트로 선정함.

 

2. 워크숍 일정

 

3. 시료 배포

- 플라스틱 케이스

- SDTA7D / WiFi 안테나 / 전원케이블

- RPI3 B+ / 마이크로 SD 카드 / 카드리더기 / 5V 2A MicroUSB 어댑터 / FTDI USB-TTL

- 5mm LED / HC-SR501 인체감지센서 /  GY-303 조도센서 / SG90 서보모터 / 사운드센서

- 빵판 / MCP3008 / 220옴 저항 / 전선(MM, MF, FF)

- SPC-A1200B

 

4. 참가팀 소개 : 총 16개팀

- IHU

- 패트와 매트

- I.o.T ( Initialize on Tizen)

개인팀 x 2

InAirPeople 

용규 

Hell Maker

- 가디언즈

- 아이터틀

Red Light

- 엄유상

- 왔다 슈트 

디하시스 

- 나우 유 씨 미(Now U C Me) 

KMC 외 한명 

- System Consultant Group

※ 개인 두 분이 원하시면 두 분 위주의 팀 구성 or 타 팀 배정

 팀에게 지원되는 지원금은 9. 22(일)까지 팀장이 사용하고, 이후 증빙자료를 제출하고 비용처리 예정

    다만, 조건부 통과팀의 경우, 팀원 충당 후에 경비를 사용 가능

 팀간 결합시 기존 팀에 지급되던 비용은 그대로 지급

    즉, 팀간 결합을 통해 단일팀 구성을 하는 경우 60만원까지 사용가능

 팀을 구성하지 못한 개인은 해커톤에 참가 불가

 프로젝트 주제는 해커톤 전날까지 변경 가능

 

5. 타이젠 스튜디오 설치 및 라즈베리파이 환경설정

* Tizen & Tizen IoT 소개 : http://tizenschool.org/tutorial/150/contents/4

* 발표자료 목차

I. Tizen

 

II. Tizen IoT

 

III. Tizen Specialist

 

VI. 관련 사이트

1. 타이젠 개발자 사이트 (http://developer.tizen.org)

- Tizen API Guide를 포함한 타이젠 관련 모든 정보가 있음. 

- Headless API Guide : https://developer.tizen.org/dev-guide/tizen-iot-headless/5.0/

- Headed API Guide : https://developer.tizen.org/dev-guide/tizen-iot-headed/5.0/

 

2. Tizen School (http://tizenschool.org)

- Tizen 입문자를 위한 사이트로 단계별로 쉽게 따라할 수 있는 핵심 강좌 수록

 

3. CraftRoom (http://craftroom.tizen.org)

- Tizen IoT에 특화된 다양한 강좌 수록 및 원하는 IoT Image 생성 가능

 

4. Topmaker (https://www.topmaker.kr/tag/tizen)

- Tizen IoT 개발 관련 다양한 동영상 컨텐츠 수록

 

5. 삼성 개발자 사이트 (http://developer.samsung.com)

- Tizen이 탑재된 Samsung Device에 관한 개발정보 수록

 

* Tizen IoT 개발 환경 구축(Windows) : http://tizenschool.org/tutorial/149/contents/1

* 발표자료 목차

I. Overview

 

II. Tizen IoT 개발환경 구축

1. Java SE Development Kit (JDK) 설치

2. Tizen Studio 설치

3. Tizen IoT Package 설치

4. Tizen Certificate(인증서) 생성

 

III. RPI3+ 개발환경 구축

1. IoT Image 제작

2. 시리얼 통신 연결

3. 네트워크 설정

4. SDB 환경 변수 설정

5. SDB 연결

 

IV. Hello World

1. 프로젝트 생성

2. 프로젝트 수정 및 실행

3. 프로젝트 실행 결과 확인

 

6. 타이젠 앱 개발 기본

* 발표 자료 : https://craftroom.tizen.org/hackathon-kick-off-a-tizen-project/

* 소스코드 : 

rcc.zip
0.62MB

* 발표자료 목차

 

* 메인루프 설명 동영상

- 본 동영상은 UI앱을 대상으로 설명하였지만, UI가 없는 앱(서비스앱)에서도 일부 유효한 내용이 있습니다.

- 영상 재해석 : 몇 가지 부분을 아래처럼 이해하시면 보다 수월할 겁니다.

  앞면 : 앱이 foreground로 나온 상태

  뒷면 : 앱이 background에 들어간 상태

  app_resume_cb & app_pause_cb : 화면이 있는 UI앱에서만 필요. 화면이 없는 서비스앱에서는 불필요.

 

* 메인루프에 대한 심화 자료 : https://www.topmaker.kr/215

 

[EFL] ecore main loop의 이해

[전 삼성전자] 서주영님의 블로그에서 가져온 글입니다. 좀 오래된 글이지만, 도움이 되실 것 같아, 올립니다. ※ 이벤트 → 상황(event), 콜백 → 대응함수(call back) 등으로 수정하여 사용 http://eglo..

www.topmaker.kr

<첨언>

- EFL(Enlightenment Foundation Libraries)은 공개 소프트웨어이다.

  https://www.enlightenment.org

- IoT Headless 환경에서는 ecore_main_loop_begin()과 ecore_main_loop_quit()를 사용한다.

  (elm_run()과 elm_exit()는 사용하지 않는다)

- 타이젠의 UI앱 & 서비스앱은 ecore_main_loop를 기본 메인루프로 사용하고 있다.

- 메인루프는 대기(Idle) 상태와 이벤트처리 상태로 나뉜다.

- Idle 상태는 idle enter / idle / idle exit 세 단계로 나뉜다.

- Idle enter에서 화면을 그리거나 갱신하는 렌더링 루틴을 수행한다. 단, 그릴 것이 없으면 렌더링 루틴을 수행하지 않는다.

- Idle 상태로 진입하기 위해 select() 함수를 이용한다.

   int select(int nfds, fd_set *readfds, fd_set *writefds,
                        fd_set *exceptfds, struct timeval *timeout);

- IF SETS : Idle -> Fd handling -> Sig to event -> Event handling -> Timing handling -> Sig to Event