임베디드시스템개론 : Arduino 활용 Lecture #1 : 아두이노플랫폼개요 2014. 3. 12 by 김영주
강의목차 강의개요 임베디드시스템개요 아두이노플랫폼 실습환경구축및실습 2
강의개요 (1) 강의목표 아두이노시스템활용 임베디드시스템의구성및제어방법학습 모바일컴퓨팅및유비쿼터스컴퓨팅환경의대중화 주변의거의모든사물들이컴퓨팅능력을내재 사물의컴퓨팅능력을활용할수있는프로그래밍능력의필요성증대 새로운 IT 기술에대한이해력증진 DIY(Do It Yourself) 자신감배양 3
강의개요 (2) 강의개요 4 아두이노시스템의다양한활용학습 임베디드시스템의하드웨어구성이해 하드웨어제어프로그래밍능력배양 초중급의실용적인내용학습 임베디드시스템제작을위한기초적인지식에서부터제어프로그램작성등의내용을쉽게이해하고활용할수있도록수업을진행수업방식 임베디드시스템제어에대한이론학습과실습을병행 실습은리눅스환경에서 C/C++ 언어프로그래밍으로수행 본인스스로 MP3 Player 와같은주변의장치를제작해보고싶다면도전해보길바라며, 주위에서흔히볼수있는장치를스스로구현해봄으로써전공에대한또다른즐거움과자신감을찾을수있을것이다.
강의개요 (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
강의개요 (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
강의개요 (5) 강의진행 아두이노실습키트를활용한실습위주강의 초급수준의하드웨어구성방법이해및실습 임베디드시스템의일반적인구조이해 하드웨어제어프로그래밍실습 주요실습에대해실습보고서작성 다양한아두이노프로젝트리뷰및토의 아두이노시스템과안드로이드스마트폰연동 중간및기말시험 : 실기시험 7
임베디드시스템개요 (1) 임베디드시스템? VS. 8
임베디드시스템개요 (2) 임베디드시스템? a computer system designed for specific control functions withi n a larger system, often with real-time computing constraints. It i s embedded as part of a complete device often including hardwar e and mechanical parts. 시스템을동작시키는소프트웨어를하드웨어에내장하여특수한기능만을수행하게되는컴퓨터시스템 (by Wikipedia) 상반개념 : 범용컴퓨터시스템 (General-Purpose Computer System) 9
임베디드시스템개요 (3) 임베디드시스템? 모바일컴퓨팅및유비쿼터스컴퓨팅환경구축을위한근간기술 10
임베디드시스템개요 (4) 임베디드시스템응용 정보가전 디지털 TV, 인터넷냉장고, 세탁기, 가정용오디오시스템 정보단말기 휴대폰, PDA, 영산전화기 통신장비 전화교환기, 라우터 (router), 공유기, 홈게이트웨어 (home gateway) 게임기기 소형게임기, 지능형장난감 항공우주 비행기, 우주선, 미사일 물류, 금융, 사무기기 POS 단말기, ATM, 프린터 차량, 교통 자동차, 지능형교통제어시스템 11
임베디드시스템개요 (5) 임베디드시스템응용 휴대폰 전자사전 휴대용게임기 애완용강아지로봇 디지털 TV 인터넷냉장고세탁기 MP3 player 12
임베디드시스템개요 (5) 임베디드시스템응용 13
임베디드시스템개요 (6) 임베디드시스템분류 시스템규모및 OS 탑재여부등에의한분류 시스템구성및개발방법론이달라짐. 고수준임베디드시스템 지능형임베디드시스템 비교적높은성능의 CPU 와많은용량의메모리를탑재 임베디드리눅스등의임베디드운영체제를탑재하고다양한응용프로그램을실행 예 : 스마트폰, 스마트TV, 의료장비등 단순임베디드시스템 저성능의 CPU 와저용량의메모리를탑재 별도의운영체제가없이제어프로그램이탑재 예 : mp3 player, 도어록, 가전장비제어장치등 14
아두이노플랫폼 (1) 아두이노 (Arduino) 란? 오픈소스하드웨어프로토타입핑 (prototyping) 플랫폼 3 가지의미를내포 A physical piece of hardware A programming environment A community & philosophy 15
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
아두이노하드웨어 (1) 아두이노플랫폼기본구성 17
아두이노하드웨어 (2) AVR Atmega 8-bit microcontroller chip 사용 chip was designed to be used with C language Arduino Mega-ADK 18
아두이노하드웨어 (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
아두이노하드웨어 (4) Arduino Mega-ADK Board USB Host Channel ATmega2560 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 20
아두이노하드웨어 (5) 아두이노하드웨어변형 Arduino Nano Lilypad Arduino Breadboard Arduino Arduino Mini Arduino DIY Arduino Bluetooth Arduino Ethernet Arduino Notebook 21
아두이노개발툴 (1) Arduino IDE Function Buttons Program Coding Area 1. 프로젝트생성및프로그램소스편집 2. 프로그램컴파일 3. 프로그램다운로드 (ISP) 4. 콘솔모니터 22 System Message Area
아두이노개발툴 (2) Arduino IDE 설치 1) 아두이노웹사이트 (www.arduino.cc) 에서설치패키지다운로드 2) 설치패키지의압축을풀어적절한위치에설치 #> pwd /root/ 다운로드 #> mv arduino-1.0-linux.tgz /opt #> cd /opt #> tar xvfz arduino-1.0-linux.tgz 3) 환경변수설정및실행 : 환경설정파일 /root/.bashrc 23 #> gedit ~/.bashrc : PATH=/opt/arduin-1.0:$PATH : #> source ~/.bashrc #> arduino
아두이노개발툴 (3) Host PC 와아두이노보드연결 lsusb 명령어를이용하여연결여부확인가능 24
아두이노프로그램개발 (1) 아두이노프로그램개발사이클 Make as many changes as you want Not like most web programming: edit run Edit compile upload run 25
아두이노프로그램개발 (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
아두이노프로그램개발 (3) 예제프로그램을이용한테스트 LED Blink Example Step #1 : Arduino Board 연결 Step #2 : Arduino 프로그램실행 Step #3 : Arduino 프로그램에서의타겟설정 사용하는 arduino 보드타입과연결포트설정 27
아두이노프로그램개발 (4) 예제프로그램을이용한테스트 Step #4 : LED Blink 예제스케치로딩 메뉴 : File Examples 1.Basics Blick Step #5 : Compile 버튼으로스케치컴파일링 Step #6 : Unoload 버튼으로스케치업로드 Step #7 : 실행결과확인 보드내의 led 13 이깜박이지를확인 28