Chapter01 아두이노 시작
01 아두이노란?
02 아두이노 하드웨어(H/W)
03 아두이노 IDE 준비하기
04 아두이노 스케치의 기본 구성
05 아두이노 핀 살펴보기
01 아두이노란?
제어시스템(MCU 이용)
하드웨어(Hardware)
주문형 하드웨어 - 전문지식 요구, 대량생산에 적합
범용 하드웨어 - 안정성/표준화 문제, 필요한 주변 부품 설계
펌웨어(Firmware)
MCU 메모리에 저장되어 주변 장치를 제어하는 프로그램
2
01 아두이노란?
아두이노
2005년 Italy의 Massimo Banzi & David Cuatielles에 의해 개발
오픈소스 하드웨어(Open Source Hardware)
제품의 모든 것이 공개된 하드웨어(회로도, PCB 등)
아두이노 기반 개발
단순한 로봇, 온습도계, 동작감지기, 스마트홈, 로봇교육 프로그램 등
3
01 아두이노란?
아두이노 탄생 목적
전문 지식이 없는 초보자들이 쉽게 원하는 제어 장치 제작
전자공학을 쉽게 이해하기
4
01 아두이노란?
아두이노 입력
각종 센서, VR, Cds, Joystick, 버튼, 터치 등
아두이노 출력
LED, LCD, 모터, 부저 등
5
02 아두이노 하드웨어(H/W)
Arduino Uno
가장 많이 사용되는 기본적인 아두이노 보드
8bit ATmega328p 마이컴 사용
보드의 핀 배열이 표준과 같이 사용
Arduino NANO
아두이노 우노 보드와 거의 동일한 구성
USB 2.0 미니 B타입 케이블 사용
6
02 아두이노 하드웨어(H/W)
Arduino Leonardo
USB 기능 내장
8bit ATmega32u4 마이컴 사용
2개의 하드웨어 시리얼 포트 사용 가능
Arduino MEGA
8bit ATmega2560 마이컴 사용
우노 보드보다 기능과 핀 수가 많음
7
02 아두이노 하드웨어(H/W)
Arduino Due
32bit Cortex-M3 마이컴 사용
기능과 성능이 높음
핀 수가 매우 많음
전문적인 제품개발과 연구 목적으로 사용
8
02 아두이노 하드웨어(H/W)
아두이노 쉴드
아두이노 UNO 보드 또는 기타 보드 위에 층층이 쌓아서 사용
기능 확장용 보드들을 지칭 (WiFi 쉴드, Ethernet 쉴드)
특수 용도 아두이노 보드
Lily Pad(웨어러블용 특화 보드)
아두이노 FIO(Funnel IO 무선통신 특화 보드)
9
02 아두이노 하드웨어(H/W)
아두이노 보드(Arduino UNO) 살펴보기
10
03 아두이노 IDE 준비하기
아두이노 IDE 설치하기
다운로드 - 크롬(http://arduino.cc/en/software)
11
03 아두이노 IDE 준비하기
아두이노 IDE 설치하기
『JUST DOWNLOAD』클릭(다운로드)
12
03 아두이노 IDE 준비하기
아두이노 IDE 설치하기
관리자 권한으로 실행(설치) – 아두이노 설치 파일 우클릭
13
03 아두이노 IDE 준비하기
아두이노 IDE 설치하기
라이선스 동의 → [I Agree] 클릭
모든항목 선택 → [Next] 클릭
14
03 아두이노 IDE 준비하기
아두이노 IDE 설치하기
아두이노 셋업 → [Install] 클릭(장치 소프트웨어 설치)
Completed → [Close] 클릭(설치 완료)
15
03 아두이노 IDE 준비하기
아두이노 IDE 설치하기
아두이노 아이콘 더블 클릭 실행(바탕화면)
16
03 아두이노 IDE 준비하기
Blink 예제 불러오기
17
03 아두이노 IDE 준비하기
Blink 예제 보드 세팅(아두이노 우노 보드 PC와 시리얼 연결)
18
03 아두이노 IDE 준비하기
Blink 예제 포트 세팅(아두이노 우노 보드 PC와 시리얼 연결)
19
03 아두이노 IDE 준비하기
Blink 예제 컴파일
20
03 아두이노 IDE 준비하기
Blink 예제 업로드(보드 중앙의 TX/RX LED 깜빡)
21
04 아두이노 스케치의 기본 구성
스케치의 기본 구성
22
주석
- 스케치의 이름, 목적, 갱신 내용 등의 정보
- 항상 정확히 기재하는 습관
변수, 상수 라이브러리 등의 정의
- 스케치에서 사용할 전역 변수, 상수, 라이브러리 등 사전 설정이
필요한 것들 정의
설정 루틴(setup)
- 설정루틴에서는 각 핀의 인풋과 아웃풋 및 시리얼 통신 등을 설정
- Arduino가 동작할 때 최초 한 번만 실행
반복 루틴(loop)
- 무한 반복되는 루틴으로 C언어의 ‘main( )’ 함수와 동일한 기능
- 동작에 관한 스케치는 이 부분에서 작성
04 아두이노 스케치의 기본 구성
아두이노 IDE 화면 구성
23
파일명
- 새 파일을 생성시키면 우선 오늘 날짜로 표시
컴파일
- 작성한 스케치를 Arduino가 인식할 수 있는 언어로 변경
컴파일 및 업로드
- 컴파일과 업로드를 연속적으로 수행(에러가 없으면 자동 업로드)
새 스케치
- 새로운 스케치 작성
기존 스케치 열기
- 저장되어 있던 스케치 파일 열기
스케치 저장
- 현재의 스케치 저장
시리얼 모니터
- 시리얼 통신 상태를 볼 수 있는 창(Windows의 하이퍼터미널)
편집 창
- 스케치를 작성하고 편집
텍스트 콘솔
- Arduino의 상태 및 에러 메시지 출력
04 아두이노 스케치의 기본 구성
아두이노 라이브러리
다양한 센서, 모터, 모듈을 쉽게 사용할 수 있도록 지원
일반적으로 압축 파일(.ZIP)로 배포
헤더 파일 include 한 뒤 초기화 해서 사용
24
04 아두이노 스케치의 기본 구성
라이브러리 폴더
외부 라이브러리
C:\Program Files(x86)\Arduino\libraries
내부 라이브러리(기본 라이브러리)
C:\Program Files(x86)\Arduino\hardware\arduino\avr\libraries
25
04 아두이노 스케치의 기본 구성
라이브러리 매니저(라이브러리 추가)
26
04 아두이노 스케치의 기본 구성
숨겨진 main 함수
setup, loop 함수는 main 함수에서 호출
27
04 아두이노 스케치의 기본 구성
숨겨진 main 함수
main.cpp
28
05 아두이노 핀 살펴보기
아두이노 우도 보드 핀 맵
29
05 아두이노 핀 살펴보기
디지털 출력과 입력
디지털 출력
digitalWrite(LED, 1)
//int LED = 3;
디지털 입력
int buttonValue = digitalRead(BUTTON) //int BUTTON = 2;
30
05 아두이노 핀 살펴보기
아날로그 출력(PWM 출력)
아날로그 출력(PWM 출력) - ~핀번호
analogWrite(LED, 255)
//int LED = 3;
아날로그 입력
아날로그 입력
int sensorValue = analogRead(SENSOR) //int SENSOR = 0;(A0~A5)
31
06 추가 내용
전압(V)
전위가 높은 쪽과 낮은 쪽의 차이
1쿨롱(coulomb: 전하의 단위)의 전하 갖고 있는 에너지
Arduino에서는 직류 3.3[V]와 5[V] 지원
32
06 추가 내용
전류(A)
1초당 1쿨롱의 전하가 단위 면적을 통과했을 때를 1[A]로 정의
Arduino에서는 1/1000[A] 단위(mA 사용)
저항(Ω)
전류의 흐름을 방해하는 정도(색 띠나 숫자로 값 표시)
33
06 추가 내용
브레드 보드(Bread-board)
시제품 제작이나 실험용 와이어를 보드에 꽂아 사용
34