서브메뉴
검색
본문
Powered by NAVER OpenAPI
-
아두이노처럼 사용하는 라즈베리 파이 3 직접 코딩하기 (wiringPi 라이브러리를 이용하여 아두이노 코딩처럼 배우는 라즈베리 파이 코딩북)
저자 : 서민우|박준원|장문철|조문국|김종용
출판사 : 앤써북
출판년 : 2018
ISBN : 9791185553368
책소개
C/C++ 언어 기반에서 WiringPi 라이브러리를 이용하여 아두이노 코딩처럼 라즈베리 파이 코딩으로 하드웨어 제어하자!
이 책은 C/C++ 언어 기반으로 wiringPi 라이브러리를 이용하여 여러 가지 하드웨어를 제어하는 방법을 소개하였습니다.
이 책은 아두이노를 배운 독자들이 파이썬을 몰라도 손쉽게 라즈베리 파이를 정복할 수 있도록 구성하였습니다. 아두이노 함수를 바탕으로 만들어진 wiringPi 라이브러리를 이용하여 아두이노 코딩 방식으로 라즈베리 파이로 하드웨어드를 제어할 수 있습니다. 하드웨어를 제어하는 방법 외에도 쓰레드와 메시지 큐의 사용법을 소개하고 있습니다. 라즈베리 파이는 리눅스 운영체제 바탕의 개발 환경이기 때문에 쓰레드와 메시지 큐를 통해 프로그램을 구성할 수 있는 장점을 제공합니다. 쓰레드와 메시지 큐를 이용하면 큰 프로젝트를 효율적으로 구성할 수 있습니다.
이 책에서는 외부 디바이스를 장착하여 라즈베리 파이의 기능을 확장하는 방법, L9110S DC 모터 드라이버 모듈을 이용하여 DC 모터를 제어할 수 있는 방법, HM10 블루투스 모듈 을 이용하여 라즈베리 파이의 시리얼 모듈을 이용한 통신 방법, MCP3208 ADC 모듈을 이용하여 센서 입력을 받을 수 있는 방법, PCA9685 PWM 드라이버를 이용하여 서보모터, 부저, BLDC 모터를 제어할 수 있는 방법, MPU6050 자이로 센서 모듈을 이용하여 기울기를 측정할 수 있는 방법 등을 설명하였습니다.
이 책을 읽은 후 자율 주행 버스, 견마 로봇, 균형 로봇, 드론 등 4가지 프로젝트를 독자 스스로 진행해 볼 수 있도록 구조물 구성법과 회로 구성법을 설명하였습니다. 코드에 대한 작성은 책에서 소개한 여러 가지 방법을 이용하여 스스로 해결할 수 있는 참고 가이드를 제공하고 있습니다. 또한 책에서 배운 내용을 토대로 단위 입출력 연결, 사용자 입력 다중 출력 연결, 다중 입력 다중 출력, 쓰레드로 다중 주기 및 다중 입력 다중 출력 처리 등 다양한 입출력 함수 조합 과제를 수행해 볼 수 있는 다양한 도전 과제들을 제공하고 있습니다.
이 책은 C/C++ 언어 기반의 라즈베리 파이 교육을 진행하는 대학의 교재용 또는 독학용으로 구성되었습니다. 아두이노를 배운 독자 중 파이썬을 배우지 않고도 바로 라즈베리 파이 기능을 습득할 수 있도록 wiringPi 함수로 접근하였습니다. 또한 wiringPi 함수 설명 과정에서 C/C++ 함수와 매치되는 파이썬 함수를 스페셜 페이지에 별도로 설명하여 파이썬으로 라즈베리 파이를 수업하는 대학에서도 쉽게 사용할 수 있도록 구성하였습니다.
[부록]
※ 예제 소스파일 다운로드 방법은 4쪽을 참조한다.
※ 이 책을 보면서 궁금한 내용을 질문할 수 있는 질의응답 코너 이용 방법은 4~5쪽을 참조한다.
※ 이 책의 기초 실습에 사용된 부품 목록 및 부품 구매처 확인은 6~7쪽을 참조한다.
목차
Chapter 1. 라즈베리 파이 준비하기
Lesson 01. 라즈베리 파이란?
01 라즈베리 파이 개요
02 라즈베리 파이 발전 단계
03 라즈베리 파이 하드웨어 구성
04 라즈베리 파이 하드웨어 특징
Lesson 02. 라즈베리 파이로 할 수 있는 일
01 쿼드콥터 프로젝트
02 스마트 RC 자동차 프로젝트
03 로봇 팔 프로젝트
04 사족 로봇 프로젝트
05 스마트 정원 프로젝트
Lesson 03. 라즈베리 파이 개발 환경 구성하기
01 마이크로 SD 카드 준비하기
02 라즈베리 파이 이미지 설치하기
라즈베리 파이 이미지 다운로드
Win32 Disk Imager 다운로드
Win32 Disk Imager 설치
라즈베리 파이 이미지 설치
03 윈도우 HotSpot 설치하기
윈도우 10에서 Hotspot 활성화하기
Hotspot 접속이 안 될 경우 1
Hotspot 접속이 안 될 경우 2
윈도우 7, 8에서 Hotspot 설치하기
04 Hotspot 자동 접속 설정하기
05 원격 명령 환경 구성하기
Tera Term 프로그램 설치하기
라즈베리 파이 원격 접속하기
06 원격 프로그래밍 환경 구성하기
notepad++ 프로그램 설치하기
nppftp 플러그인 설치하기
nppftp 플러그인 활성화하기
nppftp 원격 접속 정보 생성하기
nppftp 원격 접속하기
프로젝트 디렉터리 생성하기
c 파일 생성하기
c 소스 작성하기
c 소스 컴파일하고 실행하기
디렉터리 명령어 소개
[파이썬 코너]_파이썬 파일 생성하기/파이썬 소스 작성하기
Lesson 04. WiringPi 함수 살펴보기
01 설정 함수
wiringPiSetup(void);
wiringPiSetupGpio(void);
02 기본 함수
03 라즈베리 파이용 함수
04 시간 함수
05 인터럽트 함수
06 쓰레드 생성 함수
07 메시지 큐 함수
08 시리얼 라이브러리
09 SPI 라이브러리
10 I2C 라이브러리
Lesson 05. 라즈베리 파이 핀 맵 살펴보기
Chapter 2. WiringPi 함수 살펴보기
Lesson 01. printf 함수
01 main
02 printf
03 while
04 delay
05 문자열, 숫자 출력하기
06 정수, 실수 출력하기
헤더 파일 경로 찾기
헤터 파일 의존성 찾기
[파이썬 코너]_Print
Lesson 02. digitalWrite 함수
01 부품 살펴보기
LED
저항
브레드 보드
전선
라즈베리 파이 보드 GPIO 핀
02 LED 회로 구성하기
03 LED 켜고 끄기
LED 켜기
LED 끄기
04 LED 점멸 반복하기
05 LED 점멸 간격 줄여보기
06 LED 점멸을 밝기로 느껴보기
07 LED 밝기 변경하기
08 LED 밝기 조절하기
09 추가부품 살펴보기
RGB LED
[파이썬 코너]_GPIO.output
Lesson 03. pwmWrite 함수
01 LED 회로 구성하기
02 LED 밝기 변경하기
03 LED 밝기를 1024단계로 조절하기
Lesson 04. pwmSetRange 함수
01 LED 점멸 반복하기
02 LED 점멸 간격 줄여보기
03 LED 점멸을 밝기로 느껴보기
04 LED 밝기를 1000단계로 조절하기
05 부저 살펴보기
06 소리와 주파수 이해하기
07 부저 회로 구성하기
08 부저 소리내보기
09 부저 멜로디 연주하기
10 서보 모터 살펴보기
11 서보 모터 파형 이해하기
12 서보 모터 회로 구성하기
13 서보 모터 각도 조절하기
14 서보 모터 0~180도 조절하기
[파이썬 코너]_GPIO.PWM
Lesson 05. getchar 함수
사용자 입력받기
[파이썬 코너]_raw_input
Lesson 06. digitalRead 함수
01 읽어보기
02 푸쉬 버튼 살펴보기
03 버튼 회로 구성하기
04 버튼 값에 따라 LED 켜기
[파이썬 코너]_GPIO.input
Lesson 07. wiringPilSR 함수
01 외부 인터럽트 핀 살펴보기
02 외부 인터럽트 처리하기
03 버튼 인터럽트로 LED 켜기
[파이썬 코너]_GPIO.add_event_callback
Lesson 08. piThreadCreate 함수
01 쓰레드 이해하기
02 쓰레드 생성하기
03 쓰레드 다중 작업하기
04 쓰레드로 LED 점멸 반복하기
05 쓰레드로 LED 밝기 조절하기
[파이썬 코너]_threading.Thread
Lesson 09. 메시지 큐 통신
01 메시지 큐 생성하기
02 쓰레드와 쓰레드 간 메시지 큐 통신하기
03 인터럽트 처리 함수와 쓰레드 간 메시지 큐 통신하기
[파이썬 코너]_Queue.Queue
Chapter 3. WiringPi 함수 살펴보기
Lesson 01. 단위 입력 단위 출력 연결하기
01 도전과제 1
02 도전과제 2
Lesson 02. 사용자 입력 다중 출력 연결하기
01 도전과제
Lesson 03. 다중 입력 다중 출력 연결하기
01 도전과제
Lesson 04. 쓰레드로 다중 주기 작업 처리하기
01 도전과제 1
02 도전과제 2
03 도전과제 3
Lesson 05. 쓰레드로 다중 입력 다중 출력 처리하기
01 도전과제
Chapter 4. WiringPi 함수 살펴보기
Lesson 01. L9110S 모터 드라이버 붙이기
01 L9110S 모터 드라이버 소개
02 L9110S 핀 살펴보기
모터 진리표
03 L9110OS 모터 드라이버 회로 구성하기
04 모터 회전시켜보기
왼쪽 모터 회전시켜보기
오른쪽 모터 회전시켜보기
05 모터 속도 조절하기
Lesson 02. Serial에 HM10 블루투스 디바이스 붙이기
01 HM10 블루투스 디바이스 소개
02 Serial 핀 살펴보기
03 HM10 회로 구성하기
04 Serial 모듈 활성화하기
05 블루투스 통신 테스트하기
[파이썬 코너]_serial.Serial
Lesson 03. SPI 버스에 MCP3208 디바이스 붙이기
01 MCP3208 ADC 디바이스 소개
02 SPI 버스 구조 살펴보기
03 SPI 버스 핀 살펴보기
04 SPI 내부 블록도 살펴보기
05 MCP3208 통신 프로토콜 살펴보기
06 MCP3208 기본 회로 구성하기
07 SPI 모듈 활성화하기
08 MCP3208 기본 파일 작성하기
09 ADC값 읽어보기
10 ADC 값 전체 읽어보기
11 가변 저항 살펴보기
12 가변 저항 회로 구성하기
13 가변 저항 입력에 따라 LED 밝기 조절하기
14 추가 센서 살펴보기
TMP36 온도 센서
빛 센서
적외선 거리 센서
15 빛 센서 회로 구성하기
[파이썬 코너]_spidev.SpiDev
Lesson 04. I2C 버스에 PCA9685 디바이스 붙이기
01 PCA9685 PWM 디바이스 소개
02 I2C 버스 구조 살펴보기
03 I2C 버스 핀 살펴보기
04 PCA9685 블록도 살펴보기
05 PCA9685 레지스터 살펴보기
전체 레지스터
MODE1 레지스터
LED_ON, LED_OFF 제어 레지스터
ALL_LED_ON, ALL_LED_OFF, PRE_SCALE 레지스터
06 PCA9685 PWM 제어 살펴보기
07 PCA9685 기본 회로 구성하기
08 I2C 모듈 활성화하기
09 I2C 테스트하기
I2C 어댑터 검색
I2C 디바이스 검색
I2C 디바이스 레지스터 전체 읽기
I2C 디바이스 레지스터 한 바이트 읽기
10 PCA9685 기본 파일 작성하기
11 LED 점멸 반복하기
LED 회로 구성하기
LED 제어하기
12 LED 밝기 4095단계로 조절하기
13 부저 소리내기
부저 회로 구성하기
부저 제어하기
14 부저 멜로디 연주하기
15 서보 모터 각도 조절하기
서보 모터 회로 구성하기
서보 모터 제어하기
[파이썬 코너]_smbus.SMBus
Lesson 05. I2C 버스에 MPU6050 디바이스 붙이기
01 MPU6050 가속도 자이로 센서 소개
02 I2C 버스 핀 살펴보기
03 MPU6050 내부 블록도 살펴보기
04 MPU6050 레지스터 살펴보기
05 MPU6050 회로 구성하기
06 I2C 테스트하기
07 자이로 센서 값 읽어보기
08 자이로 센서 값 해석하기
09 Roll, Pitch, Yaw 각도 구하기
파일 생성하기
기본 코드 구성하기
기본 코드 파일로 나누기
원시 자이로 값 읽기 함수 구현하기
자이로 평균 값 구하기 함수 구현하기
자이로 보정 함수 구현하기
주기 시간 계산 함수 구현하기
주기 시간 정확히 계산하기
회전 각속도 함수 구현하기
회전 각도 함수 구현하기
[파이썬 코너]_자이로 센서 값 읽어보기
Chapter 5. WiringPi 함수 살펴보기
Lesson 01. 프로젝트 소개
Lesson 02. 프로젝트 준비물 살펴보기
01 프로젝트 몸체 구성 준비물
02 RC카 바퀴 기어박스 모터 부착 준비물
03 서보 모터 부착 준비물
04 RC카 바퀴 기어박스 모터 납땜 준비물
05 DC 모터 드라이버 연결 준비물
06 서보 모터 연결 준비물
07 통신 연결 준비물
08 균형 준비물
09 전원 연결 준비물
10 전선 연결 준비물
Lesson 03. 원격 제어 버스 프로젝트 구상하기
01 구조물 구성하기
02 회로 구성하기
03 코드 작성하기
Lesson 04. 견마 로봇 프로젝트 구상하기
01 구조물 구성하기
02 회로 구성하기
03 코드 작성하기
Lesson 05. 균형 로봇 프로젝트 구상하기
01 구조물 구성하기
02 회로 구성하기
03 코드 작성하기
Lesson 06. 드론 프로젝트 구상하기
01 라즈베리 파이 드론 살펴보기
02 회로 구성하기
03 코드 작성하기