익스플로링 라즈베리 파이
도서명:익스플로링 라즈베리 파이
저자/출판사:데릭,몰로이/위키북스
쪽수:756쪽
출판일:2018-04-03
ISBN:9791158390976
목차
[1부] 라즈베리 파이 기초
▣ 01장: 라즈베리 파이 하드웨어
플랫폼 소개
___RPi는 누구를 위한 것인가
___RPi에 적합한 분야
___RPi에 부적합한 분야
RPi 문서
RPi 하드웨어
___라즈베리 파이 버전
___라즈베리 파이 하드웨어
라즈베리 파이 액세서리
___주요 액세서리
___권장 액세서리
___선택적인 액세서리
HAT
RPi를 망가뜨리는 방법
요약
지원
▣ 02장: 라즈베리 파이 소프트웨어
라즈베리 파이에 리눅스 올리기
___RPi를 위한 리눅스 배포판
___RPi를 위한 SD 카드 이미지 생성하기
네트워크에 연결
___이더넷
___이더넷 크로스오버 케이블
RPi와 통신하기
___USB-to-TTL 3.3V 케이블을 사용한 직렬 연결
___보****셸(SSH)을 통한 연결
___SSH 상에서 PuTTY/psftp를 사용해 파일 전송
라즈베리 파이 제어하기
___기본적인 리눅스 명령
___파일 편집 기초
___현재 시각
___패키지 관리
라즈베리 파이 설정
___라즈베리 파이 구성 도구
___RPi 소프트웨어 갱신하기
___비디오 출력
온보드 LED 다루기
종료와 재시작
요약
▣ 03장: 임베디드 리눅스 시스템
임베디드 리눅스 개요
___임베디드 리눅스의 장단점
___리눅스는 오픈소스고 공짜인가?
___라즈베리 파이 부팅
리눅스 시스템 관리
___슈퍼유저
___시스템 관리
___리눅스 명령
___리눅스 프로세스
___그 외의 리눅스 관련 주제
Git을 사용해 버전 컨트롤하기
___실습 위주의 소개
___Git 브랜칭
___일반적인 Git 명령
데스크톱 가상화
이 책의 코드
요약
더 읽을거리
참고 문헌
▣ 04장: 전자회로 인터페이스하기
회로 분석하기
___디지털 멀티미터
___오실로스코프
회로의 기본 원리
___전압, 전류, 저항, 옴의 법칙
___전압 분배
___전류 분배
___브레드보드에 RPi 회로 구현하기
___디지털 멀티미터(DMM)와 브레드보드
___회로 예제: 전압 레귤레이터
이산 소자
___다이오드
___발광 다이오드(LED)
___평활 커패시터와 디커플링 커패시터
___트랜지스터
___포토커플러?광분리기
___스위치와 버튼
논리 게이트
아날로그를 디지털로 변환
___표본추출률
___양자화
___연산 증폭기
결론
요약
더 읽을거리
▣ 05장: 라즈베리 파이 프로그래밍
도입
___RPi에서의 언어별 성능
___RPi CPU 주파수 설정
___첫 번째 물리적 컴퓨팅 회로
스크립팅 언어
___스크립팅 언어 고르기
___배시
___루아
___펄
___파이썬
동적 컴파일 언어
___RPi에서의 자바스크립트와 Node.js
___RPi에서의 자바
RPi에서의 C와 C++
___C 및 C++ 언어 개요
___C로 LED 제어하기
___C++
객체 지향 프로그래밍 개요
___클래스와 객체
___C++로 객체지향 LED 제어
리눅스 OS에 인터페이스하기
___Glibc와 Syscall
파이썬 성능 끌어올리기
___싸이썬
___C/C++로 파이썬 확장하기
요약
더 읽을거리
참고 문헌
[2부] 인터페이스, 제어, 통신
▣ 06장: 라즈베리 파이 입출력 활용
도입
GPIO(범용 입출력)
___GPIO 디지털 출력
GPIO 디지털 입력
___내부 풀업/풀다운 저항
___전원이 공급되는 DC 회로와 인터페이스하기
sysfs와 C++를 통한 GPIO 제어
___C++ 프로그래밍 고급
___개선된 GPIO 클래스
메모리 기반 GPIO 제어
___Devmem2를 사용해 GPIO 제어하기
___C와 /dev/mem을 사용한 GPIO 제어
___내부 저항 설정 변경하기
WiringPi
___wiringPi 설치
___gpio 명령
___wiringPi 프로그래밍
___wiringPi를 사용해 LED 켜고 끄기
___버튼을 누르면 LED로 반응하기
___단선 센서와 통신하기
___PWM과 범용 클럭
GPIO와 권한
___udev 규칙 작성하기
___권한과 wiringPi
요약
▣ 07장: 크로스 컴파일과 이클립스 IDE
크로스 컴파일 툴체인 셋업하기
___라즈비안을 위한 Linaro 툴체인
___데비****크로스 툴체인
이클립스를 사용해 크로스 컴파일하기
___데스크톱 리눅스에 이클립스 설치하기
___크로스 컴파일을 위해 이클립스 설정하기
___Remote System Explorer
___이클립스에 깃허브 통합하기
___원격 디버깅
___문서 자동 생성(Doxygen)
리눅스 빌드하기
___커널 소스 내려받기
___리눅스 커널 빌드하기
___리눅스 커널 디플로이하기
___리눅스 배포판을 빌드하기(고급)
요약
더 읽을거리
▣ 08장: 라즈베리 파이의 다양한 버스
버스 통신 개요
I2C
___I2C 하드웨어
___I2C 테스트 회로
___리눅스 I2C-Tools 사용하기
___C언어에서의 I2C 통신
___I2C 장치를 C++ 클래스로 감싸기
SPI
___SPI 하드웨어
___RPi에서의 SPI
___첫 번째 SPI 애플리케이션(74HC595)
___C/C++에서의 양방향 SPI 통신
___RPi에서 여러 개의 SPI 슬레이브 사용하기
UART
___RPi의 UART
___C언어 UART 예제
___RPi LED 직렬 서버
___UART 응용 - GPS
논리 레벨 변환
요약
더 읽을거리
▣ 09장: 라즈베리 파이의 입출력 인터페이스 개선하기
도입
아날로그-디지털 변환기
___SPI 아날로그 디지털 컨버터(ADC)
___ADC 애플리케이션: 아날로그 광도계
___SPI ADC 성능 테스트
___BCM2835를 위한 C 라이브러리(고급)
디지털-아날로그 변환기
___I2C 디지털-아날로그 변환기
___SPI 디지털-아날로그 변환기
PWM 출력을 RPi에 추가하기
RPi GPIO 확장하기
___MCP23017과 I2C 버스
___MCP23S17과 SPI 버스
___MCP23x17 장치를 위한 C++ 클래스
RPi에 UART 추가하기
요약
▣ 10장: 물리적 환경에 인터페이스하기
액추에이터 연결하기
___DC 모터
___스테핑 모터
___릴레이
아날로그 센서에 인터페이스하기
___선형 아날로그 센서
___비선형 아날로그 센서
___아날로그 센서 신호 조절
___아날로그 가속도계에 인터페이스하기
로컬 디스플레이에 인터페이스하기
___MAX7219 디스플레이 모듈
___문자 LCD 모듈
___OLED 도트 매트릭스 디스플레이
C/C++ 라이브러리 빌드하기
___메이크파일
___CMake
요약
▣ 11장: 아두이노를 사용한 실시간 인터페이스
아두이노
___아두이노 직렬 슬레이브
___UART 에코 테스트 예제
___UART를 통해 명령으로 아두이노 제어하기
아두이노 I2C 슬레이브
___I2C 테스트 회로
___I2C 레지스터 에코 예제
___I2C 온도 센서 예제
___I2C 온도 센서와 경고 LED
___C/C++를 사용한 아두이노 슬레이브 통신
___I2C 초음파 센서 애플리케이션
아두이노 SPI 슬레이브
RPi 명령행에서 아두이노 프로그래밍
요약
[3부] 고급 인터페이스 및 상호작용
▣ 12장: 사물 인터넷 (IoT)
사물 인터넷 개요
IoT 센서로서의 RPi
센서 웹 서버로서의 RPi
___엔진엑스(Nginx)
___GNU Cgicc 애플리케이션(고급)
C/C++ 웹 클라이언트
___네트워크 통신 기초
___C/C++ 웹 클라이언트
___OpenSSL을 사용한 보****통신
“사물(Thing)”로서의 RPi
___씽스피크(ThingSpeak)
___리눅스 cron 스케줄러
___RPi에서 이메일 보내기
___IFTTT
대규모 IoT 프레임워크
___MQ Telemetry Transport(MQTT)
___IBM 블루믹스 IoT
___IBM IoT MQTT Node.js 게시 예제
___IBM IoT MQTT C++ 게시 예제
___IBM Quickstart를 사용한 데이터 시각화
C 클라이언트/서버
IoT 디바이스 관리
___RPi 원격 모니터링
___RPi 워치독 타이머
___정적 IP 주소
PoE
요약
▣ 13장: 무선 통신 및 제어
무선 통신 개요
블루투스 통신
___블루투스 어댑터 설치
___블루투스 안드로이드 앱 개발
Wi-Fi 통신
___Wi-Fi 어댑터 설치
___NodeMCU Wi-Fi 슬레이브 프로세서
지그비 통신
___XBee 장치 소개
___XBee 구성
___XBee AT 모드 예제
___XBee API 모드 예제
근거리 무선 통신(NFC)
요약
▣ 14장: 라즈베리 파이 GUI 개발
풍부한 UI의 RPi 아키텍처
___범용 컴퓨터로서의 RPi
___LCD 터치스크린 사용하기
___가상 네트워크 컴퓨팅(VNC)
___팻 클라이언트 애플리케이션
GUI 애플리케이션 개발
___GTK+ 소개
___Qt 소개
Qt 기초
___Qt 개요
___Qt 개발 도구
___첫 Qt Creator 예제
___Qt 날씨 GUI 애플리케이션
원격 UI 애플리케이션 개발
___팻 클라이언트 Qt GUI 애플리케이션
___멀티스레드 서버 애플리케이션
___멀티스레드 날씨 서버
요약
더 읽을거리
▣ 15장: 이미지, 비디오, 오디오
이미지와 비디오 캡처하기
___RPi 카메라
___USB 웹캠
___Video4Linux2(V4L2)
비디오 스트리밍
이미지 프로세싱과 컴퓨터 비전
___OpenCV를 이용한 이미지 프로세싱
___OpenCV를 이용한 컴퓨터 비전
___Boost
라즈베리 파이 오디오
___핵심적인 오디오 소프트웨어 도구
___RPi를 위한 오디오 장치
___TTS(텍스트 음성 변환)
요약
더 읽을거리
▣ 16장: 커널 프로그래밍
개요
___커널 모듈을 작성하는 이유
___로드 가능 커널 모듈(LKM) 기초
첫 번째 LKM 예제
___LKM Makefile
___리눅스 데스크톱 머신에서 LKM 빌드하기
___RPi에서 LKM 빌드하기
___첫 번째 LKM 예제 테스트
임베디드 LKM 예제
___인터럽트 서비스 루틴(ISR)
___성능
개선된 버튼 GPIO 드라이버 LKM
___kobject 인터페이스
개선된 LED GPIO 드라이버 LKM
___커널 스레드
결론
요약