목차 한국기술교육대학교 강사: 김 영 준 ㈜헬로앱스 http://www.helloapps.co.kr 1일차 아두이노 제어 실습 1일차 아두이노 제어 실습 2일차 스마트 디바이스 설계 및 응용 3일차 AVR C 기반의 마이크로컨트롤러 프로그래밍 4일차 마이컴 제어용 안드로이드 프로그래밍 5일차 원격 제어용 안드로이드 프로그래밍 강사: 김 영 준 ㈜헬로앱스 http://www.helloapps.co.kr
스마트 디바이스 설계 한국기술교육대학교 실생활 디바이스 제작 저절로 켜지는 무드등 컬러 LED바 잔상 패턴 표시 발광 메모장 아두이노 탁상시계 알람시계 게임 컨트롤러
스마트 디바이스 설계 한국기술교육대학교 스마트 디바이스 제작 SMS 수신 알림장치 LTE LTE 창문열기 원격 조정 (서모모터 제어) 아두이노 안드로이드 스마트폰 안드로이드 스마트폰 블루투스 온습도 원격 측정 조도 원격 측정 원격 전등 제어
한국기술교육대학교 컬러 LED바 명령어 활용
한국기술교육대학교 컬러 LED바 명령어 활용
한국기술교육대학교 컬러 LED바 명령어 활용
한국기술교육대학교 컬러 LED바 명령어 활용
컬러 LED바 한국기술교육대학교 명령어 활용 void setup() { NSBegin(8, 2) } void loop() NSClear() NSSetColor(0, 255, 0, 0) NSShow() delay(100)
한국기술교육대학교 컬러 LED바 명령어 활용
한국기술교육대학교 컬러 LED바 명령어 활용
프로젝트 실습 한국기술교육대학교 실습 - 목표 컬러바와 생수병을 이용하여 자동으로 켜지는 무드등을 설계해 봅니다. 생수병 컬러 조도센서 컬러 LED바
프로젝트 실습 한국기술교육대학교 실습 - 목표 컬러바와 아크릴 메모장을 이용하여 발광 메모장치를 만들어 봅니다. 아크릴판 컬러 LED바
프로젝트 실습 한국기술교육대학교 실습 - 목표 컬러 LED바를 허공에서 위아래로 흔들면 잔상이 표시됩니다. 아래와 같이 잔상이 표시되도록 만들어 봅니다.
한국기술교육대학교 LCD LCD 연결 LCD 빨간색 선이 바깥쪽, GND에 연결되도록 합니다.
한국기술교육대학교 LCD LCD 연결 LCD에 연결되어 있는 케이블에서 빨강색 선의 방향을 확인합니다.
LCD 한국기술교육대학교 한글은 출력되지 않습니다. LCD가 출력할 수 있는 것 - 알파벳 - 숫자 - 사용자가 만든 특수문자 (10개 까지 출력 가능) 한글은 출력되지 않습니다.
한국기술교육대학교 LCD LCD 명령어 LCD 명령어는 내장 명령어 탭에 포함되어 있습니다.
한국기술교육대학교 LCD LCD 명령어
LCD 한국기술교육대학교 LCD 명령어 설명 LCD 명령어 문자열을 LCD 창에 표시합니다. LCD 창의 모든 값을 지웁니다. LCD 창에서 문자 출력 위치(커서)를 X, Y 좌표로 이동시킵니다. LCD 창에 특수 문자를 출력합니다. 특수 문자를 생성하여 내부 저장소에 저장합니다. LCD 창에서 배경 라이트를 켭니다. LCD 창에서 배경 라이트를 끕니다.
한국기술교육대학교 LCD 명령어 추가 2-5-1 명령어를 마우스로 드래그하여 추가합니다.
한국기술교육대학교 LCD 명령어 추가 문자열 값은 “ “ 로 감싸여 있어야 합니다.
한국기술교육대학교 LCD 명령어 추가 기본 명령어 탭에 있는 기다리기 명령어를 Loop 함수 맨 아래에 추가합니다.
LCD 한국기술교육대학교 명령어 추가 기다리기 값의 숫자를 1,000에서 100으로 수정해 줍니다. 1,000은 1초를 의미하며, 따라서 100은 0.1초가 됩니다. 즉, 0.1초 간격으로 문자를 출력하게 됩니다.
한국기술교육대학교 LCD 실행 결과 HelloHelloHelloHelloHell
LCD 한국기술교육대학교 LCD 창이 어둡게 되는 것을 방지하기 위해 백바이트를 켭니다 백라이트 켜기 LCD 창이 어둡게 되는 것을 방지하기 위해 백바이트를 켭니다 백라이트를 켜는 것은 최초 한번만 해주면 되기 때문에 Setup 함수에서 실행해 줍니다.
한국기술교육대학교 LCD 백라이트 켜기
한국기술교육대학교 LCD 백라이트 켜기
한국기술교육대학교 LCD 백라이트 켜기
한국기술교육대학교 LCD 화면 지우기 LCD 초기화 명령어를 Loop 함수 맨 위에 추가해 줍니다.
LCD 한국기술교육대학교 커서를 맨 앞으로 보내기 출력 위치를 처음으로 변경해 주기 위해 “LCD 처음위치” 명령어를 LCD 초기화 명령어 아래에 추가해 줍니다.
LCD 한국기술교육대학교 문자 표시하기 Void setup() { LcdBackLight() } Void loop() LcdClear() LcdHome() LcdPrint("Hello") delay(1000)
한국기술교육대학교 LCD 센서값 표시하기
LCD 한국기술교육대학교 CDS: 600 센서값 표시하기 조도센서는 다른 말로 CDS 라고도 불립니다.
한국기술교육대학교 LCD 센서값 표시하기
LCD 한국기술교육대학교 센서값 표시하기 Void setup() { LcdBackLight() } Void loop() c = AnalogRead(0) LcdClear() LcdHome() LcdPrint("CDS: ") LcdPrint(c) delay(1000)
한국기술교육대학교 LCD 두 줄로 출력하기
LCD 한국기술교육대학교 두 줄로 출력하기 void loop() { c = AnalogRead(0) a = AnalogRead(1) LcdClear() LcdHome() LcdPrint("CDS: ") LcdPrint(c) LcdSetCursor(0, 1) LcdPrint("Distance: ") LcdPrint(a) delay(1000) }
LCD 한국기술교육대학교 특수문자 출력하기 각 문자는 5x8의 도트로 구성되며, 하나의 문자는 다음과 같이 8개의 16진수로 정의됩니다.
한국기술교육대학교 LCD 특수 문자 생성 uint8_t mychar[8] = {0x00,0x1f,0x09,0x05,0x03,0x01,0x01, 0x00}; void setup() { LcdBackLight() LcdCreateChar(0, mychar) }
LCD 한국기술교육대학교 특수 문자 표시 Void loop() { LcdClear() LcdHome() LcdPrintByte(0) delay(1000) }
LCD 한국기술교육대학교 특수 문자 생성 사례 uint8_t bell[8] = {0x4,0xe,0xe,0xe,0x1f,0x0,0x4}; uint8_t note[8] = {0x2,0x3,0x2,0xe,0x1e,0xc,0x0}; uint8_t clock[8] = {0x0,0xe,0x15,0x17,0x11,0xe,0x0}; uint8_t heart[8] = {0x00,0x0a,0x1f,0x1f,0x0e,0x04,0x00,0x00}; uint8_t duck[8] = {0x00,0x0c,0x1d,0xf,0xf,0x06,0x00,0x00}; uint8_t check[8] = {0x00,0x01,0x03,0x16,0x1c,0x08,0x00,0x00}; uint8_t cross[8] = {0x00,0x1b,0x0e,0x04,0x0e,0x1b,0x00,0x00}; uint8_t retarrow[8] = {0x01,0x01,0x05,0x09,0x1f,0x08,0x04,0x00}; void setup() { LcdBackLight() LcdCreateChar(0, mychar) }
프로젝트 실습 한국기술교육대학교 실습 - 목표 실습과제: PSD 거리 센서를 수평 막대 그래프로 표시하시오 PSD PSD
한국기술교육대학교 프로젝트 실습 실습 - 목표 실습과제: 조도 센서를 안테나 세기 기호로 표시하시오 CDS
타이머 만들기 한국기술교육대학교 millis() 함수 이해하기 아두이노 보드에 전원이 들어온 순간 부터 누적된 시간 밀리초 단위의 숫자 값 49일이 지나면 다시 0부터 시작됨
한국기술교육대학교 타이머 만들기 1) 시간읽기(millis) 함수 명령어 추가하기
한국기술교육대학교 타이머 만들기 2) 읽은 시간의 값을 출력하기
한국기술교육대학교 타이머 만들기 3) 기다리기(delay) 명령어 추가하기
한국기술교육대학교 타이머 만들기 4) 실행하기 실행 시켜 콘솔창에 표시되는 값을 확인해 봅니다.
한국기술교육대학교 타이머 만들기 1) 새파일 메뉴를 눌러 새로운 다이어그램 시작
타이머 만들기 한국기술교육대학교 2) LCD에 값을 출력하기 위한 기본 명령어들을 추가합니다. 명령어들을 추가해 놓습니다. 기다리기 명령어 값은 100 (0.1초) 으로 설정해 줍니다.
한국기술교육대학교 타이머 만들기 3) 시간읽기 (millis) 명령어를 추가해 줍니다.
한국기술교육대학교 타이머 만들기 4) LCD 창에 값을 출력하기 위해 “LCD출력” 명령어를 추가합니다.
타이머 만들기 한국기술교육대학교 5) 실행하기 현재까지 작성한 코드는 다른 이름으로 저장하여 잠시 보관할 것 실행하여 LCD창에 표시되는 경과 시간을 확인해 봅니다. 현재까지 작성한 코드는 다른 이름으로 저장하여 잠시 보관할 것
타이머 만들기 한국기술교육대학교 기존에 작성한 코드는 다른 이름으로 저장하여 잠시 보관할 것 새파일 메뉴를 눌러 새로운 다이어그램 시작
타이머 만들기 한국기술교육대학교 아날로그 키패드 센서 - 버튼을 누르면 센서값이 달라집니다. - 측정값은 0 ~ 1023 사이의 값으로 읽혀짐
타이머 만들기 한국기술교육대학교 1) 메뉴에서 “새 파일”을 클릭하여 새로운 입력창을 열어줍니다. 2) 편집기 명령어에서 아날로그 읽기 명령어를 추가해 줍니다.
한국기술교육대학교 타이머 만들기 3) 문자라인 출력 (PrintLine) 명령어를 다음 그림과 같이 추가해 줍니다.
한국기술교육대학교 타이머 만들기 4) 기다리기 명령어를 추가한 후, 숫자를 100으로 수정해 줍니다.
한국기술교육대학교 타이머 만들기 6) 센서에 있는 버튼을 눌러 보면서 변하는 센서 값을 확인합니다.
타이머 만들기 한국기술교육대학교 8) 센서 값 기록하기 센서값은 사용자 마다 다를 수 있습니다. 버튼 상태 값 버튼을 누르지 않았을 때 첫번째 버튼을 눌렀을 때 (노랑) 두번째 버튼을 눌렀을 때 (초록) 세번째 버튼을 눌렀을 때 (파랑) 네번째 버튼을 눌렀을 때 (빨강) 다섯번째 버튼을 눌렀을 때 (흰색) 센서값은 사용자 마다 다를 수 있습니다. 자신의 센서값을 각자 기록합니다.
타이머 만들기 한국기술교육대학교 7) 센서 값 기록하기 센서값은 사용자 마다 다를 수 있습니다. 버튼 상태 값 버튼을 누르지 않았을 때 1023 첫번째 버튼을 눌렀을 때 (노랑) 540 두번째 버튼을 눌렀을 때 (초록) 604 세번째 버튼을 눌렀을 때 (파랑) 675 네번째 버튼을 눌렀을 때 (빨강) 760 다섯번째 버튼을 눌렀을 때 (흰색) 880 센서값은 사용자 마다 다를 수 있습니다. 자신의 센서값을 각자 기록합니다. 본 페이지에 있는 값은 예시 값입니다.
타이머 만들기 한국기술교육대학교 1) 노랑색 버튼을 클릭하여 타이머가 다시 시작되도록 합니다. 버튼을 누르면 530 ~ 560 사이의 값이 발생 노랑색 버튼이 눌려지면 타이머가 시작되도록 프로그램을 작성해 봅니다.
한국기술교육대학교 타이머 만들기 2) 전역변수 정의를 위해 수식 명령어를 추가해 줍니다.
한국기술교육대학교 타이머 만들기 3) 수식 명령어에 다음과 같이 수식을 입력합니다. start_time = 0
한국기술교육대학교 타이머 만들기 4) 키패드 센서 값을 읽어오는 명령어를 추가해 줍니다.
타이머 만들기 한국기술교육대학교 5) If 비교 명령어와 수식을 추가해 줍니다. a0 >= 530 && a0 <= 560
한국기술교육대학교 타이머 만들기 6) 경과시간 계산하여 표시하기
한국기술교육대학교 타이머 만들기 7) 실행하기 실행한 후, 노랑색 버튼을 클릭하여 시간이 초기화 되는 지 확인합니다.
타이머 만들기 한국기술교육대학교 1) 빨강색 버튼을 클릭하여 타이머를 멈추는 기능을 구현해 봅니다. 버튼을 누르면 750 ~ 780 사이의 값이 발생 실습: 빨강색 버튼이 눌려지면 타이머가 멈추도록 프로그램을 작성해 봅니다.
00:00:00 프로젝트 실습 한국기술교육대학교 실습 - 목표 현재 시간을 표시하는 장치를 설계하시오. 시, 분, 초는 모두 2자리가 채워지도록 표시합니다. millis는 unsigned long으로 처리합니다. 중간에 계산되는 수식은 모두 unsigned long으로 캐스팅 해 줍니다. 예) t = t % ((unsigned long)3600000)
한국기술교육대학교 프로젝트 실습 실습 - 목표 아날로그 키패드를 이용하여 시간 조정 기능을 구현하시오 시간 증감 분 증감
프로젝트 실습 한국기술교육대학교 실습 - 목표 알람 시간 설정 기능을 추가하시오 시간 증감 모드 선택 분 증감 알람시 삐삐삐~ 삐삐삐~ 삐삐삐~를 5초간 울려 봅니다.