서브메뉴

본문

메이커를 위한 라즈베리 파이 (동작 원리와 물리 법칙으로 제대로 배우는 GPIO, 센서, 모터, 통신, 디스플레이 고급 프로그래밍, Making Insight)
메이커를 위한 라즈베리 파이 (동작 원리와 물리 법칙으로 제대로 배우는 GPIO, 센서, 모터, 통신, 디스플레이 고급 프로그래밍, Making Insight)
저자 : 이승현
출판사 : 인사이트
출판년 : 2017
정가 : 32000, ISBN : 9788966264018

책소개


라즈베리 파이와 그 주변 장치를 더 깊게 파헤치고 싶은 메이커를 위한 가이드!

『메이커를 위한 라즈베리 파이』는 라즈베리 파이를 이용해 자신만의 프로젝트를 만들어 보려는 메이커를 위한 실용서다. 이 책은 단순히 라즈베리 파이 프로젝트를 따라 만들어 보는 데서 나아가, 독자가 새로운 전자 부품을 접하더라도 혼자 힘으로 사용할 수 있도록 적응력을 높이는 데 초점을 맞추고 있다.

독자는 이 책을 통해 라즈베리 파이와 주변 장치(모터, 센서, 디스플레이 등)들이 어떻게 신호를 주고 받고 작동하는지 그 밑단의 물리 법칙부터 동작 원리, 파이썬 언어를 기반으로 한 프로그램을 만드는 방법까지 배울 수 있다. 특히 책 곳곳에서는 부품의 규격 및 작동 방법을 상세히 설명한 데이터시트를 활용하고 있어 하드웨어 자체를 깊이 들여다 보는 계기를 마련해 준다.

라즈베리 파이의 기본적인 작동법과 가벼운 프로젝트를 진행하면서 아쉬움을 느꼈던 독자라면 이 책을 통해 한걸음 나아가 더욱 흥미로운 아이디어가 담긴 프로젝트를 시작할 수 있을 것이다.

목차


1장 라즈베리 파이 프로젝트

1.1 라즈베리 파이
1.1.1 컴퓨팅 모델(Computing Model, CM)
1.1.2 라즈베리 파이 Zero 모델
1.1.3 라즈베리 파이 모델 B

1.2 라즈베리 파이 셋업
1.2.1 라즈비안 OS 설치
1.2.2 라즈비안 OS 기본 설정
1.2.3 네트워크 설정
1.2.4 최신 버전 업데이트
1.2.5 이미지 백업

1.3 라즈베리 파이 프로그래밍
1.3.1 범용 컴퓨팅용 플랫폼, 라즈베리 파이
1.3.2 파이썬
1.3.3 C/C++

1.4 원격 작업 환경 설정
1.4.1 VNC 클라이언트 설치
1.4.2 VNC 접속

1.5 준비해 두면 도움이 되는 것들
1.5.1 코드 편집기
1.5.2 오실로스코프(Oscilloscope)
1.5.3 멀티미터
1.5.4 gnuplot를 이용한 데이터 모니터링
1.5.5 엑셀을 이용한 데이터 모니터링
1.5.6 물리 기초 지식

2장 GPIO

2.1 GPIO의 특징
2.1.1 GPIO 핀 넘버
2.1.2 어떤 넘버링을 사용할 것인가?
2.1.3 GPIO 핀의 확장
2.1.4 GPIO 핀의 작동 방법
2.1.5 GPIO 프로그래밍
2.1.6 PWM(Pulse Width Modulation)

2.2 GPIO 제어에 필요한 기초
2.2.1 회로 설계 소프트웨어
2.2.2 회로 구성에 필요한 기본 소자

2.3 GPIO 프로그래밍
2.3.1 동기식 프로그래밍
2.3.2 인터럽트를 이용한 비동기 입출력
2.3.3 PWM 출력 프로그래밍
2.3.4 10마이크로초의 펄스 만들기

2.4 GPIO 회로 실습
2.4.1 실습 - LED 램프 켜기
2.4.2 실습 - 푸시 버튼을 이용한 LED 램프 켜기
2.4.3 실습 - LED 램프 교대로 깜박이기
2.4.4 실습 - 컬러 LED 램프 켜기
2.4.5 실습 - 컬러 LED 램프 색 제어하기

2.5 시프트 레지스터를 이용한 GPIO 핀의 확장
2.5.1 비트 제어
2.5.2 74HC595 시프트 레지스터
2.5.3 74HC595 시프트 레지스터 프로그래밍

2.6 GPIO 핀 확장을 위한 MCP23008, MCP23017
2.6.1 MCP23008, MCP23017 개요
2.6.2 MCP23008 프로그래밍

2.7 AD 컨버터 MCP3004, MCP3008
2.7.1 MCP3004/MCP3008 개요
2.7.2 MCP3004/MCP3008 SPI 시리얼 통신
2.7.3 MCP3008을 이용한 아날로그 입력 프로그래밍

3장 통신

3.1 UART 통신
3.1.1 UART 루프백(Loop-Back) 구성
3.1.2 RS232 9핀 시리얼 통신

3.2 I2C 통신
3.2.1 I2C 모듈의 활성화
3.2.2 I2C 툴 설치
3.2.3 SMBUS 개발용 패키지 설치
3.2.4 I2C 디바이스 연결
3.2.5 파이썬을 이용한 I2C 제어
3.2.6 GY521(MCU6050) 제어 프로그래밍

3.3 SPI(Serial Peripheral Interface) 통신
3.3.1 SPI 디바이스 연결
3.3.2 SPI 모듈의 활성화
3.3.3 SPI 개발용 라이브러리 설치
3.3.4 SPI 디바이스 연결
3.3.5 파이썬을 이용한 SPI 디바이스 제어

3.4 TCP/IP 통신
3.4.1 파이썬 TCP/IP 서버, 클라이언트
3.4.2 UDP 통신
3.4.3 브로드캐스팅
3.4.4 유용한 라이브러리 cURL

3.5 XBee 프로토콜
3.5.1 XBee 하드웨어 종류
3.5.2 XBee 모듈
3.5.3 XBee 원격 제어 및 설정
3.5.4 XBee와 라즈베리 파이의 연결
3.5.5 XBee 모듈 간 통신 테스트
3.5.6 AT 모드 프로그래밍
3.5.7 API 모드 1 프로그래밍

3.6 블루투스 통신
3.6.1 블루투스의 특징
3.6.2 블루투스 설정
3.6.3 파이썬을 이용한 블루투스 프로그래밍

4장 모터

4.1 DC 모터
4.1.1 가변저항을 이용한 DC 모터 속도 제어
4.1.2 H 브릿지를 이용한 모터 회전 방향 제어
4.1.3 SN754410 H 브릿지
4.1.4 SN754410을 이용해 모터 제어하기
4.1.5 파이썬을 이용한 H 브릿지(SN754410) 제어

4.2 SG90 서보 모터
4.2.1 SG90 서보 모터와 라즈베리 파이 연결하기
4.2.2 모터에 필요한 물리 지식
4.2.3 SG90 모터 제어하기
4.2.4 파이썬을 이용한 SG90 서보 모터 제어 프로그래밍

4.3 스테퍼 모터
4.3.1 28BYJ-48 스테퍼 모터의 특징
4.3.2 모터의 전원 공급을 제어하는 ULN2003 모터 드라이버
4.3.3 28BYJ-48 스테퍼 모터 제어

4.4 서보 드라이버를 이용한 여러 대의 모터 제어
4.4.1 PCA9685 칩 개요
4.4.2 PCA9685 칩과 라즈베리 파이 그리고 서보 모터 연결하기
4.4.3 PCA9685 제어하기
4.4.4 파이썬을 이용한 PCA9685 제어

5장 디스플레이

5.1 HD44780 LCD를 이용한 디스플레이
5.1.1 HD44780 LCD 개요
5.1.2 HD44780와 라즈베리 파이 연결하기
5.1.3 HD44780 프로그래밍

5.2 128X64 픽셀 OLED 디스플레이
5.2.1 PIL(Python Image Library)로 그래픽 출력하기
5.2.2 OLED 디스플레이와 라즈베리 파이 연결하기
5.2.3 OLED 제어 프로그래밍
5.2.4 OLED 디스플레이(또는 화면)에 한글 출력하기

5.3 LED
5.3.1 정적 전원 공급과 멀티플렉싱 방식의 전원 공급
5.3.2 8X8 LED 매트릭스
5.3.3 전력 소모가 큰 LED 제어

6장 센서

6.1 센서의 종류
6.1.1 출력 전압을 사용하는 아날로그 센서
6.1.2 아날로그 센서와 라즈베리 파이의 연결
6.1.3 디지털 센서

6.2 센서를 다루는 데 도움이 되는 것
6.2.1 계측기
6.2.2 데이터시트
6.2.3 참고 사이트

6.3 BMP180 대기압 측정 센서
6.3.1 대기압 측정에 필요한 물리 지식
6.3.2 BMP180 센서와 라즈베리 파이 연결하기
6.3.3 BMP180 센서 프로그래밍

6.4 HC-SR04 초음파 거리 센서
6.4.1 HC-SR04 센서
6.4.2 거리 측정에 필요한 물리 지식
6.4.3 HC-SR04와 라즈베리 파이 연결하기
6.4.4 HC-SR40 센서값 읽기 프로그래밍

6.5 HC-SR501 적외선 모션 감지 센서
6.5.1 HC-SR501 개요
6.5.2 HC-SR501과 라즈베리 파이 연결
6.5.3 HC-SR501 센서값 읽기 프로그래밍

6.6 6축 자이로센서 MPU6050
6.6.1 MPU6050 개요
6.6.2 MPU6050에 필요한 기초 수학, 물리 지식
6.6.3 보정 필터
6.6.4 센서값 읽기
6.6.5 센서값 환산 규칙
6.6.6 MPU6050 센서값 읽기 프로그래밍
6.6.7 gnuplot을 이용한 측정값 분석
6.6.8 상보 필터(Complementary Filter) 적용 및 분석

6.7 9축 센서 MPU9150
6.7.1 MPU9150
6.7.2 MPU9150과 라즈베리 파이 연결
6.7.3 자기 측정에 필요한 기초 물리 지식
6.7.4 MPU9150 센서값 읽기
6.7.5 MPU9150 센서값 읽기 프로그래밍

6.8 MQ 센서 시리즈
6.8.1 MQ 센서 연결
6.8.2 MQ 센서 프로그래밍

6.9 맥박 센서(Pulse Sensor)
6.9.1 맥박 센서 개요
6.9.2 맥박 센서 연결
6.9.3 맥박 센서 프로그래밍

6.10 습도 센서 DHT11
6.10.1 DHT11 센서 개요
6.10.2 DHT11 센서와 라즈베리 파이의 통신
6.10.3 DHT11과 라즈베리 파이의 연결
6.10.4 습도 측정에 필요한 기초 물리 지식
6.10.5 DHT11 센서값 읽기 프로그래밍

6.11 FSR402 힘(Force) 센서
6.11.1 FSR402 센서
6.11.2 힘 측정에 필요한 물리 지식
6.11.3 FSR402와 파이 연결
6.11.4 FSR402 프로그래밍

7장 카메라

7.1 카메라 모듈 연결
7.1.1 Camera 기능 활성화
7.1.2 카메라 모듈 연결
7.1.3 카메라 스펙
7.1.4 연결 확인

7.2 파이용 카메라 제어 파이썬 패키지: python-picamera
7.2.1 파이썬용 picamera 패키지 설치
7.2.2 picamera camera 객체 속성(property)
7.2.3 picamera camera 객체 함수(method)

7.3 OpenCV를 이용한 이미지 인식
7.3.1 OpenCV 개요
7.3.2 OpenCV를 이용한 사물 인식

7.4 웹 브라우저를 이용한 카메라 보기 기능 구현
7.4.1 mjpg-streamer 패키지
7.4.2 웹페이지를 이용한 파이 카메라 접속
7.4.3 원격지에서 카메라 보기 기능 구현

7.5 구글 드라이브를 활용한 사진 백업
7.5.1 gdrive 설치
7.5.2 gdrive 사용법
7.5.3 파이썬을 이용한 gdrive 사용법

8장 라즈베리 파이와 머신 러닝

8.1 텐서플로
8.1.1 텐서플로 설치

8.2 라즈베리 파이에서 텐서플로 예제 만들기
8.2.1 Hello World 머신 러닝
8.2.2 MNIST 이미지 확인 예제
8.2.3 MNIST 숫자 인식 예제
8.2.4 한글 인식 도전하기

9장 라즈베리 파이 관제 시스템 프로젝트

9.1 Node RED
9.1.1 Node RED의 실행 및 대시보드 설치
9.1.2 Node RED의 간단한 사용법
9.1.3 Node RED 작업 백업 및 복구
9.1.4 Node RED 보안 설정

9.2 관제 시스템 범위 및 구성
9.2.1 HC-SR501 모션 감지 센서
9.2.2 카메라 제어
9.2.3 아두이노를 이용한 유해 가스, 온도 습도 측정
9.2.4 물고기 사료 공급 장치

9.3 장치 연결하기
9.3.1 라즈베리 파이 프로그래밍
9.3.2 Node RED 작업하기
9.3.3 테스트하기

부록 A 부품 정보