[미니해커톤 운영 및 심사]
* 주제 : 생활의 편리를 제공하거나 각종 어려움을 해소할 수 있는 솔루션 개발
(他대회 참여 프로젝트 재활용 금지 / 국가 혹은 민간 지원 프로젝트 재활용 금지)
* 일시 : '19. 11. 26(화) 10:00 ~ 27(수) 16:30(1박 2일간)
* 장소 : 한양대학교 서울캠퍼스 한양종합기술연구원(HIT)
* 기술 : Tizen IoT 기반으로 SW 프로토타입 제품 및 서비스 개발
* 일정
일정 |
세부 내용 |
비고 |
|
10:00 |
10:30 |
개회 및 행사안내 |
NIPA |
10:30 |
11:00 |
* 지정주제 소개 |
Tizen 윤진 |
11:00 |
12:30 |
* Tizen 레벨업 교육 |
Tizen 박정훈 |
12:30 |
13:30 |
중식 |
도시락 |
13:30 |
18:00 |
팀별 개발 활동 |
참가자 |
18:00 |
19:00 |
석식 |
도시락 |
19:00 |
22:00 |
팀별 개발 활동 |
참가자 |
22:00 |
0:00 |
팀별 개발 활동 |
야식 |
0:00 |
8:00 |
팀별 개발 활동 |
|
8:00 |
9:00 |
조식 |
도시락 |
9:00 |
11:00 |
* 소스코드 제출 |
참가자 |
11:00 |
12:00 |
* 동영상 제출 |
참가자 |
12:00 |
13:00 |
중식 |
도시락 |
13:00 |
13:30 |
발표 순서 정하기 |
NIPA 진행 |
13:30 |
15:40 |
팀별 발표 |
- 기획 의도를 구두로 설명하기 |
15:40 |
16:00 |
최종 심사 |
심사위원 |
16:00 |
16:30 |
시상식 및 기념촬영 |
전체 |
* 슬랙채널 가입 필수
- 목적 : 공지사항, 질의&응답, 최종결과물 소스제출처
- 팀당 최소 한 명이상 가입 필수
- 초대장 : [링크]
* 개발환경
- 보드 : 라즈베리파이3 B+ 권장(타보드 사용 가능하지만, 멘토링은 제한적일 것임.)
- 개발툴 : Tizen Studio 3.5 권장(타 버전 사용해도 무방)
- 이미지
타 버전 사용 가능하지만, 멘토링은 제한적인 것임.
* 심사위원 : 타이젠팀 5명
* 심사기준
심사 항목 |
배점(점) |
평가 내용 |
주제 적합성 |
10 |
제시한 아이디어와 주제의 적합성 |
기획력 |
10 |
독창성과 시장성 |
플랫폼 활용 |
25 |
프로젝트에서의 타이젠 활용 수준 평가 |
소스 |
25 |
소스 코드의 수준 평가 |
구현도 |
30 |
동영상 시연으로 개발 완성도 평가 |
- 발표시간 : 팀당 각 10분 이내(3분 발표, 7분 질의응답)
- 최종결과물 시연영상 : 휴대폰 촬영 영상 / 제시된 양식으로 제출
- 전체 프로젝트 코드리뷰 : github에 업로드 필수, 코드작성자 기록 필수, 타이젠 스튜디오로 빌드 필수
- 단, 사업아이템인 경우에는 비공개 요청을 별도로 하여야 함.
* 소스 제출용 README.md 예시
> 깃허브의 Repo가 복수개인 경우, Repo마다 README.md를 만들어주세요.
## 팀명 및 팀원 * 간단히 적어주세요. * 팀원이 맡은 역할을 자유롭게 적어주세요(기획/디자인/설계/개발/디버깅/기술조언/환경설정/발표 등)
## 프로젝트 제목 * 간단히 적어주세요.
## 프로젝트 배경 혹은 목적 * 간단히 적어주세요.
## 파일 리스트 * 팀원이 소스 파일을 직접 만든 경우, 해당 파일을 적어주세요. * 오픈소스(타이젠 등)로부터 가져왔지만, 팀원이 내용을 수정하거나 덧붙인 경우, 해당 파일을 적어주세요. * 오픈소스(타이젠 등)를 그대로 가져다가 사용한 파일은 적지 말아주세요. * 헤더와 소스만 적어주세요. * 디자인 등의 리소스는 적지 말아주세요. * 예시 inc/resource_1.h inc/resource_2.h src/resource_1.c src/resource_2.c
## 코드 기여자 * 각자 개발한 코드를 빠짐없이 기입해주세요. * 파일 단위 혹은 함수 단위로 적어주세요. * 라인 단위로는 적지 말아주세요. * 팀원의 이름을 반드시 명시해주세요. * 예시 - 철수가 파일 전체를 개발한 경우 inc/resource_1.h 철수 src/resource_1.c 철수 - 철수와 영희가 각각 특정 파일의 함수를 개발한 경우 src/resource_2.c function_1 영희 src/resource_2.c function_2 철수 - 영희가 오픈소스에 특정 함수를 개발한 경우 src/tizen.c function_3 영희
## 보드 * 프로젝트에서 사용하는 보드를 적어주세요. * 사용하는 보드마다 각각의 목적을 적어주세요. * 사용하는 보드마다 설치되는 깃허브의 Repo를 적어주세요. * 예시 : 한 대만 사용한 경우 - RPI3 : 이미지 분석 및 센서 연동, github.com/theojin/hackathon-example * 예시 : 서로 다른 모델의 보드를 두 대 이상 사용한 경우 - RPI3 : 이미지 분석, github.com/theojin/hackathon-example-1 - SDTA7D : 센서 연동, github.com/theojin/hackathon-example-2 * 예시 : 동일 모델을 두 대 이상 사용한 경우 - RPI3 1 : 이미지 분석, github.com/theojin/hackathon-example-1 - RPI3 2 : 센서 연동, github.com/theojin/hackathon-example-2
## 구현사항 * GPIO / I2C / PWM / UART / SPI 중 사용한 프로토콜 명시 * Nubison 클라우드 / thingspark 클라우드 / 기타 중 사용한 클라우드 명시 * 카메라 기능 사용 여부 * 이미지 분석 기능 사용 여부 * HTTP Server 사용 여부 * 예시 - GPIO 사용 - 싱스파크 클라우드 사용 - 카메라 사용하지 않음 - 이미지 분석 사용하지 않음 - HTTP Server 사용 |
* 타이젠 스페셜리스트 선정 : https://developer.tizen.org/blog/tizen-specialist-program
- 코드 리뷰를 통해 우수한 개발자는 타이젠 스페셜리스트 후보군으로 관리함.
[타이젠 사전 배포 자료]
* 보드 : RPI 3 Model B+ / 파워케이블 / 마이크로SD카드 / SD카드리더기 / USB-시리얼 배포 예정
* 부속기기 : 아래 기기는 배포 예정
물품명 |
모델명 |
구매처 |
라즈베리파이3 B+ |
라즈베리파이3 B+ |
|
파워케이블 |
5V 2A |
|
HDMI케이블 |
|
|
마이크로SD 카드 |
8G 이상 |
http://mechasolution.com/shop/goods/goods_view.php?goodsno=245833&category= |
SD 카드 리더기 |
|
http://mechasolution.com/shop/goods/goods_view.php?goodsno=577278&category= |
USB Debug Cable |
|
http://mechasolution.com/shop/goods/goods_view.php?goodsno=539734&category= |
모션센서 |
HC-SR501 |
http://mechasolution.com/shop/goods/goods_view.php?goodsno=88&category= |
초음파 거리센서 |
HC-SR04 |
|
LED |
5mm(5파이) LED |
http://mechasolution.com/shop/goods/goods_view.php?goodsno=65&category=052001 |
저항 |
220 |
|
빵판 |
830핀 |
http://mechasolution.com/shop/goods/goods_view.php?goodsno=5869&category= |
전선 |
F-F 5개 |
|
M-F 5개 |
|
|
M-M 5개 |
|
|
카메라 |
SPC-A1200MB |
|
사운드센서 |
DFR0034 |
http://mechasolution.com/shop/goods/goods_view.php?goodsno=1424&category= |
ADC |
MCP3008 |
http://mechasolution.com/shop/goods/goods_view.php?goodsno=8067&category= |
* 타이젠에 소개 : http://tizenschool.org/tutorial/150
* 타이젠 스튜디오 3.5용 환경구축 : http://tizenschool.org/tutorial/167
(타이젠 스튜디오 3.3용 환경구축 : http://tizenschool.org/tutorial/149/)
* 타이젠 앱 개발 기본
- 문서 : https://craftroom.tizen.org/hackathon-kick-off-a-tizen-project/
- 소스 : "타이젠 앱 개발 기본.zip"
* 메인루프 설명자료
- 유투브 : https://www.youtube.com/embed/clA0-ksJV14
- 참고자료 : "타이젠 메인루프.pdf"
* GPIO & I2C & SPI 동영상
- 유투브 : https://www.youtube.com/embed/2cdHCM3GMoc
- GPIO 문서 : http://tizenschool.org/tutorial/154
- GPIO 소스 : git clone -b basic-interrupted https://git.tizen.org/cgit/apps/native/st-things-light
- I2C 문서 : http://tizenschool.org/tutorial/153
- I2C 소스 : git clone -b illuminance https://git.tizen.org/cgit/apps/native/rcc illuminance
- SPI 문서 : http://tizenschool.org/tutorial/152
- SPI 소스 : git clone https://github.com/jay4peace/tizeniot_pio_spi.git
- 사례공유(LiDAR, 미세먼지센서) : https://storycompiler.tistory.com/262
* HTTP Server
- 참고자료 : http://tizenschool.org/tutorial/165
* 누비슨 클라우드
- 유투브 : https://www.youtube.com/embed/pfSYesoQGlQ
- 문서 : "누비슨 클라우드.pdf"
- 소스 : https://github.com/nubisoniot/NI
- 대상자 : [브라우저 혹은 모바일] 센싱 데이터 확인 및 액츄에이터 제어
* 싱스파크 클라우드
- 유투브 : https://www.youtube.com/embed/P8VmRdzApQA
- 문서 : "싱스파크 클라우드.pdf"
- 소스 : https://github.com/theksystem/tizen_to_thingspark_example
- 대상자 : [브라우저 혹은 모바일] 센싱 데이터 확인
* 이미지 분석하기
- 유투브 : https://www.youtube.com/embed/YVINl0R61zs
- 발표자료 : https://craftroom.tizen.org/television/
- 완성 소스 : git://git.tizen.org/apps/native/smart-surveillance-camera (브랜치 : television)
- 실습 소스 : git://git.tizen.org/apps/native/smart-surveillance-camera (브랜치 : television_dev)
- RPI에 추가 설치용 패키지 : iotjs-1.0.0-99.armv7l.rpm.zip
- mmfw_camcorder_camera0.ini 초기파일
; < Camera/Camcorder Configure Control INI file > ; ; - Header List - ; 1. Camera ; 2. Strobe ; 3. Effect ; 4. Photograph ; 5. Capture ; 6. Detect ; ; - Note - ; If you want to add a new header, ; add a new enum value to "enum ConfigureCategoryControl" ; and new default table for it in mm_camcorder_configure.c/.h ;
[Camera] ; Input index - real setting value ;;; 0:PRIMARY_CAMERA, 1:SECONDARY_CAMERA ; Input index - MSL value(convert array index) ;;; -1:NONE, 0:CAMERA0, 1:CAMERA1 InputIndex = 0,-255 || 0 DeviceName = USB_CAMERA PreviewResolution = 320,240 | 640,480 || 320,240 CaptureResolution = 320,240 | 640,480 || 640,480 VideoResolution = 320,240 | 640,480 || 640,480 FPS0 = 0,15,30 || 15 FPS1 = 0,15,30 || 15 ; PictureForamt - MSL value ;;; 0:NV12, 1:NV12T, 2:NV16, 3:NV21, 4:YUYV, 5:UYVY, 6:422P, 7:I420, 8:YV12, 9:RGB565, 10:RGB888, 11:RGBA, 12:ARGB, 13:ENCODED, 14:INTERLEAVED_JPEG_UYVY, 15:ENCODED_H264 PictureFormat = 7 || 7 Overlay = 0,1 || 1 ; Recommend display rotation ;;; 0:NONE, 1:90, 2:180, 3:270 RecommendDisplayRotation = 0 ; Recommend preview format for capture ;;; 0:NV12, 1:NV12T, 2:NV16, 3:NV21, 4:YUYV, 5:UYVY, 6:422P, 7:I420, 8:YV12, 9:RGB565, 10:RGB888, 11:RGBA, 12:ARGB, 13:ENCODED, 14:INTERLEAVED_JPEG_UYVY, 15:ENCODED_H264 RecommendPreviewFormatCapture = 7 ; Recommend preview format for record ;;; 0:NV12, 1:NV12T, 2:NV16, 3:NV21, 4:YUYV, 5:UYVY, 6:422P, 7:I420, 8:YV12, 9:RGB565, 10:RGB888, 11:RGBA, 12:ARGB, 13:ENCODED, 14:INTERLEAVED_JPEG_UYVY, 15:ENCODED_H264 RecommendPreviewFormatRecord = 7 ; Recommend preview resolution ;;; 0: NORMAL ratio(4:3), 1: WIDE ratio(16:9), 2: SQUARE ratio(1:1) RecommendPreviewResolution = 320,240 | 320,240 | 320,240 || 320,240 ; Camera facing direction ;;; 0:REAR, 1:FRONT FacingDirection = 0 FrameStabilityCount = 1
[Strobe] ;StrobeControl - Not support ;StrobeCapabilities - Not support ; Strobe mode - real setting value ;;; N/A ; Strobe mode - MSL value(convert array index) ;;; 0:OFF, 1:ON, 2:AUTO, 3:REDEYE_REDUCTION, 4:SLOW_SYNC, 5:FRONT_CURTAIN, 6:REAR_CURTAIN, 7:PERMANENT StrobeMode = 0,-255,-255,-255,-255,-255,-255,-255 || 0 ;StrobeStatus - Not support ;StrobeEV - Not support
[Effect] Brightness = 0,8 || 4 ;Contrast = 1,7 || 4 ;Saturation = 0,4 || 2 ;Sharpness = 0,4 || 2
; White balance - real setting value ;;; 0:AUTO, 1:DAYLIGHT, 2:CLOUDY, 3:TUNGSTEN, 4:FLUORESCENT ; White balance - MSL value(convert array index) ;;; 0:NONE, 1:AUTO, 2:DAYLIGHT, 3:CLOUDY, 4:FLUORESCENT, 5:INCANDESCENT, 6:SHADE, 7:HORIZON, 8:FLASH, 9:CUSTOM WhiteBalance = -255,0,-255,-255,-255,-255,-255,-255,-255,-255 || 0
; Color tone - real setting value ;;; 1:NONE, 2:MONO, 3:SEPIA, 4:AQUA, 5:ANTIQUE, 6:NEGATIVE, 7:SHARPEN, 8:SKETCH, 9:WASHED, 10:VINTAGE_WARM ;;; 11:VINTAGE_COLD, 12:SOLARIZE, 13:POSTERIZE, 14:POINT_BLUE, 15:POINT_RED_YELLOW, 16:POINT_COLOR_3, 17:POINT_GREEN, 18:POINT_RED, 19:POINT_YELLOW, 20:CARTOONIZE ; Color tone - MSL value(convert array index) ;;; 0:NONE, 1:MONO, 2:SEPIA, 3:NEGATIVE, 4:BLUE, 5:GREEN, 6:AQUA, 7:VIOLET, 8:ORANGE, 9:GRAY, 10:RED, ;;; 11:ANTIQUE, 12:WARM, 13:PINK, 14:YELLOW, 15:PURPLE, 16:EMBOSS, 17:OUTLINE, 18:SOLARIZATION, 19:SKETCH, 20:WASHED, ;;; 21:VINTAGE_WARM, 22:VINTAGE_COLD, 23:POSTERIZATION, 24:CARTOON, 25:SELECTIVE_RED, 26:SELECTIVE_GREEN, 27:SELECTIVE_BLUE, 28:SELECTIVE_YELLOW, 29:SELECTIVE_RED_YELLOW ColorTone = 1,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255 || 1 ; Flip - real setting value ;;; 0:NONE, 1:VERTICAL, 2:HORIZONTAL ; Flip - MSL value(convert array index) ;;; 0:HORIZONTAL, 1:VERTICAL, 2:NONE ;Flip = 2,1,0 || 0
; Wide Dynamic Range - real setting value ;;; 0:OFF, 1:ON ; Wide Dynamic Range - MSL value(convert array index) ;;; 0:OFF, 1:ON, 2:AUTO WDR = 0,-255,-255 || 0
; Part color mode - real setting value ;;; 0:OFF, 1:SWAP, 2:ACCENT ; Part color mode - MSL value(convert array index) ;;; 0:OFF, 1:SWAP, 2:ACCENT ;PartColorMode = 0,1,2 || 0
; Part color - real setting value ;;; 0:VIOLET, 1:PURPLE, 2:MAGENTA_1, 3:MAGENTA_2, 4:RED_1, 5:RED_2, 6:BROWN, 7:YELLOW, 8:GREEN_1, 9:GREEN_2, 10:GREEN_3, ;;; 11:GREEN_4, 12:COBALT, 13:CYAN, 14:BLUE_1, 15:BLUE_2, 16:GRAY ; Part color - MSL value(convert array index) ;;; 0:VIOLET, 1:PURPLE, 2:MAGENTA_1, 3:MAGENTA_2, 4:RED_1, 5:RED_2, 6:BROWN, 7:YELLOW, 8:GREEN_1, 9:GREEN_2, 10:GREEN_3, ;;; 11:GREEN_4, 12:COBALT_BLUE, 13:CYAN, 14:BLUE_1, 15:BLUE_2, 16:GRAY ;PartColor = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 || 0
[Photograph] ;LensInit = 0,1 || 0 ;DigitalZoom = 0,10 || 0 ;OpticalZoom = 0,0 || 0
; Focus mode - real setting value ;;; 0:AUTO, 1:MANUAL, 2:PAN, 3:TOUCH_AUTO, 4:CONTINUOUS ; Focus mode - MSL value(convert array index) ;;; 0:NONE, 1:PAN, 2:AUTO, 3:MANUAL, 4:TOUCH_AUTO, 5:CONTINUOUS FocusMode = 0,-255,-255,-255,-255,-255 || 0
; Auto focus type - real setting value ;;; 0:NORMAL, 1:MACRO, 2:FULL ; Auto focus - MSL value(convert array index) ;;; 0:NONE, 1:NORMAL, 2:MACRO, 3:FULL AFType = 0,-255,-255,-255 || 0
; Auto exposure type - real setting value ;;; 0:BASE, 1:MATRIX, 2:CENTER, 3:SPOT, 4:MAX ; Auto exposure mode - MSL value(convert array index) ;;; 0,OFF 1,ALL 2,CENTER1 3,CENTER2 4,CENTER3 5,SPOT1 6,SPOT2 7,CUSTOM1 8,CUSTOM2 AEType = -255,0,-255,-255,-255,-255,-255,-255,-255 || 0
;ExposureValue - Not support ;FNumber - Not support ;ShutterSpeed - Not support
; ISO - real setting value ;;; 0:AUTO, 1:50, 2:100, 3:200, 4:400, 5:800, 6:1600 ; ISO - MSL value(convert array index) ;;; 0:AUTO, 1:50, 2:100, 3:200, 4:400, 5:800, 6:1600, 7:3200 ISO = 0,-255,-255,-255,-255,-255,-255,-255 || 0
; Program mode - real setting value ;;; 1:NONE, 2:PORTRAIT, 3:NIGHTSHOT, 4:BACK_LIGHT, 5:LANDSCAPE, 6:SPORTS, 7:PARTY_INDOOR, 8:BEACH_SNOW, 9:SUNSET, 10:DUSK_DAWN, ;;; 11:FALL_COLOR, 12:FIREWORKS, 13:TEXT, 14:CANDLE_LIGHT ; Program mode - MSL value(convert array index) ;;; 0:NORMAL, 1:PORTRAIT, 2:LANDSCAPE, 3:SPORTS, 4:PARTY_N_INDOOR, 5:BEACH_N_INDOOR, 6:SUNSET, 7:DUSK_N_DAWN, 8:FALL_COLOR, 9:NIGHT_SCENE, ;;; 10:FIREWORK, 11:TEXT, 12:SHOW_WINDOW, 13:CANDLE_LIGHT, 14:BACKLIGHT ProgramMode = 0,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255 || 0
; Anti-handshake - real setting value ;;; 0:OFF, 1:ON ; Anti-handshake - MSL value(convert array index) ;;; 0:OFF, 1:ON, 2:AUTO, 3:MOVIE_ON AntiHandshake = 0,-255,-255,-255 || 0
; Video-stabilization - real setting value ;;; 0:OFF, 1:ON ; Video-stabilization - MSL value(convert array index) ;;; 0:OFF, 1:ON VideoStabilization = 0 || 0
; Face zoom mode ;;; 0:OFF, 1:ON FaceZoomMode = 0 || 0 ; Face zoom level FaceZoomLevel = 0,0 || 0
; PTZ(Pan Tilt Zoom) type ;;; 0:Mechanical, 1:Electronic ;PtzType = 0,1 || 1
; Pan range for mechanical movement ;PanMecha = -10,10
; Pan range for electronic movement ;PanElec = -10,10
; Tilt range for mechanical movement ;TiltMecha = -10,10
; Tilt range for electronic movement ;TiltElec = -10,10
[Capture] ; Output mode ;;; No need to convert ;;; 0:NV12, 1:NV12T, 2:NV16, 3:NV21, 4:YUYV, 5:UYVY, 6:422P, 7:I420, 8:YV12, 9:RGB565, 10:RGB888, 11:RGBA, 12:ARGB, 13:ENCODED, 14:INTERLEAVED_JPEG_UYVY OutputMode = 7,13 || 13 JpegQuality = 0,100 || 90 MultishotNumber = 1,1 || 1 SensorEncodedCapture = 0 ; Support HDR ;;; 0: OFF, 1: ON, 2: ON and Original SupportHDR = 0,-255,-255 || 0 FrameStabilityCount = 2
[Detect] ; Detect mode ;;; 0:OFF, 1:ON DetectMode = 0,-255 || 0 ;DetectNumber - Not support ;DetectFocusSelect - Not support ;DetectSelectNumber - Not support ;DetectStatus - Not support |
* 유용한 커맨드
※ 라즈베리파이 시리얼 터미널이나 SDB shell에서 실행하는 명령어입니다.
- 설치된 application 패키지 확인
pkgcmd -l -t tpk
- 설치된 application 패키지 삭제
pkgcmd -u -n {pkg_id}
- 설치된 application 실행
app_launcher -s {app_id}
- 실행 중인 application 확인
app_launcher -S
- 실행 중인 application 종료
app_launcher -t {app_id}
- 라즈베리파이 리부팅
reboot
- 타이젠 스튜디오에 로그가 안나오는 문제 임시로 해결하는 방법
dlogutil -c
'IT > Tizen' 카테고리의 다른 글
[2021 서울 하드웨어 해커톤] 워크숍 1일차 안내 (1) | 2021.07.31 |
---|---|
Tizen SDB Driver (Windows) (0) | 2020.11.18 |
[2020 서울 하드웨어 해커톤] 행사 당일 스케쥴 및 심사 (0) | 2020.09.02 |
[2020 서울 하드웨어 해커톤] 워크숍 1일차 안내 (0) | 2020.08.01 |
[지캠프] Tizen & Anchor 3 워크숍 (0) | 2019.12.23 |
[2019 서울하드웨어해커톤] 행사 당일 스케쥴 및 심사 (0) | 2019.09.18 |
[2019 서울 하드웨어 해커톤] 유투브 영상 및 보도 자료 (0) | 2019.09.10 |
[2019 서울 하드웨어 해커톤] 8일차 : 이미지 분석하기 (0) | 2019.09.07 |
[2019 서울 하드웨어 해커톤] 7일차 : thingspark with Tizen (0) | 2019.09.07 |
타이젠 스튜디오 관련 에러 발생시 대처 방법 (0) | 2019.09.07 |