SlideShare a Scribd company logo
1 of 29
Download to read offline
한글시계 기본 구조
Setup Button
check
Time
Update
Display
Update
Serial
명령 Check
Loop 함수Setup 함수
1 2 3
45
Arduino IDE Installation
아두이노 개발 환경(IDE Integrated Development Environment) 설치
소스 개발, 컴파일, 업로드, 디버깅을 위한 어플리케이션으로 아래 공식 사이트에서 OS별로 다운로드 받아서 설치하
시면 됩니다.
공식 홈페이지 주소
http://arduino.cc/en/Main/Software OS Version 별로 해당
프로그램을 Download
받아서 설치 합니다.
IDE 화면 기본 구성
아두이노 IDE 화면 기본 구성
설치가 완료되었으면, 아두이노 IDE를 실행하고 화면 기본 구성을 살펴 봅니다.
Edit 영역
아두이노를 동작 시키기 위한 소스
Code를 입력하는 영역으로 프로
그램을 수정 및 변경하는 영역
Setup() 함수와 Loop() 함수가 위
치 한다
Compile Button
소스 코드를 Build하
기 위한 버튼
Upload Button
소스 코드를 Build +
Arduino 보드에 Uplo
ad 하기 위한 버튼
Serial Monitor But
ton
소스 코드를 디버깅하
기 위한 메시지 창을
띄우는 버튼
Message 영영
Build, Upload 결과,
등의 개발환경을 사용
하면서 발생하는 메시
지 창 영역
한글 시계 라이브러리/USB Driver 설치
한글시계 Libraries 복사
-  아래 그림 파일의 경로 또는 아두이노가 설치된 폴더 아래 libraries 폴더에 다음 라이브러리들을 복사 합니다.
-  라이브러리 파일(폴더)명 : LedControl, RTClib, Wire, Button
한글시계 USB Driver 설치
-  한글 시계 USB Driver(CH341)를 설치 합니다.
-  드라이버 파일(CH341SER.EXE)을 실행하고 USB Driver(CH341)를 설치 합니다.
한글 시계 부품도
USB C
able
Main P
CBArduino
Nano B
oard
RTC M
odule
Front
Main Fr
ame
Base
한글 시계 뒷면 조립도
Button
RTC M
odule
Arduino
Nano Bo
ard
LED Co
ntrol IC
가변 저항
하드웨어 조립 검증
•  HW Test(HangulClock_HW_TEST.ino) 다운
로드 한 후, LED 전부 켜지는 지 확인
-> 좌 상단부터 순차적으로 켜졌다가 전부 불 켜지는 지 확인
•  보드 조립 검증 확인
-> 납땜 상태(LED, 저항, 버튼등), Socket 연결 등 확인
데모
•  한글 시계 Demo
- 시간 설정 : Button (분/시간)
- 사진 모드
- Tool과 연동
: 이미지 만들어 전송하기
: 날씨 정보 읽어 오기
: 시간 Sync. 맞추기(PC 시간과 동기화)
아두이노 기본 예제 배우기
아두이노 IDE 기본 예제 (LED Blink) 실행
아두이노 IDE에서 제공하는 기본 예제(LED Blink)를 선택하고 [ 파일 – 예제 – 01.Basics – Blink ]를 엽니다.
아두이노를 PC에 연결하고 [ 도구 – 보드 – Arduino Uno ]를 선택하고 프로세서는 ATmega328을 선택합니다.
아두이노가 연결된 USB 포트를 선택 합니다.
Serial Monitor 사용하기
Serial Monitor 사용법
통신 속도 정하기
아두이노는 시리얼 포트를 통해서 PC나 Bluetooth, WiFi Module과 통신을 할 수 있습니다.
시리얼 통신을 위해서는 Baudrate라고 하는 통신 속도를 정해줘야 합니다.
기본 baudrate 는 9600bps 입니다. (프로그램에서 설정된 속도와 동일하게 맞춰야 통신이 가능합니다.)
소스 코드에 내용 추가 하기
Setup() 함수 내에서 “Serial.begin(9600);” 추가 합니다.
Loop() 함수 내에서 “Serial.print(“디버그 코드”);를 추가 합니다.
시리얼 모니터 버튼을 클릭하고 Baudrate를 9600bps로 맞춰 줍니다.
디버깅 모니터 화면
한글시계 기본 구조
Setup Button
check
Time
Update
Display
Update
Serial
명령 Check
Loop 함수Setup 함수
1 2 3
45
한글시계 자료 복사(3주차)
•  아래 경로의 파일을 바탕화면에 복사
•  G:한글시계 교육자료SRC3주차
한글시계 LED Matrix Control 구조
한글시계 기본 예제
-  LED 하나 켜보기
: 예제(HangulClock_LED_ONE.ino) 다운로드
-  LED 모양 만들어 켜보기
: 하트 모양, 다이아몬드, 화살표 등
-  움직이는 모양 만들어 보기
: 화살, 하트등
LED Control 하기
한글시계 예제( HangulClockExample ) 실행
아두이노 IDE를 실행하고 파일 – 열기 메뉴(아래 그림 참조)에서 한글 시계 예제 파일을 엽니다.
아두이노를 PC에 연결하고 [ 도구 – 보드 – Arduino Nano ]를 선택 합니다.
아두이노가 연결된 USB 포트를 선택 합니다.
한글시계 구조 배우기
한글시계 라이브러리
1. LEDControl (MAX7219 Matrix driver) : LED Control Driver IC 라이브러리
- LedControl.cpp, LedControl.h
2. RTClib (ds1307 Module) : RTC Module에서 시간 데이터를 읽어오기 위한 라이브러리
- RTClib.cpp, RTClib.h
3. Wire (I2C 통신) : RTC Module과 연동(통신)을 위하여 사용됨.
- Wire.cpp, Wrie.h
4. Button : 특정 기능(시간/분, 모드 설정 등)을 위한 사용자와의 Interface 제공을 위한 button 라이브러리
- Button.cpp, Button.h
라이브러리 추가 방법
1.  LED Control 라이브러리 추가
: 소스 상단에 오른쪽과 같이 코드 추가한다.
#include <LedControl.h>
한글시계 구조 배우기
기능별 동작 프로그래밍 (라이브러리 함수 사용)
1.  LED Control (Row/Colum) 라이브러리 함수
: Driver IC의 DIG(Row)/SEG(Col.) Pin들을 가로, 세로로 배열하고 교차한 Point에서 LED를 구동함.
- LedControl을 위한 Instance 생성
: LedControl Ic = LedControl ( DataPin, ClockPin, CsPin, DeviceNumber ) 12th Line 참조
- setRow(int addr, int row, byte value) : Led를 켜기 위한 함수 -> REFRESH_PANEL() 매크로 35th Line 참조
- clearDisplay(int addr) : Led를 끄기 위한 함수 -> CLEAN_PANEL() 매크로 참조 39th Line 참조
- shutdown(int addr, bool b) : Driver(Max7219 IC)를 켜고, 끄기 위한 함수 -> 266th Line 참조
- setIntensity(int addr, int intensity) : Led 밝기를 조절하기 위한 함수 -> 16단계 조절(0~15) -> 267th Line 참조
LED 제어 함수
LED 제어 함수를 이용하여 LED 제어 하기
1. _P_ON( row, column)
- panel data [ ] Update 매크로 함수
- 좌표 값(row, column)에 따라 panel data 버퍼에 데이터를 저장.
2.  CLEAN_PANEL( )
- 매크로 함수로 LED를 전부 off 시킨다. (LED를 켜기 전에 불려 진다.)
- panel data를 Clear 한다.
- clearDisplay(0) 라이브러리 함수가 불려 진다.
LED 제어 함수
LED 제어 함수를 이용하여 LED 제어 하기
3. REFRESH_PANEL( )
- 매크로 함수로 panel data를 참조하여 LED를 제어하는 함수(panel data가 Update된 후 불려진다.)
- update한 panel data를 사용하여 LED를 켜거나 끈다.
- setRow( ) 라이브러리 함수가 불려 진다.
4.  한글 시계의 LED를 제어하기 위한 2가지 방법
- Serial 명령(#L )으로 제어 : ex) #L33
- 소스 코드에서 직접 수정하여 제어 : r, c 값을 좌표값(숫자 0~4)을 입력 한다.
LED Control
LED 켜는 부분
RTC Module 제어
RTC Module(DS1307)에서 시간 정보 가져오기
1. 라이브러리 파일 :
- RTClib.cpp/h : DS1307 Module 제어를 위한 함수가 구현되어 있는 라이브러리 파일
- Wire.cpp/h : DS1307 Module과 I2C 통신을 위한 라이브러리 파일
2.  라이브러리 함수 : 날짜와 시간을 읽어오거나, 변경하기 위한 함수
- now() : 현재 시간을 읽어와서 시간 값을 return 한다.
3.  RTC Instance 생성
- RTC_DS1307 RTC;
4. 시간 변경 함수
- set_rtc( hour, min, sec ) :
5. 한글 시계에서 시간 변경 방법
- Button 입력으로 시간을 변경
- Serial 명령으로 변경 (#S<hh><mm><ss>)
라이브러리
등록
Instance
생성
함수 선언
Button Interface 제어
Button Short/Long Key 제어 하기
1.  라이브러리 파일 :
- Button.cpp/h
2. 라이브러리 함수 :
- button 제어를 위한 Instance 생성
- uniquePress() : 버튼이 처음 눌렸을때 true 리턴
- wasPressed() : 버튼이 길게 눌러 졌을때 true 리턴
3.  Button (Short/Long Key) : 시간, 분 설정 및 특정 기능(사진 모드등) 구현
- 시간/분 버튼 구현하기
: 시간/분 버튼 눌렸을때 시간/분 변경하기
- 버튼이 길게 눌려 졌을때 사진 모드로 전환하기
한글시계 Tool과 연동하기
Tool 과 연동을 위한 기능 추가
1.  Serial Rx Buffer 늘리기 : tool에서 전송되는 데이터가 잘리지 않도록 수신 버퍼를 64 -> 256 bytes로 수정한다
- 수정 파일 및 경로 :
C:Program Files (x86)ArduinohardwarearduinoavrcoresarduinoHardwareSerial.h
- #define SERIAL_RX_BUFFER_SIZE 64 ->256
RX Buffer Size만
늘려 준다
한글시계 Tool과 연동하기
Tool 과 연동을 위한 기능 추가
2.  시간 동기화 :
- #S<hh><mm><ss> : 시리얼 명령어 처리 부분 구현
- Loop 문 안에 아래 내용 추가
한글시계 Tool과 연동하기
Tool 과 연동을 위한 기능 추가
2.  시간 동기화 :
< 실행 순서 >
1. 한글시계가 PC와 연결된 상태에서 Tool을 실행하면 Com Port가 List에 나타난다.
2. Baud Rate가 57600 인지 확인하고 (Default로 설정)
3. 해당 Com Port를 선택하고 Open Button을 Click한다.
4. Time Sync. Button을 누르면 PC 시간과 동기화 한다.
5. 시리얼 연결을 끊으려면 Close 버튼을 Click 한다.
1
2
3
4
5
한글시계 Tool과 연동하기
Tool 과 연동을 위한 기능 추가
3. 날씨 데이터 읽어오기 & Display 하기 :
- Mode Define 하고 Func. 구현
- #WR(Rainy), WH(Haze), WS(Snowy), WC(Cloudy)등
Command 처리 부분 추가
- 해당 날씨에 맞는 이미지 Display 하는 Func. 구현
- loop 문 안에 옆의 코드 추가
한글시계 Tool과 연동하기
Tool 과 연동을 위한 기능 추가
3. 날씨 데이터 읽어오기 & Display 하기 :
- Mode Define 하고 Func. 구현
- #WR(Rainy), WH(Haze), WS(Snowy), WC(Cloudy)등 Command 처리 부분 추가
- 해당 날씨에 맞는 이미지 Display 하는 Func. 구현
< 실행 순서 >
1. 한글시계와 PC가 연결된 상태(Open 버튼이 비활성화 됨)에서 도시를 선택하고,
2. Weather 버튼을 누른다.
3. 주기적(1분 주기)으로 날씨 화면(비, 눈, 구름등)이 Display된다.
4. 시리얼 연결을 끊으면 날씨를 한글시계에 표시하지 않는다.
2
1
한글시계 Tool과 연동하기
Tool 과 연동을 위한 기능 추가
4. Tool에서 편집된 이미지 데이타 읽어오기 :
- Mode Define 및 해당 Func. 구현 하기(Flash, Vertical Mode 등) : AniModeSet( Mode );
- #F, #V 등 Command 처리 부분 추가
< 실행 순서 >
- 한글시계와 PC가 연결된 상태(Open 버튼이 비활성화 됨)에서 시작한다.
1. Edit Screen에서 화면을 편집하고(최대 8개 화면까지 편집 가능),
2. Display Options에서 Flash 선택하고,
3. Send 버튼을 Click 한다.
2
3
1 1

More Related Content

Viewers also liked

컴피즈로 화려한 효과내기
컴피즈로 화려한 효과내기컴피즈로 화려한 효과내기
컴피즈로 화려한 효과내기Youngbin Han
 
데스크탑 환경 구성요소
데스크탑 환경 구성요소데스크탑 환경 구성요소
데스크탑 환경 구성요소Youngbin Han
 
Cardboard : Android 를 위한 저렴한 VR
Cardboard : Android 를 위한 저렴한 VRCardboard : Android 를 위한 저렴한 VR
Cardboard : Android 를 위한 저렴한 VRYoungbin Han
 
[NDC10] Unity Build 로 빌드타임 반토막내기 - 송창규
[NDC10] Unity Build 로 빌드타임 반토막내기 - 송창규[NDC10] Unity Build 로 빌드타임 반토막내기 - 송창규
[NDC10] Unity Build 로 빌드타임 반토막내기 - 송창규ChangKyu Song
 
Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합
Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합
Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합Youngbin Han
 
0.Before Get Started - 시온고등학교 안드로이드 스터디
0.Before Get Started - 시온고등학교 안드로이드 스터디0.Before Get Started - 시온고등학교 안드로이드 스터디
0.Before Get Started - 시온고등학교 안드로이드 스터디Youngbin Han
 
2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디
2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디
2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디Youngbin Han
 
우분투 12.04 편법으로 외장하드에 설치해보기
우분투 12.04 편법으로 외장하드에 설치해보기우분투 12.04 편법으로 외장하드에 설치해보기
우분투 12.04 편법으로 외장하드에 설치해보기Youngbin Han
 
GP Smart Digital Signage (Building)
GP Smart Digital Signage (Building)GP Smart Digital Signage (Building)
GP Smart Digital Signage (Building)David Yang
 
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디Youngbin Han
 
미래와 소통하는 창,
미래와 소통하는 창,미래와 소통하는 창,
미래와 소통하는 창,sungah Lee
 
제2회 SSSCON - 웹해킹 스터디 현황
제2회 SSSCON - 웹해킹 스터디 현황제2회 SSSCON - 웹해킹 스터디 현황
제2회 SSSCON - 웹해킹 스터디 현황Youngbin Han
 
4년치 컨닝페이퍼
4년치 컨닝페이퍼4년치 컨닝페이퍼
4년치 컨닝페이퍼totodeung
 
2016 D.LAB Recruit 160713
2016 D.LAB Recruit 1607132016 D.LAB Recruit 160713
2016 D.LAB Recruit 160713영광 송
 
Woojin LED ppt show
Woojin LED ppt showWoojin LED ppt show
Woojin LED ppt showtongtongsu
 
[NDC2014] 반응적 라이브 개발
[NDC2014] 반응적 라이브 개발[NDC2014] 반응적 라이브 개발
[NDC2014] 반응적 라이브 개발ChangKyu Song
 

Viewers also liked (20)

컴피즈로 화려한 효과내기
컴피즈로 화려한 효과내기컴피즈로 화려한 효과내기
컴피즈로 화려한 효과내기
 
데스크탑 환경 구성요소
데스크탑 환경 구성요소데스크탑 환경 구성요소
데스크탑 환경 구성요소
 
Cardboard : Android 를 위한 저렴한 VR
Cardboard : Android 를 위한 저렴한 VRCardboard : Android 를 위한 저렴한 VR
Cardboard : Android 를 위한 저렴한 VR
 
[NDC10] Unity Build 로 빌드타임 반토막내기 - 송창규
[NDC10] Unity Build 로 빌드타임 반토막내기 - 송창규[NDC10] Unity Build 로 빌드타임 반토막내기 - 송창규
[NDC10] Unity Build 로 빌드타임 반토막내기 - 송창규
 
Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합
Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합
Git&GitHub 를 이용한 버전관리와 협업 - 4.협업과 지속적 통합
 
0.Before Get Started - 시온고등학교 안드로이드 스터디
0.Before Get Started - 시온고등학교 안드로이드 스터디0.Before Get Started - 시온고등학교 안드로이드 스터디
0.Before Get Started - 시온고등학교 안드로이드 스터디
 
2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디
2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디
2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디
 
우분투 12.04 편법으로 외장하드에 설치해보기
우분투 12.04 편법으로 외장하드에 설치해보기우분투 12.04 편법으로 외장하드에 설치해보기
우분투 12.04 편법으로 외장하드에 설치해보기
 
프로젝트 Led
프로젝트 Led프로젝트 Led
프로젝트 Led
 
GP Smart Digital Signage (Building)
GP Smart Digital Signage (Building)GP Smart Digital Signage (Building)
GP Smart Digital Signage (Building)
 
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
 
미래와 소통하는 창,
미래와 소통하는 창,미래와 소통하는 창,
미래와 소통하는 창,
 
Saebit led iintro(korean)_final
Saebit led iintro(korean)_finalSaebit led iintro(korean)_final
Saebit led iintro(korean)_final
 
제2회 SSSCON - 웹해킹 스터디 현황
제2회 SSSCON - 웹해킹 스터디 현황제2회 SSSCON - 웹해킹 스터디 현황
제2회 SSSCON - 웹해킹 스터디 현황
 
IntellianSystems Digital Signage Brochure
IntellianSystems Digital Signage BrochureIntellianSystems Digital Signage Brochure
IntellianSystems Digital Signage Brochure
 
02.모의해킹전문가되기
02.모의해킹전문가되기02.모의해킹전문가되기
02.모의해킹전문가되기
 
4년치 컨닝페이퍼
4년치 컨닝페이퍼4년치 컨닝페이퍼
4년치 컨닝페이퍼
 
2016 D.LAB Recruit 160713
2016 D.LAB Recruit 1607132016 D.LAB Recruit 160713
2016 D.LAB Recruit 160713
 
Woojin LED ppt show
Woojin LED ppt showWoojin LED ppt show
Woojin LED ppt show
 
[NDC2014] 반응적 라이브 개발
[NDC2014] 반응적 라이브 개발[NDC2014] 반응적 라이브 개발
[NDC2014] 반응적 라이브 개발
 

Similar to 한글시계웍샵_SW

6. code level reversing
6. code level reversing6. code level reversing
6. code level reversingYoungjun Chang
 
I os push: 세상에서 가장 간단한 날씨, 대기환경 엡
I os push:  세상에서 가장 간단한  날씨, 대기환경 엡I os push:  세상에서 가장 간단한  날씨, 대기환경 엡
I os push: 세상에서 가장 간단한 날씨, 대기환경 엡HannaSungKim
 
Bug sense 분석
Bug sense 분석Bug sense 분석
Bug sense 분석logdog
 
피지컬 컴퓨팅 도구
피지컬 컴퓨팅 도구피지컬 컴퓨팅 도구
피지컬 컴퓨팅 도구Kisoon Eom
 
[SWCON211] LectureCode_13_Matlab Practice.pptx
[SWCON211] LectureCode_13_Matlab Practice.pptx[SWCON211] LectureCode_13_Matlab Practice.pptx
[SWCON211] LectureCode_13_Matlab Practice.pptxoreo329
 
Internship backend
Internship backendInternship backend
Internship backendYein Sim
 
Vr cctv 제작 ver1
Vr cctv 제작 ver1Vr cctv 제작 ver1
Vr cctv 제작 ver1병재 김
 
Unity Auto Build iOS
Unity Auto Build iOSUnity Auto Build iOS
Unity Auto Build iOSGiseok Lee
 
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)YEONG-CHEON YOU
 
Chapter 2. 업무 자동화를 위한 컴퓨터 세팅 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 |...
Chapter 2. 업무 자동화를 위한 컴퓨터 세팅 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 |...Chapter 2. 업무 자동화를 위한 컴퓨터 세팅 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 |...
Chapter 2. 업무 자동화를 위한 컴퓨터 세팅 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 |...Byunghyun Ban
 
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트iFunFactory Inc.
 
Tizen main loop 이해
Tizen main loop 이해Tizen main loop 이해
Tizen main loop 이해Hermet Park
 
Google hack fair 발표 20121117
Google hack fair 발표   20121117Google hack fair 발표   20121117
Google hack fair 발표 20121117영호 라
 
센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012Daum DNA
 
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법복연 이
 
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁Yi-kwon Hwang
 
[IoT] MAKE with Open H/W + Node.JS - 5th
[IoT] MAKE with Open H/W + Node.JS - 5th[IoT] MAKE with Open H/W + Node.JS - 5th
[IoT] MAKE with Open H/W + Node.JS - 5thPark Jonggun
 
Android Native Module 안정적으로 개발하기
Android Native Module 안정적으로 개발하기Android Native Module 안정적으로 개발하기
Android Native Module 안정적으로 개발하기hanbeom Park
 

Similar to 한글시계웍샵_SW (20)

6. code level reversing
6. code level reversing6. code level reversing
6. code level reversing
 
I os push: 세상에서 가장 간단한 날씨, 대기환경 엡
I os push:  세상에서 가장 간단한  날씨, 대기환경 엡I os push:  세상에서 가장 간단한  날씨, 대기환경 엡
I os push: 세상에서 가장 간단한 날씨, 대기환경 엡
 
Bug sense 분석
Bug sense 분석Bug sense 분석
Bug sense 분석
 
피지컬 컴퓨팅 도구
피지컬 컴퓨팅 도구피지컬 컴퓨팅 도구
피지컬 컴퓨팅 도구
 
[SWCON211] LectureCode_13_Matlab Practice.pptx
[SWCON211] LectureCode_13_Matlab Practice.pptx[SWCON211] LectureCode_13_Matlab Practice.pptx
[SWCON211] LectureCode_13_Matlab Practice.pptx
 
Internship backend
Internship backendInternship backend
Internship backend
 
Vr cctv 제작 ver1
Vr cctv 제작 ver1Vr cctv 제작 ver1
Vr cctv 제작 ver1
 
Unity Auto Build iOS
Unity Auto Build iOSUnity Auto Build iOS
Unity Auto Build iOS
 
Designing Apps for Motorla Xoom Tablet
Designing Apps for Motorla Xoom TabletDesigning Apps for Motorla Xoom Tablet
Designing Apps for Motorla Xoom Tablet
 
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)
 
Chapter 2. 업무 자동화를 위한 컴퓨터 세팅 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 |...
Chapter 2. 업무 자동화를 위한 컴퓨터 세팅 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 |...Chapter 2. 업무 자동화를 위한 컴퓨터 세팅 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 |...
Chapter 2. 업무 자동화를 위한 컴퓨터 세팅 | 6개월 치 업무를 하루 만에 끝내는 업무자동화 |...
 
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
[아이펀팩토리]2017 NDC 강연 자료_아이펀 엔진 개발 노트
 
Tizen main loop 이해
Tizen main loop 이해Tizen main loop 이해
Tizen main loop 이해
 
Google hack fair 발표 20121117
Google hack fair 발표   20121117Google hack fair 발표   20121117
Google hack fair 발표 20121117
 
Meteor IoT
Meteor IoTMeteor IoT
Meteor IoT
 
센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012
 
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법
 
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
 
[IoT] MAKE with Open H/W + Node.JS - 5th
[IoT] MAKE with Open H/W + Node.JS - 5th[IoT] MAKE with Open H/W + Node.JS - 5th
[IoT] MAKE with Open H/W + Node.JS - 5th
 
Android Native Module 안정적으로 개발하기
Android Native Module 안정적으로 개발하기Android Native Module 안정적으로 개발하기
Android Native Module 안정적으로 개발하기
 

More from 영광 송

디랩 채용 공고(18.7.17 ~ 채용시까지)
디랩 채용 공고(18.7.17 ~ 채용시까지)디랩 채용 공고(18.7.17 ~ 채용시까지)
디랩 채용 공고(18.7.17 ~ 채용시까지)영광 송
 
디랩 채용 공고(18.7.17 ~ 채용시까지)
디랩 채용 공고(18.7.17 ~ 채용시까지)디랩 채용 공고(18.7.17 ~ 채용시까지)
디랩 채용 공고(18.7.17 ~ 채용시까지)영광 송
 
디랩 하반기 채용 공고(2018년 7월 17일 ~ 채용시까지)
디랩 하반기 채용 공고(2018년 7월 17일 ~ 채용시까지)디랩 하반기 채용 공고(2018년 7월 17일 ~ 채용시까지)
디랩 하반기 채용 공고(2018년 7월 17일 ~ 채용시까지)영광 송
 
한글시계 부품 회로
한글시계 부품 회로한글시계 부품 회로
한글시계 부품 회로영광 송
 
Programing and Scratch
Programing and ScratchPrograming and Scratch
Programing and Scratch영광 송
 
Intuitive understading of physical computing
Intuitive understading of physical computingIntuitive understading of physical computing
Intuitive understading of physical computing영광 송
 
Intuitive Understanding of Arduino for IoT
Intuitive Understanding of Arduino for IoTIntuitive Understanding of Arduino for IoT
Intuitive Understanding of Arduino for IoT영광 송
 

More from 영광 송 (7)

디랩 채용 공고(18.7.17 ~ 채용시까지)
디랩 채용 공고(18.7.17 ~ 채용시까지)디랩 채용 공고(18.7.17 ~ 채용시까지)
디랩 채용 공고(18.7.17 ~ 채용시까지)
 
디랩 채용 공고(18.7.17 ~ 채용시까지)
디랩 채용 공고(18.7.17 ~ 채용시까지)디랩 채용 공고(18.7.17 ~ 채용시까지)
디랩 채용 공고(18.7.17 ~ 채용시까지)
 
디랩 하반기 채용 공고(2018년 7월 17일 ~ 채용시까지)
디랩 하반기 채용 공고(2018년 7월 17일 ~ 채용시까지)디랩 하반기 채용 공고(2018년 7월 17일 ~ 채용시까지)
디랩 하반기 채용 공고(2018년 7월 17일 ~ 채용시까지)
 
한글시계 부품 회로
한글시계 부품 회로한글시계 부품 회로
한글시계 부품 회로
 
Programing and Scratch
Programing and ScratchPrograming and Scratch
Programing and Scratch
 
Intuitive understading of physical computing
Intuitive understading of physical computingIntuitive understading of physical computing
Intuitive understading of physical computing
 
Intuitive Understanding of Arduino for IoT
Intuitive Understanding of Arduino for IoTIntuitive Understanding of Arduino for IoT
Intuitive Understanding of Arduino for IoT
 

한글시계웍샵_SW

  • 1. 한글시계 기본 구조 Setup Button check Time Update Display Update Serial 명령 Check Loop 함수Setup 함수 1 2 3 45
  • 2. Arduino IDE Installation 아두이노 개발 환경(IDE Integrated Development Environment) 설치 소스 개발, 컴파일, 업로드, 디버깅을 위한 어플리케이션으로 아래 공식 사이트에서 OS별로 다운로드 받아서 설치하 시면 됩니다. 공식 홈페이지 주소 http://arduino.cc/en/Main/Software OS Version 별로 해당 프로그램을 Download 받아서 설치 합니다.
  • 3. IDE 화면 기본 구성 아두이노 IDE 화면 기본 구성 설치가 완료되었으면, 아두이노 IDE를 실행하고 화면 기본 구성을 살펴 봅니다. Edit 영역 아두이노를 동작 시키기 위한 소스 Code를 입력하는 영역으로 프로 그램을 수정 및 변경하는 영역 Setup() 함수와 Loop() 함수가 위 치 한다 Compile Button 소스 코드를 Build하 기 위한 버튼 Upload Button 소스 코드를 Build + Arduino 보드에 Uplo ad 하기 위한 버튼 Serial Monitor But ton 소스 코드를 디버깅하 기 위한 메시지 창을 띄우는 버튼 Message 영영 Build, Upload 결과, 등의 개발환경을 사용 하면서 발생하는 메시 지 창 영역
  • 4. 한글 시계 라이브러리/USB Driver 설치 한글시계 Libraries 복사 -  아래 그림 파일의 경로 또는 아두이노가 설치된 폴더 아래 libraries 폴더에 다음 라이브러리들을 복사 합니다. -  라이브러리 파일(폴더)명 : LedControl, RTClib, Wire, Button 한글시계 USB Driver 설치 -  한글 시계 USB Driver(CH341)를 설치 합니다. -  드라이버 파일(CH341SER.EXE)을 실행하고 USB Driver(CH341)를 설치 합니다.
  • 5. 한글 시계 부품도 USB C able Main P CBArduino Nano B oard RTC M odule Front Main Fr ame Base
  • 6. 한글 시계 뒷면 조립도 Button RTC M odule Arduino Nano Bo ard LED Co ntrol IC 가변 저항
  • 7. 하드웨어 조립 검증 •  HW Test(HangulClock_HW_TEST.ino) 다운 로드 한 후, LED 전부 켜지는 지 확인 -> 좌 상단부터 순차적으로 켜졌다가 전부 불 켜지는 지 확인 •  보드 조립 검증 확인 -> 납땜 상태(LED, 저항, 버튼등), Socket 연결 등 확인
  • 8. 데모 •  한글 시계 Demo - 시간 설정 : Button (분/시간) - 사진 모드 - Tool과 연동 : 이미지 만들어 전송하기 : 날씨 정보 읽어 오기 : 시간 Sync. 맞추기(PC 시간과 동기화)
  • 9. 아두이노 기본 예제 배우기 아두이노 IDE 기본 예제 (LED Blink) 실행 아두이노 IDE에서 제공하는 기본 예제(LED Blink)를 선택하고 [ 파일 – 예제 – 01.Basics – Blink ]를 엽니다. 아두이노를 PC에 연결하고 [ 도구 – 보드 – Arduino Uno ]를 선택하고 프로세서는 ATmega328을 선택합니다. 아두이노가 연결된 USB 포트를 선택 합니다.
  • 10. Serial Monitor 사용하기 Serial Monitor 사용법 통신 속도 정하기 아두이노는 시리얼 포트를 통해서 PC나 Bluetooth, WiFi Module과 통신을 할 수 있습니다. 시리얼 통신을 위해서는 Baudrate라고 하는 통신 속도를 정해줘야 합니다. 기본 baudrate 는 9600bps 입니다. (프로그램에서 설정된 속도와 동일하게 맞춰야 통신이 가능합니다.) 소스 코드에 내용 추가 하기 Setup() 함수 내에서 “Serial.begin(9600);” 추가 합니다. Loop() 함수 내에서 “Serial.print(“디버그 코드”);를 추가 합니다. 시리얼 모니터 버튼을 클릭하고 Baudrate를 9600bps로 맞춰 줍니다.
  • 12. 한글시계 기본 구조 Setup Button check Time Update Display Update Serial 명령 Check Loop 함수Setup 함수 1 2 3 45
  • 13. 한글시계 자료 복사(3주차) •  아래 경로의 파일을 바탕화면에 복사 •  G:한글시계 교육자료SRC3주차
  • 14. 한글시계 LED Matrix Control 구조
  • 15. 한글시계 기본 예제 -  LED 하나 켜보기 : 예제(HangulClock_LED_ONE.ino) 다운로드 -  LED 모양 만들어 켜보기 : 하트 모양, 다이아몬드, 화살표 등 -  움직이는 모양 만들어 보기 : 화살, 하트등
  • 16. LED Control 하기 한글시계 예제( HangulClockExample ) 실행 아두이노 IDE를 실행하고 파일 – 열기 메뉴(아래 그림 참조)에서 한글 시계 예제 파일을 엽니다. 아두이노를 PC에 연결하고 [ 도구 – 보드 – Arduino Nano ]를 선택 합니다. 아두이노가 연결된 USB 포트를 선택 합니다.
  • 17. 한글시계 구조 배우기 한글시계 라이브러리 1. LEDControl (MAX7219 Matrix driver) : LED Control Driver IC 라이브러리 - LedControl.cpp, LedControl.h 2. RTClib (ds1307 Module) : RTC Module에서 시간 데이터를 읽어오기 위한 라이브러리 - RTClib.cpp, RTClib.h 3. Wire (I2C 통신) : RTC Module과 연동(통신)을 위하여 사용됨. - Wire.cpp, Wrie.h 4. Button : 특정 기능(시간/분, 모드 설정 등)을 위한 사용자와의 Interface 제공을 위한 button 라이브러리 - Button.cpp, Button.h 라이브러리 추가 방법 1.  LED Control 라이브러리 추가 : 소스 상단에 오른쪽과 같이 코드 추가한다. #include <LedControl.h>
  • 18. 한글시계 구조 배우기 기능별 동작 프로그래밍 (라이브러리 함수 사용) 1.  LED Control (Row/Colum) 라이브러리 함수 : Driver IC의 DIG(Row)/SEG(Col.) Pin들을 가로, 세로로 배열하고 교차한 Point에서 LED를 구동함. - LedControl을 위한 Instance 생성 : LedControl Ic = LedControl ( DataPin, ClockPin, CsPin, DeviceNumber ) 12th Line 참조 - setRow(int addr, int row, byte value) : Led를 켜기 위한 함수 -> REFRESH_PANEL() 매크로 35th Line 참조 - clearDisplay(int addr) : Led를 끄기 위한 함수 -> CLEAN_PANEL() 매크로 참조 39th Line 참조 - shutdown(int addr, bool b) : Driver(Max7219 IC)를 켜고, 끄기 위한 함수 -> 266th Line 참조 - setIntensity(int addr, int intensity) : Led 밝기를 조절하기 위한 함수 -> 16단계 조절(0~15) -> 267th Line 참조
  • 19. LED 제어 함수 LED 제어 함수를 이용하여 LED 제어 하기 1. _P_ON( row, column) - panel data [ ] Update 매크로 함수 - 좌표 값(row, column)에 따라 panel data 버퍼에 데이터를 저장. 2.  CLEAN_PANEL( ) - 매크로 함수로 LED를 전부 off 시킨다. (LED를 켜기 전에 불려 진다.) - panel data를 Clear 한다. - clearDisplay(0) 라이브러리 함수가 불려 진다.
  • 20. LED 제어 함수 LED 제어 함수를 이용하여 LED 제어 하기 3. REFRESH_PANEL( ) - 매크로 함수로 panel data를 참조하여 LED를 제어하는 함수(panel data가 Update된 후 불려진다.) - update한 panel data를 사용하여 LED를 켜거나 끈다. - setRow( ) 라이브러리 함수가 불려 진다. 4.  한글 시계의 LED를 제어하기 위한 2가지 방법 - Serial 명령(#L )으로 제어 : ex) #L33 - 소스 코드에서 직접 수정하여 제어 : r, c 값을 좌표값(숫자 0~4)을 입력 한다.
  • 22. RTC Module 제어 RTC Module(DS1307)에서 시간 정보 가져오기 1. 라이브러리 파일 : - RTClib.cpp/h : DS1307 Module 제어를 위한 함수가 구현되어 있는 라이브러리 파일 - Wire.cpp/h : DS1307 Module과 I2C 통신을 위한 라이브러리 파일 2.  라이브러리 함수 : 날짜와 시간을 읽어오거나, 변경하기 위한 함수 - now() : 현재 시간을 읽어와서 시간 값을 return 한다. 3.  RTC Instance 생성 - RTC_DS1307 RTC; 4. 시간 변경 함수 - set_rtc( hour, min, sec ) : 5. 한글 시계에서 시간 변경 방법 - Button 입력으로 시간을 변경 - Serial 명령으로 변경 (#S<hh><mm><ss>) 라이브러리 등록 Instance 생성 함수 선언
  • 23. Button Interface 제어 Button Short/Long Key 제어 하기 1.  라이브러리 파일 : - Button.cpp/h 2. 라이브러리 함수 : - button 제어를 위한 Instance 생성 - uniquePress() : 버튼이 처음 눌렸을때 true 리턴 - wasPressed() : 버튼이 길게 눌러 졌을때 true 리턴 3.  Button (Short/Long Key) : 시간, 분 설정 및 특정 기능(사진 모드등) 구현 - 시간/분 버튼 구현하기 : 시간/분 버튼 눌렸을때 시간/분 변경하기 - 버튼이 길게 눌려 졌을때 사진 모드로 전환하기
  • 24. 한글시계 Tool과 연동하기 Tool 과 연동을 위한 기능 추가 1.  Serial Rx Buffer 늘리기 : tool에서 전송되는 데이터가 잘리지 않도록 수신 버퍼를 64 -> 256 bytes로 수정한다 - 수정 파일 및 경로 : C:Program Files (x86)ArduinohardwarearduinoavrcoresarduinoHardwareSerial.h - #define SERIAL_RX_BUFFER_SIZE 64 ->256 RX Buffer Size만 늘려 준다
  • 25. 한글시계 Tool과 연동하기 Tool 과 연동을 위한 기능 추가 2.  시간 동기화 : - #S<hh><mm><ss> : 시리얼 명령어 처리 부분 구현 - Loop 문 안에 아래 내용 추가
  • 26. 한글시계 Tool과 연동하기 Tool 과 연동을 위한 기능 추가 2.  시간 동기화 : < 실행 순서 > 1. 한글시계가 PC와 연결된 상태에서 Tool을 실행하면 Com Port가 List에 나타난다. 2. Baud Rate가 57600 인지 확인하고 (Default로 설정) 3. 해당 Com Port를 선택하고 Open Button을 Click한다. 4. Time Sync. Button을 누르면 PC 시간과 동기화 한다. 5. 시리얼 연결을 끊으려면 Close 버튼을 Click 한다. 1 2 3 4 5
  • 27. 한글시계 Tool과 연동하기 Tool 과 연동을 위한 기능 추가 3. 날씨 데이터 읽어오기 & Display 하기 : - Mode Define 하고 Func. 구현 - #WR(Rainy), WH(Haze), WS(Snowy), WC(Cloudy)등 Command 처리 부분 추가 - 해당 날씨에 맞는 이미지 Display 하는 Func. 구현 - loop 문 안에 옆의 코드 추가
  • 28. 한글시계 Tool과 연동하기 Tool 과 연동을 위한 기능 추가 3. 날씨 데이터 읽어오기 & Display 하기 : - Mode Define 하고 Func. 구현 - #WR(Rainy), WH(Haze), WS(Snowy), WC(Cloudy)등 Command 처리 부분 추가 - 해당 날씨에 맞는 이미지 Display 하는 Func. 구현 < 실행 순서 > 1. 한글시계와 PC가 연결된 상태(Open 버튼이 비활성화 됨)에서 도시를 선택하고, 2. Weather 버튼을 누른다. 3. 주기적(1분 주기)으로 날씨 화면(비, 눈, 구름등)이 Display된다. 4. 시리얼 연결을 끊으면 날씨를 한글시계에 표시하지 않는다. 2 1
  • 29. 한글시계 Tool과 연동하기 Tool 과 연동을 위한 기능 추가 4. Tool에서 편집된 이미지 데이타 읽어오기 : - Mode Define 및 해당 Func. 구현 하기(Flash, Vertical Mode 등) : AniModeSet( Mode ); - #F, #V 등 Command 처리 부분 추가 < 실행 순서 > - 한글시계와 PC가 연결된 상태(Open 버튼이 비활성화 됨)에서 시작한다. 1. Edit Screen에서 화면을 편집하고(최대 8개 화면까지 편집 가능), 2. Display Options에서 Flash 선택하고, 3. Send 버튼을 Click 한다. 2 3 1 1