C 허경용 All Rights Reserved. 초판 1 쇄발행 2015 년 7 월 29 일 지은이허경용 펴낸이장성두 펴낸곳제이펍 출판신고 2009 년 11 월 10 일제 호 주소경기도파주시문발로 141 뮤즈빌딩 403 호 전화
|
|
- 금석 사
- 6 years ago
- Views:
Transcription
1
2 C 허경용 All Rights Reserved. 초판 1 쇄발행 2015 년 7 월 29 일 지은이허경용 펴낸이장성두 펴낸곳제이펍 출판신고 2009 년 11 월 10 일제 호 주소경기도파주시문발로 141 뮤즈빌딩 403 호 전화 / 팩스 홈페이지 / 이메일 jeipub@gmail.com 편집부이민숙, 이슬, 이주원 / 소통 기획팀민지환, 현지환 표지디자인미디어픽스 용지신승지류유통 / 인쇄한승인쇄 / 제본광우제책사 ISBN (93560) 값 30,000 원 이책은저작권법에따라보호를받는저작물이므로무단전재와무단복제를금지하며, 이책내용의전부또는일부를이용하려면반드시저작권자와제이펍의서면동의를받아야합니다. 잘못된책은구입하신서점에서바꾸어드립니다. jeipub@gmail com
3
4 02 TECH LEARNING 시리즈는대학이나학원에서의강의에알맞은구성과적절한난이도의내용으로이루어져있습니다. 이는여러분의학습여정에분명한이정표가되어줄것입니다. 이 책에 기재된 내용을 기반으로 한 운용 결과에 대해 저자, 소프트웨어 개발자 및 제공자, 제이펍 출판사는 일체의 책임을 지지 않으므로 양해 바랍니다. TM 이 책에 등장하는 회사명, 제품명은 일반적으로 각 회사의 등록 상표 ( 또는 상표 ) 이며, 본문 중에는, C, R 마크 등을 생략하고 있습니다. 이 책에서 사용하고 있는 제품 버전은 독자의 학습 시점에 따라 책의 내용과 다를 수 있습니다. 이 책에 사용한 그림은 대부분 저자가 직접 촬영하였으며, 그 외의 그림은 소유자의 허락하에 싣거나 출처를 표시하였습니다. 연습문제 해답과 예제 소스코드는 제이펍 홈페이지 ( 의 해당 도서 소개 글에서 다운로드할 수 있습니다. 단, 연습문제 번호에 아이콘이 있는 문제에 한해서 해답을 제공합니다. 이 책을 교재로 선정하신 강의자 분께는 강의교안 (ppt 파일 ) 과 이미지 파일을 제공합니다. 책의 내용과 관련된 문의사항은 저자 (hgycap@deu.ac.kr) 혹은 제이펍 출판사 (jeipub@gmail.com) 로 연락주시기 바랍니다.
5
6 강의 계획표 (두 학기용) 1 학기 1 주차 2 학기 CHAPTER 1 마이크로컨트롤러? 마이크로컨트롤러! 리뷰 1 CHAPTER 2 메모리 이야기 2 주차 CHAPTER 3 ATmega328 마이크로컨트롤러 3 주차 CHAPTER 4 ATmega328 프로그래밍 준비 CHAPTER 16 SPI 4 주차 CHAPTER 5 아두이노 프로그래밍 CHAPTER 17 I2C 5 주차 리뷰 2 CHAPTER 6 아트멜 스튜디오 설치 CHAPTER 18 컴퓨터와의 시리얼 연결 CHAPTER 7 Hello Blink 6 주차 CHAPTER 8 프로그램의 기본 구조 CHAPTER 19 7 세그먼트 표시장치 7 주차 CHAPTER 9 비트 연산자 CHAPTER 20 LED 매트릭스 8 주차 중간고사 9 주차 CHAPTER 10 시리얼 통신 CHAPTER 21 텍스트 LCD 10 주차 CHAPTER 11 버튼 입력 CHAPTER 22 키 매트릭스 11 주차 CHAPTER 12 아날로그-디지털 변환 CHAPTER 23 DC 모터와 서보 모터 12 주차 CHAPTER 13 인터럽트 13 주차 CHAPTER 14 타이머/카운터 14 주차 CHAPTER 15 PWM 15 주차 CHAPTER 24 직렬 입력 병렬 출력 레지스터 CHAPTER 25 센서 CHAPTER 26 블루투스 CHAPTER 27 EEPROM 기말고사 회색으로 표현된 2장과 27장은 설명에 많은 시간을 할애하지 않아도 될 것으로 생각되는 장 이며, 28장과 29장의 내용은 마이크로컨트롤러 강의에서 흔히 다루지는 않는 내용이므로 강 의에서는 생략할 수 있다. 한 학기 강의를 위한 강의 계획의 예는 다음과 같다. vi 강의를 위한 안내
7 강의 계획표 (한 학기용) 주제 해당 장 1 주차 마이크로컨트롤러 소개 CHAPTER 1 CHAPTER 2 2 주차 ATmega328 CHAPTER 3 CHAPTER 4 CHAPTER 5 3 주차 프로그램의 기본 구조 CHAPTER 7 CHAPTER 8 4 주차 시리얼 통신 I CHAPTER 10 5 주차 디지털 데이터 입출력 CHAPTER 9 CHAPTER 11 6 주차 아날로그 데이터 입출력 CHAPTER 12 CHAPTER 15 7 주차 시리얼 통신 II CHAPTER 16 CHAPTER 17 CHAPTER 18 8 주차 중간고사 9 주차 7 세그먼트 표시장치 CHAPTER 주차 LED 매트릭스 CHAPTER 주차 텍스트 LCD CHAPTER 주차 DC 모터와 서보 모터 CHAPTER 주차 센서 CHAPTER 주차 블루투스 CHAPTER 주차 기말고사 강의 보조자료 제이펍 홈페이지 의 해당 도서 소개 글에서 다음과 같은 강의 보조자료를 다운로드할 수 있습니다. 강의노트 소스코드 저자가 작성한 pptx 형태의 강의자료 및 이미지 파일* 예제 소스코드 연습문제 해답 기호로 표시된 연습문제의 해답 이외에 강의에 참고할 만한, 혹은 혼자 공부하는 독자들을 위한 웹사이트를 소개합니다. 네이버 카페 아두이노 상상을 스케치하다(저자 운영) * 표시의 보조자료는 교수 및 강사에게만 별도로 제공됩니다. 강의 보조자료를 제공받길 원하는 분께서는 제이펍 출판사 (jeipub@gmail.com)로 연락주시길 바랍니다. 강의를 위한 안내 vii
8 강의를위한안내머리말장별안내베타리더후기 v xiv xvi xxii I. ATmega328 프로그래밍준비하기 CHAPTER 1 CHAPTER 2 CHAPTER 마이크로컨트롤러란무엇인가? 마이크로프로세서? 마이크로컨트롤러? 마이크로컨트롤러는어디에사용할수있을까? 마이크로컨트롤러를어떻게공부해야할까? 주변장치와어떻게데이터를교환하나? 프로그램은어떻게만들어지나? 마이크로컨트롤러가꼭필요한가? 요약 ATmega328 의메모리 ROM과 RAM ROM은정말읽을수만있나? 플래시메모리 SD 카드 emmc SSD DRAM과 SRAM 요약 ATmega AVR ATmega328 소개 ATmega328 의핀배치 레지스터 ATmega328 의메모리 요약 viii 차 례
9 CHAPTER 4 CHAPTER 5 CHAPTER 6 CHAPTER 7 CHAPTER 8 CHAPTER 9 ATmega 왜 ATmega328 인가? ATmega328 프로그래밍을위한하드웨어 ATmega328 프로그래밍을위한소프트웨어 요약 아두이노통합개발환경설치 아두이노우노에시리얼방식으로업로드하기 아두이노우노에 ISP 방식으로업로드하기 부트로더굽기 브레드보드기본회로에부트로더굽기 요약 아트멜스튜디오 아트멜스튜디오설치 요약 Hello Blink C 스타일 아두이노스타일 C 스타일대아두이노스타일 요약 C 스타일프로그램의구조 아두이노스타일프로그램의구조 C 스타일과아두이노스타일 요약 포트? 핀? 개의 LED 제어하기 비트연산자 비트패턴만들기 요약 차 례 ix
10 II. ATmega328 프로그래밍시작하기 CHAPTER 10 CHAPTER 11 CHAPTER 12 CHAPTER 13 CHAPTER UART UART 통신을위한레지스터 아두이노의시리얼통신 UART 라이브러리만들기 문자열수신및처리 printf 함수사용하기 요약 풀업저항과풀다운저항 버튼입력 디바운스 디바운스회로 요약 ATmega328 의 ADC 가변저항값읽기 AD 변환을위한레지스터 아두이노의 AD 변환 가변저항으로 LED 제어하기 VCC는 5V인가? 난수생성 요약 폴링대인터럽트 인터럽트 인터럽트처리 인터럽트사용에서의주의사항 외부인터럽트 핀변화인터럽트 요약 타이머 / 카운터 오버플로인터럽트 245 x 차 례
11 14.3 비교일치인터럽트 파형출력 아두이노의타이머 요약 CHAPTER 15 CHAPTER 16 CHAPTER 17 CHAPTER 18 PWM PWM PWM 모드 PWM을이용한 LED 밝기제어하기 아두이노의 PWM 요약 SPI SPI SPI 방식의 EEPROM 아두이노에서 25LC010A 사용하기 요약 I2C I2C DS1307, RTC 칩 아두이노 Wire 라이브러리 아두이노 RTClib 라이브러리 요약 ATmega328 의 UART 통신 RS232-UART 변환기 USB-UART 변환기 컴퓨터의시리얼포트 요약 III. ATmega328 활용하기 CHAPTER 한자리 7 세그먼트표시장치 한자리 7 세그먼트표시장치 아두이노스타일 네자리 7 세그먼트모듈 358 차 례 xi
12 19.4 네자리 7 세그먼트표시장치 아두이노스타일 요약 CHAPTER 20 CHAPTER 21 CHAPTER 22 CHAPTER 23 CHAPTER 24 LED LED 매트릭스 LED 매트릭스제어 LED 매트릭스제어 아두이노스타일 요약 LCD 텍스트 LCD 비트모드텍스트 LCD 제어 비트모드텍스트 LCD 제어 텍스트 LCD 제어 - 아두이노스타일 요약 키매트릭스 키매트릭스 키매트릭스 아두이노스타일 키패드라이브러리 고스트현상이없는키매트릭스 요약 DC 모터 DC 모터 모터제어 서보모터 서보모터제어 아두이노의서보모터제어 요약 아두이노에서 사용하기 요약 xii 차 례
13 CHAPTER 25 CHAPTER 26 CHAPTER 27 CHAPTER 28 CHAPTER 온도센서 초음파거리센서 요약 블루투스모듈설정 스마트폰설정 블루투스통신 아두이노의블루투스통신 요약 EEPROM EEPROM 레지스터 EEPROM 라이브러리 GNU 라이브러리 EEPROM 라이브러리 아두이노스타일 요약 워치독타이머를위한레지스터 워치독타이머사용하기 워치독타이머사용하기 아두이노스타일 요약 하이퓨즈 로퓨즈 확장퓨즈 퓨즈프로그래밍 요약 ATmega 미주 531 찾아보기 534 필요부품리스트 543 차 례 xiii
14 아두이노가첫선을보인후 10여년의시간이지나면서아두이노는비전공자들도사용할수있는마이크로컨트롤러보드로그자리를확고히하고있다. 아두이노의공개된하드웨어는손쉽게다양한기능을사용해볼수있는확장보드와쉴드의출시를이끌어냈다. 또한이해하고기억하기어려운이름들을숨긴간단한소프트웨어개발환경을제공함으로써잠깐의검색만으로도상상할수있는대부분의것들이이미아두이노를통해만들어지고있음을확인할수있으며, 상상이상의것들이아두이노를통해진행되고있음을발견하게될지도모른다. 이처럼아두이노가어른들을위한장난감으로자리잡게된이유는, 한마디로아두이노가쉽기때문이다. 아두이노를처음접할때만들어보게되는 Blink의경우전자회로에대한지식이없다하더라도 30분이면 LED가깜빡거리는것을확인할수있다. 하지만쉽다는것에는함정이있다. 아두이노가쉽고빠르게마이크로컨트롤러를사용하여상상하는것들을만들어볼수있다는장점만있다면모두가아두이노를사용해야겠지만실상은그렇지않다. 이유가무엇일까? 여러가지이유가있지만, 첫번째이유는아두이노로마이크로컨트롤러의모든기능을사용할수없다는점이다. 아두이노소프트웨어는추상화된함수를특징으로하고있지만여러이유로마이크로컨트롤러의모든기능을추상화해서제공하지는않는다. 마이크로컨트롤러에서흔히사용되지만아두이노에서는제공하지않는인터럽트와타이머 / 카운터등이그예에속한다. 물론검색을통해이들기능을사용할수있도록해주는라이브러리를찾을수있긴하나여전히모든기능을사용할수는없다. 또다른이유는아두이노의장점인추상화된함수들에서연유한다. 추상화된함수들은비전공자도쉽게마이크로컨트롤러의세계로끌어들이는일등공신인것은사실이지만, 추상화된함수들만을사용하다보면그이면에서벌어지고있는실제마이크로컨트롤러의동작 xiv 머리말
15 을이해할수있는기회를잃어버릴수있다. 물론모든사람이마이크로컨트롤러의세세한동작을이해할필요는없다. 하지만마이크로컨트롤러에관심이있다면마이크로컨트롤러의구조와동작원리를이해하여야만마이크로컨트롤러의모든기능을사용해볼수있다. 마지막으로한가지더언급하자면아두이노개발환경의기능이너무제한적이라는점이다. 아두이노개발환경은한두번의클릭만으로스케치를업로드해서실행시켜볼수있는간단한구조에그장점이있다. 하지만불편한편집기와 C/C++ 와는다른소스코드관리방식등프로그래밍에경험이있는독자라면누구나아두이노개발환경에토로할불만이한두가지는있을것이다. 게다가아두이노는디버깅기능을지원하지않는다. 간단한스케치라면모르겠지만, 스케치의크기가조금만커진다면디버깅기능없이버그를찾아내는것이쉽지만은않다. 이책은아두이노방식의추상화된스케치작성방법과 C/C++ 언어를사용한전통적인프로그램작성방법을비교함으로써아두이노를넘어마이크로컨트롤러에대한이해를높이고다양한기능을활용할수있는연결고리를제공하기위해쓰였다. 이를위해이책에서는 ATmega328 마이크로컨트롤러의모든기능을사용할수있는아트멜스튜디오를사용하였으며, ATmega328 마이크로컨트롤러의기본적인동작방식과흔히사용되는주변장치를제어하는방법을전통적인 C 스타일과아두이노스타일을비교하여다루었다. 단점만을이야기해서아두이노에좋지않은인상을가졌을지도모르겠지만, 이책을쓰면서아두이노가여러가지단점에도불구하고얼마나좋은개발환경인지새삼느낄수있었다. 하지만아두이노는마이크로컨트롤러의세계로이끌어줄수는있지만, 그깊은곳을탐색할수있는도구를제공해주지는않는다는점또한사실이므로이책을통해아두이노를넘어서고자하는독자들에게칼한자루를권하려한다. 하지만아직칼은무디다. 이책에서다루는마이크로컨트롤러의기능들은실제사용할수있는기능의절반에미치지못한다. 아직탐험해야할미지의영역은무궁무진하다. 이책을통해전가의보도로벼릴수있는, 작지만의미있는한발을내디딜수있기를소망한다. 지은이 머리말 xv
16 I. ATmega328 프로그래밍준비하기 CHAPTER 1 마이크로컨트롤러? 마이크로컨트롤러! 마이크로컨트롤러란중앙처리장치에주변장치들을하나의칩으로집적하여만든특수목적용소형컴퓨터를말한다. 이장에서는마이크로컨트롤러와일반적으로컴퓨터에서사용되는마이크로프로세서의차이점을살펴보고, 마이크로컨트롤러로할수있는것과할수없는것을살펴본다. 또한마이크로컨트롤러를위한프로그램개발방법을살펴본다. CHAPTER 2 메모리이야기마이크로컨트롤러는디지털컴퓨터의일종이므로프로그램을실행시키기위해서는메모리가반드시필요하다. 이장에서는컴퓨터와마이크로컨트롤러에서사용되는메모리의종류와특징을살펴보고, 다양한메모리의관계를살펴본다. 또한 ATmega328 마이크로컨트롤러에포함되어있는메모리의종류와특성을살펴본다. CHAPTER 3 ATmega328 마이크로컨트롤러 ATmega328 은아두이노보드중기본이되는아두이노우노에사용된마이크로컨트롤러이다. 이장에서는 ATmega328 의핀및기능, 메모리구조와주소체계등프로그램작성을위해필요한 ATmega328 마이크로컨트롤러의기본구조를살펴본다. CHAPTER 4 ATmega328 프로그래밍준비 ATmega328 은아두이노우노에사용된마이크로컨트롤러로서전원만주어지면컴퓨터와마찬가지로동작한다. 이장에서는 ATmega328 을동작시키기위한기본적인회로를구성하여마이크로컨트롤러의동작을살펴본다. 또한 ATmega328 을위한프로그램을작성하기위해사용할수있는개발환경을살펴본다. xvi 장별 안내
17 CHAPTER 5 아두이노프로그래밍 ATmega328 은아두이노환경에서프로그래밍이가능하다. 이장에서는아두이노개발환경을설치하는방법을살펴보고, 아두이노환경에서프로그램을업로드하는두가지방법인 ISP 방식과시리얼방식을비교하여살펴본다. 또한시리얼방식의프로그램업로드를위해아두이노에서사용하는부트로더를굽는방법을살펴본다. CHAPTER 6 아트멜스튜디오설치아트멜스튜디오는아트멜에서자사의마이크로컨트롤러를위한프로그램을작성할수있도록무료로제공하는통합개발환경이다. 이장에서는아트멜스튜디오를설치하는방법과아트멜스튜디오의사용자인터페이스에대해살펴본다. 또한아트멜스튜디오를최신상태로유지하기위한아트멜스튜디오의업데이트방법을살펴본다. CHAPTER 7 Hello Blink 아트멜스튜디오는 C 스타일의프로그램뿐만아니라애드온설치를통해아두이노스타일의프로그램도작성할수있다. 이장에서는 C 스타일과아두이노스타일의프로젝트를생성하는방법과생성된프로젝트를컴파일하여마이크로컨트롤러에업로드하는방법을살펴본다. 또한디버깅기능이없는아두이노를위해디버깅용도로사용할수있는시리얼모니터의사용방법을살펴본다. CHAPTER 8 프로그램의기본구조아두이노는 C/C++ 를기본으로하지만, 프로그래밍을직관적으로할수있도록 main 함수를제거하고 setup 과 loop 함수를기본으로하고있다. 이장에서는 C 스타일과아두이노스타일프로그램의기본구조를비교하여살펴본다. 또한마이크로컨트롤러프로그램의기본이되는데이터입출력을위한 C 스타일의기본레지스터인 DDRx, PORTx, PINx 레지스터와아두이노스타일에서이에대응하는기본함수인 pinmode, digitalwrite, digitalread 함수를살펴본다. CHAPTER 9 비트연산자 ATmega328 에서데이터입출력은 8비트크기의포트단위로이루어지지만, 비트단위로그의미가정의되고비트단위로제어되어야하는경우를흔히볼수있다. 이장에서는비트단위로데이터를조작하기위한 C 언어의비트연산자를살펴보고, 비트연산자를사용하는기본연산방법을살펴본다. 장별 안내 xvii
18 II. ATmega328 프로그래밍시작하기 CHAPTER 10 시리얼통신마이크로컨트롤러는입출력핀의개수가제한되어있어병렬통신보다는시리얼통신이선호된다. 이장에서는시리얼통신방법중에서가장오래된역사를가지고있는 UART 시리얼통신방법을살펴본다. 또한 UART 시리얼통신을위한함수들을재사용이가능하도록라이브러리형태로만드는방법을살펴본다. CHAPTER 11 버튼입력마이크로컨트롤러는디지털데이터입출력을기본으로한다. 이장에서는디지털입출력을위한기본레지스터인 DDRx, PINx, PORTx 레지스터를살펴본다. 또한디지털데이터를입력하기위해버튼을사용하는경우오픈된회로를방지하기위한풀업및풀다운저항사용방법과버튼의기계적특성으로발생하는채터링현상을제거하기위한방법을살펴본다. CHAPTER 12 아날로그 -디지털변환마이크로컨트롤러가디지털데이터를기본으로하지만아날로그데이터의경우아날로그 -디지털변환기 (ADC) 를통해디지털데이터로변환하여읽어들일수있다. 이장에서는 ATmega328 의 ADC 구조를살펴보고, ADC를통해아날로그데이터를처리하는방법을살펴본다. 또한아두이노에서제공하는 analogread 함수를통해 ADC를사용하는방법을살펴본다. CHAPTER 13 인터럽트일정시간간격으로처리가필요한작업을진행하기위해마이크로컨트롤러에서는폴링방식과인터럽트방식을사용할수있다. 이장에서는두가지방식중정확한타이밍조절이가능한인터럽트방식을폴링방식과비교하여살펴보고인터럽트처리를위한인터럽트벡터테이블의구조를살펴본다. 또한아두이노에서인터럽트처리를위해제공하는함수들을살펴본다. CHAPTER 14 타이머 / 카운터타이머 / 카운터는펄스의개수를세는장치로, 마이크로컨트롤러에공급되는클록의개수를통해시간측정역시가능하다. 이장에서는타이머 / 카운터의구조에대해살펴보고타이머 / 카운터를통해인터럽트를사용하는방법을살펴본다. 또한아두이노에서타이머 / 카운터를사용하는확장라이브러리중하나인 MsTimer2 라이브러리의사용방법을살펴본다. xviii 장별 안내
19 CHAPTER 15 PWM ATmega328 로아날로그신호출력은불가능하지만아날로그신호와유사한효과를내는펄스폭변조 (PWM) 신호출력은가능하다. 이장에서는타이머 / 카운터를이용하여 PWM 신호를생성하는방법과 PWM 신호의특성을살펴본다. 또한아두이노에서제공하는 PWM 신호생성함수인 analogwrite 함수를살펴본다. CHAPTER 16 SPI SPI(Serial Peripheral Interface) 는마이크로컨트롤러에서흔히사용되는시리얼통신방법중하나로, 고속의데이터전송에주로사용된다. 이장에서는 SPI 통신을통해시리얼통신을수행하는방법과 SPI 통신을사용하는외장 EEPROM 을제어하는방법을살펴본다. 또한아두이노에서 SPI 통신을위해제공하는 SPI 라이브러리와외장 EEPROM 제어를위한확장라이브러리의사용방법을살펴본다. CHAPTER 17 I2C I2C(Inter Integrated Circuit) 는마이크로컨트롤러에서흔히사용되는시리얼통신방법중하나로저속의데이터전송에주로사용된다. 이장에서는 I2C 통신을통해시리얼통신을수행하는방법과 I2C 통신을사용하는 RTC(Real Time Clock) 칩을제어하는방법을살펴본다. 또한아두이노에서 I2C 통신을위해제공하는 Wire 라이브러리와 RTC 제어를위한확장라이브러리의사용방법을살펴본다. CHAPTER 18 컴퓨터와의시리얼연결 ATmega328 은다양한방법으로컴퓨터와연결하여시리얼통신을수행할수있다. 이장에서는마이크로컨트롤러와컴퓨터를 RS232, UART, USB 등으로연결하고시리얼통신을수행하는방법을살펴본다. 마이크로컨트롤러와컴퓨터는여러가지방법으로연결될수있지만실제통신방식에서는약간의차이가있으므로시리얼통신을위해필요한변환장치들을살펴본다. III. ATmega328 활용하기 CHAPTER 19 7 세그먼트표시장치 7 세그먼트표시장치는 8개의 LED를숫자나간단한문자를표시할수있도록배치하여만들어진표시장치의일종이다. 이장에서는공통양극및공통음극방식 7 세그먼트표시장치의구조와제어방법을비교하여살펴본다. 또한네자리 7 세그먼트표시장치를제어하기위해잔상효과를이용하는방법과다양한정보를표시하는방법을살펴본다. 장별 안내 xix
20 CHAPTER 20 LED 매트릭스 LED 매트릭스는 LED를행렬형태로배열한표시장치로도트단위의제어가가능하여다양한내용을표시할수있다. LED 매트릭스는네자리 7 세그먼트표시장치와마찬가지로잔상효과를이용하여제어한다. 이장에서는 LED 매트릭스에서 LED의배열에따른양극방식과음극방식의차이를살펴보고, 행단위또는열단위스캔을통해 LED 매트릭스를제어하는방법을살펴본다. CHAPTER 21 텍스트 LCD 텍스트 LCD는문자단위의정보를표시하기위해사용되는출력장치의일종으로문자열표시를위해흔히사용된다. 이장에서는텍스트 LCD의구조및제어방법과다양한정보를텍스트 LCD에표시하는방법을살펴본다. 또한아두이노의기본라이브러리중하나로텍스트 LCD를제어하기위해사용되는 LiquidCrystal 라이브러리의사용방법을살펴본다. CHAPTER 22 키매트릭스키매트릭스는적은수의디지털핀을사용하여많은수의핀입력을받아들일수있는방법중하나로, LED 매트릭스의행또는열단위스캔과기본적으로동일한방식이사용된다. 이장에서는키매트릭스를구성하는방법과키매트릭스사용에서발생하는문제점및이를해결하는방법을살펴본다. 또한아두이노에서키매트릭스를제어하기위해사용할수있는확장라이브러리의사용방법을살펴본다. CHAPTER 23 DC 모터와서보모터모터는움직이는장치를구현하기위해필수적인부품중하나로, 360 를회전하는 DC 모터와일정각도범위에서만움직이는서보모터가마이크로컨트롤러와흔히사용된다. 이장에서는모터드라이버를사용하여 DC 모터를제어하는방법과 PWM 신호를사용하여서보모터를제어하는방법을살펴본다. 또한아두이노의기본라이브러리중하나로서보모터제어에사용되는 Servo 라이브러리의사용방법을살펴본다. CHAPTER 24 직렬입력병렬출력레지스터 직렬입력병렬출력레지스터는적은수의디지털핀으로많은수의디지털출력을사용하기위해흔히사용된다. 이장에서는 칩의구조와제어방법을살펴보고, 칩을통해많은수의 LED를제어하는방법을살펴본다. 또한여러개의 칩을사용하여출력을확장하는방법을살펴본다. xx 장별 안내
21 CHAPTER 25 센서센서는다양한물리량을전기적인신호로변환하는장치로주변환경과상호작용하기위해마이크로컨트롤러의입력장치로흔히사용된다. 이장에서는아날로그데이터를출력하는온도센서와디지털데이터를출력하는초음파거리센서를통해데이터를획득하고이를처리하여처리결과에따라주변환경과상호작용하는시스템구축방법을살펴본다. CHAPTER 26 블루투스블루투스는 RS232 의유선연결을대체하기위해만들어진근거리무선통신표준중하나로최근스마트폰의보급에힘입어사용이증가하고있다. 이장에서는블루투스모듈을마이크로컨트롤러에연결하여설정하는방법과스마트폰에서마이크로컨트롤러와통신하기위한블루투스설정방법을살펴본다. 또한마이크로컨트롤러와스마트폰사이에무선통신을통한원격제어방법을살펴본다. CHAPTER 27 EEPROM 마이크로컨트롤러에는작은크기의비휘발성메모리인 EEPROM 이포함되어있다. EEPROM 은쓰기속도가느린단점이있지만, 비휘발성이라는특징으로프로그램의설정등을기록하기위해흔히사용된다. 이장에서는 ATmega328 에포함되어있는 EEPROM 을제어하는방법과아두이노에서내장 EEPROM 을제어하기위해제공하는 EEPROM 라이브러리의사용방법을살펴본다. CHAPTER 28 워치독타이머워치독타이머는다양한원인으로시스템에오류가발생하거나무한루프에빠지는등시스템이정상적으로동작하지않을때시스템을리셋시켜다시시작하도록하는기능을담당한다. 이장에서는 WinAVR 에서제공하는 WDT(WatchDog Timer) 라이브러리를이용하여워치독타이머를설정하고사용하는방법을살펴본다. CHAPTER 29 퓨즈비트 ATmega328 에는마이크로컨트롤러의동작환경을설정하기위해 3 바이트의메모리가존재하며, 이를퓨즈라고한다. 퓨즈는세가지, 즉확장퓨즈, 하이퓨즈, 로퓨즈로나뉘며, 퓨즈의각비트들은마이크로컨트롤러의특정기능을제어한다. 이장에서는퓨즈비트의의미와설정방법을살펴보고, 퓨즈설정과관련된하드웨어및소프트웨어도구들의사용방법을살펴본다. 장별 안내 xxi
22 Atmel Studio 6에대한설명이 Atmel Studio 6 유저가이드 라고연상될만큼자세하고꼼꼼하게기록된책입니다. 그뿐만아니라아두이노사용법모두가들어있다고해도과언이아니네요. ATmega128 을통해마이크로컨트롤러에입문한학생으로서 ISP 방식과시리얼방식을비교하는방식은 AVR 복습을하면서아두이노코드를자연스럽게이해할수있어서많은도움이되었습니다. 전공자나비전공자할것없이 ATmega328 프로그래밍에관심이있거나공부하고싶은사람이처음접하기에좋은책으로보입니다. 하지만어느정도어려움이있을수밖에없는주제라설명을제대로이해하기위해노력해야할것입니다. 주제별로개념과코드등에대한설명이자세하게되어있어서이해하기가쉬웠고, 연습문제를통하여배운내용을복습하고응용력을키울수있었습니다. 책의두께를보고두려워하지말고독자여러분도아두이노와아트멜스튜디오에과감히빠져보기를바랍니다. 새로나온 Atmel Studio 6의사용법과그문법에관하여자세히나와있고, 이를아두이노코딩과비교하여설명하고있어서쉽게이해할수있었습니다. 아두이노와 AVR 코딩을더욱심화하여학습할수있는좋은기회였던것같습니다. xxii 베타리더 후기
23 ATmega328 컨트롤러를이용하여아두이노스타일과 C 스타일의코딩방법을비교하면서서로의장단점을파악할수있었습니다. C 스타일코딩방식을통해레지스터를다루는방법이상세히설명되어있어서어려움없이이해할수있었고, 레지스터를조작하여제어하는방법을보면서는컨트롤러가어떻게동작하는지를알게되었습니다. 또한, 기본적인회로구성및설명이포함되어있어서하드웨어적인부분에서도적잖은도움이되었습니다. 아두이노를이제막접하시는분들은 아두이노상상을스케치하다 라는도서를먼저읽어보기를추천합니다. 그러고나서이책을보시면더쉽고재미있게아두이노프로그래밍을배울수있을겁니다. 아트멜스튜디오를설치하는것을시작으로누구나따라할수있도록설명이잘되어있습니다. 특히주변장치들을연결하는회로도가이해하기쉽게잘그려져있어서비전공자라도쉽게따라해볼수있을것같고, 마이크로컨트롤러의동작원리가자세하게설명되어있어서이책만제대로공부한다면마이크로컨트롤러를능숙하게다룰수있으리라봅니다. ( 이책의베타리더는동의대학교학부생과대학원생으로구성되었음을알려드립니다.) 제이펍은책에대한애정과기술에대한열정이뜨거운베타리더들로하여금출간되는모든서적에사전검증을시행하고있습니다. 베타리더 후기 xxiii
24
25 P A R T I ATmega328 프로그래밍준비하기
26
27 CHAPTER 1 마이크로컨트롤러? 마이크로컨트롤러! 학습목표 } } } } } } 마이크로컨트롤러의개념이해하기마이크로프로세서와마이크로컨트롤러의차이이해하기마이크로프로세서의장단점이해하기마이크로프로세서의용도이해하기시리얼통신방법과종류이해하기마이크로컨트롤러를위한프로그램개발방법이해하기 1.1 이책을읽고있다면마이크로컨트롤러에관심이있는독자임에틀림없으리라생각한다. 우선마이크로컨트롤러가무엇인지이야기하기전에마이크로컨트롤러가무엇이라고생각하는지스스로에게질문을던져보자. 무엇이가장먼저머리에떠오르는가? 실험시간에사용하던실험보드가생각날수도있고, 보드위에자리잡고있는칩이떠오를수도있다. 또는최근오픈소스하드웨어로주목을받고있는아두이노가생각날지도모르겠다. 마이크로컨트롤러 칩 - ATmega328 아두이노 우노 마이크로컨트롤러 마이크로컨트롤러를 이용한 학습 보드 2 3
28 마이크로컨트롤러 (microcontroller) 를한마디로표현하면 칩위의컴퓨터 라고말할수있다. 그림 1-1 에서첫번째그림이바로마이크로컨트롤러이다. 그림 1-1(b) 와 1-1(c) 의마이크로컨트롤러를이용하여만들어진보드역시마이크로컨트롤러라고부르는경우가있지만정확히이야기하자면이들은마이크로컨트롤러라기보다는 마이크로컨트롤러보드 에해당한다. 마이크로컨트롤러를어렵다고생각하는이유중하나는마이크로컨트롤러를처음접하는사람들에게주어지는, 부품이빼곡하게늘어서있는보드가큰이유중하나이다. 마이크로컨트롤러보드를마이크로컨트롤러로오해하기때문이다. 수십개의부품이늘어서있고수십개의연결핀이있는보드를처음받게되면무엇부터어떻게시작해야할지모르는것이당연하다. 하지만실제마이크로컨트롤러를사용하기위해필요한부품들은그리많지않다. 가장간단하게는마이크로컨트롤러에전원만연결하면동작한다. 컴퓨터본체에전원을연결하면컴퓨터가동작하는것과마찬가지로 ATmega328 의경우 5V 전원만연결해주면마이크로컨트롤러에설치된프로그램이실행된다. 간단하지않은가? 아두이노? AVR? ATmega328? 아두이노는 AVR을 이용하여 만든 마이크로컨트롤러 보드의 한 종류이다. AVR은 아트멜 (Atmel) 에서 제작하여 판매하는 마이크로컨트롤러 시리즈 중 하나를 가리키는 말로, 아두이노 우노 (Arduino UNO) 에 사용된 ATmega328 은 AVR 에 속하는 마이크로컨트롤러이다. 마이크로컨트롤러는 컨트롤 기능에 특화된 중앙 처리 장치 (CPU) 의 일종으로 칩 하나를 지칭하는 말이다. 아두이노 우노 보드가 옆에 있다면 보드 위에 있는 가장 큰 IC 칩을 살펴보자. Atmel 이라는 글자가 보이고 그 아래에는 ATMEGA328P-PU 라는 글자가 보인다. Atmel 은 ATMEGA328P-PU 마이크로컨트롤러를 만든 회사의 이름이며, ATMEGA328P-PU 는 아두이노 우노 보드에서 핵심적인 역할을 하는 마이크로컨트롤러이다. 아두이노 우노 보드에는 ATMEGA328P-PU 마이크로컨트롤러 이외에도 전원 연결 잭, USB 연결 잭, 버튼, 핀 연결을 위한 헤더 등 여러 가지 부품들이 있다. 아두이노 (Arduino) 란 마이크로컨트롤러뿐만 아니라 사용 편이를 위해 추가된 부품을 합한 보드 전체를 가리키는 말이다. 물론 아두이노는 하드웨어뿐만 아니라 소프트웨어 개발 환경까지도 함께 가리키는 말이지만 하드웨어 측면에서만 볼 때 아두이노는 마이크로컨트롤러가 아니라 마이크로컨트롤러 보드 라고 이야기하는 것이 옳다. 이처럼 아두이노와 AVR 그리고 ATmega328 은 정확히 이야기하자면 비교의 대상은 아니다. 아두이노는 AVR 시리즈의 마이크로컨트롤러를 사용하므로 AVR을 프로그래밍하는 것과 아두이노를 프로그래밍하는 것은 기본적으로 동일하다. AVR 을 위한 프로그램을 작성하는 환경에서 아두이노 프로그램을 작성할 수 있다. 예를 들어 AVR 프로그램을 작성하기 위해 흔히 사용되는 AVR 스튜디오 ( 또는 아트멜 스튜디오 ) 에서 아두이노에서 실행될 프로그램을 작성하고 이를 아두이노 보드에 업로드하여 실행시키는 것이 가능하다. 반대로 아두이노에서 제공하는 소프트웨어 개발 환경에서 AVR을 위한 프로그램을 작성하는 것도 역시 가능하다. 하지만 전자의 경우 모든 AVR 시리즈 마이크로컨트롤러를 지원하지만, 후자의 경우에는 모든 AVR 4 CHAPTER 1 마이크로컨트롤러? 마이크로컨트롤러!
29 시리즈 마이크로컨트롤러를 지원하지는 않으며, 아두이노 보드에 사용된 마이크로컨트롤러, 예를 들어 아두이노 우노에 사용된 ATmega328, 아두이노 메가에 사용된 ATmega2560 등의 마이크로컨트롤러만을 지원한다. 따라서 학교에서 흔히 사용하는 AVR 시리즈 마이크로컨트롤러 중 하나인 ATmega128 을 아두이노 환경에서 프로그래밍하고자 한다면 번거로운 작업이 될 수 있다는 점을 염두에 두어야 한다. 아두이노 ( 마이크로컨트롤러 보드 ) ATmega328P-PU (AVR 시리즈 마이크로컨트롤러 ) 아두이노, AVR 그리고 ATmega328 3 마이크로컨트롤러는 하나의칩으로구현한컴퓨터 이다. 그다지컴퓨터와닮아보이지않겠지만컴퓨터와동일한구성으로컴퓨터와동일한동작을한다. 먼저친숙한컴퓨터부터살펴보자. 어디서나쉽게컴퓨터를찾아볼수있는이유도있겠지만컴퓨터는컴퓨터와대화할수있도록키보드, 마우스, 모니터등과연결되어있고멋진케이스속에들어가있어생소한전자부품들이눈에띄지않으므로편안하게느껴질수있다. 하지만컴퓨터에서키보드와마우스그리고모니터를제거해보자. 컴퓨터로무엇을할수있을까? 전원을연결하면컴퓨터가켜지는것은전원표시등으로유추해볼수있지만컴퓨터내부에서무슨일이벌어지고있는지는짐작하기어렵다. 멋진케이스도벗겨보자. 컴퓨터내부에는어떤것들이들어있나? 메인보드가보일것이고그위에장착된 CPU와메모리가보일것이다. CPU 위에올라와있는선풍기로사용해도무방할정도의팬이보이는가? 한쪽에는하드디스크와 DVD 드라이버가고정되어있다. 이외에전원공급장치, 비디오카드등이눈에들어온다. 어쩌면이모든것들을확인하기위해서는케이스내부의선들을먼저치워야할지도모른다. 마이크로컨트롤러에는멋진케이스가없다. 원한다면멋진케이스를만들어넣어줄수도있겠지만마이크로컨트롤러는대부분다른시스템의일부로포함되기때문에 [ 다른시스템의일부로포함되는것을임베디드 (embedded) 라이야기한다 ] 별도로케이스를만드는경우는흔하지않다. 마이크로컨트롤러에는모니터도, 마우스도, 키보드도없으므로내부에서무슨일이벌어 1.1 마이크로컨트롤러란 무엇인가? 5
30 지고있는지알수없다. 앞에서똑같은이야기를한것이기억나지않는가? 마이크로컨트롤러는주변장치를떼어내고케이스를벗겨버린컴퓨터와동일하다. 마이크로컨트롤러는컴퓨터이다. 다만주변장치가연결되어있지않으므로내부에서무슨일이벌어지고있는지알아내기위해서는 ( 키보드, 마우스에해당하는 ) 입력장치와 ( 모니터에해당하는 ) 출력장치를연결해주어야한다. 컴퓨터는이미입출력장치가포함된형태인반면마이크로컨트롤러는직접입출력장치를선택하여연결해주어야하고필요에따라서는새로운입출력장치들을만들어야하는경우도있다. 더어려운점이있다. 컴퓨터의입출력장치는완제품형태로판매되며동일한인터페이스로동작하므로컴퓨터에연결하는것만으로사용하는데크게어려움이없다. 대부분의키보드는 USB 포트에연결하는것만으로동작하며대부분의모니터는 HDMI 포트에연결하는것만으로동작한다. 하지만마이크로컨트롤러의입출력장치는여러가지방법으로연결할수있다. 간단한정보를표시해줄수있는 LCD 장치의경우만하더라도종류에따라다양한방법을사용하므로컴퓨터에모니터를연결하는것과같이커넥터를연결하는것만으로간단히동작시킬수는없다. 어렵게들리겠지만마이크로컨트롤러에서사용하는입출력방식의종류가그리많지않으므로익숙해지고나면그리어렵지않다. 더욱이마이크로컨트롤러에서사용하는대부분의주변장치들은몇개의입출력방식중하나를사용하므로서로다른종류의장치들도동일한방식으로제어가가능한경우도있다. 컴퓨터에서모니터와키보드는서로다른입출력방식을사용하지만마이크로컨트롤러에서는동일한방식으로데이터를주고받을수도있다. 마이크로컨트롤러는컴퓨터이다. 컴퓨터에비해연결방법이복잡하고귀찮아보이기는하지만입출력장치를연결함으로써마이크로컨트롤러는컴퓨터와동일한동작을수행할수있으며, 동일한방식을사용하는입출력장치들을연결함으로써컴퓨터보다더쉽게작은컴퓨터로서의기능을수행할수있도록할수도있다. 1.2 마이크로컨트롤러는주변장치를제거하고케이스를벗겨낸컴퓨터와동일하다. 먼저컴퓨터의구조를살펴보자. 컴퓨터는연산의핵심이되는연산장치와연산을제어하는제어장치로이루어지는중앙처리장치 (Central Processing Unit, CPU), 데이터입출력을위한입출력장치, 데이터저장을위한주기억장치및보조기억장치등으로구성된다. 6 CHAPTER 1 마이크로컨트롤러? 마이크로컨트롤러!
31 메인 보드 중앙 처리 장치 연산 장치 입력 장치 제어 장치 출력 장치 주기억 장치 보조 기억 장치 1 2 컴퓨터의구성요소 집적회로기술의발달에힘입어컴퓨터의소형화및경량화가이루어졌고특히중앙처리장치는하나의칩으로구현이가능하게되었다. 이처럼컴퓨터의중앙처리장치를하나의 IC(Integrated Circuit) 칩으로집적시켜만든반도체소자를마이크로프로세서 (microprocessor) 라고부른다. 마이크로프로세서는 1969 년인텔 (Intel) 에서발표한 4비트마이크로프로세서인 4004에서부터시작되었다. 이후마이크로프로세서는비약적인발전을거듭하여 4004의경우 2,300 여개의트랜지스터를사용하여만들어진반면, 최신 Intel Core i7 마이크로프로세서는약 22억개의트랜지스터가사용되어 4004와비교할때약 100만배의트랜지스터가사용되는등하드웨어는기하급수적으로발전하고있으며, 이를설명하는법칙의하나가무어의법칙 (Moore s Law) 이다. 현재사용되고있는컴퓨터의대부분의중앙처리장치는마이크로프로세서로구현되고있다. 하지만마이크로프로세서는중앙처리장치의여러형태중한가지로모든마이크로프로세서는중앙처리장치이지만, 모든중앙처리장치가마이크로프로세서인것은아니다. 마이크로프로세서중하나의칩에중앙처리장치의기능뿐만아니라일정용량의메모리와입출력인터페이스까지내장한것을마이크로프로세서와구별하여마이크로컨트롤러라고부른다. 마이크로컨트롤러는그림 1-2 에서메인보드에해당하는기능과일부하드디스크의기능을하나의칩으로구현한것으로볼수있다. 마이크로컨트롤러는하나의칩에컴퓨터가가져야할대부분의기능을갖추고있으므로단일칩마이크로컴퓨터또는마이컴이라고도부른다. 마이크로프로세서가컴퓨터로동작하기위해서무엇이더필요할까? ( 입력장치인 ) 키보 1.2 마이크로프로세서? 마이크로컨트롤러? 7
32 드와마우스그리고 ( 출력장치인 ) 모니터만있다면컴퓨터로동작하기에아무런문제가없다. 하지만마이크로컨트롤러에키보드나모니터를연결하여사용하지는않는다. 불가능하지는않지만굳이연결하려고하지않는이유는마이크로컨트롤러는컴퓨터와는그사용목적이다르기때문이다. 키보드와모니터가필요하다면마이크로프로세서를사용하면된다. 마이크로컨트롤러 라는단어는 마이크로 + 컨트롤러 로이루어져있다. 마이크로 는작다는의미로하나의칩으로만들어져있어작고가벼움을의미한다. 컨트롤러 는제어기를뜻하며마이크로컨트롤러의주용도, 즉제어장치를만들기위한핵심부품으로마이크로컨트롤러가사용됨을의미한다. 마이크로컨트롤러는작고간단한제어장치를만들기위한목적으로특화된마이크로프로세서의한종류이다. 1.3 컴퓨터로무엇을할수있나? 웹브라우저를실행시켜온라인뉴스를읽고, 음악을듣고, 문서를작성하고, 가끔은게임도한다. 이러한작업을위해필요한입출력장치들이바로키보드, 마우스, 그리고모니터이다. 마이크로컨트롤러는컴퓨터이기는하지만우리가컴퓨터에서하는작업들을대신하기위해만들어진것은아니다. 컴퓨터로처리하는작업들을처리하기에마이크로컨트롤러는너무느리고용량도충분하지않다. 이책에서다룰마이크로컨트롤러인 ATmega328 을사용한아두이노우노와이글을작성하고있는컴퓨터와비교해보면메모리는약 25만분의 1, 속도는약 850분의 1에지나지않는다. 1 1 항목 아두이노우노 데스크톱컴퓨터 CPU ATmega328 Intel Core i7 비트 8 64 메모리 32Kbyte 8Gbyte 클록 16MHz 3.4GHz(Quad Core) 마이크로컨트롤러는일상생활에서흔히사용하는환경이아닌특수한환경에서사용할목적으로만들어진작고간단한컴퓨터이다. 마이크로컨트롤러를일반컴퓨터와비교했을때가지는장점중하나는저렴한가격에있다. Intel Core i7과비교했을때 ATmega328 은약 100분의 1 가격이면구입할수있다. 현관에사람이들어오면자동으로불이켜지는전등을만들기위해 CHAPTER 1 마이크로컨트롤러? 마이크로컨트롤러!
33 만원에달하는컴퓨터를사용할필요는없지않은가? 작고값싼마이크로컨트롤러로도자동으로현관에불을켜는일은충분하다. 마이크로컨트롤러의성능이나쁘다고이야기하였지만이는컴퓨터와비교하였을때의이야기이지결코성능이나쁜것은아니다. ATmega328 의최대클록주파수는 20MHz 이다. 물론 Intel Core i7과비교한다면느린것이사실이지만하드디스크가대중화되기시작한시점에서소개된, 흔히 286 컴퓨터 라고불리던 AT(Advanced Technology) 컴퓨터의 CPU 클록주파수가 20MHz 임을감안하면컴퓨터라고불러도손색이없을정도임을짐작할수있다. ATmega328 로도자동으로불이켜지는전등을만들기에는충분하다. 오히려 ATmega328 은지나치게성능이좋으며원한다면 1,000 원전후의더싼가격의마이크로컨트롤러를사용하여도가능하다. 마이크로컨트롤러는컴퓨터이다. 작고간단하고저렴한컴퓨터이긴하지만 1,000 원짜리컴퓨터에키보드와모니터를연결하여슈팅게임을즐기고자하는사람은없으리라생각한다. 물론마이크로컨트롤러중에는다양한기능과기가헤르츠 (GHz) 에달하는클록주파수를가진것도존재한다. 이러한고성능의마이크로컨트롤러는여전히 Intel Core i7보다는저렴하지만 1,000 원에구입할수는없다. 마이크로컨트롤러를어디에사용할수있을까? 작고간단한제어장치 를만들기위해사용할수있다. 마이크로컨트롤러에케이스를만들지않는이유는다른시스템의일부로포함되는경우가대부분이기때문이라고이야기하였다. 자동점등조명역시조명장치의일부분으로마이크로컨트롤러가들어간다. 이처럼다른시스템의일부로포함되는마이크로컨트롤러를 임베디드 (embedded) 되었다고이야기하며, 마이크로컨트롤러는임베디드영역에서중요한한부분을차지하고있다. 임베디드시스템에서또다른한부분을차지하는것은마이크로프로세서로, 마이크로프로세서로만들어지는임베디드시스템은크기만데스크톱컴퓨터와다를뿐데스크톱과완전히동일한컴퓨터에해당한다. 최근라즈베리파이 (Raspberry Pi) 4 를필두로주목받고있는싱글보드컴퓨터역시마이크로프로세서를사용한보드로임베디드시스템에서의응용이점차늘어나고있는추세이다. 마이크로컨트롤러의또다른장점중하나는다양한제품이존재한다는점이다. 마이크로컨트롤러에는 1,000 원이면구입할수있는제품이있는가하면그수십배가격에달하는것도있다. 이처럼다양한제품군은용도와목적에맞게필요로하는기능과성능을선택할수있는유연성을제공해준다. 1.3 마이크로컨트롤러는 어디에 사용할 수 있을까? 9
34 10 애초서로다른목적으로만들어진만큼마이크로컨트롤러를컴퓨터 ( 또는마이크로프로세서 ) 와 비교하는것은무의미할수도있다. 하지만마이크로컨트롤러와마이크로프로세서가차지하고 있는자리를이해하는것은필요하다. 마이크로컨트롤러는마이크로프로세서에비해다음과 같은장점또는특징이있다. 제품의소형화및경량화 : 마이크로컨트롤러는마이크로프로세서를사용하는컴퓨터의 메인보드에포함된대부분의기능을하나의칩에구현하고있어작고가벼운제어장치 를만들기위해사용할수있다. 저렴한가격 : 마이크로컨트롤러는집적도가낮고설계가간단하여마이크로프로세서에 비해가격이저렴하다. 또한마이크로컨트롤러는제어목적에필요한대부분의기능을 포함하고있어제어장치설계및제작과정이단순해지므로개발에필요한비용및시 간을줄일수있어완성된제품의가격경쟁력을높일수있다. 신뢰성향상 : 마이크로컨트롤러는제어장치구현에필요한대부분의기능을내장하고 있어시스템을구성할때필요로하는부품의수가적으므로고장이적고유지보수가 용이하다. 융통성 : 마이크로컨트롤러는전통적으로제어장치에서제어를위해필요한기능들을 하드웨어로구현하는것과달리제어기능들을소프트웨어적으로처리할수있도록해 줌으로써기능의변경이나확장에보다유연하게대응할수있다. 하지만마이크로컨트롤러가마이크로프로세서에비해가지는단점도분명존재한다. 처리능력 : 마이크로컨트롤러는단순화된저사양의마이크로프로세서에주변장치를통 합한형태로특수목적용으로만들어졌으므로일반적으로처리능력은마이크로프로 세서에비해떨어진다. 따라서마이크로컨트롤러는높은처리능력을필요로하는작업 에는적합하지않다. 많은데이터를빨리처리해야할필요가있다면마이크로프로세서 를사용하는것이바람직하다. 범용성 : 마이크로프로세서의경우일반적으로운영체제를통해다수의프로그램들을설 치하고실행시킬수있다. 하지만마이크로컨트롤러는특정작업을위한하나의프로그 램만을설치하고실행시킬수있다. 마이크로컨트롤러는전용의간단한제어장치를만들기위해사용할수있다. 1,000 원짜리마 이크로컨트롤러에서 100 만원짜리컴퓨터의성능을기대하지않는다면마이크로컨트롤러를사 CHAPTER 1 마이크로컨트롤러? 마이크로컨트롤러!
35 용할수있는곳은많으며실제마이크로컨트롤러가사용된예를어렵지않게찾아볼수있다. 앞에서도이야기하였지만마이크로컨트롤러는임베디드시스템의일부로포함되어있어눈에띄지않아사용되고있다는사실을알아차리지못했을뿐이다. 표 1-2 는마이크로컨트롤러가실생활에서사용되고있는예를나타낸것으로이보다훨씬많은예들을어렵지않게주변에서찾아볼수있다. 1 2 분야의료교통감시가전음향사무자동차기타 예의료기 제어, 자동 심박계신호등 제어, 주차장 관리출입자 / 침입자 감시, 산불 감시에어컨, 세탁기, 전자레인지 CD 플레이어, 전자 타이머복사기, 무선 전화기엔진 제어, 충돌 방지게임기, 차고 개폐 장치 1.4 마이크로컨트롤러는하나의칩일뿐이다. 이책에서다루게될 ATmega328 마이크로컨트롤러의경우 28개의핀을가진약 3.5cm 1cm 크기의칩에불과하다. 사용의편이를위해보드위에빼곡히들여놓은부가장치들에지레겁을먹지만않는다면마이크로컨트롤러는 보기보다 어렵지않다. 인터넷에서아두이노우노보드의회로도를찾아보자. 그림 1-3 은공개된아두이노우노보드의회로도에서동작에필수적인부분들만표시한것으로, 실선으로표시된외부클록을위한회로와전원안정화를위한회로를제외하면나머지회로들은제거하여도마이크로컨트롤러가동작하는데지장이없다. 물론전원은 5V가주어진다고가정한경우이다. 다른회로들은컴퓨터와의연결을간편하게하고프로그램을다운로드할수있도록 USB 연결을지원하는회로, 어댑터에서전원을공급받기위한회로등이다. 컴퓨터에서프로그램을다운로드하기위해서는그림 1-3 에서점선으로표시된부분역시필요하며이는 ATmega328 의핀과커넥터를직접연결하여구성할수있다. 1.4 마이크로컨트롤러를 어떻게 공부해야 할까? 11
36 1 3 아두이노우노회로도 5 12 CHAPTER 1 마이크로컨트롤러? 마이크로컨트롤러!
37 이책에서다루고자하는 ATmega328 을공부하기위해서는그림 1-3 에표시한기본회로만으로도가능하다. 기본회로를바탕으로여기에필요한입출력장치를하나씩추가해나가면서제어장치를구성해본다면보기보다마이크로컨트롤러가그리어렵지않다는것을알수있다. 한가지더필요한것이있다면컴퓨터에서프로그램을업로드하기위한 ISP(In System Programming) 장치로, ISP 장치는아두이노우노보드에도포함되어있지않으므로별도로구입하여야한다. 아두이노환경에서프로그램을다운로드하기위해서는일반적으로마이크로컨트롤러에서는사용하지않는 USB- 시리얼변환장치를사용해야한다. 그림 1-3 에서기본회로에포함되지않으면서거의절반을차지하는회로가 USB- 시리얼변환기능을위한것으로아두이노우노보드를사용한다면별도로구입할필요는없다. 하지만기본회로에서시작하고아두이노스타일로프로그램을다운로드해보고싶다면 USB- 시리얼변환장치역시필요하다. ISP 장치 1 4 프로그램업로드장치 USB- 시리얼 변환 장치 ATmega328 이마이크로컨트롤러중에서도간단한마이크로컨트롤러인것은사실이다. 학교에서교육용으로흔히사용되는 ATmega128 만하여도 64개의핀을가지고있어 ATmega328 에비해 2배이상핀의수가많다. 하지만 ATmega128 의속도와기능은 ATmega328 과거의동일하며단지동일한기능을가진핀의개수만늘어났을뿐이다. 다른마이크로컨트롤러의경우에도기본기능은 ATmega328 과크게차이가없으므로 28핀의소형마이크로컨트롤러로도마이크로컨트롤러의공부를시작하기에부족함이전혀없다. 1.4 마이크로컨트롤러를 어떻게 공부해야 할까? 13
38 1.5 마이크로컨트롤러는입출력장치가제거되고케이스가벗겨진컴퓨터이다. 이상태로는할수있는일이많지않지만, 주변장치와데이터를주고받음으로써작고느리기는하지만완전한컴퓨터로서동작시킬수있다. 먼저마이크로컨트롤러가데이터를주고받는방식에대해알아보자. 마이크로컨트롤러는디지털데이터를처리한다. 디지털데이터는영 (0) 과일 (1) 의값만을가지며주변장치와데이터를주고받는경우에도마찬가지이다. 주변장치와의데이터교환은마이크로컨트롤러의핀을통해이루어지며 ATmega328 의경우 28개의핀중 23개의핀을데이터교환을위해사용할수있으므로동시에최대 23비트의데이터를주변장치와교환할수있다. 즉, 핀하나는한번에 1비트의데이터교환이가능하다. 데이터를교환하는방식은 ATmega328 과주변장치사이에상호합의된방식으로행해져야하며이를프로토콜 (protocol) 이라고한다. 프로토콜에관해서는이책에서자세히다루지않을것이지만전송속도에관해서는주의하여야한다. 마이크로컨트롤러는대부분핀의개수가그리많지않으므로데이터교환을위한핀의개수가제한되어있다. ATmega328 의데이터핀 23개가많아보이지만작은크기의 LCD 화면을제어하기위해 10개이상의데이터핀이필요한경우도있으므로, LCD 화면하나만을연결하여도절반이상의입출력핀을사용하게되고사용가능한핀이부족하여원하는주변장치를연결할수없는경우가발생할수있다. 따라서마이크로컨트롤러에서는여러핀을동시에사용하여데이터를교환하는병렬방식보다는하나의핀을통해여러번에걸쳐데이터를교환하는시리얼방식이선호된다. ATmega328 의내부에서는데이터를고속으로전달하기위해한번에 8비트의데이터를병렬로전달한다. 하지만 CPU를벗어나면일반적으로데이터는직렬로 8번에나누어전달된다. 병렬과시리얼방식에서모두데이터는동기화가중요하며여기에전송속도가관련된다. CPU 내부에서데이터전달은메인클록에의해제어되고보내는쪽과받는쪽이동일한클록을공유하고있어문제가될경우는많지않다. 하지만주변장치와데이터교환이필요한경우보내는쪽과받는쪽이동일한속도로데이터를검사하지않으면잘못된정보가전달될수있다. 그림 1-5 는데이터핀으로디지털데이터를전달하는예를나타낸것이다. 14 CHAPTER 1 마이크로컨트롤러? 마이크로컨트롤러!
39 1 0 1 초 2 초 송신 : 초당 1 비트 전송 수신 1 : 초당 1 비트 검사 시리얼데이터전송 수신 2 : 초당 2 비트 검사 0011 그림 1-5 에서송신장치는초당 1비트의데이터를보낸다, 즉, 데이터의전송속도가 1bps(bit per second) 이다. 수신장치역시 1bps 의속도로데이터를검사한다면수신되는데이터는 01 의 2비트가되겠지만, 1초에두번 (2bps 의속도로 ) 데이터를검사한다면수신되는데이터는 0011 로전혀다른데이터가된다. 따라서주변장치와정보를교환하고자한다면보내는속도와받는속도를일치시켜주어야하며이는동기화 (synchronization) 에서중요한부분을차지한다. 주변장치와정보를교환하는 약속 에도여러가지가있다. 대부분의마이크로컨트롤러가지원하며 ATmega328 에서도사용할수있는방식에는 UART, SPI, I2C 등이있다. UART(Universal Asynchronous Receiver/Transmitter) 는컴퓨터나기타주변장치의시리얼포트를이용하는시리얼통신방식이다. UART 시리얼통신에서는정보교환을위해송신과수신 2개의데이터핀연결을필요로하며송신과수신은동시에진행될수있는전이중 (full-duplex) 방식이다. UART 는동기화를위해별도의클록을전송하지않으므로통신이전에전송속도를동일하게설정하여야한다. UART 는한번에하나의장치만연결이가능한 1:1 통신방식으로마이크로컨트롤러에 UART 방식의주변장치를 2개연결하고자한다면 2개의 UART 포트가필요하다. 따라서여러개의주변장치를연결하기위해서는많은수의데이터핀이필요하다는등다른방식에비해단점이많지만간단하면서도오랫동안사용된방식으로많은주변장치들이지원한다는장점이있다. 1.5 주변장치와 어떻게 데이터를 교환하나? 15
40 SPI(Serial Peripheral Interface) 는짧은거리에서주변장치와고속으로정보를교환하기위해주로사용되며, 3개의데이터핀연결과 1개의제어핀연결, 즉총 4개의핀연결이필요하다. 3개의데이터연결핀중 2개는 UART 에서와마찬가지로데이터송수신을위해사용되며나머지하나는동기화를위한클록신호를보내기위해사용된다. SPI가 UART 와다른또한가지는동일한 SPI 포트를통해여러개의장치를연결하는 1:n 통신이가능하다는점이다. 이때하나의장치는마스터 (master) 로통신과정을책임지며다른장치들은슬레이브 (slave) 로동작한다. 동일한통신포트를통해여러개의슬레이브가연결되면특정장치를선택할수있는방법이필요하며 SPI에서는제어연결핀을통한하드웨어적인방식을사용한다. SPI는고속의데이터를안정적으로전달하고여러개의장치들이포트를공유할수있는장점은있지만제어핀의수가연결된장치의수에비례하여증가하는단점도있다. I2C(Inter-Integrated Circuit) 는짧은거리에서주변장치와저속으로정보를교환하기위해주로사용되며, 2개의데이터핀연결만을필요로한다. I2C는 SPI와마찬가지로 1:n 으로연결된마스터-슬레이브구조의통신방식이지만 SPI와몇가지다른점이있다. I2C에서사용하는데이터연결핀중실제로데이터전송에사용되는핀은하나이며, 다른하나는동기화를위한클록신호를위해사용된다. 따라서 I2C는위의두가지방법들과다르게송수신이동시에이루어질수없는반이중방식이다. 또한가지다른점은 1:n 연결에서장치구별을위해소프트웨어적인주소를사용하므로별도의제어핀연결은필요하지않다는점이다. 따라서 SPI와달리 I2C 장치의수가증가하여도필요로하는핀의개수는증가하지않는다. 1 3 UART SPI I2C 연결 방법 1:1 1:n 1:n 전송 방법 전이중 전이중 반이중 데이터 2개 2개 1개 동기 신호 - 1개 1개 연결선 제어 - 1 개 - 총 2 개 4 개 2 개 n 개 슬레이브 연결 2n 개 (3 + n) 개 2 개 16 CHAPTER 1 마이크로컨트롤러? 마이크로컨트롤러!
41 마이크로컨트롤러 송신 1 수신 1 주변장치 1 수신 2 송신 2 UART 주변장치 2 마이크로컨트롤러 송신 수신 동기화 클록 주변장치 1 제어선 1 주변장치 2 제어선 2 SPI 마이크로컨트롤러 송수신 동기화 클록 주변장치 1 주변장치 2 I2C 1 6 통신방식 이러한데이터교환방식을통해마이크로컨트롤러는다양한주변장치와데이터를주고받음으로써완전한컴퓨터로동작할수있다. 마이크로컨트롤러가컴퓨터와같이키보드나모니터를입출력장치로사용하는경우는거의없다. 일반적으로마이크로컨트롤러는입력장치로다양한센서를사용하여주변데이터를수집하고이를처리하여또다른주변장치제어를위한신호를출력하는형태로구성된다. 또는수집된데이터를컴퓨터로전달하여컴퓨터에서전체적으로데이터를처리하고관리할수있도록도와주는역할을수행하게된다. 1.5 주변장치와 어떻게 데이터를 교환하나? 17
42 1.6 컴퓨터에서프로그램을작성하는경우를생각해보자. 먼저프로그램을작성하기위해컴파일러를설치해야하며, 코드를입력하고컴파일하여실행파일을만들어내야한다. 물론디버깅을위해서는모니터도필요할것이다. 마이크로컨트롤러의경우에키보드와모니터는없다는것을이미알고있다. 컴파일러의경우는어떠한가? ATmega328 에프로그램을저장할수있는메모리는 32Kbyte 에불과하다. 윈도우에서가장간단한프로그램중하나인메모장만하더라도그크기가수백킬로바이트에달하므로 ATmega328 에서실행하는것은불가능하다. 하물며프로그램을개발하기위해많이사용되는비주얼스튜디오 (Visual Studio) 의경우에는수백메가바이트의공간을필요로한다. 한마디로 ATmega328 에서프로그램을개발하는것은불가능하다. 따라서마이크로컨트롤러를위한프로그램은컴퓨터에서개발하고실행파일만마이크로컨트롤러에업로드하여설치하는과정을거친다. 이처럼프로그램이개발되는환경 ( 개발시스템, 컴퓨터 ) 과프로그램이실행되는환경 ( 목적시스템, 마이크로컨트롤러 ) 이서로다른경우를일컬어교차개발환경 (cross development environment) 이라한다. 개발된 기계어 파일을 업로드 교차 컴파일러가 설치된개발 시스템 1 7 교차개발환경 개발된 프로그램이 실행될목적 시스템 교차개발이가능하기위해서는개발시스템에서동작하면서목적시스템에서실행가능한기계어파일을생성할수있는교차컴파일러 (cross compiler) 가필요하며생성된기계어파일을목적시스템에설치할수있는방법이필요하다. ATmega328 을위한교차컴파일러에는아두이노 6 에서제공하는프로그램과아트멜 7 에서제공하는아트멜스튜디오등이있으며, 이책에서는이들두가지모두를사용해볼것이다. 이외에도몇가지다른교차컴파일러를사용할수있지만이책에서는다루지않는다. 교차컴파일러는 ATmega328 마이크로컨트롤러에서실행가능한실행파일, 즉기계어파일을생성해준다. 윈도우에서실행가능한기계어파일은확장자가 EXE 또는 DLL 인반면, ATmega328 에서실행가능한기계어파일은확장자가 HEX라는차이가있다. 18 CHAPTER 1 마이크로컨트롤러? 마이크로컨트롤러!
43 기계어파일이생성되면이를마이크로컨트롤러에설치하는과정이필요하며, 이는시리얼통신을통해개발시스템에서마이크로컨트롤러로기계어파일을전송함으로써이루어진다. 이처럼실행가능한기계어파일을개발시스템에서목적시스템으로전송하여설치하는과정을 다운로드 또는 업로드 라한다. 다운로드는마이크로컨트롤러의입장에서개발시스템으로부터프로그램을가져오는것을, 업로드는개발시스템에서마이크로컨트롤러로프로그램을보내는것을중심으로이야기한다. 이처럼다운로드와업로드는정반대의의미이지만동일한방향의데이터흐름을가리키므로일반적으로동일한의미로사용되고있다. 업로드된프로그램은마이크로컨트롤러의메모리에설치되며마이크로컨트롤러에는일반적으로하나의프로그램만이설치될수있으므로마이크로컨트롤러에전원을인가하면간단한부팅과정을거쳐현재설치된프로그램이자동으로실행된다. 프로그램을업로드하기위해서는 UART 와 SPI 방식을사용할수있다. 아두이노에서는별도의추가장치없이프로그램을업로드하기위해 UART 방식을사용한다. 반면일반적으로마이크로컨트롤러프로그래밍에서는 SPI를통해프로그램을업로드하는 ISP(In System Programming) 또는 ICSP(In Circuit Serial Programming) 방식을사용한다. 이책에서는두가지방식모두를사용하여프로그램을업로드해볼것이다. 교차개발환경은스마트폰을위한어플리케이션개발에서도볼수있다. 스마트폰은마이크로프로세서 ( 또는어플리케이션프로세서 ) 를사용하지만스마트폰용운영체제에서는비주얼스튜디오와같은개발도구를제공하지않으므로컴퓨터에서어플리케이션을개발한후개발컴퓨터나장터에서어플리케이션을다운로드하고스마트폰에설치한다. 마이크로컨트롤러의경우와동일하지않은가? 물론스마트폰에는운영체제가있어여러개의프로그램을설치하고실행할수있다는점에서마이크로컨트롤러와는차이가있다. 1.7 어두워지면자동으로불이켜지는전등을만들고싶다고가정해보자. 마이크로컨트롤러가필요할까? 요구사항에따라달라지겠지만단순히어두워지면불이켜지는동작은마이크로컨트롤러없이도가능하다. 빛의양에따라저항이변하는조도센서를이용하면그림 1-8 의회로를통해어두워지면자동으로불이켜지게할수있다. 저항의값을조절하면불이켜지는시점의광량도조절할수있다. 1.7 마이크로컨트롤러가 꼭 필요한가? 19
44 1 8 스위칭회로를이용한자동점등회로 마이크로컨트롤러를이용해서도동일한동작을수행하도록구성할수있으며, 그림 1-9 는 ATmega328 마이크로컨트롤러를이용하여구성된회로의예이다. 1 9 마이크로컨트롤러를이용한자동점등회로 트랜지스터와저항만으로구성된그림 1-8 의회로에비해그림 1-9 의회로는마이크로컨트롤러를사용하므로가격이비싸고배선도복잡해보인다. 게다가프로그램을작성해서업로드해야하는등번거롭고아무런이점도없어보인다. 실제로이경우마이크로컨트롤러를사용하는경우의이점은없다. 그렇다면마이크로컨트롤러를사용할필요가없지않은가? 어두워지면불이켜지는간단한동작의경우마이크로컨트롤러를사용함으로써얻을수있는이점은거의없지만, 기능을변경하거나추가하고자한다면마이크로컨트롤러를사용하는장점을발견할수있다. 20 CHAPTER 1 마이크로컨트롤러? 마이크로컨트롤러!
45 그림 1-8 의회로에서불이켜지기위한기준광량을바꾸고싶다면어떻게해야할까? 회로에서저항을다른크기의저항으로교체하면된다. 이를위해서는저항을떼어내고다른크기의저항으로교체하는등의작업이필요하다. 마이크로컨트롤러를사용한경우는어떨까? 프로그램에서임계치를조절하여프로그램을다시업로드하면된다. 마이크로컨트롤러를사용하는경우가간단하지않은가? 별반차이가없어보이는가? 기능을추가하는경우라면마이크로컨트롤러를사용하는이점이보다명확히나타난다. 그림 1-8 의회로에한번불이켜지면최소 10초는불이켜져있도록하고싶다면어떻게해야할까? 불이켜진시간을알아내기위해서는시간을알려주는부품이필요하고, 불이켜진시간을저장해놓기위해메모리가필요하고, 현재시간과저장된시간을비교하기위해비교기가필요하다. 이들부품을모두그림 1-8 의회로에추가하는것이가능하기는하지만이경우회로를완전히다시그려야할지도모르며완성된회로는그림 1-9 보다더복잡해질수있다. 이에비해마이크로컨트롤러를사용한회로는최소 10초동안불이켜져있도록하기위해변경이필요하지않다. 불이켜지는기준광량을바꾸는경우와마찬가지로프로그램수정만으로기능을추가할수있다. 바로여기에마이크로컨트롤러를사용하는이점이있다. 동일한입력 ( 광센서 ) 과동일한출력 (LED) 을가지는회로에서마이크로컨트롤러를사용하는경우프로그램수정만으로서로다른동작 (1 광량에따라점멸하는동작과 2 광량에따라점멸하면서불이켜졌을때최소 10초동안켜져있는동작 ) 을구현하는것이가능하다. 마이크로컨트롤러를사용함으로써얻을수있는장점을알수있겠는가? 1.8 마이크로컨트롤러는작고간단한컴퓨터이다. 컴퓨터에프로그램을설치하여다양한작업을수행할수있는것과마찬가지로마이크로컨트롤러에도프로그램을설치하여동일한하드웨어를이용하여서로다른작업을수행할수있다. 특히마이크로컨트롤러는제어장치를구성하기위한목적으로특화된컴퓨터로, 다양한제어장치를구성하기위해사용할수있다. 마이크로컨트롤러는컴퓨터이기는하지만흔히접하는데스크톱컴퓨터나노트북컴퓨터와는다르다. 마이크로컨트롤러로할수있는것과할수없는것을명확히구별하고, 하고자하는일에맞는마이크로컨트롤러를선택할수만있다면시작이반이라는말처럼이미문제의절반은해결된것이라하겠다. 1.8 요약 21
46 최근의사물인터넷붐은마이크로컨트롤러의활용가능성을더욱넓혀주고있으며, 아트멜이외의마이크로컨트롤러제조사들도사물인터넷을위한마이크로컨트롤러생태계구축에박차를가하고있다. 이책에서다룰 ATmega328 은아두이노우노에사용된마이크로컨트롤러로이미수많은아두이노우노가사용되고서로연결되고있어다른어느마이크로컨트롤러에비해서쉽게접근할수있다. 무엇을할지먼저결정하자. 하고자하는일이 ATmega328 로충분하다면이책을통해간단하게제어장치를만들고나아가다른기기들과연결될수있는방법을찾아낼수있을것으로기대한다. 연습문제 마이크로컨트롤러가 사용된 예는 표 1-2 에서 나열한 경우 이외에도 많다. 일상생활에서 사용하는 제품들 중에서 마이크로컨트롤러가 사용된 예를 찾아보자. 이 책에서 다루는 ATmega328 은 아트멜에서 제작한 8비트의 마이크로컨트롤러이다. 최근 마이크로컨트롤러의 사용 범위가 넓어지면서 16비트 또는 32비트의 고성능 마이크로컨트롤러의 사용 역시 증가하고 있으며, ARM에서 설계한 Cortex M3 가 32비트 마이크로컨트롤러를 위한 대표적인 아키텍처 중 하나이다. ATmega328 과 STM32F103(ARM 의 Cortex M3 아키텍처를 사용하여 STMicroelectronics 에서 제작한 마이크로컨트롤러 ) 마이크로컨트롤러의 장단점을 비교해 보자. 싱글 칩 컴퓨터 (single chip computer) 라고 불리는 마이크로컨트롤러는 컴퓨터이기는 하지만 성능이 낮으며, 하나의 프로그램만을 설치할 수 있다는 점에서 일반적인 데스크톱 컴퓨터와 다르다. 데스크톱 컴퓨터에는 미치지 못하지만 마이크로컨트롤러보다 높은 성능을 가지며 데스크톱 컴퓨터와 같이 운영체제를 바탕으로 동작하는 또 다른 종류의 컴퓨터인 싱글 보드 컴퓨터 (single board computer) 가 최근 임베디드 시스템 영역에서 마이크로컨트롤러와는 다른 영역에서 주목을 받고 있다. 싱글 칩 컴퓨터의 대표적인 예 중 하나라고 할 수 있는 아두이노와 싱글 보드 컴퓨터 중 가장 많이 판매된 라즈베리 파이 (raspberry pi) 8 를 비교해 보자. 22 CHAPTER 1 마이크로컨트롤러? 마이크로컨트롤러!
47 CHAPTER 2 메모리이야기 학습목표 } } } } } ATmega328 의메모리종류이해하기 ROM과 RAM의차이이해하기 ROM의종류와특성이해하기 EEPROM 과플래시메모리특성이해하기 DRAM과 SRAM의특성이해하기 메모리는컴퓨터에서프로그램이나데이터를저장하고실행시키기위해필요한핵심적인요소중하나이다. 메모리는저장장치 (storage) 의하나로컴퓨터에서는일반적으로칩형태로존재하며 내부저장장치 (internal storage) 라고도부른다. 반면 저장장치 는일반적으로디스크형태의외부저장장치를가리키며 외부메모리 (external memory) 라고도부른다. 이처럼메모리와저장장치는거의동일한의미로사용되지만일반적으로칩형태는메모리, 기계적인장치가필요한형태는저장장치라고구분하여사용된다. 마이크로컨트롤러에서는기계적인장치가필요한저장장치를사용하는경우는거의없으므로, 이장에서는마이크로컨트롤러에서흔히사용되는메모리를중심으로다양한메모리의종류와용도에대해알아본다. 2.1 ATmega328 컴퓨터가동작하기위해서는세가지메모리, 즉메인보드에추가로장착되는하드디스크와메인메모리, 그리고중앙처리장치 (CPU) 내에서연산을수행하기위해사용되는레지스터가필요하다. 이중레지스터는 CPU 내에포함되어있는메모리로 C/C++ 언어로프로그램을작성하는경우프로그래머가직접제어하는경우는흔하지않으므로제외하고하드디스크와메인메모리에대해서만이야기하도록하자. 23
48 마이크로컨트롤러는컴퓨터의메인보드에해당하는기능을하나의칩으로집약시켜놓은싱글칩컴퓨터 (single chip computer) 이므로 ATmega328 에도컴퓨터의하드디스크와메인메모리에해당하는메모리가필요하며, ATmega328 에는세종류의메모리, 즉플래시메모리, SRAM, EEPROM 이포함되어있어하드디스크와메인메모리의기능을담당하고있다. 하지만개수의차이에서도알수있듯이 ATmega328 의세종류메모리와컴퓨터의두종류메모리는 1:1 로대응하지는않는다. 이러한차이는일반적으로컴퓨터는폰노이만구조를따르는반면, 마이크로컨트롤러특히 ATmega328 은하버드구조를따르기때문이다. 그림 2-1 은폰노이만구조와하버드구조를비교한것이다. 컴퓨터의메모리에저장되는내용은크게두가지, 즉프로그램과데이터로나눌수있다. 프로그램과데이터는수학연산에서연산자와피연산자에해당한다 라는명령을컴퓨터로실행하는경우연산자인 더하기 (+) 는프로그램에해당하며, 피연산자인 1 과 2 는데이터에해당한다. 폰노이만구조에서는프로그램과데이터가동일하게취급되므로동일한메모리에저장되고처리되는반면, 하버드구조는프로그램과데이터가서로다르게취급되므로서로다른메모리에저장되는차이가있다. 하버드구조는두종류의메모리를별도로관리해야하므로구조가복잡해지는단점이있지만동시에두곳에서자료를읽어올수있으므로폰노이만구조에비해속도가빠른장점이있다. 주소 버스 Memory CPU 데이터 버스 ( 명령어와 데이터 ) 폰 노이만 구조 Program Memory (PM) 주소 버스 데이터 버스 ( 명령어 ) CPU 하버드 구조 주소 버스 데이터 버스 ( 데이터 ) 2 1 폰노이만구조와하버드구조 Data Memory (DM) 표 2-1 은컴퓨터와마이크로컨트롤러에서의메모리를기능에따라요약한것이다. 폰노이만구조를따르는컴퓨터의경우메모리는전원이주어지지않는경우기록된내용이사라지는휘발성메인메모리와, 전원이주어지지않아도기록된내용이보존되는비휘발성메모리인하드디스크로나눌수있다. 반면하버드구조를따르는 ATmega328 의경우휘발성 / 비휘발성이외에도프로그램과데이터저장을위한메모리로나뉘는것을알수있다. 24 CHAPTER 2 메모리 이야기
49 2 1 ATmega328 메모리종류데스크톱컴퓨터의메모리 ATmega328 의메모리 프로그램 메모리 데이터 메모리 프로그램이 설치되는 메모리 하드디스크 플래시 메모리 프로그램이 실행되는 메모리 메인 메모리 (DRAM) 플래시 메모리 연산 결과 데이터가 임시 저장되는 메모리 메인 메모리 (DRAM) SRAM 연산 결과 데이터가 영구 저장되는 메모리 하드디스크 EEPROM 2.2 ROM RAM 메모리는크게두종류, 즉 ROM과 RAM로나눌수있다. ROM은 Read Only Memory 의약어로, 이미기록된내용을읽기만할수있고쓰거나지울수는없는메모리를말한다. 컴퓨터의부팅과정에서사용되는정보를저장하고있는 BIOS 칩이 ROM에해당되며, 그크기는수메가바이트정도이다. BIOS 는기본입출력시스템 (Basic Input/Output System) 의약어로컴퓨터의하드웨어요소들을검사하고운영체제를시작하는역할을담당한다. BIOS 의내용은컴퓨터생산과정에서결정되며제조사에서 ROM의형태로만들어메인보드에장착한다. 하지만최근의 BIOS 는제한된횟수의지우고쓰기가가능한형태로제작되어수정이가능하다. 컴퓨터뿐만아니라휴대용 MP3 플레이어와같은장치에서도기기의초기구동과정과동작을담당하는프로그램을 ROM으로만들고 펌웨어업그레이드 를통해 ROM의내용을수정하여기능을개선할수있도록하고있다. 이처럼 ROM은더이상읽을수만있는메모리가아니며, ROM이 RAM 과다른점은전원공급이중단되어도내용이사라지지않는비휘발성메모리라는점이다. 물론 ROM의내용을바꾸는것이가능하기는하지만 RAM에비해많은시간과비용이들며수정할수있는횟수도제한되어있다. RAM은 Random Access Memory 의약어로단어의미를그대로번역하면 임의접근방식메모리 정도가되겠지만실제로는자유롭게읽고쓸수있는메모리를말한다. 임의접근방식은순차접근방식 (sequential access) 과비교되는방법으로카세트테이프와같이기록된순서로만데이터를읽는메모리와비교하기위해처음사용된용어이다. 하지만현재는 RAM이고유명사로정착되어 ROM과대비되는메모리를지칭하는단어로사용되고있다. 앞서도언급한바와같이 ROM 역시 RAM에비해제약이있기는하지만자유롭게읽고쓸수있으므로 RAM이 ROM과다른점은휘발성에서찾아야한다. RAM은전원공급이중단되면저장된내용은사라진다. 따라서 RAM은컴퓨터가동작하고있는동안변하는값들을기록하기위한메인메모리로사용 2.2 ROM 과 RAM 25
50 되며, CPU 내부의레지스터역시 RAM 의한종류에해당된다. 표 2-2 는 ROM 과 RAM 의일반 적인특징을비교한것이다. 2 2 ROM RAM ( 쓰기가능한 ) ROM RAM 읽기 속도 빠름 빠름 쓰기 속도 느림 빠름 휘발성 수명 제한적 반영구적 2.3 ROM 초기에 ROM은위에서설명한것처럼제조사에서미리내용을기록시켜놓고변경할수없도록만들어졌으며이를마스크롬 (Mask ROM) 이라한다. ROM 제작에사용된데이터에오류가있다고생각해보자. 오류를수정하기위해서는칩자체를교환하여야하며, 칩을다시생산하기위해서는생산라인을수정해야하는등비용이많이든다. 이러한단점으로인해마스크롬은더이상제조되지않으며내용을지우고다시쓸수있는 ROM으로대체되었다. 내용을지우고다시쓸수있다면 ROM의정의와는달라지지만비휘발성메모리라는점은동일하므로아직도 ROM으로불리고있다. ROM의특징중하나는쓰기횟수에제한이있다는점이다. 전원이공급되지않아도 ROM에저장된내용을유지하기위해서는물리적인변형을가해야하며이러한변형은기록된내용을지운다고해서원상태로복구되지는않는다. 따라서일정횟수이상 ROM의내용을지우고다시쓰면 ROM은더이상사용할수없다. 지우개에글씨를새겼다가평평하게깎은후다시글씨를새기는과정을반복하면결국지우개는모두없어지고더이상글씨를새길수없는것과비교해볼수있다. 내용을기록할수있는 ROM 중처음소개된 ROM은 PROM(Programmable ROM) 이다. PROM 은내용이기록되지않은상태로생산되고, 전용장치인롬라이터를통해내용을 1회기록할수있다. PROM 에비트를기록하는각셀에는퓨즈가포함되어있고일정수준이상의전류를흘려퓨즈를끊는방식으로정보를기록한다. 26 CHAPTER 2 메모리 이야기
51 PROM을개선하여여러번지우고쓰기가가능한 ROM이 EPROM(Erasable PROM) 이다. EPROM 의윗면에는자외선을잘통과시키는석영유리창이나있고, 이창을통해자외선을쐬면기록된내용을지울수있다. 내용을지우기위해서는전용장치인롬이레이저를사용하지만, 태양빛에도자외선이포함되어있어오래방치해두면자연적으로기록된내용이사라질수있다. 따라서 EPROM 에내용을기록한후에는창을검정색테이프로막아자연상태에서내용이지워지지않도록한후사용하였다. EPROM 이전용장치를필요로하는단점을개선하여만들어진 ROM이 EEPROM(Electrically EPROM) 으로전기신호를이용하여내용을지우거나기록할수있다. EEPROM 의읽기동작은메모리중가장빠른속도를보이는 SRAM과거의비슷하지만, 쓰기동작은밀리초단위의시간이필요하므로쓰기동작이빈번한메인메모리용도로는적합하지않다. EEPROM 은내용을한번저장하면오랜시간동안이를기억하고읽기용도로만사용하는경우에주로사용된다. 플래시메모리가출시된이후사용빈도가줄어들고는있지만플래시메모리에비해적은용량의메모리는가격이싸고제어가간단하기때문에가전제품, 컴퓨터의 BIOS 칩등에아직도사용되고있다. ATmega328 에도 1Kbyte 의 EEPROM 이포함되어있어프로그램의실행옵션이나상태등을저장할수있다. 2.4 플래시메모리 (flash memory) 는 EEPROM 의변형으로 1984년도시바에서처음만들어졌다. EEPROM 은바이트단위로데이터를읽거나쓸수있다. 플래시메모리역시바이트단위읽기가가능하다는점에서는 EEPROM 과동일하지만, 블록단위의쓰기만가능하다는점에서 EEPROM 과차이가있다. 블록의크기는제조사나메모리용량에따라다르지만일반적으로 64byte 에서 128Kbyte 사이의크기가사용된다. 플래시메모리는블록단위의쓰기만가능하다는단점이있지만 EEPROM 에비해구조가간단하므로대용량메모리를만들기에적합하고, 블록전체를쓰는시간은 EEPROM 에서한바이트의데이터를쓰는시간과유사한수밀리초정도가소요되므로대용량의데이터를기록할때에는 EEPROM 보다빠른장점이있다. 이러한장점으로인해 1988 년상업용플래시메모리가처음소개된이후사용량이증가하여 USB 메모리를포함하여대부분의휴대용장치에서는플래시메모리가사용되고있다. 하지만플래시메모리는블록단위의쓰기를시행하므로일반적으로 EEPROM 에비해쓰기가능한횟수가적다. 2.4 플래시 메모리 27
52 ATmega328 에포함되어있는 EEPROM 의경우 100,000 회쓰기를보장하는반면, 플래시메모리는그 1/10 인 10,000 회쓰기만을보장한다. 플래시메모리는내부구조에따라크게두가지, 즉 NOR 형과 NAND 형이있다. NOR 형은메모리에서직접코드를실행하는어플리케이션에서 EEPROM 을대체하기위해설계되었다. 따라서 NOR 형플래시메모리는임의접근방식에서읽기시간을최소화하는구조로만들어졌다. 반면 NAND 형플래시메모리는대용량데이터를저장하기위해설계되어읽기속도는 NOR 형에비해느리지만지우고쓰는속도는 NOR 형보다빠르다. 또한 NAND 형플래시는집적도가높아 NOR 형플래시에비해가격이약 40% 저렴하여대용량저장장치에주로사용된다. 최근하드디스크의대안으로떠오르고있는 SSD(Solid State Disk) 역시 NAND 형플래시메모리로만들어진다. ATmega328 에서프로그램을저장하기사용되는메모리역시 32Kbyte 크기의플래시메모리이다. 2.5 SD SD(Secure Digital) 카드는플래시메모리를사용하여만들어진외부저장장치표준의하나이다. SD 카드는 NAND 플래시메모리와메모리에데이터를읽고쓰는과정을제어하는컨트롤러로구성되며, 스마트폰, 디지털카메라, 태블릿컴퓨터등휴대용장치에널리사용되고있다 년발표된 SD 카드는 1997 년발표된 MMC(Multi Media Card) 의데이터핀수와동작클록을보완하여만들어졌다. MMC의규격이개정되면서 SD 카드의기능상의장점을찾기는어렵지만, MMC를사용하는기기를찾아보기도어렵다. 하지만칩형태로제작된 emmc(embedded MMC) 는휴대용기기에서탈부착이불가능한저장용메모리로널리사용되고있다. MMC와 SD 카드의표준은거의흡사해서일부 SD 카드리더기에서는 MMC도읽을수있다. 하지만 MMC 리더기에서 SD 카드를읽을수는없다. MMC와 SD 카드가 NAND 형플래시메모리를기반으로만들어진저장장치의표준이라면, CF(Compact Flash) 는 NOR 형플래시메모리를기반으로만들어진저장장치표준의하나로아직도일부디지털카메라에서사용되고있다. SD 카드는최대 2Tbyte의용량을가질수있으며 2Gbyte 이하의용량을표준 SD 또는 SDSC(Standard Capacity), 4Gbyte 에서 32Gbyte 까지의용량을 SDHC(High Capacity), 그이상을 SDXC(eXtended Capacity) 로구별하여부르고있다. SD 카드는그크기별로세가지종류, 즉 SD, 미니 SD, 마이크로 SD가있으며, 휴대용기기에서는마이크로 SD 카드가주로사용되고있다. 28 CHAPTER 2 메모리 이야기
53 SD 미니 SD 마이크로 SD 2 2 SD 카드 9 아두이노에는 SD 카드를사용하기위한하드웨어를기본으로포함하고있지는않지만 SD 카드를사용하기위한 SD 라이브러리는기본으로제공하고있어대용량데이터를저장해야할경우사용할수있다. SD 라이브러리는 FAT16 과 FAT32 파일시스템을지원하며, 사용할수있는카드의용량은최대 32Gbyte 로표준 SD 카드와 SDHC 카드를사용할수있다. 2.6 emmc 아두이노의경우외부저장장치를포함하고있지않지만최근발매되고있는싱글보드컴퓨터의경우외부저장장치로 emmc를포함하고있는경우를종종볼수있다. emmc는 embedded Multi Media Card의약자로 SD 카드와마찬가지로메모리컨트롤러와플래시메모리로구성되며, 하나의칩으로만들어보드에장착하여사용한다. 스마트폰등모바일기기에서탈착이불가능한저장용메모리에 emmc가사용되며, 싱글보드컴퓨터중하나인비글본블랙 (BeagleBone Black) 에도 4Gbyte 의 emmc가저장장치로포함되어있다. emmc 2 3 비글본블랙 emmc 29
54 2.7 SSD emmc가임베디드시스템에서상대적으로적은용량의저장장치로사용된다면, SSD(Solid State Drive) 는대용량의고속저장장치로하드디스크를대체하기위해사용된다. 전통적인기계식동작을기반으로하는하드디스크에비해 SSD는기계적인장치없이동작하므로빠른속도와높은안정성을가지고있으며, 소음, 발열, 전력소모등이적고소형화, 경량화가가능하다는등여러면에서장점이있다. SSD는크게세부분, 즉데이터저장을위한플래시메모리, 데이터교환을제어하는컨트롤러, 캐시메모리역할을하는 DRAM으로구성되어있다. SSD는플래시메모리를바탕으로하므로쓰기횟수에제한이있다. 일반적으로 SSD는일상적인사용에서 10년이상의수명을보장하는것으로알려져있으므로빈번한쓰기작업이발생하는환경이아닌경우에는수명걱정을할필요는없다. 또한동일한위치의반복적인쓰기를감소시키는균등분배기술 (wear leveling), 비트오류의복구가가능한오류정정알고리듬의채택등으로수명은더늘어나고있다. 2.8 DRAM SRAM 지금까지살펴본메모리들은비휘발성메모리인 ROM으로쓰기에비해읽기가빈번한경우에적합하다. 하지만 CPU에서연산이수행되는경우잦은쓰기는피할수없으며이때사용되는메모리가컴퓨터에서흔히메인메모리라고불리는 RAM이다. RAM은크게동적 RAM(Dynamic RAM, DRAM) 과정적 RAM(Static RAM, SRAM) 두가지로나눌수있다. 동적과정적의차이는전원이공급되고있는동안기록된데이터가보존되는지여부에있다. SRAM은플립플롭을바탕으로만들어진메모리로한번기록된데이터는전원이공급되는동안계속남아있다. 반면 DRAM은커패시터에전하를저장하는방식으로데이터를기록하므로일정시간이지나면방전으로인해데이터가사라진다. 따라서 DRAM은일정시간간격으로커패시터를재충전하여야하며, 이를리프레시 (refresh) 라고한다. SRAM은 DRAM에비해최대 20배이상의속도로동작할수있지만집적도가낮고가격이비싸대용량의메모리를만들기에는적합하지않다. 따라서 CPU 내의레지스터나캐시메모리등작은크기의고속메모리에주로사용된다. 반면 DRAM은구조가간단하여집적도를높이기가용이하고소비전력이적어메인메모리로주로사용된다. ATmega328 에는 SRAM이포함되어있으며 DRAM은사용되지않는다. 30 CHAPTER 2 메모리 이야기
55 2 3 SRAM DRAM SRAM DRAM 읽기 / 쓰기 속도 빠름 느림 리프레시 집적도 낮음 높음 가격 비쌈 쌈 최근사용되고있는메모리의대부분은 DDR SDRAM 이다. SDRAM 은 Synchronous DRAM의약자로클록에동기화하여동작하는동기식 DRAM을말한다. SDRAM 은인텔의펜티엄 CPU 발표당시 CPU 클록과메모리동작을동기화시켜 DRAM의성능을개선하기위해만들어졌다. 하지만이후더높은클록의 CPU가발표되었지만메모리의속도는이를따라가지못하게되어 CPU와메모리의속도차이는증가하게되었고이를해결하기위한방법으로도입된것이 DDR(Double Data Rate) 이다. DDR 은 SDR(Single Data Rate) 과대비되는개념으로, SDR은각클록펄스의상승또는하강시점에서한번만정보를전송하는것을의미한다. 이에비해 DDR 은상승및하강시점에서정보를두번전송함으로써동작주파수의증가없이전송속도를 2배까지상승시킬수있는방법이다. DDR 의동작주파수를높이고소비전력을줄이는등의개선을통해 DDR2, DDR3 등이발표되었으며, 이들은이전방법에비해최대 2배의전송속도를얻을수있다. 하지만하위호환성이없으므로함께사용할수는없다. 현재시중에서판매되는메모리는 DDR3 가주종을이루고있으며, DDR2 와 240 핀으로핀수가동일하지만홈의위치가달라쉽게구별할수있다. DDR 메모리역시그크기는 DDR2 나 DDR3 와동일하지만핀수가 184핀으로적고홈의위치도다르다. DDR 메모리는현재거의사용되지않는다. DDR DDR2 DDR3 cm DDR 메모리비교 2.8 DRAM 과 SRAM 31
56 DDR SDRAM은메모리의동작특성을나타내는것으로그림 2-4에나타낸크기와홀의위치등은 DIMM(Dual In-line Memory Module) 규격에의해정의된다. DIMM은여러개의 DRAM 칩을기판위에탑재하여메모리모듈을제작하는방법에관한규격또는그규격에따라제작된메모리모듈을가리킨다. 메인보드에 DIMM 메모리를장착할수있도록만들어진슬롯은 DIMM 소켓또는 DIMM 슬롯이라고불린다. 노트북이나소형컴퓨터등의경우에는일반적인 DIMM보다작은크기인 SO(Small Outline) DIMM 메모리가사용된다. SO DIMM의크기는 DIMM의절반정도이며, 핀의수역시 DDR 과 DDR2는 200핀, DDR3 은 204핀으로 DIMM과차이가있다. SO DIMM DDR SO DIMM DDR2 SO DIMM DDR3 cm SO DIMM 메모리비교 2.9 폰노이만에의해메모리저장방식의범용컴퓨터가제안되면서메모리는현대컴퓨터의기본구조로자리잡게되고중앙처리장치와더불어컴퓨터의핵심적인요소중하나가되었다. 메모리는데이터를기록하고보존하는방식에따라 ROM과 RAM으로나뉜다. 이중 ROM은기술발전에힘입어쓰기가가능하게됨으로써다양한형태의메모리가개발되어사용되고있다. 그림 2-6은현재널리사용중인메모리의종류와관계를요약한것이다. 32 CHAPTER 2 메모리 이야기
57 마스크 ROM 메모리 ROM PROM EPROM EEPROM 플래시 메모리 NAND 형 NOR 형 RAM DRAM SRAM 2 6 메모리의종류 ATmega328 의경우데스크톱컴퓨터와는다른구조를채택하고있으므로사용되는메모리의종류와용도가데스크톱컴퓨터와는차이가있다. 하지만 ATmega328 이채택하고있는하버드구조역시데스크톱컴퓨터에서채택하고있는폰노이만구조의변형에해당하므로이들구조사이의관계역시이해하고있어야할것이다. 연습문제 중앙 처리 장치에서 사용하는 명령어의 구성에 따라 중앙 처리 장치는 CISC(Complex Instruction Set Computer) 와 RISC(Reduced Instruction Set Computer) 로 나뉜다. CISC/RISC 와 폰 노이만 / 하버드 구조는 서로 다른 관점에서 중앙 처리 장치를 나누는 기준이지만 RISC 는 하버드 구조와 함께 사용되는 경우를 흔히 볼 수 있다. RISC 와 하버드 구조가 함께 사용되는 이유는 무엇인지 알아보자. ATmega328 에는 두 종류의 ROM, 즉 플래시 메모리와 EEPROM 이 포함되어 있으며, 이들은 각각 프로그램과 데이터 저장을 위한 용도로 사용된다. 플래시 메모리는 프로그램을 저장하기 위해, EEPROM 은 데이터를 저장하기 위해 사용되는 이유는 무엇인지 알아보자. SD 카드, emmc, SSD 등은 모두 플래시 메모리를 바탕으로 만들어진 메모리 장치이다. 이들은 모두 동일한 형태의 메모리에서 출발하여 응용 분야에 맞게 발전된 형태로 볼 수 있다. 최근 다양한 플래시 메모리 기반의 메모리 장치들을 표준화하기 위한 새로운 포맷으로 UFS(Universal Flash Storage) 가 주목을 받고 있다. UFS 가 다른 메모리 장치와 다른 점은 무엇인지 알아보자. 연습문제 33
[ 마이크로프로세서 1] 1 주차 1 차시. 마이크로프로세서개요 1 주차 1 차시마이크로프로세서개요 학습목표 1. 마이크로프로세서 (Microprocessor) 를설명할수있다. 2. 마이크로컨트롤러를성능에따라분류할수있다. 학습내용 1 : 마이크로프로세서 (Micropr
1 주차 1 차시마이크로프로세서개요 학습목표 1. 마이크로프로세서 (Microprocessor) 를설명할수있다. 2. 마이크로컨트롤러를성능에따라분류할수있다. 학습내용 1 : 마이크로프로세서 (Microprocessor) 1. 마이크로프로세서란? 1 작은실리콘칩위에트랜지스터를수천만개집적한소자 2 마이크로 [μ] 는매우작은크기, 프로세서는처리기혹은 CPU를뜻하므로
More informationC 허경용 All Rights Reserved. 초판 1 쇄발행 2015 년 7 월 29 일 지은이허경용 펴낸이장성두 펴낸곳제이펍 출판신고 2009 년 11 월 10 일제 호 주소경기도파주시문발로 141 뮤즈빌딩 403 호 전화
C 2015. 허경용 All Rights Reserved. 초판 1 쇄발행 2015 년 7 월 29 일 지은이허경용 펴낸이장성두 펴낸곳제이펍 출판신고 2009 년 11 월 10 일제 406 2009 000087 호 주소경기도파주시문발로 141 뮤즈빌딩 403 호 전화 070 8201 9010 / 팩스 02 6280 0405 홈페이지 www.jpub.kr /
More informationMicrosoft PowerPoint - chap01-C언어개요.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을
More informationMicrosoft PowerPoint - chap02-C프로그램시작하기.pptx
#include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의
More informationMicrosoft Word - PLC제어응용-2차시.doc
과정명 PLC 제어응용차시명 2 차시. 접점명령 학습목표 1. 연산개시명령 (LOAD, LOAD NOT) 에대하여설명할수있다. 2. 직렬접속명령 (AND, AND NOT) 에대하여설명할수있다. 3. 병렬접속명령 (OR, OR NOT) 에대하여설명할수있다. 4.PLC의접점명령을가지고간단한프로그램을작성할수있다. 학습내용 1. 연산개시명령 1) 연산개시명령 (LOAD,
More information슬라이드 1
강력한성능! 인터넷 / 업무용데스크탑 PC NX-H Series Desktop PC NX1- H700/H800/H900 NX2- H700/H800/H900 NX1-H Series 사양 Series 제품설명 ( 모델명 ) NX1-H Series, 슬림타입 기본형모델중보급형모델고급형모델 NX1-H800:112SN NX1-H800:324SN NX1-H800:534MS
More information<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>
SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......
More information이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론
이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 2. 관련연구 2.1 MQTT 프로토콜 Fig. 1. Topic-based Publish/Subscribe Communication Model. Table 1. Delivery and Guarantee by MQTT QoS Level 2.1 MQTT-SN 프로토콜 Fig. 2. MQTT-SN
More information슬라이드 1
마이크로컨트롤러 2 (MicroController2) 2 강 ATmega128 의 external interrupt 이귀형교수님 학습목표 interrupt 란무엇인가? 기본개념을알아본다. interrupt 중에서가장사용하기쉬운 external interrupt 의사용방법을학습한다. 1. Interrupt 는왜필요할까? 함수동작을추가하여실행시키려면? //***
More information[ 마이크로프로세서 1] 1 주차 2 차시. 마이크로프로세서와마이크로컨트롤러발달과정 1 주차 2 차시마이크로프로세서와마이크로컨트롤러발달과정 학습목표 1. 마이크로프로세서발달과정과종류를설명할수있다. 2. 인텔 8051 계열과아트멜 (Atmel) 의특성을설명할수있다. 학습
1 주차 2 차시마이크로프로세서와마이크로컨트롤러발달과정 학습목표 1. 마이크로프로세서발달과정과종류를설명할수있다. 2. 인텔 8051 계열과아트멜 (Atmel) 의특성을설명할수있다. 학습내용 1 : 마이크로프로세서발달과정 1. 마이크로프로세서종류 1 인텔 ( intel) 80 계열 2 모토롤라 (motorola) 68 계열 2. 인텔 80 계열 1 최초 1971
More informationMicrosoft PowerPoint - es-arduino-lecture-03
임베디드시스템개론 : Arduino 활용 Lecture #3: Button Input & FND Control 2012. 3. 25 by 김영주 강의목차 디지털입력 Button switch 입력 Button Debounce 7-Segment FND : 직접제어 7-Segment FND : IC 제어 2 디지털입력 : Switch 입력 (1) 실습목표 아두이노디지털입력처리실습
More information정보보안 개론과 실습:네트워크
` 마이크로프로세서설계및실습 2 주차강의자료 2/31 Contents 학습목표 다양한 AVR 패밀리와소자특징을알아보고, 제어환경에따라 AVR 소자를선택하여개발할수있는융통성을이해할수있다. ATmega128 내부구조에서특수레지스터, 범용레지스터의역할을이해할수있다. ATmega128 내부에포함된명령어인출과실행절차를알아보고, 명령어유형을통해동작을이해할수있다. 내용
More informationC++ Programming
C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator
More informationMicrosoft Word - MAI-ISP-STK500_매뉴얼_Ver25.docx
MAI-ISP-STK500 사용자매뉴얼 Manual Ver. 2.5 엠에이아이 (M.A.I) www.maicom.co.kr http://cafe.naver.com/at128mai [ 모델이름 ]: MAI-ISP-STK5000 [ 용도 ]: AVR MCU의내부 Flash Memory 및 EEPROM 에 HEX 파일을 Write W / Readd 할수있는기능을하는프로그래머로써,
More information고객 카드 1588-7278
고객 카드 1588-7278 i 안전을 위한 경고사항 안전을 위한 주의사항 i 헤드유닛 DISP RADIO MEDIA PHONE SEEK TRACK 헤드유닛 FOLDER MUTE SCAN SETUP 스티어링 휠 리모트 컨트롤 + - MODE 기본모드 화면 Radio 모드 변경 RADIO 라디오 주파수 검색하기 SEEK TRACK 라디오 모드 사용하기 저장방송
More information- i - - ii - - iii - - iv - - v - - vi - - vii - - viii - - ix - - x - - xi - - xii - - xiii - - xiv - - xv - - xvi - - xvii - - xviii - - xix - - xx - - xxi - - xxii - - xxiii - - xxiv - - 3 - - 4 -
More informationISP and CodeVisionAVR C Compiler.hwp
USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler
More informationuntitled
시스템소프트웨어 : 운영체제, 컴파일러, 어셈블러, 링커, 로더, 프로그래밍도구등 소프트웨어 응용소프트웨어 : 워드프로세서, 스프레드쉬트, 그래픽프로그램, 미디어재생기등 1 n ( x + x +... + ) 1 2 x n 00001111 10111111 01000101 11111000 00001111 10111111 01001101 11111000
More informationChapter ...
Chapter 4 프로세서 (4.9절, 4.12절, 4.13절) Contents 4.1 소개 4.2 논리 설계 기초 4.3 데이터패스 설계 4.4 단순한 구현 방법 4.5 파이프라이닝 개요*** 4.6 파이프라이닝 데이터패스 및 제어*** 4.7 데이터 해저드: 포워딩 vs. 스톨링*** 4.8 제어 해저드*** 4.9 예외 처리*** 4.10 명령어 수준
More information<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>
뻔뻔한 AVR 프로그래밍 The Last(8 th ) Lecture 유명환 ( yoo@netplug.co.kr) INDEX 1 I 2 C 통신이야기 2 ATmega128 TWI(I 2 C) 구조분석 4 ATmega128 TWI(I 2 C) 실습 : AT24C16 1 I 2 C 통신이야기 I 2 C Inter IC Bus 어떤 IC들간에도공통적으로통할수있는 ex)
More informationJARDUINO-UNO-BT 커넥터 / 스위치기능 종류 USB 커넥터리셋스위치 DC 전원잭업로드선택스위치 ISP 모드선택점퍼블루투스시리얼모듈전원 / 디지털포트 / 아날로그포트커넥터및 ISP 커넥터 기능 +5V 전원공급, 유선업로드기능누른상태에서전원을공급하면부트로더프로그
JARDUINO-UNO-BT : 유무선아두이노 UNO 호환모듈 이제부터는아두이노도무선으로쓰자!!! 무선업로드기능이내장된아두이노 UNO 호환모듈드디어출시!!! JARDUINO-UNO-BT 소개 JARDUINO-UNO-BT는제이씨넷이출시한아두이노 UNO(Arduino UNO R3) 호환모듈로, 유선업로드는물론블루투스시리얼모듈을포함하고있어무선업로드도가능한아두이노모듈입니다.
More informationSIGIL 완벽입문
누구나 만드는 전자책 SIGIL 을 이용해 전자책을 만들기 EPUB 전자책이 가지는 단점 EPUB이라는 포맷과 제일 많이 비교되는 포맷은 PDF라는 포맷 입니다. EPUB이 나오기 전까지 전 세계에서 가장 많이 사용되던 전자책 포맷이고, 아직도 많이 사 용되기 때문이기도 한며, 또한 PDF는 종이책 출력을 위해서도 사용되기 때문에 종이책 VS
More information노트북 IT / 모바일 데스크탑 34 올인원PC 35 PC 소프트웨어 포터블SSD / SSD / 메모리카드 36 태블릿 37 휴대폰 39 PC 솔루션 IT / 모바일 IT / 모바일 노트북 29 삼성전자는 Windows 를 권장합니다. 삼성전자만의 편리하고 다양한 소프트웨어를 통해 초보자도 보다 쉽고 빠르게 이용 가능합니다. Easy Settings 삼성 패스트
More informationMicrosoft Word - EastSocket매뉴얼_ _.doc
USB 전원을이용한 SMD 패키지라이팅지원보드 저가의라이팅장비를사용하여 SMD 패키지마이컴을라이팅할수있도록지원하는장비입니다. 각종제품개발시마이컴을 SMD로사용하는추세로이를양산에적용시고가의장비를사용해야했습니다. 아니면보드에다운로더를사용하여마이컴라이팅을했습니다. 그에따른생산속도의저하및고가의장비구입에따른경제적부담이컸습니다. 이를대처하기위해저가및기존개발에사용한장비를그대로사용하여라이팅을할수있는지원장비를개발했습니다.
More informationMicrosoft PowerPoint - chap06-2pointer.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.
More informationuntitled
Content Ⅰ. 기본방향 1. 목 적 3 2. 적용범위 3 Ⅱ. 사회복지관 운영 1. 사회복지관의 정의 7 2. 사회복지관의 목표 7 3. 사회복지관의 연혁 7 4. 사회복지관 운영의 기본원칙 8 Ⅲ. 사회복지관 사업 1. 가족복지사업 15 2. 지역사회보호사업 16 3. 지역사회조직사업 18 4. 교육 문화사업 19 5. 자활사업 20 6. 재가복지봉사서비스
More informationSBR-100S User Manual
( 1 / 13 ) SBR-100S 모델에 대한 사용자 펌웨어 업그레이드 방법을 안내해 드립니다. SBR-100S 는 신규 펌웨어가 있을시 FOTA(자동업데이트) 기능을 통하여 자동 업그레이드가 되며, 필요시 사용자가 신규 펌웨어를 다운받아 수동으로 업그레이드 할 수 있습니다. 1. 준비하기 1.1 연결 장치 준비 펌웨어 업그레이드를 위해서는 SBR-100S
More informationNX1000_Ver1.1
See the world in perfect detail 1 2 3 4 J J KL t P A S M i g s v B 5 6 t P A S M i E PASM Z g s v 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Chapter 1 25 12 11 10 9 1 2 3 4 5 6 7 8 1 t P A S M i g
More informationAPI 매뉴얼
PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned
More information이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다
이장에서사용되는 MATLAB 명령어들은비교적복잡하므로 MATLAB 창에서명령어를직접입력하지않고확장자가 m 인 text 파일을작성하여실행을한다. 즉, test.m 과같은 text 파일을만들어서 MATLAB 프로그램을작성한후실행을한다. 이와같이하면길고복잡한 MATLAB 프로그램을작성하여실행할수있고, 오류가발생하거나수정이필요한경우손쉽게수정하여실행할수있는장점이있으며,
More informationMicrosoft Word - windows server 2003 수동설치_non pro support_.doc
Windows Server 2003 수동 설치 가이드 INDEX 운영체제 설치 준비과정 1 드라이버를 위한 플로피 디스크 작성 2 드라이버를 위한 USB 메모리 작성 7 운영체제 설치 과정 14 Boot Sequence 변경 14 컨트롤러 드라이버 수동 설치 15 운영체제 설치 17 운영체제 설치 준비 과정 Windows Server 2003 에는 기본적으로
More informationMotor Control Solution
Motor Control Solution 마이크로칩에서는 Stepper, Brushed-DC, AC Induction, Switched Reluctance Brushless-DC 등모터종류별특성및동작방식에맞는 MCU가준비되어있어, User가 Motor를이용한 Application을개발하려할때에가장적절한 Solution을제시해줄수있다. 이중 FFT나 PID연산등정밀한모터제어를실행하기위해꼭해주어야하는빠른
More information< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>
Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법
More informationH3250_Wi-Fi_E.book
무선 LAN 기능으로 할 수 있는 것 2 무선 LAN 기능으로 할 수 있는 것 z q l D w 3 Wi-Fi 기능 플로우차트 z q l D 4 Wi-Fi 기능 플로우차트 w 5 본 사용 설명서의 기호 설명 6 각 장별 목차 1 2 3 4 5 6 7 8 9 10 11 12 13 14 7 목차 1 2 3 4 8 목차 5 6 7 8 9 9 목차 10 11 12
More information마이크로프로세서 개요
1 주 개요 메카트로닉스공학부 조철우 8051 Pin Layout 8051 3 Atmel 89C2051 4 강의의개요 컴퓨터및의기원과동작원리를학습 마이크로컨트롤러를배우기위한기초원리 마이크로컨트롤러를활용하기위한도구사용법 마이크로컨트롤러를활용하기위한기초시스템설계및프로그래밍 History of Computer 컴퓨터의역사. 최초의컴퓨터 - 1946년 ENIAC,
More informationMango-IMX6Q mfgtool을 이용한 이미지 Write하기
Mango-IMX6Q mfgtool 을 이용한이미지 Write 하기 http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document
More information2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지
PX-8000 SYSTEM 8 x 8 Audio Matrix with Local Control 2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지역에
More information<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A634C0CFC2F72E BC8A3C8AF20B8F0B5E55D>
뻔뻔한 AVR 프로그래밍 The 4 th Lecture 유명환 ( yoo@netplug.co.kr) 1 시간 (Time) 에대한정의 INDEX 2 왜타이머 (Timer) 와카운터 (Counter) 인가? 3 ATmega128 타이머 / 카운터동작구조 4 ATmega128 타이머 / 카운터관련레지스터 5 뻔뻔한노하우 : 레지스터비트설정방법 6 ATmega128
More information2주차: 입출력 제어 복습
마이크로프로세서 응용및실습 ` 13-14 주차 : 직렬통신 (2) 한철수 전자공학과 2/35 직렬통신과병렬통신 직렬통신 한가닥의선으로송수신할데이터를차례대로전송하는방식 장점 : 통신선로가적기때문에경제적임 단점 : 전송속도가느림. 송수신약속이복잡해짐 병렬통신 여러가닥의선으로동시에여러개의데이터를전송하는방식 장점 : 전송속도가빠름 단점 : 직렬통신보다비쌈 3/35
More information아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상
Android 용 Brother Image Viewer 설명서 버전 0 KOR 아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상표입니다. Android는
More information경우 1) 80GB( 원본 ) => 2TB( 복사본 ), 원본 80GB 는 MBR 로디스크초기화하고 NTFS 로포맷한경우 복사본 HDD 도 MBR 로디스크초기화되고 80GB 만큼포맷되고나머지영역 (80GB~ 나머지부분 ) 은할당되지않음 으로나온다. A. Window P
Duplicator 는기본적으로원본하드디스크를빠르게복사본하드디스크에복사하는기능을하는것입니다.. 복사본 하드디스크가원본하드디스크와똑같게하는것을목적으로하는것이어서저용량에서고용량으로복사시몇 가지문제점이발생할수있습니다. 하드디스크는사용하려면, 디스크초기화를한후에포맷을해야사용가능합니다. Windows PC는 MBR과 GPT 2 개중에 1개로초기화합니다. -Windows
More information22-12324-4TEL:3668-3114 FAX:742-3387 TEL:3668-3120 FAX:745-9476 TEL:3668-3109, 2279-0867~8 TEL:3668-3127 TEL:3668-3123, 3128, 3162 www.saeki.co.kr, www.pentaximaging.co.kr Small 의 큰 스타일을 경험하다 당신의 카메라만으로도,
More informationPowerPoint Presentation
오에스아이소프트코리아세미나세미나 2012 Copyright Copyright 2012 OSIsoft, 2012 OSIsoft, LLC. LLC. PI Coresight and Mobility Presented by Daniel Kim REGIONAL 세미나 SEMINAR 세미나 2012 2012 2 Copyright Copyright 2012 OSIsoft,
More informationMicrosoft PowerPoint - chap04-연산자.pptx
int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); } 1 학습목표 수식의 개념과 연산자, 피연산자에 대해서 알아본다. C의 를 알아본다. 연산자의 우선 순위와 결합 방향에
More information09 강제근로의 금지 폭행의 금지 공민권 행사의 보장 38 10 중간착취의 금지 41 - 대판 2008.9.25, 2006도7660 [근로기준법위반] (쌍용자동차 취업알선 사례) 11 균등대우의 원칙 43 - 대판 2003.3.14, 2002도3883 [남녀고용평등법위
01 노동법 법원으로서의 노동관행 15 - 대판 2002.4.23, 2000다50701 [퇴직금] (한국전력공사 사례) 02 노동법과 신의성실의 원칙 17 - 대판 1994.9.30, 94다9092 [고용관계존재확인등] (대한조선공사 사례) 03 퇴직금 청구권 사전 포기 약정의 효력 19 - 대판 1998.3.27, 97다49732 [퇴직금] (아시아나 항공
More information안전을 위한 주의사항 2 경고 상세내용 4 SMP 이용자 7대 안전수칙 6 불법조작금지 6 Dolby, DTS, SRS, DivX 7 사용자 설명서 가이드 10 구성품 확인 12 각 부분의 명칭과 기능 13 SMP의 올바른 사용법 14 구성품 사용안내 14 SMP 전원 켜기/끄기 16 터치스크린 사용안내 17 통신환경 설정 20 SMP 시작하기 22 홈 스크린
More information<B3EDB9AEC0DBBCBAB9FD2E687770>
(1) 주제 의식의 원칙 논문은 주제 의식이 잘 드러나야 한다. 주제 의식은 논문을 쓰는 사람의 의도나 글의 목적 과 밀접한 관련이 있다. (2) 협력의 원칙 독자는 필자를 이해하려고 마음먹은 사람이다. 따라서 필자는 독자가 이해할 수 있는 말이 나 표현을 사용하여 독자의 노력에 협력해야 한다는 것이다. (3) 논리적 엄격성의 원칙 감정이나 독단적인 선언이
More information<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A636C0CFC2F72E BC8A3C8AF20B8F0B5E55D>
뻔뻔한 AVR 프로그래밍 The 6 th Lecture 유명환 ( yoo@netplug.co.kr) 1 2 통신 관련이야기 시리얼통신 관련이야기 INDEX 3 ATmega128 시리얼통신회로도분석 4 ATmega128 시리얼통신컨트롤러 (USART) 분석 5 ATmega128 시리얼통신관련레지스터분석 6 ATmega128 시리얼통신실습 1 통신 관련이야기 동기
More informationCAN-fly Quick Manual
adc-171 Manual Ver.1.0 2011.07.01 www.adc.co.kr 2 contents Contents 1. adc-171(rn-171 Pack) 개요 2. RN-171 Feature 3. adc-171 Connector 4. adc-171 Dimension 5. Schematic 6. Bill Of Materials 7. References
More information<BFDCB1B9C0CE20C5F5C0DAB1E2BEF7C0C720B3EBBBE7B0FCB0E82E687770>
외국인 투자기업의 노사관계 요 약 i ii 외국인 투자기업의 노사관계 요 약 iii iv 외국인 투자기업의 노사관계 요 약 v vi 외국인 투자기업의 노사관계 요 약 vii viii 외국인 투자기업의 노사관계 요 약 ix x 외국인 투자기업의 노사관계 요 약 xi xii 외국인 투자기업의 노사관계 요 약 xiii xiv 외국인 투자기업의 노사관계
More information°æÁ¦Àü¸Á-µ¼º¸.PDF
www.keri.org i ii iii iv v vi vii viii ix x xi xii xiii xiv xv 3 4 5 6 7 8 9 10 11 12 13 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 47 48 49 50 51 52 53
More information목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.
소프트웨어매뉴얼 윈도우드라이버 Rev. 3.03 SLP-TX220 / TX223 SLP-TX420 / TX423 SLP-TX400 / TX403 SLP-DX220 / DX223 SLP-DX420 / DX423 SLP-DL410 / DL413 SLP-T400 / T403 SLP-T400R / T403R SLP-D220 / D223 SLP-D420 / D423
More informationMicrosoft Word - 3부A windows 환경 IVF + visual studio.doc
Visual Studio 2005 + Intel Visual Fortran 9.1 install Intel Visual Fortran 9.1 intel Visual Fortran Compiler 9.1 만설치해서 DOS 모드에서실행할수있지만, Visual Studio 2005 의 IDE 를사용하기위해서는 Visual Studio 2005 를먼저설치후 Integration
More information<BBEABEF7B5BFC7E22DA5B12E687770>
2 40) 1. 172 2. 174 2.1 174 2.2 175 2.3 D 178 3. 181 3.1 181 3.2 182 3.3 182 184 1.., D. DPC (main memory). D, CPU S, ROM,.,.. D *, (02) 570 4192, jerrypak@kisdi.re.kr 172 . D.. (Digital Signal Processor),
More informationMicrosoft Word - codevision사용법_pdf버전.docx
CodevisionAVR 설치와 기본사용법 민경학 ( hak@anycalluser.net) 인하대학교 IT 공과대학전자공학과멀티미디어연구실 ( 하이테크센터 916 호 ) 2008.9.7.001 들어가며 AVR 에서쓸수있는컴파일러종류에는 CodeVisionAVR, AVR Edit, IAR, AVRStudio 등이있습니다. CodeVisionAVR 과 IAR 은상용이고
More informationUser Guide
하드웨어 참조 설명서 HP RP2 소매 시스템 Copyright 2014 Hewlett-Packard Development Company, L.P. Microsoft 와 Windows 는 Microsoft 그룹의 미 국 등록 상표입니다. 본 설명서의 내용은 사전 통지 없이 변경될 수 있습니다. HP 제품 및 서비스에 대한 유일한 보증은 제품 및 서비스와 함께
More informationePapyrus PDF Document
S104PP (10.4 인치일체형페널 P) S104PP chassis, L Specifications 260 190 46 (W ) 1024 x 768 (4:3) 400 cd 4선압력방식 1.5Kg 245 x 184 (1T~5T 가능 ) Intel eleron J1900 Quard ore 2z Intel VL887 O, O 250 ~ 1T, 40 ~ SS 옵션가능
More informationOCW_C언어 기초
초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향
More informationRealDSP UT 프로그램 메뉴얼
Motorola Programmer ( 모델명 : MDProg16) 사용설명서 UUU 리얼시스 (RealSYS) Web: www.realsys.co.kr Tel: 031-420-4326 Fax: 031-420-4329-1 - 1. Motorola Programmer 프로그램특징 A. JTAG & OnCE 기능을이용한 Motorola 의내부플래시메모리 Writing
More information<4D F736F F F696E74202D20325FBEC6B5CEC0CCB3EB20B1E2C3CABDC3C7E82E BC8A3C8AF20B8F0B5E55D>
아두이노사용해보기 http://arduino.cc/ 에서먼저프로그램을다운로드하여설치합니다. 시작이반이다 라는옛말이있죠? MCU 사용에있어서도개발환경구축하고, LED 하나깜박여보면절반은끝난거나마찬가지죠. 뭐 ~ 일단 http://arduino.cc/ 에방문하여 Download 를누르고해당 OS ( 보통 Windows를사용하시죠?) 용을압축파일을다운로드 ( 용량이
More informationPowerPoint Presentation
Computer Science Suan Lee - Computer Science - 03 컴퓨터구조 1 03 컴퓨터구조 - Computer Science - 03 컴퓨터구조 2 목차 1. 컴퓨터시스템의구성 2. 중앙처리장치 3. 기억장치 4. 입출력장치 - Computer Science - 03 컴퓨터구조 3 컴퓨터시스템의구성 하드웨어 : 컴퓨터를구성하는기계적장치
More information특징 찾아보기 열쇠 없이 문을 열 수 있어요! 비밀번호 및 RF카드로도 문을 열 수 있습니다. 또한 비밀번호가 외부인에게 알려질 위험에 대비, 통제번호까지 입력해 둘 수 있어 더욱 안심하고 사용할 수 있습니다. 나만의 비밀번호 및 RF카드를 가질 수 있어요! 다수의 가
www.kdnetwork.com 특징 찾아보기 열쇠 없이 문을 열 수 있어요! 비밀번호 및 RF카드로도 문을 열 수 있습니다. 또한 비밀번호가 외부인에게 알려질 위험에 대비, 통제번호까지 입력해 둘 수 있어 더욱 안심하고 사용할 수 있습니다. 나만의 비밀번호 및 RF카드를 가질 수 있어요! 다수의 가능할 삭제할 건전지 사용자를 위한 개별 비밀번호 및 RF카드
More informationPowerPoint 프레젠테이션
Kut-128_comm_board Kit 설명서 KUT-128_Com 실험키트 KUT-128_Com 실험키트의기능 (1) 초음파센서 4CH 7- Segment 가속도센서 자이로센서 RS-232 Wi-Fi Bluetooth Tex-LCD ATmega128 8EA LED ISP Connector 3Color Dotmatrix 1Color Dotmatrix 4EA
More informationADP-2480
Mitsubishi PLC 접속 GP 는 Mitsubishi FX Series 와통신이가능합니다. 시스템구성 6 7 8 GP-80 RS- Cable RS-C Cable FXN--BD FXN--BD 6 FX Series(FXS,FXN,FXN,FXNC, FXU) 7 FXS, FXN 8 FXN FX Series 는기본적으로 RS- 통신을하며, RS-/ converter
More information쉽게 풀어쓴 C 프로그래밍
누구나즐기는 C 언어콘서트 제 1 장프로그래밍소개 이번장에서학습할내용 프로그램의이해 프로그래밍언어 알고리즘 프로그램개발과정 프로그램을작성하기에앞서서중요한개념들을살펴봅니다.. 컴퓨터란? Q) 컴퓨터 (computer) 는무엇인가? A) 컴퓨터는기본적으로계산 (compute) 하는기계 Q) 컴퓨터를이용하여데이터를처리하려면반드시데이터가숫자형태이어야한다. 왜? A)
More information810 & 820 810 는 소기업 및 지사 애 플리케이션용으로 설계되었으며, 독립 실행형 장치로 구성하거 나 HA(고가용성)로 구성할 수 있습니다. 810은 표준 운영 체제를 실행하는 범용 서버에 비해 가격 프리미엄이 거의 또는 전혀 없기 때문에 화이트박스 장벽 을
목적에 맞게 설계된 어플라 이언스 원격 용도로 최적화된 어플라이언스 관리 및 에너지 효율성 향상 원격 관리 LOM(Lights Out Management), IPMI 2.0 장치 식별 버튼/LED 실시간 시스템 환경 및 오류 모 니터링 Infoblox MIBS를 통한 SNMP 모니터링 고가용성 공급 장치 예비 디스크 예비 냉각 팬 전원 공급 장치 현장 교체
More information<4D F736F F F696E74202D D FB8B6C0CCC5A9B7CEC7C1B7CEBCBCBCADBFCD20B8B6C0CCC5A9B7CEC4C1C6AEB7D1B7AF2DB9E8C6F7BFE
한밭대학교정보통신공학과 김진수 마이크로프로세서와마이크로컨트롤러 C 언어로배우는 8051 마이크로프로세서 학습이수체계도 실시간응용플랫폼응용통신인프라가전기기유비쿼터스컴퓨팅 자동제어 의료 스마트폰 PDA 테블릿 PC 게이트웨이 라우터 스위치 액세스포인트 디지털카메라 디지털 TV 셋탑박스 PVR/DVR 액티브배지 센서 단말기 RF 통신모듈 임베디드시스템 디지털시스템설계
More information6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO
Windows 7 설치및 PCIE RAID 설정정보 DK173 초판 11월 2016 A. Windows 7 및 USB 드라이버설치 칩셋사양에따라 Windows 7 설치중에 USB 키보드 / 마우스를사용하려면시스템에서 USB 드라이버를사전로드해야합니다. 이절에서는 USB 드라이버사전로드방법과 Windows 7 설치방법에대해서설명합니다. 방법 1: SATA ODD
More informationAVR ATmega128 소개 마이크로컨트롤러 AVR ATmega128 저자 : 이상설 소속 : 원광대학교전기 정보통신공학부
AVR ATmega128 소개 마이크로컨트롤러 AVR ATmega128 저자 : 이상설 (slee@wku.ac.kr) 소속 : 원광대학교전기 정보통신공학부 학습목표 2/39 다양한 AVR 패밀리와소자특징을알아보고, 제어환경에따라 AVR 소자를선택하여개발할수있는융통성을이해할수있다. ATmega128 내부구조에서메모리공간, I/O 공간의프로그램과데이터를처리하기위한특수레지스터,
More information3차시.ppt
[ 정보처리기능사필기] 1 과목 - 전자계산기일반 1 / 10 정보처리기능사 ( 필기 ) 1 과목. 전자계산기일반컴퓨터시스템의구성 2 1. 컴퓨터의기본구성 컴퓨터의기본구성 컴퓨터 = + (Hardware) 컴퓨터기계 (Software 를움직여주는프로그램 [ 정보처리기능사필기] 1 과목 - 전자계산기일반 2 / 10 2. (Hardware) -Hardware
More informationiOS ÇÁ·Î±×·¡¹Ö 1205.PDF
iphone ios 5 DEVELOPMENT ESSENTIALS Copyright 2011 Korean Translation Copyright 2011 by J-Pub. co. The Korean edition is published by arrangement with Neil Smyth through Agency-One, Seoul. i iphone ios
More information뉴티씨 (NEWTC) ATmega8 교육용모듈 (Model : AM-8PL ) 메뉴얼 ( 주 ) 뉴티씨 ( NEWTC ) 1. ATmega8 모듈 (AM-8PL) 소개 ATmega8 칩을
ATmega8 교육용모듈 (Model : AM-8PL ) 메뉴얼 ( 주 ) 뉴티씨 ( NEWTC ) 1. ATmega8 모듈 (AM-8PL) 소개 ATmega8 칩을이용한초소형모듈 AM-8PL에내장된 UART 포트로디버깅가능 ( 전원핀포함된뉴티씨 4핀 UART 배열 ) 8MHz 초소형크리스탈클럭채용으로안정성확보및 3.3V/5V 전원에모두동작함. 전원전압 (3.3V/5V)
More informationInstall stm32cubemx and st-link utility
STM32CubeMX and ST-LINK Utility for STM32 Development 본문서는 ST Microelectronics 의 ARM Cortex-M 시리즈 Microcontroller 개발을위해제공되는 STM32CubeMX 와 STM32 ST-LINK Utility 프로그램의설치과정을설명합니다. 본문서는 Microsoft Windows 7
More informationView Licenses and Services (customer)
빠른 빠른 시작: 시작: 라이선스, 라이선스, 서비스 서비스 및 주문 주문 이력 이력 보기 보기 고객 가이드 Microsoft 비즈니스 센터의 라이선스, 서비스 및 혜택 섹션을 통해 라이선스, 온라인 서비스, 구매 기록 (주문 기록)을 볼 수 있습니다. 시작하려면, 비즈니스 센터에 로그인하여 상단 메뉴에서 재고를 선택한 후 내 재고 관리를 선택하십시오. 목차
More informationMicrosoft Word - PEB08_USER_GUIDE.doc
0. PEB08 이란? PEB08(PIC EVALUATION BOARD 8bits) 은 Microchip 8bit Device 개발을쉽고편리하게할수있는보드입니다. 1. 다양한 8bit Device 지원 기존대부분의 8bit 보드의경우일부 Pin-Count만지원을하였지만, PEB08은 PIC10, PIC12, PIC16, PIC18의 DIP Type Package의모든
More information1. 제품소개및특징 1.1 제품소개 < 그림 1.1> AVRISP MK2 USB 개발장비 AVR ISP(In System Programmer)MK2 USB 란 Atmel 사의 AVR 마이크로컨트롤러의내부플래쉬와 EEPROM 에프로그램메모리및데이터를써 (Write, Re
매뉴얼 (P/N: LK-AVRISP mkii USB) 이경남 L K 임베디드 2017 LK EMBEDDED User Guide Version 0.3 페이지 1 1. 제품소개및특징 1.1 제품소개 < 그림 1.1> AVRISP MK2 USB 개발장비 AVR ISP(In System Programmer)MK2 USB 란 Atmel 사의 AVR 마이크로컨트롤러의내부플래쉬와
More information목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault
사용자매뉴얼 JetFlash Vault 100 ( 버전 1.0) 1 목차 1. 시스템요구사항... 3 2. 암호및힌트설정 ( 윈도우 )... 3 3. JetFlash Vault 시작하기 ( 윈도우 )... 7 4. JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault 찾아보기... 10 JetFlash
More informationePapyrus PDF Document
S104PP (10.4 인치일체형페널 P) S104PP chassis, L Specifications ooling System 260 190 46 (W ) 1024 x 768 (4:3) L 400 cd 4선압력방식 1.5Kg ase an(50 50) onector X 2 VS 고정방식, 매립브라켓고정방식 245 x 184 (1T~5T 가능 ) 12V/5 dapter
More informationBY-FDP-4-70.hwp
RS-232, RS485 FND Display Module BY-FDP-4-70-XX (Rev 1.0) - 1 - 1. 개요. 본 Display Module은 RS-232, RS-485 겸용입니다. Power : DC24V, DC12V( 주문사양). Max Current : 0.6A 숫자크기 : 58mm(FND Size : 70x47mm 4 개) RS-232,
More informationOSTSen-PIR100 사용자설명서 Ver 1.1 Onsystech OSTSen-PIR100 V1.1 1 of 8 Onsystech
OSTSen-PIR100 사용자설명서 Ver 1.1 Onsystech OSTSen-PIR100 V1.1 1 of 8 Onsystech 1. 제품소개 1) 제품특징 OSTSen-PIR100은 UART 인터페이스를통하여인체모션감지 (PIR) 데이터를제공하는센서모듈입니다. 이센서모듈은사용자가편리하게다양한분야에적용할수있도록소형으로제작되었습니다. ( PIR: Pyroelectric
More informationiii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.
Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder:
More informationez-shv manual
ez-shv+ SDI to HDMI Converter with Display and Scaler Operation manual REVISION NUMBER: 1.0.0 DISTRIBUTION DATE: NOVEMBER. 2018 저작권 알림 Copyright 2006~2018 LUMANTEK Co., Ltd. All Rights Reserved 루먼텍 사에서
More informationC++ Programming
C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout
More informationIntroduction to Computer Science
컴퓨터공학개론 3 장컴퓨터구조 학습목표 컴퓨터의동작을이해하는것이왜필요한지배운다. CPU 는무엇이고, 어떻게동작하는지배운다. 디지털논리회로가어떻게동작하는지배운다. 기본적인부울 (Boolean) 연산에대해배운다. 기본적인논리게이트가어떻게동작하는지, 또이것이복잡한컴퓨터회로를구축하는데어떻게사용되는지이해한다. 2 학습목표 ( 계속 ) 폰노이만 (Von Neumann)
More information13Åë°è¹é¼Ł
이면은빈공간입니다. National Statistics White Paper 2012 National Statistics White Paper ii _ STATISTICS KOREA 2012 _ iii 2012 National Statistics White Paper 1 26 2 27 3 28 4 29 5 30 6 31 7 32 8 33 9 34 10 35
More information슬라이드 1
-Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역
More informationMicrosoft Word - Ahram_ISP_V15_Manual_V20.doc
Ahram ISP V1.5 사용자매뉴얼 Manual Ver 2.0 Ahramsoft CO.LTD www.ahramsoft.com Contents 1. 모델이름 ------------------------------------------------------- 3 2. 용 도 -------------------------------------------------------
More informationPathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.
PathEye Mobile Ver. 0.71b 2009. 3. 17 By PathEye 공식 블로그 다운로드 받으세요!! http://blog.patheye.com 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다. PathEye 설치 1/3 최종 배포 버전을 다 운로드 받습니다. 다운로드된 파일은 CAB 파일입니다. CAB 파일에는
More information<3036C7E2BCF6C3D6C1BEBABB2E687770>
문화향수실태조사 SURVEY REPORT ON CULTURAL ENJOYMENT 2006 문화관광부 한국문화관광정책연구원 Ministry of Culture & Tourism Korea Culture & Tourism Policy Institute 서문 우리나라 국민들이 문화와 예술을 얼마나, 그리고 어떻게 즐기고 있는지를 객관적으 로 파악하기 위하여, 1988년부터
More informationWindows 10 General Announcement v1.0-KO
Windows 10 Fuji Xerox 장비와의호환성 v1.0 7 July, 2015 머리말 Microsoft 는 Windows 10 이 Windows 자동업데이트기능을통해예약되어질수있다고 6 월 1 일발표했다. 고객들은 윈도우 10 공지알림을받기 를표시하는새로운아이콘을알아차릴수있습니다. Fuji Xerox 는 Microsoft 에서가장최신운영시스템인 Windows
More information<4D F736F F F696E74202D203131C1D6C2F7202D E6FB8A620C0CCBFEBC7D120C4B3B8AFC5CD204C43442C C1A6BEEEC7CFB1E2205
강의내용 Ⅰ Arduino 를이용한캐릭터 LCD, VFD 제어하기 1 1. 소개 소개 - CDS 와디지털입출력포트그중에서도 PWM 포트를사용하여 LED 를 통하여아날로그출력을해보려고함. - 이번강좌를통해여러가지센서들을응용함에많은도움이될것임. 2 1. 소개 - 요즘 LCD와관련하여많은제품들이나오고있음. 종류도다양하고크기도다양함. - 이번강의에서는아두이노를이용하여
More information초판 1쇄발행 2014년 5월 30일지은이허경용펴낸이장성두펴낸곳제이펍출판신고 2009년 11월 10일제 호주소경기도파주시문발로 141 뮤즈빌딩 403호전화 / 팩스 홈페이지
초판 1쇄발행 2014년 5월 30일지은이허경용펴낸이장성두펴낸곳제이펍출판신고 2009년 11월 10일제406 2009 000087호주소경기도파주시문발로 141 뮤즈빌딩 403호전화 070 8201 9010 / 팩스 02 6280 0405 홈페이지 www.jpub.kr / 이메일 jeipub@gmail.com 편집부이민숙, 이슬, 이주원 / 소통 기획팀현지환본문디자인성은경
More information<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>
VHDL 프로그래밍 D. 논리합성및 Xilinx ISE 툴사용법 학습목표 Xilinx ISE Tool 을이용하여 Xilinx 사에서지원하는해당 FPGA Board 에맞는논리합성과정을숙지 논리합성이가능한코드와그렇지않은코드를구분 Xilinx Block Memory Generator를이용한 RAM/ ROM 생성하는과정을숙지 2/31 Content Xilinx ISE
More information실용신안등록청구의범위청구항 1 안드로이드기반스마트폰앱 (Application Program, 애플리케이션프로그램 ) 을통하여제어장치를제어하는실습장치에있어서, 통신이설정된컴퓨터 (400) 로부터전송되는안드로이드기반스마트폰앱을저장하는메모리 (130) 와, 상기스마트폰앱에의
(19) 대한민국특허청 (KR) (12) 공개실용신안공보 (U) (51) 국제특허분류 (Int. Cl.) G06F 1/00 (2006.01) G09B 23/18 (2006.01) G05B 19/02 (2006.01) H04L 12/12 (2006.01) (21) 출원번호 20-2011-0010026 (22) 출원일자 2011 년 11 월 11 일 심사청구일자
More informationMicrosoft Word - logic2005.doc
제 8 장 Counters 실험의목표 - Catalog counter 의동작원리에대하여익힌다. - 임의의 counter를통하여 FSM 구현방법을익힌다. - 7-segment display 의동작원리를이해한다. 실험도움자료 1. 7-segment display 7-segment는디지털회로에서숫자를표시하기위하여가장많이사용하는소자이다. 이름에서알수있듯이 7개의 LED(
More informationAVR ATmega128 소개 AVR ATmega128 IT Eng 학습목표 ü 다양한 AVR 패밀리와소자특징을알아보고, 제어환경에따라 AVR 소자를선택하여개발할수있는융통성을이해할수있다. ü ATmega128 내부구조에서메모리공간, I/O 공간의프로그램과데이터를처리하기
AVR ATmega128 소개 AVR ATmega128 학습목표 ü 다양한 AVR 패밀리와소자특징을알아보고, 제어환경에따라 AVR 소자를선택하여개발할수있는융통성을이해할수있다. ü 에서메모리공간, I/O 공간의프로그램과데이터를처리하기위한특수레지스터, 범용레지스터의역할을이해할수있다. ü ATmega128 내부에포함된명령어인출과실행절차를알아보고, 명령어유형을통해동작을이해할수있다.
More information- I - - II - - III - - IV - - V - - VI - - VII - - VIII - - IX - - X - - XI - - XII - - XIII - - XIV - - XV - - XVI - - XVII - - XVIII - - XIX - - XX - - XXI - - XXII - - XXIII - - 1 - - - - 3 - - - -
More informationvostro2월CDM4.0
Dell Windows Vista Business VOSTRO TM Dell Windows Vista Business OptiPlex 330 DT 619,000 VOSTRO 1400 659,000 E228WFP Digital Wide LCD 289,000 E248WFP Wide LCD 399,000 VOSTRO 200 349,000 dell.co.kr/ 410
More informationMicrosoft PowerPoint - avr_lecture1.ppt
임베디드마이크로프로세서 프로그래밍실전 제작 : 네로테크 강의 : 김종형 AVR 개요및개발환경구축 1. AVR 개요및특징 2. AVR 개발환경구축 -2- 1-1 AVR 의개요 AVR [ Alf(Bogen) Vergard(Wollen) Risc ] 이란? ATMEL 사에서제작된 RISC(Reduced Instruction Set Computer) 구조의저전력 CMOS
More informationPowerPoint 프레젠테이션
유니티와아두이노를활용한 VR 컨트롤러개발 Part 06 헬로앱스코딩교육 김영준 공학박사, 목원대학교겸임교수前 Microsoft 수석연구원 splduino@gmail.com http://www.helloapps.co.kr 키보드로물체생성하기 키보드로물체생성하기 public GameObject CubeObject; public GameObject MyCamera;
More information