이미 소장하고 있다면 판매해 보세요.
|
PART I Mbed 소개
CHAPTER 01 Mbed란 무엇인가? 1.1 ARM 프로세서 2 1.2 Cortex-M 8 1.3 Mbed의 등장 10 1.4 Mbed 보드 14 1.5 Mbed 보드의 단점 17 1.6 Mbed와 아두이노 19 CHAPTER 02 누클레오 보드 시작하기 2.1 누클레오 보드 21 2.2 누클레오 보드의 특징 25 2.3 Mbed 프로그래밍 시작하기 29 2.4 컴퓨터와의 시리얼 통신 37 2.5 맺는말 41 CHAPTER 03 마이크로컨트롤러 프로그래밍 3.1 블링크 프로그램 44 3.2 객체의 사용 46 3.3 맺는말 50 CHAPTER 04 NUCLEO-F103RB 보드 사용하기 4.1 Mbed 보드 51 4.2 STM32F103RBT6 마이크로컨트롤러 53 4.3 NUCLEO-F103RB 보드 55 4.4 범용 입출력 핀 사용: LED1, USER_BUTTON 57 4.5 맺는말 61 CHAPTER 05 Mbed API 5.1 Mbed API 62 5.2 하드웨어 종속적 프로그래밍 64 5.3 하드웨어 독립적 프로그래밍 68 5.4 LPC1768 보드 73 5.5 맺는말 80 PART II 기본 프로그래밍 CHAPTER 06 디지털 데이터 입출력 6.1 디지털 데이터 입출력 82 6.2 DigitalOut 클래스 89 6.3 DigitalIn 클래스 93 6.4 DigitalInOut 클래스 97 6.5 맺는말 99 CHAPTER 07 UART 시리얼 통신 7.1 시리얼 통신 100 7.2 UART 101 7.3 Serial 클래스 105 7.4 맺는말 115 CHAPTER 08 아날로그 데이터 입력 8.1 아날로그 디지털 변환 116 8.2 AnalogIn 클래스 119 8.3 맺는말 124 CHAPTER 09 PWM 신호 출력 9.1 PWM 신호 출력 125 9.2 PwmOut 클래스 130 9.3 맺는말 135 CHAPTER 10 인터럽트 10.1 폴링 방식과 인터럽트 방식 136 10.2 Ticker 클래스 138 10.3 InterruptIn 클래스 139 10.4 맺는말 146 CHAPTER 11 주기적인 데이터 처리 11.1 wait 함수 147 11.2 Timer 클래스 150 11.3 Ticker 클래스 152 11.4 Timeout 클래스 155 11.5 맺는말 156 CHAPTER 12 SPI 통신 12.1 SPI 157 12.2 EEPROM 162 12.3 SPI 방식 OLED 168 12.4 맺는말 175 CHAPTER 13 I2C 통신 13.1 I2C 176 13.2 I2C 방식 OLED 181 13.3 텍스트 LCD 187 13.4 맺는말 193 CHAPTER 14 1-와이어 통신 14.1 1-와이어 통신 195 14.2 DS18B20 온도 센서 199 14.3 맺는말 205 PART III 주변장치 프로그래밍 CHAPTER 15 블루투스 15.1 블루투스 208 15.2 HC-06 블루투스 모듈 209 15.3 스마트폰 설정 214 15.4 블루투스 통신 215 15.5 맺는말 218 CHAPTER 16 로터리 인코더 16.1 로터리 인코더 219 16.2 로터리 인코더의 사용 221 16.3 맺는말 226 CHAPTER 17 센서 17.1 온도 센서 228 17.2 조도 센서 231 17.3 PIR 센서 233 17.4 맺는말 237 CHAPTER 18 디지털 온습도 센서 18.1 DHT11 센서 239 18.2 DHT22 센서 246 18.3 맺는말 250 CHAPTER 19 거리 측정 센서 19.1 초음파 거리 센서 251 19.2 적외선 거리 센서 256 19.3 맺는말 259 CHAPTER 20 릴레이 20.1 릴레이 260 20.2 릴레이를 통한 가전제품의 제어 262 20.3 맺는말 267 CHAPTER 21 7세그먼트 표시장치 21.1 7세그먼트 표시장치 268 21.2 한 자리 7세그먼트 표시장치 270 21.3 네 자리 7세그먼트 표시장치 273 21.4 맺는말 283 CHAPTER 22 LED 매트릭스 22.1 LED 매트릭스 284 22.2 LED 매트릭스 제어 287 22.3 Sseg 라이브러리 사용 291 22.4 맺는말 292 CHAPTER 23 텍스트 LCD 23.1 텍스트 LCD 293 23.2 텍스트 LCD 라이브러리 296 23.3 맺는말 301 CHAPTER 24 RTC 24.1 RTC 302 24.2 DS1307 303 24.3 DS3231 313 24.4 맺는말 321 CHAPTER 25 DC 모터 25.1 DC 모터 322 25.2 DC 모터 제어 325 25.3 맺는말 333 CHAPTER 26 서보 모터 26.1 서보 모터 334 26.2 서보 모터 제어 336 26.3 가변저항으로 서보 모터 제어 26.4 맺는말 340 PART IV 고급 프로그래밍 CHAPTER 27 RTOS ― 멀티스레드 구현 27.1 실시간 운영체제 344 27.2 스레드 345 27.3 시그널 349 27.4 맺는말 353 CHAPTER 28 STM32duino ― STM32를 위한 아두이노 코어 28.1 아두이노 환경 설정 355 28.2 아두이노 스케치 358 28.3 맺는말 364 CHAPTER 29 누클레오-아두이노 UART 통신 29.1 누클레오 보드와 아두이노 우노 연결 366 29.2 UART 시리얼 통신 프로그래밍 370 29.3 맺는말 372 CHAPTER 30 블루필 보드 30.1 블루필 보드 373 30.2 블루필 보드 프로그래밍 374 30.3 맺는말 379 찾아보기 381 |
허경용의 다른 상품
|
NUCLEO 보드는 STMicroelectronics의 Cortex-M 기반 STM32 마이크로컨트롤러를 사용하여 만들어진 Mbed 보드로 다양한 형태와 다양한 사양의 보드가 30종 가까이 판매되고 있다. 누클레오 보드 중 이 책에서는 Cortex-M 시리즈 중에서도 가장 먼저 발표된 Cortex-M3 코어를 사용한 NUCLEO-F103RB 보드를 사용한다. 이외에도 NUCLEO-F103RB를 선택한 이유로는 저렴한 가격과 가격 대비 높은 성능 그리고 STMicroeectronics의 높은 시장 점유율을 빼놓을 수 없다.
--- p.41 Mbed 환경에서 프로그램은 C/C++ 언어를 사용하여 만들어진다. 특히 Mbed API는 C++의 클래스 라이브러리를 통해 구현되어 있으므로 클래스의 사용 방법을 알아두는 것은 필수적이다. 앞의 예에서도 볼 수 있듯이 클래스의 사용법은 구조체와 비슷하다. 어려운 점은 필요로 하는 클래스의 기능을 정의하고 이를 쉽게 사용할 수 있도록 구현하는 것이지만, Mbed 환경에서는 다양한 마이크로컨트롤러의 기능을 클래스 라이브러리로 구현해두고 있으므로 그 사용법을 알아두는 것에서 시작할 수 있다. 관심 있는 독자라면 C++ 언어와 객체지향 관련 책을 찾아볼 것을 추천한다. --- p.50 인터럽트는 정상적인 프로그램의 실행 과정에서 우선적으로 처리해야 하는 비정상적인 사건을 말한다. 아두이노와 Mbed 모두에서 기본적으로 다루는 인터럽트는 핀에 가해지는 입력 변화로 발생하는 외부 인터럽트뿐이다. 하지만 이는 실제 마이크로컨트롤러에서 지원하는 인터럽트 일부분에 지나지 않는다. 아두이노와 Mbed에서 인터럽트를 자세히 다루지 않는 것은 이해하기가 쉽지 않기 때문이다. 코드 10-5를 보더라도 main 함수 내의 while 루프는 비어 있다. 하지만 코드 10-5는 정상적으로 동작한다. 이는 인터럽트 발생 및 처리 과정에 하드웨어가 관여하고 있기 때문이다. 하지만 아두이노와 Mbed 라이브러리에서는 이미 인터럽트를 사용하고 있다는 점을 잊지 말아야 한다. 또한 인터럽트가 라이브러리 구현에 사용되고 있다는 점은 인터럽트가 복잡한 동작을 구현하는 데 유용하다는 것을 보여준다는 점도 기억해야 한다. --- p.146 마이크로컨트롤러를 사용하여 제어장치를 구성하는 경우 흔히 접하는 문제 중 하나가 일정 시간 간격으로 특정 동작을 반복하는 문제다. 일정 시간 간격으로 값을 증가 또는 감소시키는 카운터와 일정 시간 이후 특정 동작을 수행하도록 하는 타이머가 그 전형적인 예에 속하며 이외에도 다양한 예를 찾아볼 수 있다. 시간 간격을 조절하기 위해 사용할 수 있는 간단한 방법은 wait 함수를 사용하는 것이다. 하지만 wait 함수는 현재 실행 중인 스레드를 대기 상태로 바꾸므로 스레드가 일시 정지하는 단점이 있다. 스레드를 정지시키지 않으면서 주기적인 작업을 처리할 수 있도록 하기 위해서는 Timer, Ticker 등의 클래스를 사용할 수 있다. --- p.156 Mbed에서는 I2C 통신을 지원하기 위해 I2C 라이브러리를 제공하고 있지만, I2C 라이브러리에서는 저수준의 데이터 교환과 관련된 기능만을 제공한다. I2C 통신을 통해 연결되는 주변장치에 따라 데이터를 전달하는 순서와 방식에서 차이가 있으므로 I2C 라이브러리를 바탕으로 만들어진 전용 라이브러리를 사용하는 것이 일반적이다. 이 장에서 살펴본 OLED나 텍스트 LCD도 I2C 라이브러리를 바탕으로 만들어진 전용 라이브러리를 사용한다. OLED의 경우 SPI 통신을 사용하는 예를 12장에서, 텍스트 LCD의 경우 병렬 데이터 전송을 사용하는 예를 23장에서 다루고 있으므로 I2C 통신의 경우와 비교해보고 필요에 따라 선택하여 사용하면 된다. --- p.194 |
|
Mbed는 ARM에서 설계한 Cortex-M 마이크로컨트롤러를 위한 사물인터넷 플랫폼으로, 사물인터넷을 위한 디바이스와 애플리케이션 개발에 필요한 모든 것을 포함한다. 그리고 ARM의 Cortex-M은 고성능의 32비트 마이크로컨트롤러로, Mbed의 추상화된 라이브러리와 온라인 개발 환경을 통해 누구나 쉽게 시작할 수 있을 뿐더러 짧은 시간에 높은 성능을 체험할 수 있다.
이 책의 대상 독자 하드웨어 전공자로 Mbed 플랫폼에 관심이 있는 분 마이크로컨트롤러 프로그래밍을 처음 시작하는 분 아두이노보다 좀 더 고성능의 마이크로컨트롤러를 배우고 싶은 분 사물인터넷 하드웨어 플랫폼에 관심이 있는 분 |