Raspberry Pi_Kor_00.2 목 차



Published Book on Amazon


All of IOT Starting with the Latest Raspberry Pi from Beginner to Advanced – Volume 1
All of IOT Starting with the Latest Raspberry Pi from Beginner to Advanced – Volume 2


출판된 한글판 도서


최신 라즈베리파이(Raspberry Pi)로 시작하는 사물인터넷(IOT)의 모든 것 – 초보에서 고급까지 (상)
최신 라즈베리파이(Raspberry Pi)로 시작하는 사물인터넷(IOT)의 모든 것 – 초보에서 고급까지 (하)


Original Book Contents



목 차

서문   1

1.      책을 쓰기까지... 2

2.      책의 전체적인 구성... 4

3.      책에서 다루는 내용... 5

4.      책에서 다루는 내용의 수준... 7

5.      책의 기준 운영체제... 8

6.      책에서 사용되는 관례(conventions) 9

Chapter 1    Raspberry Pi 개요.. 49

1.1    개요... 50

1.1.1    Raspberry Pi 탄생... 50

1.1.2    Raspberry Pi 발전 History. 51

1.2    Raspberry Pi 특징... 52


Chapter 2    Raspberry Pi 하드웨어.. 55

2.1    Raspberry Pi 하드웨어 구성... 56

2.1.1    Raspberry Pi 기본 구성... 56

2.1.2    Raspberry Pi의 model 특성 비교... 58

2.2    SoC, CPU 및 memory. 60

2.3    SD card slot 62

2.4    Power Supply. 63

2.4.1    Micro USB power supply port 63

2.4.2    장치별 전류 소비... 64

2.5    비디오 오디오 장치... 65

2.5.1    HDMI video port 65

2.5.2    CSI camera interface. 65

2.5.3    DSI display port 66

2.5.4    3.5mm audio jack and composite video. 66

2.6    USB port 67

2.6.1    model 별 USB port 67

2.6.2    USB Port 전력 제약... 67

2.7    network 장치... 68

2.7.1    Ethernet port 68

2.7.2    Wi-Fi 장치... 68

2.7.3    Bluetooth 장치... 69

2.8    GPIO.. 70


Chapter 3    장비/부품 구매 설치.. 71

3.1    Raspberry Pi 모델 선택... 72

3.2    본체 케이스... 73

3.3    방열판... 74

3.4    저장장치... 75

3.4.1    SD 카드... 75

3.4.2    외부 대용량 저장장치... 76

3.5    power adapter 전원공급 cable. 77

3.6    network 장치... 78

3.6.1    WAN 접속 장비, LAN Hub 공유기... 78

3.6.2    LAN 케이블... 79

3.6.3    WI-FI Adapter 79

3.6.4    Bluetooth Adapter 80

3.7    입력 장치... 81

3.7.1    키보드... 81

3.7.2    마우스... 81

3.8    비디오 출력... 82

3.8.1    HDMI cable 및 HDMI 지원 모니터... 82

3.8.2    TFT-LCD.. 84

3.9    camera. 85

3.9.1    USB 카메라... 85

3.9.2    CSI port 지원 카메라... 86

3.9.3    Raspberry Pi 전용 camera. 86

3.9.3.1     일반 가시광선(visible-light) camera. 86

3.9.3.2     적외선(infrared) camera. 87

3.9.3.3     Raspberry Pi 전용 카메라 H/W 설치하기... 88

3.10  외부 Interface. 89


Chapter 4    운영체제 설치하기.. 91

4.1    운영체제(OS, Operating System) 종류... 92

4.1.1    설치 가능한 운영체제 목록... 92

4.1.2    주요 운영체제 내용 검토... 93

4.1.2.1     Linux 관련 운영체제... 93

4.1.2.2     기타 운영체제... 97

4.2    운영체제 설치 개요... 98

4.2.1    운영체제 설치 방법... 98

4.2.2    복수 운영체제 설치에 대해서... 99

4.3    SD card 준비하기... 100

4.3.1    SD card format 하기... 100

4.3.2    <NOOBS> utility와 SD card format 102

4.4    설치 파일 downloadg하여 준비하기... 104

4.4.1    Raspberry Pi homepage에서 download. 104

4.4.2    다른 source에서의 download. 105

4.5    <NOOBS> utility 이용한 설치... 106

4.5.1    <NOOBS> utility 개요... 106

4.5.2    <NOOBS> utility 프로그램 download 시스템 준비... 107

4.5.2.1     <NOOBS> utility 프로그램 download. 107

4.5.2.2     SD card에 <NOOBS> utility 파일 복사... 107

4.5.2.3     hardware 시스템 인터넷 접속 준비... 108

4.5.3    <NOOBS> utility 기능... 109

4.5.3.1     <NOOBS> utility 시작... 109

4.5.3.2     무지개 색상 화면... 109

4.5.3.3     <NOOBS> utility boot 화면... 110

4.5.3.4     <NOOBS> utility 설치 화면... 110

4.5.3.5     <NOOBS> utility 화면의 버튼 기능... 111

4.5.3.6     <NOOBS> utility 화면이 보이지 않을 ... 113

4.5.4    <NOOBS> utility 이용한 운영체제 설치... 114

4.5.4.1     운영체제 선택 진행... 114

4.5.4.2     <NOOBS> utility 이용한 복수 운영체제 설치하기... 116

4.5.5    운영체제 설치 후의 <NOOBS> utility 활용... 117

4.5.5.1     <NOOBS> utility boot 화면... 117

4.5.5.2     설치된 운영체제의 booting. 118

4.5.5.3     <NOOBS> utility recovery mode. 119

4.6    운영체제 image 이용한 설치... 121

4.6.1    운영체제 image 파일 download 준비... 121

4.6.2    SD card에 image 파일 copy하기... 122

4.6.3    설치된 운영체제 작동하기... 124

Chapter 5    기본 시스템 시작 종료.. 125

5.1    시스템 booting. 126

5.1.1    booting 의미... 126

5.1.2    booting 운영체제 선택... 126

5.1.3    booting 절차... 127

5.1.4    booting 화면이 보이지 않을 조치... 128

5.2    시스템 Logon. 129

5.2.1    logon 의미... 129

5.2.2    기본 사용자 "pi" 계정... 129

5.2.3    logon 처리... 130

5.3    시스템 Logout 131

5.3.1    logout 의미... 131

5.3.2    logout 처리... 131

5.4    시스템 종료... 132

5.4.1    시스템을 종료하는 방법... 132

5.4.2    "shutdown" 명령... 133

5.4.3    "halt" 명령... 133

5.4.4    "reboot" 명령... 133


Chapter 6    시스템 접속과 종료.. 135

6.1    시스템 접속 개요... 136

6.1.1    시스템 기본 구성도... 136

6.1.2    시스템 접속 개요... 138

6.1.2.1     console 과 terminal 개념... 138

6.1.2.2     Terminal 접속과 Desktop GUI 접속... 140

6.1.2.3     local 접속과 remote 접속... 141

6.2    local 접속... 142

6.2.1    console에서의 terminal 진행 흐름... 142

6.2.2    local 접속 방식 설정... 143

6.2.3    local Terminal 접속... 143

6.2.3.1     local Terminal 접속 시작... 143

6.2.3.2     terminal logon 및 Shell 프로그램 시작... 145

6.2.3.3     Shell Terminal 화면에서 Desktop window 시작하기... 146

6.2.4    local Desktop GUI 접속... 148

6.2.4.1     local Desktop GUI 접속 및 login. 148

6.2.4.2     Desktop window에서의 terminal Shell 사용... 149

6.3    시스템 접속과 종료... 150

6.3.1    종료하는 방법... 150

6.3.2    terminal에서의 시스템 종료... 150

6.3.2.1     "shutdown" 명령... 150

6.3.2.2     "halt" 명령... 152

6.3.2.3     "poweroff" 명령... 154

6.3.2.4     "reboot" 명령... 156

6.3.2.5     "logout" 명령... 158

6.3.3    Desktop window에서의 시스템 종료... 159

6.3.3.1     [shutdown] 메뉴... 161

6.3.3.2     [reboot] 메뉴... 161

6.3.3.3     [logout] 메뉴... 162

Chapter 7    Desktop Window 둘러보기.. 165

7.1    Raspbian 운영체제의 window 특징... 166

7.1.1    왜 window 사용하는가?. 166

7.1.2    X Windows와 LXDE. 168

7.1.3    다른 운영체제 window와의 차이점... 169

7.2    window 기본 구조... 171

7.2.1    window 시작화면... 171

7.2.2    Panel 영역 구성... 173

7.2.3    desktop 영역의 구성... 175

7.3    Panel (메뉴 작업표시줄) 세부 구조... 177

7.3.1    Panel 설정... 177

7.3.2    Menu(시작메뉴) 180

7.3.2.1     Menu 실행... 180

7.3.2.2     프로그램 목록... 181

7.3.2.3     바탕화면에 프로그램 실행 아이콘 만들기... 184

7.3.2.4     프로그램에 대한 특성(Properties) 확인... 186

7.3.3    Application Launch Bar (작업시작) 188

7.3.4    Task Bar (작업표시) 190

7.3.5    Tool (도구) 192

7.4    desktop(바탕화면) 영역의 세부 구조... 194

7.4.1    desktop 기능... 194

7.4.2    desktop 특성 설정... 196

7.4.2.1     Desktop Preference 설정... 196

7.4.2.2     아이콘 정렬 설정... 198

7.4.3    폴더와 파일 생성하기... 199

7.5    주요 실행 프로그램 개요... 201

7.5.1    Accessories. 201

7.5.1.1     File Manager (PCManFm) 201

7.5.1.2     Task Manager (Lxtask) 212

7.5.1.3     terminal LXTerminal 214

7.5.1.4     Text Editor (Leafpad) 215

7.5.1.5     Archiver (XArchiver) 216

7.5.1.6     Image Viewer (GPicView) 217

7.5.1.7     Calculator (Galculator) 218

7.5.1.8     PDF Viewer (XPDF) 219

7.5.2    Programming. 220

7.5.2.1     Mathematica & Wolfram language. 220

7.5.2.2     Sonic Pi 222

7.5.2.3     Scratch. 223

7.5.2.4     Python. 224

7.5.3    Internet Web Browser (EpicHany) 226

7.5.4    Game. 227

7.5.4.1     Minecraft PI 227

7.5.4.2     Python Games. 229

7.6    Help. 231

7.6.1    Debian Reference. 231

7.6.2    Raspberry Pi Help. 234

7.7    Preference. 235

7.7.1    Mouse and Keyboard Settings. 235

7.7.2    Theme and Appearance Settings. 236

7.7.3    Main Menu Editor 238

7.8    Run. 239

7.9    Shutdown. 242

Chapter 8    Terminal과 Shell 프로그램.. 243

8.1    Terminal 프로그램... 244

8.1.1    Terminal 프로그램 시작 방법... 244

8.1.2    Terminal 화면의 구성... 247

8.1.3    Terminal 화면에서의 작업... 249

8.2    Shell 프로그램... 251

8.2.1    Shell 과 BASH (Bourne Again Shell) 251

8.2.2    기본 Shell 프로그램의 지정... 252

Chapter 9    Raspberry Pi 시스템 설정.. 255

9.1    시스템 설정 개요... 256

9.1.1    시스템 설정의 의미... 256

9.1.2    시스템 설정 대상 항목... 256

9.2    시스템 설정 방법... 258

9.2.1    "raspi-config" 명령을 이용한 설정 방법... 258

9.2.2    Desktop window 이용한 설정 방법... 260

9.3    파일시스템 확장 설정... 261

9.3.1    의미... 261

9.3.2    설정 절차... 261

9.4    default user "pi" 대한 사용자 암호 변경... 263

9.4.1    기본 사용자 "pi" 의미... 263

9.4.2    암호 변경 절차... 264

9.5    booting 시작화면 설정... 266

9.5.1    booting 시작화면 종류... 266

9.5.2    설정방법... 268

9.6    Internationaliation Options 설정... 270

9.6.1    Internationaliation Options 설정 공통 메뉴... 270

9.6.2    locale 설정... 271

9.6.3    time zone 설정... 273

9.6.4    keyboard 설정... 275

9.7    성능 항목 설정... 279

9.7.1    overclock 설정... 280

9.7.2    GPU memory 조정... 282

9.8    camera 오디오 장치 설정... 284

9.8.1    Raspberry Pi camera 활성화... 285

9.8.2    audio 출력 조정... 286

9.9    network 관련 설정... 288

9.9.1    SSH 활성화... 289

9.9.2    hostname 설정... 291

9.10  주변기기 interface 장치 설정... 293

9.10.1  SPI (Serial Peripheral Interface) 설정... 294

9.10.2  I2C (Inter-Integrated Circuit) 설정... 296

Chapter 10 Shell 명령 이해.. 299

10.1  명령 일반... 300

10.1.1  표준 입력 출력... 300

10.1.2  Shell 특수 ... 300

10.1.3  quote 규칙... 301

10.1.3.1   quote 규칙 개요... 301

10.1.3.2   \escape sequence. 302

10.1.4  명령 실행이력 활용... 303

10.1.4.1   화살표 키를 이용한 history 활용... 303

10.1.4.2   "history" 명령... 305

10.2  Shell 환경... 306

10.2.1  변수(variable) 306

10.2.1.1   변수(variable)란?. 306

10.2.1.2   변수의 종류... 306

10.2.1.3   변수의 자료형 선언... 309

10.2.1.4   "unset" 명령 변수의 정의 삭제... 310

10.2.1.5   "set" 명령 - Shell 호출 parameter 설정... 311

10.2.2  환경변수(environment variable) 312

10.2.2.1   "env" 명령 - 환경변수의 확인... 312

10.2.2.2   "export" 명령 - 환경변수의 정의... 315

10.2.2.3   환경변수 값을 영구적으로 고정하기... 316

10.3  Shell과 profile. 317

10.3.1  profile 종류... 317

10.3.2  profile 적용 순서... 319

10.4  기초 명령... 320

10.4.1  "clear" 명령 - 화면 지우기... 320

10.4.2  "echo" 명령... 322

10.4.3  "man" 명령 - 명령에 대한 도움말 보기... 323

10.4.4  "alias" 명령... 325

10.5  연산 처리 관련 명령... 327

10.5.1  "expr" 명령 - 산술연산... 327

10.5.2  "test" 명령... 329

10.6  선택적 실행 처리 관련 명령... 332

10.6.1  "&&" 명령 – "and" 형식의 명령 실행... 332

10.6.2  "||" 명령 – "or" 형식의 명령 실행... 333

10.7  프로그램 실행 관련 명령... 334

10.7.1  "which" 명령 - 실행파일의 path name 확인... 334

10.7.2  ";" 명령 - 복수 명령의 연속 실행... 336

10.7.3  프로그램 background/foreground 실행... 338

10.7.3.1   "&" 명령 - background 처리... 338

10.7.3.2   "jobs" 명령 - 현재 background 작업 상태 보기... 340

10.7.3.3   Foreground 작업을 Background 옮기기... 341

10.7.3.4   "fg" 명령 - background 작업 foreground 전환하기... 342

10.7.3.5   "bg" 명령 - 중단된 background 작업 다시 실행하기... 344

10.7.3.6   background 실행 작업을 중지 상태로 만들기... 344

10.7.3.7   "kill" 명령 - 작업 끝내기... 345

10.7.4  "exit" 명령 - 처리 종료... 346

10.8  입력 출력 조정 명령... 350

10.8.1  "xargs" 명령... 350

10.8.2  redirection 명령 - 입력, 출력 장치 변경... 354

10.8.3  "|" (pipe) 명령... 358

10.9  자료 조작 관련 명령... 361

10.9.1  "awk" 명령... 361

10.9.2  "wc" 명령... 368

10.9.3  "sort" 명령... 370

10.9.4  "uniq" 명령... 372

10.10                                                                      시스템 정보 관련 명령... 375

10.10.1                                               "date" 명령 - 시간정보 조회 변경... 375

10.10.2                                                                  "cal" 명령과 "ncal" 명령... 377

Chapter 11 Network 관리.. 379

11.1  network 일반... 380

11.1.1  network 접속과 IP address. 380

11.1.2  "ifconfig" 명령 - network 장치 상태 및 IP 주소 확인하기... 380

11.2  network 설정 정보... 383

11.2.1  network 설정 정보... 383

11.2.2  IP address 부여 방식 설정... 384

11.3  host name 이용... 385

11.3.1  host name 설정하기... 385

11.3.2  Host name 이용한 통신... 387

11.4  유선 network 연결... 388

11.5  무선 연결... 390

11.5.1  panel 메뉴를 이용한 Wi-Fi 설정... 390

11.5.2  설정 파일을 통한 무선 연결 설정... 394

11.6  static IP address 설정하기... 395

11.6.1  DHCP 서버에서 고정 IP address 지정하는 방법... 395

11.6.2  Raspberry Pi 시스템에서 고정 IP address 지정하는 방법... 397

11.7  network 활성화 중단... 398

11.7.1  "ifup"과 "ifdwon" 명령을 이용한 network 활성화 중단... 398

11.7.2  "ifconfig" 명령을 이용한 활성화 중단... 402

11.8  Bluetooth 설정 연결... 403

11.8.1  Raspberry Pi 외부 Bluetooth 기기에 공개하기... 404

11.8.2  Raspberry Pi에 Bluetooth 기기 등록 해제하기... 405


Chapter 12 사용자와 사용자 그룹.. 409

12.1  사용자의 종류... 410

12.1.1  시스템 기본 사용자와 추가 생성 사용자... 410

12.1.1.1   시스템 기본 사용자... 410

12.1.1.2   추가 생성 사용자... 410

12.1.2  시스템 관리자와 사용자... 411

12.1.2.1   시스템 관리자... 411

12.1.2.2   일반 사용자... 411

12.1.3  super user 일반 user 412

12.1.3.1   super user 412

12.1.3.2   super user 필요한 명령... 412

12.1.3.3   "sudo" 명령을 이용하여 super user 작업하기... 414

12.1.3.4   "su" 명령을 이용하여 super user 작업하기... 416

12.1.3.5   "visudo" 명령 - super user 권한의 통제... 417

12.2  Logon 사용자와 작업 사용자... 423

12.2.1  logon 사용자... 423

12.2.1.1   logon 사용자의 의미... 423

12.2.1.2   Desktop window에서 logon 사용자 확인하기... 423

12.2.1.3   terminal에서 logon 사용자 확인하기... 424

12.2.2  작업 사용자(working user) 425

12.2.2.1   작업 사용자의 의미... 425

12.2.2.2   terminal 정보로 현재 사용자 확인하기... 425

12.2.2.3   "whoami" 명령으로 작업 사용자 확인하기... 426

12.2.2.4   "su" 명령으로 작업 사용자 변경하기... 427

12.3  사용자 계정의 시스템 내부 관리... 429

12.4  사용자 생성... 430

12.4.1  사용자 생성의 필요성... 430

12.4.2  사용자 생성에 필요한 검토 사항... 430

12.4.3  "adduser" 명령 - 사용자 생성... 431

12.5  "deluser" 명령 - 사용자 삭제... 434

12.6  사용자 변경... 437

12.6.1  "usermod" 명령 - 사용자 변경... 437

12.6.2  사용자 암호 변경... 440

12.6.2.1   사용자 암호 변경 개요... 440

12.6.2.2   "passwd" 명령... 440

12.6.2.3   시스템 기본 사용자 "pi" 대한 암호 변경... 443

12.7  사용자 그룹(user group) 444

12.7.1  사용자 그룹이란?. 444

12.7.2  사용자와 사용자 그룹의 관계... 445

12.7.3  사용자 그룹에 대한 시스템 관리... 446

12.7.4  사용자와 사용자 그룹의 관계에 대한 시스템 관리... 447

12.7.5  "addgroup" 명령 - 사용자 그룹의 정의... 449

12.7.6  "delgroup" 명령 - 사용자 그룹의 삭제... 451

12.7.7  사용자 계정에 대한 사용자 그룹 지정... 454

12.7.7.1   처리 방법에 대한 검토... 454

12.7.7.2   "adduser" 명령을 이용한 사용자 그룹 지정... 454


Chapter 13 파일 권한 통제.. 457

13.1  파일 권한(file permission) 체계 이해... 458

13.1.1  파일에 대한 권한 정보 확인... 458

13.1.2  window 화면에서의 권한 정보의 조회... 461

13.1.3  파일에 대한 소유 사용자 소유 그룹의 체계... 463

13.1.4  파일에 대한 권한 체계... 464

13.2  파일에 대한 권한 변경... 466

13.2.1  파일에 대한 소유자 그룹의 변경... 466

13.2.1.1   "chown" 명령 파일의 소유 사용자(owner user) 변경... 466

13.2.1.2   "chgrp" 명령 파일의 소유 그룹(owner group) 변경... 468

13.2.2  파일에 대한 권한의 변경... 469

13.2.2.1   "chmod" 명령을 이용한 권한 변경... 469

13.2.2.2   symbol 표현 형식의 권한 변경... 470

13.2.2.3   number 표현 형식의 권한 변경... 473

Chapter 14 Device 이해.. 475

14.1  device 개요... 476

14.1.1  device 종류와 /dev directory. 476

14.1.2  character device. 477

14.1.2.1   특징... 477

14.1.2.2   device 이름 규칙... 477

14.1.3  block device. 478

14.1.3.1   block device 특징... 478

14.1.3.2   block device 종류... 478

14.1.3.3   disk device 이름 규칙... 479

14.1.3.4   "blkid" 명령 - block device 정보 확인... 481

14.1.4  network device. 483

14.1.4.1   network device 특징... 483

14.1.4.2   network device 종류 이름 규칙... 484

14.2  USB 장치... 485

14.2.1  "lsusb" 명령 - USB 장치 확인... 485

14.2.2  USB 장치와 device. 487

14.2.2.1   USB 장치와 /dev/ 487

14.2.2.2   USB 장치와 다른 device와의 관계... 487

Chapter 15 저장장치와 파일시스템.. 489

15.1  논리적 저장장치 관리... 490

15.1.1  파티션 관리... 490

15.1.1.1   "fdisk" 명령 - 파티션 관리... 490

15.1.1.2   "cfdisk" 명령 - 메뉴기반 디스크 작업... 493

15.1.2  disk의 format 작업... 495

15.1.2.1   disk의 format 작업이란?. 495

15.1.2.2   "mkfs" 명령 - 디스크 format하기... 495

15.1.3  device의 mount 497

15.1.3.1   mount 의미... 497

15.1.3.2   mount 용 directory 생성... 497

15.1.3.3   mount directory 대한 권한 조정... 498

15.1.3.4   "mount" 명령 - device 대한 directory 지정... 499

15.1.3.5   자동 mount 설정... 502

15.1.3.6   "umount" 명령 - device 대한 directory 해제... 505

15.1.4  특별 device 검토... 507

15.1.4.1   booting SD card. 507

15.1.4.2   USB 저장장치와 mount 508

15.2  파일 시스템의 구조... 511


Chapter 16 파일 관리.. 517

16.1  directory 파일의 기본 체계... 518

16.1.1  directory 파일의 개념... 518

16.1.1.1   폴더(folder) 또는 directory. 518

16.1.1.2   파일... 518

16.1.2  directory 파일의 이름 규칙... 519

16.1.3  폴더와 파일의 경로 지정... 520

16.1.3.1   절대 경로(absolute path) 520

16.1.3.2   상대 경로(relative path) 521

16.1.4  특수 폴더와 특수 파일... 523

16.1.4.1   hidden 파일... 523

16.1.4.2   link 파일... 524

16.1.4.3   "ln" 명령... 525

16.2  directory 파일의 관리... 527

16.2.1  directory생성... 527

16.2.1.1   "mkdir" 명령 – directory 생성... 527

16.2.1.2   Desktop window에서의 처리... 528

16.2.2  directory 파일의 이름 변경... 529

16.2.2.1   "mv" 명령 – directory 파일의 이름 변경... 529

16.2.2.2   Desktop window에서의 처리... 531

16.2.3  Text 파일 생성... 532

16.2.3.1   "touch" 명령을 이용한 파일 생성... 532

16.2.3.2   "echo"와 ">" 명령을 이용한 파일 생성... 534

16.2.3.3   text editor 프로그램을 이용한 파일 생성... 535

16.2.3.4   Desktop window에서의 처리... 538

16.2.4  directory 파일의 이동... 539

16.2.4.1   "mv" 명령 - 파일/directory 이동 처리... 539

16.2.4.2   Desktop window에서의 처리... 541

16.2.5  directory 파일 복사... 545

16.2.5.1   "cp" 명령 – directory 파일 복사... 545

16.2.5.2   Desktop window에서의 처리... 548

16.2.6  directory 파일의 삭제... 552

16.2.6.1   rmdir 명령 - directory 삭제... 552

16.2.6.2   rm 명령 - directory 파일 삭제... 554

16.2.6.3   Desktop window에서의 삭제 처리... 556

16.2.7  [Trash Can] 있는 자료의 관리 복구... 559

16.2.7.1   [Trash Can]에서 있는 자료의 조회... 559

16.2.7.2   [Trash Can] 있는 자료의 완전 삭제... 561

16.2.7.3   [Trash Can] 있는 자료의 복구... 563

16.3  directory 파일의 활용... 565

16.3.1  "cd" 명령 - 현재 작업경로 이동... 565

16.3.2  "pwd" 명령 - 현재 파일경로 확인... 567

16.3.3  파일 이름 검색... 569

16.3.3.1   "find" 명령 - 파일 이름 검색... 569

16.3.3.2   Desktop window에서의 처리... 574

16.3.4  파일 내용으로 파일 검색... 576

16.3.4.1   "grep" 명령 - 파일 내용으로 파일 검색... 576

16.3.4.2   Desktop window에서의 처리... 579

16.3.5  directory 파일의 사용 저장공간 확인... 581

16.3.5.1   "du" 명령 - directory 파일의 사용 저장공간 확인... 581

16.3.5.2   Desktop window에서의 처리... 583

16.3.6  파일의 종류 판단... 584

16.3.6.1   "file" 명령 - 파일 종류 판단... 584

16.3.6.2   Desktop window에서의 처리... 586

16.3.7  directory 내의 내용 확인... 588

16.3.7.1   "ls" 명령– directory 내용 확인... 588

16.3.7.2   Desktop window에서의 내용 확인 방법... 591

16.3.8  Text 파일 내용 확인... 593

16.3.8.1   "cat" 명령을 이용한 파일 내용 확인... 593

16.3.8.2   "more" 명령을 이용한 파일 내용 확인... 595

16.3.8.3   "less" 명령을 이용한 파일 내용 확인... 598

16.3.8.4   텍스트 편집기 프로그램을 이용한 파일 내용 확인... 601

16.3.8.5   Desktop window에서의 내용 확인 방법... 602

16.4  텍스트 파일 관리... 603

16.4.1  텍스트 파일의 개념... 603

16.4.2  [Nano] 텍스트 편집기... 604

16.4.3  [Vim] 텍스트 편집기... 610

16.4.4  [Leafpad] 텍스트 편집기... 618

Chapter 17 프로그램 설치와 Upgrade. 625

17.1  package manager system.. 626

17.1.1  package. 626

17.1.2  package repository. 627

17.1.3  package manager system... 628

17.1.4  package repository의 source list 629

17.1.5  package 이름 규칙... 631

17.2  package 관리도구... 633

17.2.1  package 관리도구 개요... 633

17.2.2  package 관리도구 – dpkg. 635

17.2.3  package 관리도구 – APT. 639

17.2.3.1   APT 도구 개요... 639

17.2.3.2   "apt-get" 명령... 640

17.2.3.3   "apt-cache" 명령... 642

17.2.4  package 관리도구 – aptitude. 644

17.3  프로그램 package 목록 상태 확인... 646

17.4  설치 프로그램 source 확보... 648

17.4.1  package repository 등록된 프로그램 이용 방법... 648

17.4.2  "wget" 명령으로 인터넷에서 download하는 방법... 649

17.4.3  GitHub 이용해서 인터넷에서 download하는 방법... 652

17.5  프로그램 설치 재설치... 655

17.5.1  source 배포 방식에 따른 프로그램 설치 비교... 655

17.5.2  package repository 배포되는 프로그램 설치... 657

17.5.3  package 형식의 파일로 배포되는 프로그램 설치... 661

17.5.4  일반 파일 형식으로 배포되는 프로그램 설치... 663

17.6  프로그램 설치 제거 파일 정리... 666

17.6.1  프로그램 설치 제거... 666

17.6.1.1   "apt-get remove" 명령... 666

17.6.1.2   "apt-get purge" 명령... 668

17.6.1.3   "apt-get autoremove" 명령... 669

17.6.2  프로그램 package 파일 정리... 670

17.6.2.1   "apt-get clean" 명령... 670

17.6.2.2   "apt-get autoclean" 명령... 671

17.7  프로그램 update 및 upgrade. 672

17.7.1  프로그램 upgarde. 672

17.7.2  "apt-get update" 명령 - local package database 정보 갱신... 673

17.7.3  "apt-get upgrade" 명령- 설치 프로그램 수정 반영... 675

17.8  system kernel 및 firmware upgrade. 677


 

Chapter 18 원격 접속.. 681

18.1  원격 접속(remote connection) 개요... 682

18.1.1  원격 시스템 접속... 682

18.1.2  원격 드라이브 접속... 682

18.2  원격 Terminal 접속... 683

18.2.1  SSH 특징... 683

18.2.2  SSH Serve 설정... 683

18.2.3  Unix/Linux 계열 및 Apple Mac에서의 SSH 연결... 684

18.2.4  <PuTTy> 프로그램을 이용한 MS Windows에서의 SSH연결... 686

18.3  원격 Desktop GUI 접속... 688

18.3.1  <XRDP> 프로그램 이용 MS Windows 원격 데스크탑 연결... 688

18.3.2  VNC 프로그램을 이용한 Desktop GUI 접속... 691

18.3.2.1   <TightVNC> server 설치... 692

18.3.2.2   <TightVNC> server 자동 시작... 694

18.3.2.3   VNC client 이용한 연결... 697

18.4  원격 드라이 접속... 699

18.4.1  <Samba> 프로그램 이용한 원격 드라이브 접속... 699

18.4.1.1   <Samba> server 프로그램의 설치... 699

18.4.1.2   <Samba> client에서의 연결... 709

18.4.2  SCP 프로그램을 이용한 원격 드라이브 접속... 715

18.4.2.1   SSH server 프로그램의 설치/활성화... 715

18.4.2.2   SCP client에서의 접속... 715


Chapter 19 시스템 모니터링.. 721

19.1  CPU, Memory 및 Task. 722

19.1.1  시스템 상태 확인... 722

19.1.1.1   "top" 명령 - 시스템 주요 정보 확인... 722

19.1.1.2   "free" 명령 - memory 현황... 727

19.1.1.3   "ps" 명령 - process snapshot 728

19.1.1.4   Desktop window 통한 시스템 monitoring. 731

19.1.2  process 죽이기... 733

19.1.2.1   "kill" 명령 - PID 이용한 process 종료... 733

19.1.2.2   "killall" 명령 - name 이용한 process 종료... 736

19.1.2.3   Desktop window 이용한 process 종료... 738

19.2  저장장치 모니터링... 739

19.2.1  저장공간 확인... 739

19.2.1.1   "df" 명령 - file system 디스크 공간 확인... 739

19.2.1.2   "du" 명령 - directory 디스크 사용 확인... 741

19.2.1.3   Desktop window 이용한 디스크 사용 상태 확인... 743

19.3  "/proc" 폴더와 process 정보... 745

19.3.1  "/proc" 폴더의 정보 종류... 745

19.3.2  "/proc" 폴더의 시스템 정보 확인... 747

19.3.2.1   CPU와 Memory 정보... 747

19.3.2.2   file system 관련 정보... 749

19.3.3  "/proc/<PID>/" 개별 process 정보 확인... 751


Chapter 20 일괄 실행과 자동 실행.. 753

20.1  명령 실행 방식... 754

20.1.1  개별 실행과 일괄 실행... 754

20.1.2  수동 실행과 자동 실행... 756

20.2  script 통한 명령 일괄 실행... 758

20.2.1  Shell과 script 758

20.2.1.1   script 란?. 758

20.2.1.2   script에서 사용할 있는 명령... 759

20.2.1.3   script 특징... 759

20.2.2  Shell 명령 실행 방식... 760

20.2.2.1   kernel의 system call 종류... 760

20.2.2.2   명령의 종류에 따른 Shell 처리방법... 761

20.2.2.3   Bash 작동 과정... 762

20.2.3  script 문법 기초... 763

20.2.3.1   script 정의... 763

20.2.3.2   주석(comment) 764

20.2.4  script에서의 연산... 765

20.2.4.1   대입 연산(assignment operation) 765

20.2.4.2   참조 연산(reference operation) 766

20.2.4.3   정수형 산술 연산(integer type arithmetic operation) 767

20.2.4.4   실수형 산술 연산(real type arithmetic operation) 770

20.2.4.5   논리 연산(logical operation) 771

20.2.5  script 실행 제어... 774

20.2.5.1   조건에 따른 선택적인 처리... 774

20.2.5.2   반복 처리... 778

20.2.6  script 실행... 783

20.2.6.1   script 파일 실행 준비... 783

20.2.6.2   script 파일 실행... 784

20.3  init script 통한 자동 실행... 786

20.3.1  run level 786

20.3.1.1   run level 정의... 786

20.3.1.2   "runlevel" 명령 - run level 확인... 788

20.3.1.3   "telinit" 명령 - run level 전환... 789

20.3.2  booting sequence. 790

20.3.2.1   booting 체계... 790

20.3.2.2   "pstree" 명령 - booting process tree. 793

20.3.3  init script 작성... 795

20.3.3.1   init script 의미... 795

20.3.3.2   run level 연동 init script 작성 방법... 796

20.3.3.3   application daemon 실행 init script 작성 방법... 799

20.3.4  run level 연동 booting 자동 실행... 802

20.3.4.1   init script 등록 원리... 802

20.3.4.2   "update-rc.d" 명령 - init script 자동 등록... 803

20.3.4.3   init script 시작과 종료... 805

20.3.5  run level 무관 booting 자동 실행... 806

20.4  schedule 의한 자동 실행... 807

20.4.1  <Cron> application. 807

20.4.2  "crontab" 명령 - crontab 관리... 808


Chapter 21 Office 및 Utility 프로그램.. 813

21.1  Open Office - 오피스 소프트웨어... 814

21.1.1  사용할 있는 Office 프로그램... 814

21.1.2  <Libre Office> 프로그램... 815

21.1.2.1   <Libre Office> 요약... 815

21.1.2.2   <Libre Office> 프로그램 설치... 816

21.1.2.3   <Libre Office> 프로그램의 실행 사용... 817

21.2  <Gimp> 프로그램 - 이미지 파일 편집... 819

21.2.1  <Gimp> 프로그램 설치... 819

21.2.2  <Gimp> 프로그램 실행... 820

21.3  <Scrot> 프로그램 - 화면 캡쳐... 821

21.3.1  <Scrot> 프로그램 설치... 821

21.3.2  <Scrot> 프로그램을 이용한 화면 캡쳐... 822

21.3.2.1   프로그램 실행 개요... 822

21.3.2.2   전체 화면의 캡쳐... 823

21.3.2.3   부분 화면의 갭쳐... 824

21.4  <CUPS> 프로그램 - 네트워크 인쇄... 825

21.4.1  프로그램 설치 직전의 printer 상태... 825

21.4.2  <CUPS> 프로그램 설치... 827

21.4.3  <CUPS> 프로그램을 이용한 printer server 설정... 828

21.4.4  print 설치 확인 인쇄... 832

21.5  Web Browser 대안... 833

21.5.1  <Chromium> browser 833

21.5.2  <Iceweasel> browser 833


Chapter 22 멀티미디어 활용.. 835

22.1  Raspberry Pi camera 사용하기... 836

22.1.1  카메라 기본... 836

22.1.1.1   Raspberry Pi 전용 camera 설치... 836

22.1.1.2   Raspberry Pi camera 활성화 및 GPU memory 조정... 836

22.1.2  Raspberry Pi camera 처리 API 837

22.1.2.1   MMAL (Multi-Media Abstraction Layer) 837

22.1.2.2   V4L2 (Video For Linux2) 838

22.1.3  Pi camera 이용한 사진 동영상 촬영... 841

22.1.3.1   Pi camera 촬영 명령 개요... 841

22.1.3.2   "raspistill" 명령을 이용한 사진 촬영하기... 842

22.1.3.3   "raspivid" 명령을 이용한 동영상 촬영하기... 846

22.1.4  동영상 내용 확인하기... 849

22.1.4.1   <OMXplayer> 프로그램를 이용한 동영상 상영... 849

22.1.4.2   <Mplayer> 프로그램을 이용한 동영상 상영... 851

22.1.5  <FFMPEG> 프로그램을 이용한 동영상 format 변환하기... 854

22.1.6  동영상을 외부 컴퓨터에서 보기... 858

22.1.6.1   동영상 자료 송신/수신의 기본 framework. 858

22.1.6.2   <Netcat> 프로그램으로 네트워크 동영상 송수신... 859

22.1.6.3   raspivid 명령으로 Raspberry Pi에서 동영상 전송... 861

22.1.6.4   Linux 컴퓨터에서 동영상 받아 보기... 862

22.1.6.5   MS Windows 컴퓨터에서 동영상 받아 보기... 864

22.1.6.6   Mac 컴퓨터에서 동영상 받아 보기... 865

22.1.7  동영상을 인터넷으로 방송하기... 866

22.1.7.1   동영상 자료 Web 전송 framework. 866

22.1.7.2   <VLC> server – Raspberry Pi 동영상 전송... 867

22.1.7.3   <VLC> client - MS Windows에서의 동영상 확인... 870

22.1.8  동작 감지 web camera - <Motion> 프로그램... 872

22.1.8.1   동작 감지 동영상 Web 접속 framework. 872

22.1.8.2   Raspberry Pi 시스템에서 동작 감지 작동... 873

22.2  E-Mail 사용하기... 877

22.2.1  <SSMTP> 프로그램 - 메일 전송 에이전트... 877

22.2.2  <MUTT> 프로그램 - 메일 전송 보조 도구... 883

Chapter 23 프로그램 작성.. 889

23.1  프로그램 기본 개요... 890

23.1.1  프로그램의 의의... 890

23.1.2  프로그램으로 있는 작업... 890

23.1.3  사용 가능 주요 Language 도구... 891

23.2  Mathematica 또는 Wolfram language. 892

23.2.1  특징... 892

23.2.2  시작... 894

23.2.2.1   Desktop GUI 환경에서의 시작... 894

23.2.2.2   Terminal 환경에서의 작업... 896

23.2.3  Mathematica 사용법... 897

23.2.3.1   Mathematica에서의 Program 작성방법... 897

23.2.3.2   프로그램 저장 재사용... 903

23.3  Sonic Pi 905

23.3.1  특징... 905

23.3.2  시작하기... 906

23.3.3  Sonic Pi 사용법... 908

23.3.3.1   Step 1 - Sonic Pi 처음 소리 내기... 908

23.3.3.2   Step 2 곡조 반복... 910

23.3.3.3   Step 3 - MIDI 음표와 음악의 음표... 912

23.3.3.4   Step 4 - synthesizer 이용한 sound 변경... 913

23.3.3.5   Step 5 – sample 사용... 915

23.3.3.6   Step 6 곡조를 동시에 연주하기... 916

23.3.3.7   Step 7 즉흥 작곡... 917

23.4  Scratch language. 918

23.4.1  특징... 918

23.4.2  프로그램 시작... 919

23.4.3  Scratch 개요... 920

23.4.4  프로그램 사용법 기초... 922

23.4.4.1   Sprite 개념... 922

23.4.4.2   프로그램의 실행과 중단... 922

23.4.4.3   Palette와 block. 923

23.4.4.4   Block 세부 특성 지정... 923

23.4.4.5   다른 명령과의 연결... 924

23.4.4.6   다른 명령과의 연결 완료... 925

23.4.4.7   Block들간의 처리 순서... 925

23.4.4.8   반복 실행... 926

23.4.5  사례를 이용한 프로그램 작성 방법... 927

23.4.5.1   [Cat] Sprite 움직이기... 927

23.4.5.2   [Cat] Sprite 외관모양 바꾸기... 928

23.4.5.3   Sprite 추가하기... 929

23.4.6  로보틱스 센서들... 930

23.4.6.1   PicoBoard 이용한 센싱... 930

23.4.6.2   LEGO 이용한 로보틱스 구축... 931

23.5  Python language. 932

23.5.1  Python 개요... 932

23.5.1.1   Python이란?. 932

23.5.1.2   Python 2와 Python 3. 933

23.5.1.3   Python의 IDLE 도구... 934

23.5.2  시작... 935

23.5.2.1   Desktop GUI 환경에서의 시작... 935

23.5.2.2   Terminal 환경에서의 작업... 937

23.5.3  Python 문법... 938

23.5.3.1   Python 시작문... 938

23.5.3.2   간단히 인쇄하기... 939

23.5.3.3   프로그램 들여쓰기(indentation) 939

23.5.3.4   변수(variable) 사용하기... 942

23.5.3.5   주석(Comments) 942

23.5.3.6   배열(list) 943

23.5.3.7   반복처리(Iteration) 943

23.5.3.8   "range" ... 945

23.5.3.9   "len" ... 946

23.5.3.10  "if" ... 946

23.5.3.11  순환 처리(loop processing) 947

23.5.4  Python 프로그램의 실행... 948

23.5.4.1   IDLE에서 Python 프로그램 파일 만들기... 948

23.5.4.2   Shell에서 Python 프로그램 파일 실행하기... 948

23.5.4.3   실행가능 Python 프로그램 파일 이용하기... 949

23.5.5  Game 통한 Python 학습... 950

23.5.5.1   Python Games. 950

23.5.5.2   Minecraft PI 953

23.5.6  간단한 사례를 이용한 Python 학습... 969

23.6  C language. 971

23.6.1  개요... 971

23.6.2  프로그램 작성하기... 972

23.6.3  프로그램 저장, compile 실행... 973

23.7  Java language. 975

23.7.1  개요... 975

23.7.2  현재의 version 확인하기... 976

23.7.3  프로그램 작성 실행... 977

23.7.3.1   프로그램 source code 작성... 977

23.7.3.2   프로그램 compile 실행... 978

Chapter 24 Database와 Web 활용.. 981

24.1  LAMP 개요... 982

24.1.1  Database와 Web 필요성... 982

24.1.2  LAMP. 983

24.2  MySQL Database. 984

24.2.1  관계형 database와 SQL. 984

24.2.1.1   관계형 database. 984

24.2.1.2   MySQL 소개 특징... 984

24.2.2  <MySQL Server> 설치... 985

24.2.2.1   <MySQL Server> 설치... 985

24.2.2.2   <MySQL Server> 설정... 986

24.2.3  MySQL 관리 도구... 988

24.2.3.1   <MySQL Administrator> – "mysqladmin" 명령... 988

24.2.3.2   <MySQL Shell> – "mysql" 명령... 991

24.2.3.3   <MySQL Backup>– "mysqldump" 명령... 992

24.2.3.4   <MySQL Import> – "mysqlimport" 명령... 994

24.2.4  <MySQL Shell> 사용 – "mysql" 명령... 996

24.2.4.1   <MySQL Shell> 기본 체계... 996

24.2.4.2   <MySQL Shell> 프로그램 시작하기... 998

24.2.4.3   MySQL Shell 명령 사용하기... 999

24.2.5  database SQL. 1004

24.2.5.1   database SQL 소개... 1004

24.2.5.2   database 정보 조회 - "SHOW" SQL. 1005

24.2.5.3   database 생성   – "CREATE DATABASE" SQL. 1006

24.2.5.4   database 삭제 – "DROP DATABASE" SQL. 1007

24.2.5.5   DB user 생성 – "CREATE USER"/"DROP USER" SQL. 1008

24.2.5.6   user 권한 관리 – "GRANT"/"REVOKE" SQL. 1010

24.2.5.7   table 생성   – "CREATE TABLE" SQL. 1013

24.2.5.8   table 삭제 – "DROP TABLE" SQL. 1015

24.2.5.9   table 정보 조회 – "EXPLAIN SQL"/"DESCRIBE" SQL. 1016

24.2.5.10  table 자료 입력 – "INSERT" SQL. 1017

24.2.5.11  table 자료 조회 – "SELECT" SQL. 1018

24.2.5.12  table 자료 변경 – "UPDATE" SQL. 1022

24.2.5.13  table 자료 삭제 – "DELETE" SQL. 1024

24.3  Apache web server 1025

24.3.1  Web server 와 Apache. 1025

24.3.1.1   Web server 1025

24.3.1.2   Apache 소개 특징... 1025

24.3.2  <Apache web server> 설치... 1026

24.3.2.1   <Apache web server> 설치... 1026

24.3.2.2   Apache server 설정... 1029

24.3.3  HTML 문법 요약... 1035

24.3.3.1   HTML 개요... 1035

24.3.3.2   HTML 구조... 1036

24.3.3.3   HTML 주요 Tag. 1036

24.3.4  간단한 HTML Web 페이지... 1038

24.3.4.1   다른 URL 대한 link 사용... 1038

24.3.4.2   table 사용하기... 1039

24.3.4.3   frame 사용하기... 1041

24.3.4.4   style 사용... 1043

24.3.4.5   form 이용한 자료 입력... 1046

24.4  PHP web script language. 1048

24.4.1  HTML과 PHP. 1048

24.4.1.1   PHP 필요성... 1048

24.4.1.2   PHP 개요 특징... 1049

24.4.2  PHP 및 MySQL 접속 도구 설치... 1050

24.4.3  PHP 문법 요약... 1052

24.4.3.1   PHP 기본 구조... 1052

24.4.3.2   PHP 문장(statement) 규칙... 1054

24.4.3.3   변수... 1058

24.4.3.4   constant(상수) 1062

24.4.3.5   자료형(data type) 1064

24.4.4  연산... 1069

24.4.4.1   산술(arithmetic) 연산자... 1069

24.4.4.2   대입(assignment) 연산자... 1070

24.4.4.3   비교(comparison) 연산자... 1071

24.4.4.4   증가(incremental)/감소(decremental) 연산자... 1072

24.4.4.5   논리(logical) 연산자... 1073

24.4.4.6   문자열(string) 연산자... 1074

24.4.4.7   배열(array) 연산자... 1075

24.4.5  출력... 1076

24.4.5.1   "echo" 명령... 1076

24.4.5.2   "print" 명령... 1077

24.4.6  실행 제어... 1078

24.4.6.1   조건 제어... 1078

24.4.6.2   반복처리(loop) 1081

24.4.6.3   순환처리 중단 계속... 1087

24.4.7  처리의 중단 복귀... 1091

24.4.7.1   "exit" 또는 "die" ... 1091

24.4.7.2   "return" ... 1092

24.4.8  함수(function) 1094

24.4.8.1   function 정의... 1094

24.4.8.2   function 사용... 1095

24.4.9  PHP script 파일의 포함... 1098

24.4.9.1   "include" 및 "require" ... 1098

24.4.9.2   "include_once" 문과 "require_once" ... 1102

24.4.10                                                  PHP 전송방식 주요 Global 변수... 1103

24.4.10.1  HTTP POST/GET 방식과 PHP에서의 처리... 1103

24.4.10.2  PHP의 Global 변수... 1106

24.4.11                                                                  PHP와 MySQL database. 1109

24.4.11.1  PHP MySQL extension. 1109

24.4.11.2  <mysqli> interface 방식... 1111

24.4.11.3  <mysqli> object-oriented interface 상세... 1113

24.4.11.4  [mysqli] Object-oriented interface 사용법... 1120

24.4.12                                                                 간단한 PHP Web 페이지... 1122

24.4.12.1  Main 문서의 준비... 1122

24.4.12.2  database 및 table 준비 작업... 1124

24.4.12.3  database 연결과 종료... 1125

24.4.12.4  database table 자료를 조회하는 script 작성... 1127

24.4.12.5  database table 자료 수정 script 작성... 1133

24.4.12.6  database table "employee" 관리 화면 진행 흐름... 1140


Chapter 25 외부 Interface. 1141

25.1  Raspberry Pi 외부 Interface. 1142

25.1.1  외부 Interface 의미... 1142

25.1.2  Raspberry Pi의 GPIO.. 1142

25.2  GPIO 상세... 1143

25.2.1  GPIO 장치... 1143

25.2.1.1   GPIO pin 배치... 1143

25.2.1.2   GPIO Pin 목록 기능... 1144

25.2.2  GPIO port 상세... 1148

25.2.2.1   GPIO 기본... 1148

25.2.2.2   특별 용도 GPIO.. 1150

25.2.3  GPIO 사용시의 주의점 특징... 1152

25.3  전기/전자 기초... 1153

25.3.1  전류, 저항, 전압... 1153

25.3.1.1   전류(current) 1153

25.3.1.2   전압(voltage) 전위(electric potential) 1155

25.3.1.3   저항(resistance) 1156

25.3.1.4   옴의 법칙(Ohm's law) 1158

25.4  전자회로 기초... 1159

25.4.1  단락(short) 저항... 1159

25.4.2  저항의 직렬(series) 병렬(parallel)l 1161

25.4.2.1   저항의 직렬 접속(series connection) 1161

25.4.2.2   저항의 병렬 접속(parallet connection) 1163

25.4.2.3   저항을 사용하는 이유... 1165

25.4.3  전원의 직렬 병렬... 1167

25.4.3.1   직렬 연결... 1167

25.4.3.2   병렬 연결... 1167

25.4.3.3   직병렬 연결... 1168

25.4.4  키르히호프의 법칙(Kirchhoff’s laws) 1169

25.4.4.1   제1 법칙 -전류의 법칙... 1169

25.4.4.2   제2 법칙 -전압의 법칙... 1170

25.4.5  Pull-up 저항과 Pull-down 저항... 1171

25.4.5.1   floating 상태(floating state) 1171

25.4.5.2   Pull-up 및 pull-down에서 저항을 사용하는 이유... 1173

25.4.5.3   pull-up 저항... 1175

25.4.5.4   pull-down 저항... 1177

25.4.5.5   pull-up 저항의 저항값... 1179

25.4.6  직류 전력... 1180

25.5  interface 준비물 사용법... 1181

25.5.1  GPIO extension board. 1181

25.5.2  breadboard. 1183

25.5.2.1   breadboard 구조... 1183

25.5.2.2   breadboard 사용법... 1185

25.5.3  jumper wire. 1186

25.5.4  저항 또는 저항기(resistor) 1188

25.5.4.1   저항기의 의미... 1188

25.5.4.2   저항 읽기... 1190

25.5.5  push button. 1192

25.5.6  LED light 1194

25.5.7  sensor 1197

25.6  GPIO Library. 1199

25.6.1  GPIO library 의미... 1199

25.6.2  <WiringPi> library. 1200

25.6.2.1   <WiringPi> library 개요... 1200

25.6.2.2   <WiringPi> library 의 pin map. 1201

25.6.2.3   <WiringPi> library 설치... 1203

25.6.2.4   "gpio" 명령... 1205

25.6.2.5   <WiringPi> library 기본 사용법... 1208

25.6.3  <RPi.GPIO> library. 1210

25.6.3.1   <RPi.GPIO> library 개요... 1210

25.6.3.2   <RPi.GPIO> library 설치... 1211

25.6.3.3   <RPi.GPIO> library 사용법... 1212

25.7  digital 입/출력... 1215

25.7.1  Digital 출력 – LED On/Off 1215

25.7.1.1   LED 설치... 1215

25.7.1.2   <WiringPi> library 이용한 사례... 1216

25.7.1.3   <RPi.GPIO> library 이용한 사례... 1218

25.7.2  Digital 입력 – button 입력... 1220

25.7.2.1   <RPi.GPIO> library 입력 방식... 1220

25.7.2.2   push button 연결 회로 설명... 1223

25.7.2.3   falling 방식의 push button 입력 처리하기... 1225

25.7.2.4   interrupt 방식의 push button 입력 처리하기... 1227

25.8  Sensor 1230

25.8.1  Sensor 개요... 1230

25.8.2  digital sensor DS18b20 이용한 온도 측정... 1231

25.8.2.1   DS18B20 sensor 특징... 1231

25.8.2.2   Raspberry Pi와 sensor 연결... 1234

25.8.2.3   1-Wire bus protocol 활성화... 1235

25.8.2.4   DS18B20 온도 측정 값 interface 파일... 1236

25.8.2.5   온도 처리 프로그램 작성... 1237

25.8.3  Digital DHT11 Humidity/Temperature Sensor 활용... 1239

25.8.3.1   sensor 특징... 1239

25.8.3.2   <WiringPi> library 용한 프로그램 작성... 1243

25.8.3.3   <RPi.GPIO> library 이용한 프로그램 작성... 1247

25.8.3.4   Raspberry Pi 실시간 처리(real time processing) 1251

25.9  action. 1252

25.9.1  relay. 1252

25.9.2  actuator 1252

25.10                                                                                특별 GPIO pin. 1252

25.10.1                                                   I2C (Inter-Integrated Circuit) device. 1252

25.10.2                                                         SPI (Serial Peripheral Interface) 1252

25.10.3                            UART (Universal Asynchronous Receiver/Transmitter) 1252


색인      1253

그림/ 색인   1259

저작권      1267

저자 출판내역.. 1268

 

 

Leave a Reply