PART I 라즈베리 파이 사용하기
CHAPTER 1 사물인터넷과 라즈베리 파이 3
1.1 사물인터넷과 오픈 소스 하드웨어 플랫폼 4
1.2 라즈베리 파이 한 입 베어 물기 10
1.3 라즈베리 파이를 위한 주변 장치 14
1.4 라즈베리 파이를 위한 준비 운동: 사용 환경 설정 21
1.5 요약 46
CHAPTER 2 리눅스의 기초: 라즈베리 파이와 친해지기 49
2.1 리눅스의 사용 환경과 구조 51
2.2 리눅스의 기본 명령어 54
2.3 리눅스 텍스트 에디터 70
2.4 리눅스의 프로그래밍 도구 78
2.5 요약 104
CHAPTER 3 라즈베리 파이와 GPIO: 하드웨어 제어 107
3.1 GPIO의 개요 108
3.2 LED 제어 프로그래밍 111
3.3 wiringPi를 이용한 GPIO 프로그래밍 124
3.4 SenseHAT을 이용한 기상 관측 시스템 152
3.5 요약 168
PARTII 리눅스 기본 프로그래밍
CHAPTER 4 리눅스 프로그래밍의 기초 173
4.1 리눅스의 기본 구조와 파일 시스템 174
4.2 파일 처리와 표준 입출력 178
4.3 파일 정보와 권한 201
4.4 디렉터리와 시간 처리 214
4.5 리눅스 시스템 프로그래밍과 라즈베리 파이의 제어 228
4.6 요약 234
CHAPTER 5 프로세스와 스레드: 다중 처리 237
5.1 프로세스와 시그널 238
5.2 멀티 프로세스와 다중 처리 프로그래밍 260
5.3 프로세스 간 통신 283
5.4 POSIX 스레드와 동기화 310
5.5 다중 처리와 라즈베리 파이의 제어 320
5.6 요약 326
CHAPTER 6 리눅스 네트워크 프로그래밍: 사물인터넷의 연결을 위한 기초 329
6.1 네트워크의 개요와 BSD 소켓 330
6.2 UDP 네트워크 프로그래밍 346
6.3 TCP 서버와 클라이언트 프로그래밍 356
6.4 HTTP와 웹 서버 프로그래밍 375
6.5 웹 서버와 라즈베리 파이의 제어 398
6.6 요약 404
PART III 멀티미디어 프로그래밍
CHAPTER 7 리눅스 멀티미디어 프로그래밍: 현란함과 즐거움 409
7.1 멀티미디어와 라즈베리 파이 410
7.2 리눅스 사운드 프로그래밍 421
7.3 프레임 버퍼를 통한 이미지 출력 460
7.4 Video4Linux2와 Pi Camera 488
7.5 라즈베리 파이와 멀티미디어 504
7.6 요약 506
CHAPTER 8 OpenCV 프로그래밍: 사진 속 얼굴을 찾아라 509
8.1 영상 처리와 OpenCV 510
8.2 OpenCV 기본 프로그래밍 512
8.3 OpenCV와 영상 처리 526
8.4 OpenCV를 이용한 얼굴 인식 540
8.5 라즈베리 파이와 OpenCV 549
8.6 요약 550
CHAPTER 9 OpenGL ES를 이용한 3D 프로그래밍: 3차원의 세계로 553
9.1 라즈베리 파이와 OpenGL 554
9.2 EGL™과 OpenGL ES 1.0 560
9.3 OpenGL ES 1.1을 이용한 3D 애니메이션 578
9.4 OpenGL ES 2.0과 셰이딩 언어 587
9.5 3D와 라즈베리 파이 627
9.6 요약 632
PART IV 리눅스 고급 프로그래밍
CHAPTER 10 Qt를 이용한 GUI 프로그래밍: 더 편리한 접근성 637
10.1 Qt와 라즈베리 파이: Qt on Pi 638
10.2 Qt 프로그래밍과 사용자 정의 위젯 656
10.3 Qt 위젯과 레이아웃 669
10.4 Qt Creator를 이용한 GUI 디자인 694
10.5 GUI와 라즈베리 파이 711
10.6 요약 718
CHAPTER 11 라즈베리 파이와 인공지능: Caffe에서 한잔 721
11.1 인공지능의 개요 722
11.2 Caffe를 이용한 인공지능 728
11.3 Caffe 기본 프로그래밍 743
11.4 Caffe를 이용한 숫자 인식 751
11.5 Caffe와 라즈베리 파이의 인공지능 773
11.6 요약 779
CHAPTER 12 리눅스 커널과 디바이스 드라이버: 더 깊은 곳으로 781
12.1 리눅스 커널과 디바이스 드라이버 782
12.2 리눅스 디바이스 드라이버 프로그래밍 78
12.3 시스템 레지스터와 LED 출력 803
12.4 LED 출력을 위한 GPIO 드라이버 프로그래밍 811
12.5 스위치를 이용한 커널 이벤트 처리 827
12.6 요약 836
CHAPTER 13 부록 839
13.1 임베디드 리눅스 공부하기 840
13.2 리눅스 셸(Shell) 프로그래밍 846
13.3 GStreamer를 이용한 멀티미디어 프로그래밍 865
13.4 ARM NEON 기반의 SIMD 프로그래밍 888