책소개
마이크로컨트롤러는 오늘날 거의 모든 전자기기의 중심에서 작동하고 있으며, 그 중에서도 ARM 기반의 STM32 시리즈는 강력한 성능과 폭넓은 응용 가능성 덕분에 많은 관심을 받고 있다. 그런데 ARM STM32 시리즈 마이크로컨트롤러를 학습하고 싶어하는 입문자들은 높은 진입 장벽에 부딪히곤 한다. 왜냐하면 기존의 학습 자료들은 방대하거나 복잡하여 입문자에게 친절하지 않은 경우가 대부분이며, 실습하기 편리한 적절한 키트나 예제를 찾는 것도 쉬운 일이 아니기 때문이다.
이 책은 STM32F103RB 마이크로컨트롤러를 중심으로, NUCLEO-F103RB 보드와 JKIT-Nucleo-64 실습 키트, STM32CubeIDE 개발환경을 활용하여 ARM STM32시리즈 마이크로컨트롤러의 기본 개념을 쉽고 체계적으로 그리고 재미있게 학습할 수 있도록 하려는 목적으로 집필되었다.
이 책은 총 11개의 코스로 구성된다. 각 코스는 독창적인 응용을 구현하기 위한 하드웨어 설계, 핀아웃 설정, 알고리즘 기술, 코딩 작성, 다운로드 및 실행의 단계를 체계적으로 제시하며, 모든 예제에 대한 실행 동영상을 유튜브(쇼츠)로 제공한다. 전자회로는 LED, 스위치, 버저, 광센서, FND, 디지털온도센서, CLCD, 모터 등을 구동하는 회로가 소개되고, 코딩은 STM32CubeIDE 개발환경을 이용하여 GPIO, 인터럽트, 타이머, PWM, UART 통신, I2C 통신, SPI 통신 등의 기술 응용을 HAL 라이브러리를 중심으로 제시한다.
대학이나 교육기관에서 강의하는 경우, 3시간 강의 기준으로 (코스-1)는2회, (코스-2)~(코스-11)은 각1회씩 할당하면 적당할 것이다.
바야흐로 챗GTP와 같은 인공지능(AI)이 코딩의 많은 부분을 도와주는 시대다. 하지만, 인공지능(AI)도 기초가 튼튼한 사람만이 제대로 활용할 수 있다. 이런 점에서 이 책은 ARM STM32 시리즈 마이크로컨트롤러 입문자에게 매우 괜찮은 출발점이 될 것이다.
목차
Chapter 01
Chapter 02
Chapter 03
Chapter 04
Chapter 05
Course 1 : 준비하기 ? 프리 코스
1.1 준비물 챙기기
1.2 통합개발환경 STM32CubeIDE 설치하기
1.3 마이크로컨트롤러 STM32F103RB 살펴보기
1.4 개발 보드 NUCLEO-F103RB와 친해지기
1.5 실습 키트 JKIT-Nucleo-64 장착하기
Course 2 : LED로 앰뷸런스 비상등 만들기 ? GPIO
2.1 LED
2.2 GPIO
2.3 LED 회로 설정
2.4 LED 1개 불 켜기
2.5 LED 깜빡이기
2.6 LED로 앰뷸런스 비상등 만들기
Course 3 : 스위치로 앰뷸런스 비상등 모드 바꾸기 ? 인터럽트
3.1 스위치
3.2 스위치 회로 설정
3.3 스위치로 LED 켜고 끄기
3.4 스위치를 누를 때마다 LED 켜고 끄기
3.5 인터럽트
3.6 스위치 회로 설정 (인터럽트 이용)
3.7 스위치를 누를 때마다 LED 켜고 끄기 (인터럽트 이용)
3.8 스위치로 앰뷸런스 비상등 모드 바꾸기
Course 4 : 터미널로 제어하는 앰뷸런스 비상등 ? UART
4.1 UART 통신
4.2 UART 회로 설정
4.3 Hello, Im JKIT-Nucleo-64. 디스플레이하기
4.4 청개구리 응답기 만들기
4.5 UART 인터럽트 설정
4.6 터미널로 제어하는 앰뷸런스 비상등
4.7 printf( ) 함수 연결하기
Course 5 : 정확한 간격으로 깜빡이는 항공장애등 ? 범용 타이머
5.1 항공장애등
5.2 타이머
5.3 정확한 간격으로 깜빡이는 항공장애등
Course 6 : 어두워지면 저절로 켜지는 랜덤 정원등 ? ADC
6.1 광센서
6.2 ADC
6.3 광센서 회로 설정
6.4 ADC 변환 동작 확인하기
6.5 어두워지면 저절로 켜지는 랜덤 정원등
Course 7 : 오늘 남은 시간을 알려주는 거꾸로 시계 ? SysTick 타이머
7.1 FND
7.2 FND 회로 설정
7.3 1개의 FND에 7 디스플레이하기
7.4 4-digit FND에 1234 디스플레이하기
7.5 오늘 남은 시간을 알려주는 거꾸로 시계
Course 8 : 해리포터 마법 뮤직 플레이어 ? PWM(1)
8.1 소리
8.2 버저
8.3 버저 회로 설정
8.4 버저로 삐~ 소리 내기
8.5 버저로 삐~ 소리 내기 (PWM 이용)
8.6 도레미송 노래 연주하기
8.7 해리포터 마법 뮤직 플레이어
Course 9 : 회전 속도 조절이 가능한 복불복 이벤트 룰렛 ? PWM(2)
9.1 모터
9.2 모터 회로 설정
9.3 타이머 PWM으로 모터 회전시키기
9.4 회전 속도 조절이 가능한 복불복 이벤트 룰렛
Course 10 : 현재/최고/최저 온도를 알려주는 멀티 온도계 ? I2C
10.1 온도센서
10.2 I2C 통신
10.3 LM75A 디지털 온도센서
10.4 온도센서 회로 설정
10.5 CLCD
10.6 CLCD 회로 설정
10.7 CLCD에 A 디스플레이하기
10.8 CLCD에 현재 온도 디스플레이하기
10.9 현재/최고/최저 온도를 알려주는 멀티 온도계
Course 11 : 간단한 암호문 생성기/해독기 ? SPI
11.1 치환 암호
11.2 SPI 통신
11.3 SPI 통신 회로 설정
11.4 CLCD에 Hello! 디스플레이하기 (SPI 이용)
11.5 간단한 암호문 생성기/해독기
Chapter 81
Chapter 82