책 소개
라즈베리 파이와 그 주변 장치를 더 깊게 파헤치고 싶은 메이커를 위한 가이드!
『메이커를 위한 라즈베리 파이』는 라즈베리 파이를 이용해 자신만의 프로젝트를 만들어 보려는 메이커를 위한 실용서다. 이 책은 단순히 라즈베리 파이 프로젝트를 따라 만들어 보는 데서 나아가, 독자가 새로운 전자 부품을 접하더라도 혼자 힘으로 사용할 수 있도록 적응력을 높이는 데 초점을 맞추고 있다.
독자는 이 책을 통해 라즈베리 파이와 주변 장치(모터, 센서, 디스플레이 등)들이 어떻게 신호를 주고 받고 작동하는지 그 밑단의 물리 법칙부터 동작 원리, 파이썬 언어를 기반으로 한 프로그램을 만드는 방법까지 배울 수 있다. 특히 책 곳곳에서는 부품의 규격 및 작동 방법을 상세히 설명한 데이터시트를 활용하고 있어 하드웨어 자체를 깊이 들여다 보는 계기를 마련해 준다.
라즈베리 파이의 기본적인 작동법과 가벼운 프로젝트를 진행하면서 아쉬움을 느꼈던 독자라면 이 책을 통해 한걸음 나아가 더욱 흥미로운 아이디어가 담긴 프로젝트를 시작할 수 있을 것이다.
▶ 이 책의 대상 독자
- 입문 수준을 넘어서 라즈베리 파이를 이용해 뭔가 재미있는 프로젝트를 해보고 싶은 메이커
- 센서, 모터 등의 단순한 제어 방법뿐 아니라 관련 물리 기초 지식을 배우고자 하는 메이커
작가 소개
저자 : 이승현
SK C&C에서 주유소 POS시스템 개발을 담당했다. 1999년 이후 VoIP, 콜센터 시스템 개발팀에서 일해 왔으며 VoIP 분야 회사를 창업해 지금도 컨설팅, 프로그래밍을 하고 있다. 최근에는 라즈베리 파이를 비롯한 소형 컴퓨터로 다양한 제품을 개발하는 데 관심이 많다.
목 차
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 부품 정보
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
반품사유 | 반품 배송비 부담자 |
---|---|
단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
고객 부담이 아닙니다. |
진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
---|---|---|---|
어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
결제수단 | 환불시점 | 환불방법 |
---|---|---|
신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
상품군 | 취소/반품 불가사유 |
---|---|
의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |