28
임베디드시스템개론 : Arduino 활용 Lecture #1 : 아두이노 플랫폼 개요 2014. 3. 12 by 김영주

임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

임베디드시스템개론: Arduino 활용

Lecture #1 : 아두이노 플랫폼 개요

2014. 3. 12 by 김 영 주

Page 2: 임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

강의 목차

강의 개요 임베디드시스템 개요 아두이노 플랫폼 실습 환경 구축 및 실습

2

Page 3: 임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

강의 개요 (1) 강의 목표 아두이노 시스템 활용임베디드 시스템의 구성 및 제어 방법 학습 모바일 컴퓨팅 및 유비쿼터스 컴퓨팅 환경의 대중화 주변의 거의 모든 사물들이 컴퓨팅 능력을 내재사물의 컴퓨팅 능력을 활용할 수 있는 프로그래밍 능력의 필요성 증대

새로운 IT 기술에 대한 이해력 증진 DIY(Do It Yourself) 자신감 배양

3

Page 4: 임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

강의 개요 (2) 강의 개요 아두이노 시스템의 다양한 활용 학습

임베디드시스템의 하드웨어 구성 이해 하드웨어 제어 프로그래밍 능력 배양

초중급의 실용적인 내용 학습 임베디드 시스템 제작을 위한 기초적인 지식에서부터 제어 프로그

램 작성 등의 내용을 쉽게 이해하고 활용할 수 있도록 수업을 진행

수업 방식 임베디드시스템 제어에 대한 이론 학습과 실습을 병행 실습은 리눅스 환경에서 C/C++ 언어 프로그래밍으로 수행

본인 스스로 MP3 Player와 같은 주변의 장치를 제작해보고 싶다면 도전해보길 바라며, 주위에서 흔히 볼 수 있는 장치를 스스로구현해봄으로써 전공에 대한 또 다른 즐거움과 자신감을 찾을수 있을 것이다.

4

Page 5: 임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

강의 개요 (3) 강의 개요 “마이크로컨트롤러 AVR Atmega-128” / 이상설 / 한빛미디어 “재미삼아 아두이노” / 심재창 외 3인 저/ 한티미디어

Arduino Tutorial Sites http://arduino.cc/hu/Tutorial/HomePage http://hacknmod.com/hack/arduino-tutorial-how-to-introduction-guide/ http://robotecture.com/shenyang/wip.html http://www.ladyada.net/learn/arduino/ http://www.jeremyblum.com/ http://tronixstuff.wordpress.com/tutorials/ http://fritzing.org

5

Page 6: 임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

강의 개요 (4) 강의 개요 Arduino Tutorial Sites (계속)

http://www.ecs.umass.edu/ece/m5/tutorials/tutorials.html http://tokage.cafe24.com/ww/ http://itp.nyu.edu/physcomp/Tutorials/Tutorials http://www.roguescience.org/wordpress/ http://www.amarino-toolkit.net/index.php/tutorials.html http://sheepdogguides.com/arduino/FA1main.htm http://transformativedesign.pbworks.com/w/page/22424429/Arduino%2

0Tutorial%20Setup http://www.planetarduino.org/?cat=37

6

Page 7: 임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

강의 개요 (5) 강의 진행 아두이노 실습키트를 활용한 실습 위주 강의

초급 수준의 하드웨어 구성 방법 이해 및 실습임베디드 시스템의 일반적인 구조 이해

하드웨어 제어 프로그래밍 실습 주요 실습에 대해 실습 보고서 작성

다양한 아두이노 프로젝트 리뷰 및 토의

아두이노 시스템과 안드로이드 스마트폰 연동

중간 및 기말 시험 : 실기 시험

7

Page 8: 임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

임베디드시스템 개요 (1) “임베디드시스템”?

VS.

8

Page 9: 임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

임베디드시스템 개요 (2) “임베디드시스템”? “a computer system designed for specific control functions withi

n a larger system, often with real-time computing constraints. It is embedded as part of a complete device often including hardware and mechanical parts.”

“시스템을 동작시키는 소프트웨어를 하드웨어에 내장하여특수한 기능만을 수행하게 되는 컴퓨터 시스템” (by Wikipedia)

상반 개념: 범용 컴퓨터시스템(General-Purpose Computer System)

9

Page 10: 임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

임베디드시스템 개요 (3) “임베디드시스템”? 모바일 컴퓨팅 및 유비쿼터스 컴퓨팅 환경 구축을 위한 근간

기술

10

Page 11: 임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

임베디드시스템 개요 (4) 임베디드시스템 응용 정보 가전 – 디지털TV, 인터넷 냉장고, 세탁기, 가정용 오디

오 시스템 정보 단말기 – 휴대폰, PDA, 영산 전화기 통신 장비 – 전화 교환기, 라우터(router), 공유기, 홈 게이트

웨어(home gateway) 게임 기기 – 소형 게임기, 지능형 장난감 항공 우주 – 비행기, 우주선, 미사일 물류, 금융, 사무기기 – POS 단말기, ATM, 프린터 차량, 교통 – 자동차, 지능형 교통 제어 시스템

11

Page 12: 임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

임베디드시스템 개요 (5) 임베디드시스템 응용

휴대폰 휴대용 게임기

디지털 TV 인터넷 냉장고 세탁기

전자사전 애완용 강아지 로봇

MP3 player

12

Page 13: 임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

임베디드시스템 개요 (5) 임베디드시스템 응용

13

Page 14: 임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

임베디드시스템 개요 (6) 임베디드시스템 분류 시스템 규모 및 OS 탑재 여부 등에 의한 분류

시스템 구성 및 개발방법론이 달라짐.

고수준 임베디드 시스템 지능형 임베디드 시스템 비교적 높은 성능의 CPU와 많은 용량의 메모리를 탑재 임베디드 리눅스 등의 임베디드 운영체제를 탑재하고 다양한 응용

프로그램을 실행 예: 스마트폰, 스마트TV, 의료장비 등

단순 임베디드 시스템 저성능의 CPU와 저용량의 메모리를 탑재 별도의 운영체제가 없이 제어 프로그램이 탑재 예: mp3 player, 도어록, 가전장비 제어장치 등

14

Page 15: 임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

아두이노 플랫폼 (1) “아두이노(Arduino)” 란? 오픈소스 하드웨어 프로토타입핑(prototyping) 플랫폼 3 가지 의미를 내포

A physical pieceof hardware

A programmingenvironment

A community& philosophy

15

Page 16: 임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

Arduino Philosophy & Communit Open Source Physical Computing Platform “open source hardware” open source: free to inspect & modify physical computing. what?

ubiquitous computing, pervasive computing, ambient intelligence, calm computing, everyware, spimes, blogjects, smart objects...

Community-built Examples wiki (the “playground”) editable by anyone Forums with lots of helpful people

16

Page 17: 임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

아두이노 하드웨어 (1) 아두이노 플랫폼 기본 구성

17

Page 18: 임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

아두이노 하드웨어 (2) AVR Atmega 8-bit microcontroller chip 사용 chip was designed to be used with C language

Arduino Mega-ADK

18

Page 19: 임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

아두이노 하드웨어 (3) Arduino Diecimila Board

• 16 kBytes of Flash program memory• 1 kByte of RAM• 16 MHz (Apple II: 1 MHz)• Inputs and Outputs• 13 digital input/output pins• 5 analog input pins• 6 analog output(PWM) pins• Completely stand-alone: doesn’t need a computer once programmed

19

Page 20: 임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

아두이노 하드웨어 (4) Arduino Mega-ADK Board

• 256 kBytes of Flash program memory• 4 kByte of EEPROM• 8 kByte of RAM• 16 MHz (Apple II: 1 MHz)• Inputs and Outputs: - 40 digital input/output pins- 16 analog input pins- 14 analog output(PWM) pins• 4’s UART(serial) port• USB Host channel

ATmega2560USB Host Channel

20

Page 21: 임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

아두이노 하드웨어 (5) 아두이노 하드웨어 변형

Lilypad Arduino Breadboard Arduino Arduino Mini

Arduino Nano

Arduino Bluetooth Arduino Ethernet Arduino Notebook

Arduino DIY

21

Page 22: 임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

아두이노 개발툴 (1) Arduino IDE

22

1. 프로젝트 생성 및 프로그램 소스 편집

2. 프로그램 컴파일

3. 프로그램 다운로드(ISP)

4. 콘솔 모니터

Function Buttons

Program Coding Area

System Message Area

Page 23: 임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

아두이노 개발툴 (2) Arduino IDE 설치

1) 아두이노 웹사이트(www.arduino.cc)에서 설치 패키지 다운로드

2) 설치 패키지의 압축을 풀어 적절한 위치에 설치

3) 환경변수 설정 및 실행 : 환경설정 파일 /root/.bashrc

23

#> pwd/root/다운로드#> mv arduino-1.0-linux.tgz /opt#> cd /opt#> tar xvfz arduino-1.0-linux.tgz

#> gedit ~/.bashrc:

PATH=/opt/arduin-1.0:$PATH:

#> source ~/.bashrc#> arduino

Page 24: 임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

아두이노 개발툴 (3) Host PC와 아두이노 보드 연결

24

lsusb명령어를이용하여 연결여부 확인 가능

Page 25: 임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

아두이노 프로그램 개발 (1) 아두이노 프로그램 개발 사이클 Make as many changes as you want Not like most web programming: edit ➝ run Edit ➝ compile ➝ upload ➝ run

25

Page 26: 임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

아두이노 프로그램 개발 (2) 아두이노 프로그램 작성 및 실행

1. Write your sketch Sketch : Arduino 보드에서 실행되는

프로그램

2. Press Compile button(to check for errors)

3. Press Upload button to program Arduino board with your sketch

26

Page 27: 임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

아두이노 프로그램 개발 (3) 예제 프로그램을 이용한 테스트 LED Blink Example Step #1 : Arduino Board 연결 Step #2 : Arduino 프로그램 실행 Step #3 : Arduino 프로그램에서의 타겟 설정

사용하는 arduino 보드 타입과 연결 포트 설정

27

Page 28: 임베디드시스템개론 - mclab.silla.ac.krmclab.silla.ac.kr/lecture/201401/es/es-arduino-lecture-01.pdf · 강의개요(1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습

아두이노 프로그램 개발 (4) 예제 프로그램을 이용한 테스트 Step #4 : LED Blink 예제 스케치 로딩

메뉴: File Examples 1.Basics Blick

Step #5 : Compile 버튼으로 스케치 컴파일링 Step #6 : Unoload 버튼으로 스케치 업로드 Step #7 : 실행 결과 확인

보드 내의 led 13이 깜박이지를 확인

28