스크랩

구간

사물인터넷을 위한 리눅스 프로그래밍 with 라즈베리 파이 [전면개정판]

서영진 저 | 제이펍 | 2020년 03월

미리보기 북트리

정가
$76.00
판매가
$61.56 (19%↓) 최저가 보상
적립금
$1.23 (2%P)
출고예상일
2026년 10월 08일 수령예상일 안내
북카트 담기 바로구매하기 위시리스트담기

평점 -  ·  리뷰 0

리뷰 쓰기

북셀프

1시간도 길다! 5분만에 OK! 매장에서 직넙 책을 찾아가세요. 500원 추가적립!(선착순 천명/일)

가능매장 : 목동점

북셀프로 구매하기 북셀프란?

ISBN : 9791188621743 / 940쪽 188 x 245 (㎜)

이 상품에 궁금하신점이 있으세요? 1:1상담문의

추천inside
Adobe Flash Player 가져오기

이 분야의 베스트셀러

아래의 도서와 구매하시면 이 도서들의 적립금을 즉시적용해 드립니다.

  • 21,600
  • 21,420
  • 23,400
  • 23,400

책 소개

반디앤루니스 리뷰

라즈베리 파이로 배우는 사물인터넷과 리눅스 프로그래밍!
제4차 산업혁명을 위한 최신의 내용으로 깁고 더하였습니다!

이 책은 라즈베리 파이 같은 오픈 소스 하드웨어와 소프트웨어를 융합한 IoT 제품을 개발할 수 있도록 GPIO를 이용한 기본적인 하드웨어 개발에서부터 리눅스 프로그래밍, 멀티미디어 프로그래밍, 3D 프로그래밍, 인공지능(딥러닝), 리눅스 커널/디바이스 프로그래밍까지 다양한 내용을 담고 있습니다. 또한 여러 단계에 걸쳐 리눅스 프로그래밍에 대해 학습하고, 이를 사물인터넷 실무에 곧바로 적용할 수 있도록 집필하였으며, 내용마다 그림과 사진, 표, 코드 등의 자료를 첨부해 독자가 한층 더 수월하게 이해할 수 있도록 했고, ‘따라 하기’나 ‘참고하기’, ‘깊게 보기’ 등의 코너를 통해서는 심화 학습이 이루어지도록 구성하였습니다.

출판사 리뷰

저자 소개

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

책 속에서

이 책에는 숙련자를 위한 ‘깊게 보기’ 코너가 있다. 초보자는 이해가 되지 않을 수도 있으므로 읽지 않고 넘어가도 좋다. ‘참고하기’는 프로그래밍과 깊은 관계는 없지만 읽어보면 본문의 내용을 보다 쉽게 이해할 수 있는 내용을 담았고, 각 내용에 대한 참고나 더 자세한 내용을 알고자 하는 독자를 위해 ‘각주’를 추가하였다. ‘숨은 이야기’에는 책을 읽다가 머리가 아프거나 심심할 때 읽어볼 수 있도록 재미있는 내용을 담았다. _xix

리눅스 운영체제는 크게 커널, 디바이스 드라이버, 시스템 라이브러리, 셸(Shell), 유틸리티, X 윈도 시스템으로 나눌 수 있다. 먼저 커널(Kernel)은 중심부, 핵심이라는 뜻인데, 리눅스 커널은 실제 운영체제(Operating System)를 구성하는 기본적인 토대로서 시스템의 가장 기본적인 메모리나 프로세스 등의 하드웨어를 관리하고, 애플리케이션이 커널을 이용할 수 있도록 시스템 호출(System Call) 같은 API(Application Programming Interface)를 제공한다. 또한 커널은 하드웨어의 제어를 위한 디바이스 드라이버(Device Driver)를 포함한다. _53p

일반적으로 전류는 VCC(전원)에서 GND(접지)로 흐른다. LED 소자를 라즈베리 파이에 연결할 때는 GND 핀을 음극에 연결하고, GPIO를 양극에 연결한다. 저항은 전류의 흐름을 방해하는 부품으로, 전기 에너지는 열 에너지로 변환되어 사라진다. 이렇게 전류를 감소시킬 수 있다. 라즈베리 파이의 GPIO 18번 핀에 저항 220Ω을 연결하고, 이 저항의 다른 쪽 단자에 LED의 양극을 연결한다. 저항은 LED와 다르게 극성이 없다. 그리고 LED의 음극을 라즈베리 파이의 GND 핀에 연결한다. _115p

이제 이번 장에서 배운 리눅스 시스템 프로그래밍의 기초를 이용해서 라즈베리 파이와 SenseHAT을 제어하는 애플리케이션을 작성해보자. 3장에서 본 것과 같이 SenseHAT은 기상 관측 시스템을 만들 수 있는 기압 센서, 온습도 센서 등을 탑재하고 있다. 이번 장부터 기상 관측 시스템을 만들어 나가는데, 3장에서 사용한 라즈베리 파이의 제어를 위한 wiringPi 라이브러리를 그대로 사용하고 이번 장에서 배운 내용을 추가해보도록 하겠다. SenseHAT을 사용하는 방법은 3장에서와 같다. SenseHAT에서 기상 관측과 관련된 기압 센서(LPS25H)와 온습도 센서(HTS221)만 사용해서 값을 표시한다. 조이스틱과 8×8 LED 매트릭스의 사용에 대한 코드는 뒤에서 추가해보도록 하겠다. _229p

이제 공유 메모리에 대한 예제를 만들어보도록 하자. 아래의 애플리케이션은 2개의 프로세스를 만들어서 부모 프로세스와 자식 프로세스가 같은 메모리 공간을 함께 이용하는 예제이다. 먼저 2개의 프로세스를 생성한 후 shmget( ) 함수를 이용해서 공유 메모리 대한 채널을 가져와서 shmat( ) 함수를 이용해 공유 메모리를 현재의 프로세스의 공간에 붙인다. _303p

목차

PART I 라즈베리 파이 사용하기
CHAPTER 1 사물인터넷과 라즈베리 파이 3
1.1 사물인터넷과 오픈 소스 하드웨어 플랫폼 4
1.2 라즈베리 파이 한 입 베어 물기 10
1.3 라즈베리 파이를 위한 주변 장치 14
1.4 라즈베리 파이를 위한 준비 운동: 사용 환경 설정 21
1.5 요약 46

CHAPTER 2 리눅스의 기초: 라즈베리 파이와 친해지기 49
2.1 리눅스의 사용 환경과 구조 51
2.2 리눅스의 기본 명령어 54
2.3 리눅스 텍스트 에디터 70
2.4 리눅스의 프로그래밍 도구 78
2.5 요약 104

CHAPTER 3 라즈베리 파이와 GPIO: 하드웨어 제어 107
3.1 GPIO의 개요 108
3.2 LED 제어 프로그래밍 111
3.3 wiringPi를 이용한 GPIO 프로그래밍 124
3.4 SenseHAT을 이용한 기상 관측 시스템 152
3.5 요약 168

PARTII 리눅스 기본 프로그래밍
CHAPTER 4 리눅스 프로그래밍의 기초 173
4.1 리눅스의 기본 구조와 파일 시스템 174
4.2 파일 처리와 표준 입출력 178
4.3 파일 정보와 권한 201
4.4 디렉터리와 시간 처리 214
4.5 리눅스 시스템 프로그래밍과 라즈베리 파이의 제어 228
4.6 요약 234

CHAPTER 5 프로세스와 스레드: 다중 처리 237
5.1 프로세스와 시그널 238
5.2 멀티 프로세스와 다중 처리 프로그래밍 260
5.3 프로세스 간 통신 283
5.4 POSIX 스레드와 동기화 310
5.5 다중 처리와 라즈베리 파이의 제어 320
5.6 요약 326

CHAPTER 6 리눅스 네트워크 프로그래밍: 사물인터넷의 연결을 위한 기초 329
6.1 네트워크의 개요와 BSD 소켓 330
6.2 UDP 네트워크 프로그래밍 346
6.3 TCP 서버와 클라이언트 프로그래밍 356
6.4 HTTP와 웹 서버 프로그래밍 375
6.5 웹 서버와 라즈베리 파이의 제어 398
6.6 요약 404

PART III 멀티미디어 프로그래밍
CHAPTER 7 리눅스 멀티미디어 프로그래밍: 현란함과 즐거움 409
7.1 멀티미디어와 라즈베리 파이 410
7.2 리눅스 사운드 프로그래밍 421
7.3 프레임 버퍼를 통한 이미지 출력 460
7.4 Video4Linux2와 Pi Camera 488
7.5 라즈베리 파이와 멀티미디어 504
7.6 요약 506

CHAPTER 8 OpenCV 프로그래밍: 사진 속 얼굴을 찾아라 509
8.1 영상 처리와 OpenCV 510
8.2 OpenCV 기본 프로그래밍 512
8.3 OpenCV와 영상 처리 526
8.4 OpenCV를 이용한 얼굴 인식 540
8.5 라즈베리 파이와 OpenCV 549
8.6 요약 550

CHAPTER 9 OpenGL ES를 이용한 3D 프로그래밍: 3차원의 세계로 553
9.1 라즈베리 파이와 OpenGL 554
9.2 EGL™과 OpenGL ES 1.0 560
9.3 OpenGL ES 1.1을 이용한 3D 애니메이션 578
9.4 OpenGL ES 2.0과 셰이딩 언어 587
9.5 3D와 라즈베리 파이 627
9.6 요약 632

PART IV 리눅스 고급 프로그래밍
CHAPTER 10 Qt를 이용한 GUI 프로그래밍: 더 편리한 접근성 637
10.1 Qt와 라즈베리 파이: Qt on Pi 638
10.2 Qt 프로그래밍과 사용자 정의 위젯 656
10.3 Qt 위젯과 레이아웃 669
10.4 Qt Creator를 이용한 GUI 디자인 694
10.5 GUI와 라즈베리 파이 711
10.6 요약 718

CHAPTER 11 라즈베리 파이와 인공지능: Caffe에서 한잔 721
11.1 인공지능의 개요 722
11.2 Caffe를 이용한 인공지능 728
11.3 Caffe 기본 프로그래밍 743
11.4 Caffe를 이용한 숫자 인식 751
11.5 Caffe와 라즈베리 파이의 인공지능 773
11.6 요약 779

CHAPTER 12 리눅스 커널과 디바이스 드라이버: 더 깊은 곳으로 781
12.1 리눅스 커널과 디바이스 드라이버 782
12.2 리눅스 디바이스 드라이버 프로그래밍 78
12.3 시스템 레지스터와 LED 출력 803
12.4 LED 출력을 위한 GPIO 드라이버 프로그래밍 811
12.5 스위치를 이용한 커널 이벤트 처리 827
12.6 요약 836

CHAPTER 13 부록 839
13.1 임베디드 리눅스 공부하기 840
13.2 리눅스 셸(Shell) 프로그래밍 846
13.3 GStreamer를 이용한 멀티미디어 프로그래밍 865
13.4 ARM NEON 기반의 SIMD 프로그래밍 888

top