아두이노 프로그래밍
강사 : 김영준 목원대학교 겸임교수1
헬로앱스 (www.helloapps.co.kr)
1 일차 – Part1 소개 및 준비
헬로앱스 (www.helloapps.co.kr) 2
아두이노 소개
헬로앱스 (www.helloapps.co.kr)
아두이노 소개
오픈소스 소프트웨어의 대표적인 제품 (2005 년 이탈리아 )
아두이노 : 이탈리아의 왕 이름에서 유래
3
소개
Atmega328p 디지털핀
아날로그핀
헬로앱스 (www.helloapps.co.kr)
아두이노 소개
4
소개
1) 이탈리아에서 만들어진 프로젝트 결과물
• 오픈소스 하드웨어 프로젝트의 결과물
• 하드웨어 설계도가 오픈되어 있어 누구든지 만들 수 있음
2) 아두이노로 할 수 있는 것
• 각종 창작 작품 만들기
• 발명작품 만들기
• 로봇 만들기
• 디지털 예술 작품 만들기
• 과학실험 장치 만들기
https://www.helloapps.co.kr/reference/
에서 아두이노 작품 사례를 확인해 봅니다 .헬로앱스 (www.helloapps.co.kr)
아두이노 소개
아두이노 종류
5
소개
아두이노 Uno
DIP 타입 아두이노 Uno
TQFP 타입
DIP (Dual In-line Package) TQFP (Thin Quad Flat Package)
아두이노 Nano TQFP 타입 아두이노 Pro Mini
아두이노 Mega2560
헬로앱스 (www.helloapps.co.kr)
아두이노 실습 준비물
6
준비
아두이노 보드는 어떠한 제품을 사용하더라도 명령어는 동일합니다 . 교육의 목적과 편리성을 고려하여 제품을 사용하면 됩니다 .
특정 브랜드 제품에 대한 의존성은 없으며 표준화된 제품입니다 .
아두이노 우노 보드 올인원 센서 쉴드
헬로앱스 (www.helloapps.co.kr)
올인원 센서쉴드의 특징
7
준비
브레드보드 없이 센서를 바로 연결
학생들이 아두이노의 활용과 코딩에 집중할 수 있도록 함
브레드보드 및 점퍼선 연결에 따른 복잡함
브레드보드 기능을 하나로 통합
헬로앱스 (www.helloapps.co.kr)
아두이노 란 ?
8
준비
아두이노의 구성
SW 개발툴 ( 아두이노 IDE)
S/W 라이브러리
H/W 레퍼런스 보드 아두이노는 3 가지 형태의
제품들로 구성되어 있음
헬로앱스 (www.helloapps.co.kr)
아두이노 란 ?
9
준비
아두이노의 구성
SW 개발툴 ( 아두이노 IDE)
S/W 라이브러리
H/W 레퍼런스 보드
아두이노 IDE ( 통합개발 환경 )
스케치 코드 : 아두이노 IDE 로 만들어진 소스코드 결과물을
스케치 코드 라고 부름 스케치는 아두이노 개발툴 이름이 아님
헬로앱스 (www.helloapps.co.kr)
아두이노 란 ?
10
준비
아두이노의 구성
SW 개발툴 ( 아두이노 IDE)
S/W 라이브러리
H/W 레퍼런스 보드
아두이노 우노 보드가 가장 유명한 레퍼런스 하드웨어 보드임
아두이노 우노 보드가 아두이노를 의미하는 것은 아님
우노 보드는 레퍼런스 H/W 의 한 종류일 뿐이며 , 단지 가장 먼저 소개되었기 때문에 알려져 있기 때문임
헬로앱스 (www.helloapps.co.kr)
아두이노 란 ?
11
준비
아두이노의 구성
SW 개발툴 ( 아두이노 IDE)
S/W 라이브러리
H/W 레퍼런스 보드
아두이노에서 가장 중요한 핵심 요소로서 엄밀한 의미에서 아두이노는 위와 같이 SW 프로그램들로 구성되어 있는
라이브러리를 의미함
헬로앱스 (www.helloapps.co.kr)
아두이노 란 ?
12
준비
아두이노의 구성
SW 개발툴 ( 아두이노 IDE)
S/W 라이브러리
H/W 레퍼런스 보드
자신이 원하는 다양한 편집기 SW 를 선택하여 사용할 수 있음
자신이 원하는
다양한 아두이노 호환 보드를 선택하여 사용할 수 있음
아두이노 IDE, 메모장 , Notepad++, 이클립스
아두이노 우노 , 아두이노 미니 , 인텔 에디슨
헬로앱스 (www.helloapps.co.kr)
아두이노 란 ?
13
준비
아두이노의 구성
SW 개발툴 ( 아두이노 IDE)
S/W 라이브러리
H/W 레퍼런스 보드
SW 라이브러리는 반드시 아두이노의 표준을 준수해야 함
아두이노 교육 / 연수의 목적은
실질적으로 아두이노 SW 라이브러리의 활용법을 배우는 것이 핵심이며
기타 H/W 구성 및 개발툴 교육이 필요함
헬로앱스 (www.helloapps.co.kr)
아두이노 란 ?
14
준비
아두이노의 구성
SW 개발툴 ( 아두이노 IDE)
S/W 라이브러리 레퍼런스 H/W 부트로더
아두이노 통합 개발 환경 SW 를 설치하면 위의 SW 라이브러리와 H/W 에 필요한 파일들이 모두 포함되어 있음
레퍼런스 H/W USB 드라이버
헬로앱스 (www.helloapps.co.kr) 15
준비하기
헬로앱스 (www.helloapps.co.kr)
아두이노 개발툴 설치하기
16
준비
아두이노 코드 개발툴 설치 과정
헬로앱스 (www.helloapps.co.kr)
아두이노 개발툴 설치하기
17
준비
아두이노를 활용하기 위한 SW 툴 다운로드
(
고급 사용자 ) 아두이노 홈페이지에서 다운로드 하거나: www.arduino.cc 사이트에서 개발툴 다운로드 ( 개발툴 안에 USB 드라이버가 포함되어 있음 )
(
입문자 ) 아두이노 입문자용 개발툴을 다운로드 합니다 .: www.helloapps.co.kr 사이트에서 개발툴 다운로드 ( 개발툴 안에 USB 드라이버가 포함되어 있음 )
또는 www.arduino.cc
www.helloapps.co.kr
헬로앱스 (www.helloapps.co.kr)
아두이노 교육 / 연수의 목적
18
준비
아두이노 SW 라이브러리의 교육은 H/W 와 개발툴에 의존되지 않음
SW 개발툴 ( 아두이노 IDE)
S/W 라이브러리
H/W 레퍼런스 보드
SW 라이브러리는 반드시 아두이노의 표준을 준수해야 함
아두이노 교육 / 연수의 목적은
실질적으로 아두이노 SW 라이브러리의 활용법을 배우는 것이 핵심이며
기타 H/W 구성 및 개발툴 교육이 필요함
아두이노 SW 라이브러리 교육은 어떠한 개발툴을 사용하든 상관 없음
아두이노 SW 라이브러리 교육은 어떠한 아두이노 보드를 사용하든 상관 없음
헬로앱스 (www.helloapps.co.kr) 19
아두이노 입문자용 개발툴 설치하기
( 입문 사용자용 )
헬로앱스 (www.helloapps.co.kr)
입문자용 개발툴 설치하기
20
준비
1. www.helloapps.co.kr 접속후 아두이노 페이지에서 다운로드
1
2
아두이노 코딩 SW 다운로드
헬로앱스 (www.helloapps.co.kr)
입문자용 개발툴 설치하기
21
준비
SPL 폴더를 더블클릭하면 5개의 파일을 볼 수 있습니다 .
자신의 컴퓨터 OS 의 종류에 맞게 USB 드라이버를 설치해 줍니다 .
1. 설치 후 , 바탕화면에 SPL” “ 폴더가 만들어 집니다 .
2. USB 드라이버를 먼저 설치합니다 .
64 비트 OS 사용자용 32 비트 OS 사용자용
헬로앱스 (www.helloapps.co.kr)
입문자용 개발툴 설치하기
22
준비 아두이노 보드와 PC 를 USB 케이블을 통해 연결해 줍니다 .
PC
아두이노 우노 보드 및 올인원 쉴드 USB 케이블
USB 케이블을 통해 아두이노 보드를 PC 에 연결하면 , PC화면의 우측 하단에 아이콘으로 잠시 동안 새로운 장치 설치 과정이 보일 수 있습니다 . 최초 설치시에는 20~30 초 정도 장치 추가과정이 소요될 수 있습니다 .
센서 쉴드 아래에 있는 우노 보드에 USB 케이블을 연결해 줍니다 .
헬로앱스 (www.helloapps.co.kr)
입문자용 개발툴 설치하기
23
준비 아두이노 보드와 PC 를 USB 케이블을 통해 연결해 줍니다 .
헬로앱스 (www.helloapps.co.kr)
입문자용 개발툴 설치하기
24
준비 SPL 폴더에 있는 SPL for “ 아두이노 프로그램을 실행합니다 .”
USB 드라이버를 설치한 후 ,
USB 케이블을 통해 아두이노 보드와 PC를 연결한 다음 개발툴 프로그램을 실행합니다 .
헬로앱스 (www.helloapps.co.kr)
입문자용 개발툴 설치하기
25
준비
제품키 입력
제품키를 입력한 후 제품 활성화 버튼을 클릭합니다 .
헬로앱스 (www.helloapps.co.kr)
입문자용 개발툴 설치하기
26
준비
명령어 표시 언어 선택
한글 명령어 버전과 영문 명령어 버전은 동일한 툴이며 , 단지 명령어 표시 방법만 다릅 니다 .
<한글로 표시 >
명령어가 한글로 표시 <영어로 표시 >
명령어가 C언어 표기와 동일하게 표시
단기 체험용의 경우에는 한글 명령어를 권장하면
일반적인 코딩교육에서는 영문 명령어 사용을 권장합니다 .
헬로앱스 (www.helloapps.co.kr)
입문자용 개발툴 설치하기
1. 우노 보드 연결시 다음 그림과 같이
Arduino Uno
상태로 표시되고 COM 포트 가 표시되어 합니다 .27
준비
만약 COM 포트가 표시되어 있지 않다면 개발툴을 다시 실행하거나 USB 드라이버를 다시 설치해 주기 바랍니다 .
헬로앱스 (www.helloapps.co.kr)
입문자용 개발툴 설치하기
1. 표시되는 명령어를 한글 또는 영어로 변경할 수 있습니다 .
28
준비
헬로앱스 (www.helloapps.co.kr)
입문자용 개발툴 설치하기
29
준비
1. 한글 명령어 보기를 선택한 경우 명령어가 한글로 표시됩니다 .
한글 명령어 모드에서는 명령어가 한글로
표시됩니다 .
헬로앱스 (www.helloapps.co.kr)
입문자용 개발툴 설치하기
30
준비
1. 영어 명령어 보기를 산택한 경우 명령어가 C 언어에서의 명령어와 동일하게 표 시됩니다 .
영어 명령어 모드에서는 명령어가 영어로
표시됩니다 .
헬로앱스 (www.helloapps.co.kr) 31
아두이노 통합개발환경 설치하기
( 고급 사용자용 )
아두이노 IDE 설치는 옵션 사항으로서
아두이노 IDE 를 통해서 코딩을 원하는 경우에만 설치를 하면 됩니다 .
헬로앱스 (www.helloapps.co.kr)
아두이노 IDE 툴 설치하기
32
스케치 개발 툴 설치
http://www.Arduino.cc 사이트에 접속
헬로앱스 (www.helloapps.co.kr)
아두이노 IDE 툴 설치하기
33
스케치 개발 툴 설치
자동 설치 파일 (Installer) 과 수동 설치 파일 (ZIP 압축파일 ) 이 있음
위의 2 가지 모드 중에 어떠한 방법으로 설치하든 상관없음
헬로앱스 (www.helloapps.co.kr)
아두이노 IDE 툴 설치하기
34
스케치 개발 툴 설치
자동 설치 파일 (Installer) 로 설치할 경우
일반 사용자용 설치 파일로서 설치경로는 C:\Program Files\...
아래에 설치됨
USB 드라이버가 자동으로 설치됨 경로 찾기가 불편할 수 있음
초창기 때에는 자동 설치파일로 설치할 경우 , 불편한 점이 많이 있었으나 최근 툴이 많이 개선되어 이러한 문제점들이 해결되었음
헬로앱스 (www.helloapps.co.kr)
아두이노 IDE 툴 설치하기
35
스케치 개발 툴 설치
수동 설치 파일 (ZIP 압축 ) 로 설치할 경우
아두이노 라이브러리에
관심이 있는 사용자용 압축 파일로서 아무 곳이나 파일을 다운로드 받은 후 압축을 풀기만 하면 됨
USB 드라이버를 수동으로 설치해 주어야 함 경로 찾기가 쉽고 , 라이브러리 분석이
용이함
헬로앱스 (www.helloapps.co.kr)
아두이노 IDE 툴 설치하기
36
스케치 개발 툴 설치
설치 경로로 이동하거나 압축을 해제합니다 .
헬로앱스 (www.helloapps.co.kr)
아두이노 IDE 툴 설치하기
37
스케치 개발 툴 설치
USB 드라이버를 설치합니다 .
헬로앱스 (www.helloapps.co.kr)
아두이노 IDE 툴 설치하기
38
스케치 개발 툴 설치
USB 드라이버를 설치합니다 .
64 비트 OS 사용자용
32 비트 OS 사용자용
헬로앱스 (www.helloapps.co.kr)
아두이노 IDE 툴 설치하기
39
스케치 개발 툴 설치
아두이노 보드와 PC 를 USB 케이블을 통해 연결해 줍니다 .
PC
아두이노 우노 보드 및 올인원 쉴드 USB 케이블
USB 케이블을 통해 아두이노 보드를 PC 에 연결하면 , PC화면의 우측 하단에 아이콘으로 잠시 동안 새로운 장치 설치 과정이 보일 수 있습니다 . 최초 설치시에는 20~30 초 정도 장치 추가과정이 소요될 수 있습니다 .
센서 쉴드 아래에 있는 우노 보드에 USB 케이블을 연결해 줍니다 .
헬로앱스 (www.helloapps.co.kr)
아두이노 IDE 툴 설치하기
40
스케치 개발 툴 설치
아두이노 보드와 PC 를 USB 케이블을 통해 연결해 줍니다 .
헬로앱스 (www.helloapps.co.kr)
아두이노 IDE 툴 설치하기
41
스케치 개발 툴 설치
보드를 Arduino/Genuino Uno” “ 를 선택합니다 .
헬로앱스 (www.helloapps.co.kr)
아두이노 IDE 툴 설치하기
42
스케치 개발 툴 설치
시리얼 포트를 선택해 줍니다 .
헬로앱스 (www.helloapps.co.kr)
아두이노 IDE 툴 설치하기
43
스케치 개발 툴 설치
LED 점멸 예제를 선택해 줍니다 .
헬로앱스 (www.helloapps.co.kr)
아두이노 IDE 툴 설치하기
44
스케치 개발 툴 설치
오픈된 LED 점멸 예제 내용을 확인해 봅니다 .
헬로앱스 (www.helloapps.co.kr)
아두이노 IDE 툴 설치하기
45
스케치 개발 툴 설치
업로드 아이콘을 클릭합니다 .
헬로앱스 (www.helloapps.co.kr) 46
SPL 블록 코딩 툴 소개
헬로앱스 (www.helloapps.co.kr)
SPL 블록 코딩 SW 특징
47
SPL
블록 코딩 SW헬로앱스 (www.helloapps.co.kr)
SPL 블록 코딩 SW 특징
48
SPL
블록 코딩 SW헬로앱스 (www.helloapps.co.kr)
SPL 블록 코딩 SW 특징
49
SPL
블록 코딩 SW헬로앱스 (www.helloapps.co.kr)
SPL 블록 코딩 SW 특징
50
SPL
블록 코딩 SW헬로앱스 (www.helloapps.co.kr)
SPL 블록 코딩 SW 특징
51
SPL
블록 코딩 SW헬로앱스 (www.helloapps.co.kr)
SPL 블록 코딩 SW 특징
52
SPL
블록 코딩 SW헬로앱스 (www.helloapps.co.kr) 53
초보자용 아두이노
올인원 센서 쉴드
헬로앱스 (www.helloapps.co.kr)
아두이노 올인원 센서 쉴드
54
올인원 센서 쉴드
초보자용 아두이노 올인원 센서 쉴드
기존 아두이노 우노 보드
브레드 보드 브레드 보드가 필요 없는 초보자용
올인원 쉴드 - 아두이노 우노 보드 위에 장착
헬로앱스 (www.helloapps.co.kr)
아두이노 올인원 센서 쉴드
55
올인원 센서 쉴드
초보자용 아두이노 올인원 센서 쉴드
모터 2 핀 x 2 아날로그 3 핀 디지털 3 핀 I2C 4핀
시리얼 4 핀
브래드보드가 필요없는 초보자용 아두이노 보드
헬로앱스 (www.helloapps.co.kr) 56
LED 소자 연결해 보기
( 디지털 센서 연결하기 )
헬로앱스 (www.helloapps.co.kr)
디지털 센서 연결하기
57
센서 연결하기
디지털 센서 케이블
디지털 센서는
케이블이 녹색선으로 표시되어 있습니다 .
GND
VCC 또는 5V
디지털 데이터 선
헬로앱스 (www.helloapps.co.kr)
디지털 센서 연결하기
58
센서 연결하기
디지털 핀에 연결되는 부품들
디지털 버튼 LED 소자 서보모터
스피커 디지털 온습도센서 컬러 LED 바
헬로앱스 (www.helloapps.co.kr)
디지털 센서 연결하기
59
센서 연결하기
올인원 자율주행 자동차 키트에 연결된 부품 예
헬로앱스 (www.helloapps.co.kr)
디지털 센서 연결하기
60
센서 연결하기
디지털 핀 디지털 부품은 디지털
핀에 연결합니다 . 디지털 핀에는 2 번 ~ 13 번 까지
번호가 표시되어 있습니다 . (D2 ~ D13)
디지털 핀에 부품을 연결할 때에는 핀 번호를 확인해야 합니다 .
헬로앱스 (www.helloapps.co.kr)
디지털 센서 연결하기
61
센서 연결하기
디지털 핀
2 번 (D2) 13 번
(D13)
헬로앱스 (www.helloapps.co.kr)
디지털 센서 연결하기
62
센서 연결하기
디지털 13 번 핀에 LED 소자를 연결해 봅니다 . 13 번
(D13)
헬로앱스 (www.helloapps.co.kr)
디지털 센서 연결하기
63
센서 연결하기
디지털 13 번 핀에 LED 소자를 연결해 봅니다 .
13 번 (D13)
헬로앱스 (www.helloapps.co.kr)
디지털 센서 연결하기
64
센서 연결하기
디지털 13 번 핀에 LED 소자를 연결해 봅니다 .
헬로앱스 (www.helloapps.co.kr) 65
입문자용 코딩 SW 이해하기
헬로앱스 (www.helloapps.co.kr)
코딩 SW 실행하기
66
SPL for
아두이노 SPL 아두이노 편집기를 실행합니다 .
바탕화면
헬로앱스 (www.helloapps.co.kr)
코딩 SW 이해하기
67
SPL for
아두이노 왼쪽에는 명령어 목록이 있습니다 .
SPL for
아두이노헬로앱스 (www.helloapps.co.kr)
코딩 SW 이해하기
68
SPL for
아두이노 [0] 로직 명령어에는 기본 로직 구현에 필요한 공통적인 명령어가 있습니다 .
헬로앱스 (www.helloapps.co.kr)
코딩 SW 이해하기
69
SPL for
아두이노 [1] 기본 명령어에는 아두이노 라이브러리에서 제공하는 기본 명령어가 있습니다 .
헬로앱스 (www.helloapps.co.kr)
코딩 SW 이해하기
70
SPL for
아두이노 [2] 내장 명령어에는 아두이노 라이브러리에서 제공하지 않기 때문에 외부 라이브 러리를 사용하는 명령어가 있습니다 .
헬로앱스 (www.helloapps.co.kr)
코딩 SW 이해하기
71
SPL for
아두이노 블록 코드나 스크립트 코드를 저장하면 실시간으로 C 언어로 변환됩니다 .
SPL for
아두이노변환된 결과가 오른쪽에 표시됩니다 .
헬로앱스 (www.helloapps.co.kr) 72
LED 점멸하는 코드 작성하기
헬로앱스 (www.helloapps.co.kr)
LED 점멸 코드 작성해 보기
73
기본 예제 실행
기본 명령어 목록에서 [1-1-4] DigitalWriteHigh 명령어를 마우스로 드래그하여 Setup 함수 영역 안에 끌어다 놓습니다 .
마우스로 드래그하여 끌어다 놓습니다 .
헬로앱스 (www.helloapps.co.kr)
LED 점멸 코드 작성해 보기
74
기본 예제 실행
기본 명령어 목록에서 [1-1-1] Delay 명령어를 마우스로 드래그하여 이전 명령어 아래에 추가합니다 .
마우스로 드래그하여 끌어다 놓습니다 .
헬로앱스 (www.helloapps.co.kr)
LED 점멸 코드 작성해 보기
75
기본 예제 실행
기본 명령어 목록에서 [1-1-5] DigitalWriteLow 명령어를 마우스로 드래그하여 이전 명령어 아래에 끌어다 놓습니다 .
마우스로 드래그하여 끌어다 놓습니다 .
헬로앱스 (www.helloapps.co.kr)
LED 점멸 코드 작성해 보기
76
기본 예제 실행
기본 명령어 목록에서 [1-1-1] Delay 명령어를 마우스로 드래그하여 이전 명령어 아래에 추가합니다 .
마우스로 드래그하여 끌어다 놓습니다 .
헬로앱스 (www.helloapps.co.kr)
LED 점멸 코드 작성해 보기
77
기본 예제 실행
1 초간 LED 를 켜고 , 1 초간 LED 를 끄는 과정을 반복하는 코드입니다 .
헬로앱스 (www.helloapps.co.kr) 78
프로그램 실행하기
헬로앱스 (www.helloapps.co.kr)
프로그램 실행하기
79
기본 예제 실행
상단 메뉴의 가운데 있는 실행 버튼을 클릭하여 프로그램을 아두이노에 업로드 시 킵니다 .
헬로앱스 (www.helloapps.co.kr)
프로그램 실행하기
80
기본 예제 실행
작성한 프로그램에 오류가 없으면 다음과 같이 콘솔 창이 표시된 후 , 일정한 시간
이 지나고 나면 업로드가 완료되었다는 메시지를 볼 수 있습니다 .
헬로앱스 (www.helloapps.co.kr)
프로그램 실행하기
81
기본 예제 실행
디지털 13 번 핀에 연결된 LED 소자가 점멸하는 지 확인합니다 .
13 번 (D13) LED 소자가 점멸하는 지
확인