logo
logo
x
바코드검색
BOOKPRICE.co.kr
책, 도서 가격비교 사이트
바코드검색

인기 검색어

일간
|
주간
|
월간

실시간 검색어

검색가능 서점

도서목록 제공

사물인터넷을 위한 리눅스 프로그래밍 with 라즈베리 파이

사물인터넷을 위한 리눅스 프로그래밍 with 라즈베리 파이

서영진 (지은이)
제이펍
33,000원

일반도서

검색중
서점 할인가 할인률 배송비 혜택/추가 실질최저가 구매하기
알라딘 로딩중
yes24 로딩중
교보문고 로딩중
11st 로딩중
영풍문고 로딩중
쿠팡 로딩중
쿠팡로켓 로딩중
G마켓 로딩중
notice_icon 검색 결과 내에 다른 책이 포함되어 있을 수 있습니다.

중고도서

검색중
서점 유형 등록개수 최저가 구매하기
알라딘 판매자 배송 37개 3,500원 >
로딩중

eBook

검색중
서점 정가 할인가 마일리지 실질최저가 구매하기
로딩중

책 이미지

사물인터넷을 위한 리눅스 프로그래밍 with 라즈베리 파이
eBook 미리보기

책 정보

· 제목 : 사물인터넷을 위한 리눅스 프로그래밍 with 라즈베리 파이 
· 분류 : 국내도서 > 컴퓨터/모바일 > OS/Networking > 리눅스
· ISBN : 9791185890289
· 쪽수 : 712쪽
· 출판일 : 2015-08-31

책 소개

라즈베리 파이 같은 오픈 소스 하드웨어와 소프트웨어를 융합한 IoT 제품을 개발할 수 있도록 GPIO를 이용한 기본적인 하드웨어 개발에서부터 리눅스 프로그래밍까지의 모든 내용을 담고 있다.

목차

PART 1 라즈베리 파이 사용하기
CHAPTER 1 사물인터넷과 라즈베리 파이 3
1.1 사물인터넷과 오픈 소스 하드웨어 플랫폼 4
1.1.1 사물인터넷 4
1.1.2 오픈 소스의 발전과 오픈 소스 하드웨어의 등장 5
1.1.3 아두이노 7
1.2 라즈베리 파이 한 입 베어 물기 10
1.2.1 라즈베리 파이 10
1.2.2 라즈베리 파이의 모델 및 구조 10
1.3 라즈베리 파이를 위한 주변 도구 13
1.3.1 라즈베리 파이와 SD 카드 14
1.3.2 라즈베리 파이의 외부 하드웨어 16
1.4 라즈베리 파이를 위한 준비운동: 사용환경 설정 18
1.4.1 라즈베리 파이의 디스크 이미지와 윈도우에서의 설치 18
1.4.2 라즈베리 파이 이미지 설치: MS 윈도우 20
1.4.3 라즈베리 파이 이미지 설치: 리눅스 22
1.4.4 라즈베리 파이 이미지 설치: 맥 OS X 27
1.4.5 라즈베리 파이의 설정 28
1.5 요약 40

CHAPTER 2 리눅스의 기초: 라즈베리 파이와 친해지기 43
2.1 리눅스의 사용환경과 구조 44
2.1.1 리눅스의 시작 44
2.1.2 리눅스의 특징 45
2.1.3 리눅스의 구조 47
2.2 리눅스의 기본 명령어 48
2.2.1 셸과 프롬프트 48
2.2.2 리눅스의 기본 명령어 49
2.2.3 사용자 계정과 그룹 63
2.3 vi 에디터 63
2.3.1 텍스트 에디터 63
2.3.2 vi 에디터 64
2.3.3 nano 에디터 71
2.4 리눅스의 프로그래밍 도구 72
2.4.1 GCC 72
2.4.2 gcc 컴파일러 73
2.4.3 make 유틸리티 75
2.4.4 gdb 유틸리티 83
2.4.5 라이브러리 만들기 88
2.5 요약 94
CHAPTER 3 라즈베리 파이와 GPIO: 하드웨어 제어 97
3.1 GPIO의 개요 98
3.1.1 라즈베리 파이와 GPIO 98
3.1.2 하드웨어의 스케치와 fritzing 99
3.2 LED 제어 프로그래밍 101
3.2.1 전자 부품 101
3.2.2 전자 블록 102
3.2.3 GPIO와 LED 104
3.2.4 echo 명령어와 LED의 점멸 108
3.2.5 gpio 명령어 111
3.3 wiringPi를 이용한 GPIO 프로그래밍 112
3.3.1 wiringPi 112
3.3.2 wiringPi를 이용한 프로그래밍 113
3.4 스위치와 센서를 이용한 입출력 116
3.4.1 스위치의 사용 116
3.4.2 스피커의 사용 118
3.4.3 빛 감지 센서의 사용 122
3.4.4 DC 모터의 사용 124
3.4.5 7세그먼트의 사용 129
3.4.6 온습도 센서의 사용 134
3.5 요약 138

PART 2 리눅스 기본 프로그래밍
CHAPTER 4 리눅스 프로그래밍의 기초 143
4.1 리눅스의 기본 구조와 파일 시스템 144
4.1.1 리눅스 시스템의 구조 144
4.1.2 리눅스 파일 시스템 146
4.2 파일 처리와 표준 입출력 148
4.2.1 저수준 파일 입출력 148
4.2.2 표준 입출력 라이브러리 158
4.2.3 파일 조작 함수 168
4.3 파일 정보와 권한 171
4.3.1 파일 정보와 권한을 위한 리눅스 명령어 171
4.3.2 파일 정보 175
4.3.3 권한과 소유자 181
4.4 디렉터리와 시간 처리 185
4.4.1 디렉터리 185
4.4.2 유닉스의 시간 191
4.5 리눅스 시스템 프로그래밍과 라즈베리 파이의 제어 199
4.6 요약 203

CHAPTER 5 프로세스와 스레드: 다중 처리 205
5.1 프로세스와 시그널 207
5.1.1 프로세스 207
5.1.2 프로세스 관련 명령어 211
5.1.3 시그널 218
5.2 멀티 프로세스와 다중 처리 프로그래밍 229
5.2.1 리눅스의 부팅 과정과 프로세스 229
5.2.2 프로세스의 처리 233
5.3 프로세스 간 통신 249
5.3.1 파이프 249
5.3.2 FIFO 253
5.3.3 유닉스 시스템 V의 IPC 함수 255
5.4 POSIX 스레드와 동기화 272
5.4.1 POSIX 스레드 272
5.4.2 동기화 277
5.5 다중 처리와 라즈베리 파이의 제어 282
5.6 요약 286

CHAPTER 6 리눅스 네트워크 프로그래밍: 사물인터넷의 연결을 위한 기초 289
6.1 네트워크의 개요와 BSD 소켓 290
6.1.1 네트워크의 개요 290
6.1.2 BSD 소켓 303
6.2 UDP 네트워크 프로그래밍 306
6.2.1 소켓의 사용 307
6.2.2 서버를 위한 bind( ) 함수 308
6.2.3 바이트 순서 변환 310
6.2.4 네트워크 주소 변환 311
6.2.5 UDP 데이터의 송수신 312
6.2.6 바이트 조작 313
6.3 TCP 서버와 클라이언트 프로그래밍 316
6.3.1 TCP 클라이언트 317
6.3.2 TCP 서버 318
6.3.3 병행 처리 서버 324
6.4 HTTP와 웹 서버 프로그래밍 331
6.4.1 웹과 HTTP 331
6.4.2 웹 브라우저와 웹 엔진 332
6.4.3 HTTP의 구조 333
6.4.4 HTML 340
6.4.5 데몬 프로세스 348
6.4.6 인터넷 패킷 모니터링: Wireshark 352
6.5 웹 서버와 라즈베리 파이의 제어 355
6.6 요약 362

PART 3 리눅스 고급 프로그래밍
CHAPTER 7 리눅스 멀티미디어 프로그래밍: 현란함과 즐거움 367
7.1 멀티미디어와 라즈베리 파이 368
7.1.1 멀티미디어 368
7.1.2 색상 체계 369
7.1.3 사운드 372
7.1.4 아날로그/디지털 변환 373
7.1.5 리눅스 멀티미디어 시스템 379
7.1.6 라즈베리 파이의 멀티미디어 시스템 380
7.2 리눅스 사운드 프로그래밍 380
7.2.1 리눅스 사운드 시스템 380
7.2.2 ALSA를 이용한 오디오 프로그래밍 384
7.2.3 ALSA 프로그래밍 389
7.2.4 ALSA 믹서 프로그래밍 404
7.2.5 WAV 파일의 출력 408
7.3 프레임 버퍼를 통한 이미지 출력 418
7.3.1 프레임 버퍼의 정보 표시 419
7.3.2 프레임 버퍼를 이용한 그래픽 422
7.3.3 BMP 파일 표시하기 430
7.3.4 Qt를 이용한 이미지 표시 438
7.4 Video4Linux2와 Pi Camera 440
7.4.1 Video4Linux 440
7.4.2 Pi Camera 442
7.4.3 Video4Linux2 프로그래밍 445
7.4.4 BMP 파일로 이미지 캡처 455
7.5 라즈베리 파이와 멀티미디어 458
7.6 요약 460

CHAPTER 8 Qt를 이용한 GUI 프로그래밍: 더 편리한 접근성 463
8.1 Qt와 라즈베리 파이: Qt on Pi 464
8.1.1 X 윈도우 시스템 464
8.1.2 Qt의 개요 473
8.1.3 라즈베리 파이로 Qt 4 설치하기 477
8.1.4 라즈베리 파이에 Qt 5 설치하기 478
8.2 Qt 프로그래밍과 사용자 정의 위젯 484
8.2.1 Hello World! 프로그래밍 485
8.2.2 Qt에서의 위젯 488
8.2.3 Qt에서의 이벤트 처리 489
8.2.4 사용자 정의 위젯 493
8.2.5 사용자 정의 시그널과 슬롯 495
8.3 Qt 위젯과 레이아웃 498
8.3.1 Qt의 기본 위젯 498
8.3.2 버튼 위젯 499
8.3.3 정보 표시 위젯 503
8.3.4 문자 입력 위젯 507
8.3.5 범위 선택 위젯 509
8.3.6 레이아웃 512
8.3.7 Qt의 다이얼로그 516
8.3.8 Qt와 Video4Linux2 519
8.4 Qt Creator를 이용한 GUI 디자인 524
8.4.1 Qt Creator를 위한 환경 설정 524
8.4.2 C 언어를 위한 프로젝트 생성과 실행 527
8.4.3 Qt 애플리케이션을 위한 프로젝트 531
8.5 GUI와 라즈베리 파이 545
8.6 요약 552

CHAPTER 9 리눅스 커널과 디바이스 드라이버: 더 깊은 곳으로... 555
9.1 리눅스 커널과 디바이스 드라이버 556
9.1.1 리눅스 커널과 모듈 556
9.1.2 커널 영역과 유저 영역 558
9.1.3 리눅스 디바이스 드라이버 559
9.2 리눅스 디바이스 드라이버 프로그래밍 563
9.2.1 라즈베리 파이에 리눅스 커널의 설치 563
9.2.2 시스템 호출 567
9.2.3 커널 모듈 576
9.3 시스템 레지스터와 LED 출력 580
9.3.1 CPU와 데이터 입출력 580
9.3.2 시스템 레지스터 582
9.4 LED 출력을 위한 GPIO 드라이버 프로그래밍 589
9.4.1 리눅스 디바이스 파일과 GPIO 589
9.4.2 리눅스 디바이스 드라이버 GPIO 프로그래밍 590
9.4.3 애플리케이션으로의 시그널 전달 610
9.5 요약 616

CHAPTER 10 부록 619
10.1 임베디드 리눅스 공부하기 620
10.1.1 하드웨어 621
10.1.2 소프트웨어 623
10.2 라즈베리 파이와 OpenCV 626
10.2.1 OpenCV 설치 626
10.2.2 OpenCV를 이용한 영상 처리 프로그래밍 627
10.2.3 OpenCV와 프레임 버퍼를 이용한 카메라 프로그래밍 631
10.2.4 OpenCV를 이용한 얼굴 인식 633
10.3 GStreamer를 이용한 멀티미디어 프로그래밍 637
10.3.1 GStreamer와 멀티미디어 638
10.3.2 GStreamer를 이용한 프로그래밍 642
10.3.3 GStreamer의 도구들 649
10.3.4 GStreamer와 스트리밍 652
10.4 소스 코드: 라즈베리 파이의 제어 664
10.4.1 프로젝트 파일 664
10.4.2 헤더 파일 665
10.4.3 소스 코드 666

저자소개

서영진 (지은이)    정보 더보기
십여 년 넘게 IT 분야에서 프로그래밍을 하고 있으며, IT 전문 강사와 컨설턴트로 일하며, 관광 TC도 겸하고 있다. 주요 저서로는 《사물인터넷을 위한 리눅스 프로그래밍 with 라즈베리 파이》, 《타이젠으로 웨어러블 앱 개발하기》, 《사물인터넷: 우리가 꿈꾸는 스마트한 세상》, 《Qt 프로그래밍》 등이 있다. 개발한 애플리케이션으로는 리눅스용 다이얼패드, SKY 6400/6500 모바일 캠코더, 원자력 발전소 CPS 시스템, 신도리코 NEST UI, 삼성전자 VoIP 폰 등이 있으며, 리눅스, UI(Qt), 임베디드, 모바일, 사물인터넷을 비롯한 스마트폰 디바이스 분야에서 개발을 진행하였다. 이집트 SECC, 베트남을 비롯한 해외 강의와 삼성전자, LG전자, 현대, SK 등의 기업과 대구/DIP/인하/원광/전북/조선대학교 및 3DFIA, KETI, KEA, RAPA, KOSTA 등의 협회에서 강의 및 세미나를 진행하였다.
펼치기

책속에서

애플리케이션 개발에서 가장 시간이 많이 걸리는 작업 중 하나가 바로 디버깅이다. 디버깅은 프로그램의 잘못된 부분, 즉 버그를 찾아내는 과정으로, 동적 메모리의 잘못된 사용, 적절하지 못한 스택의 크기, 엔디안 문제 등이 버그를 유발한다. 리눅스에서도 디버깅 작업을 보다 쉽게 하도록 gdb 유틸리티를 제공한다. gdb 유틸리티를 사용하면 애플리케이션을 실행하여 소스 코드 내의 특정 부분에서 브레이크포인트를 설정하고 변수 값을 조사하는 등 디버깅과 관련된 작업을 수행할 수 있다.


‘학교종’을 연주하는 프로그램을 작성해보자. ‘학교종 악보’의 계이름들을 주파수로 변환해서 나타낼 수 있다. 음악에서 사용하는 계이름은 1939년 영국 국제협약에 의해서 라(A) 음을 440Hz로 하고 있고, 옥타브(Octave) 사이의 간격은 약 2배의 크기를 갖는다. (중략) ‘학교종’의 첫 번째 음절인 ‘솔솔라라’는 ‘391 391 440 440’으로 표시할 수 있는데, 이 주파수를 이용하면 음악을 연주할 수 있다.


리눅스 시스템 프로그래밍으로 값을 출력하기 위해서는 라즈베리 파이에서 사용하는 메모리 맵 입출력이나 GPIO에 대한 메모리 주소와 값을 설정하는 방법 등 복잡한 개념에 대한 이해가 필요한데, 이를 보다 간단하게 처리하기 위해 wiringPi 라이브러리를 사용할 수 있다. wiringPi를 사용하면 LED 출력이나 스위치로부터의 입력을 보다 쉽게 처리할 수 있다. 또한, 기본적인 센서나 스위치의 사용뿐만 아니라 DC 모터 등의 기기를 지원하기 위해 PWM 생성을 위한 기능도 지원하며, 주파수를 기본값으로 하는 사운드 출력 기능도 제공한다.


이 포스팅은 쿠팡 파트너스 활동의 일환으로,
이에 따른 일정액의 수수료를 제공받습니다.
이 포스팅은 제휴마케팅이 포함된 광고로 커미션을 지급 받습니다.
도서 DB 제공 : 알라딘 서점(www.aladin.co.kr)
최근 본 책