레시피로 배우는 아두이노 쿡북
도서명:레시피로 배우는 아두이노 쿡북
저자/출판사:마이클,마골리스,브라이언,젭슨,니콜라스,로버트,웰딘/제이펍
쪽수:792쪽
출판일:2021-09-15
ISBN:9791191600094
목차
옮긴이 머리말 xi
이 책에 대하여 xiii
혼동하기 쉬운 번역어 대조표 xxv
베타리더 후기 xxviii
1장 출발선에 서기 1
1.0 소개 1
1.1 통합 개발 환경(IDE) 설치 6
1.2 아두이노 보드 구성 11
1.3 통합 개발 환경에서 아두이노 스케치를 준비하기 13
1.4 Blink 스케치를 보드에 올려 실행해 보기 16
1.5 스케치 작성 및 저장 18
1.6 처음으로 해볼 만큼 쉬운 아두이노 프로젝트 21
1.7 비표준 보드용 아두이노 사용 26
1.8 32비트 아두이노(또는 호환 제품) 사용 29
2장 아두이노 프로그래밍 33
2.0 소개 33
2.1 전형적인 아두이노 스케치 34
2.2 간단한 기본 데이터 형식(변수) 사용 36
2.3 부동소수점 수 사용 39
2.4 배열(값의 모음) 활용 42
2.5 아두이노 문자열 함수 사용 46
2.6 C 방식 문자열 사용 52
2.7 쉼표 구분 텍스트의 그룹별 분리 54
2.8 숫자를 문자열로 바꾸기 57
2.9 문자열을 숫자로 바꾸기 60
2.10 코드를 기능별 블록으로 나눠 구조화하기 62
2.11 함수에서 여러 값을 반환하기 67
2.12 조건에 맞춰 행동하게 하기 70
2.13 연속 문장 반복 실행 72
2.14 카운터 이용 문장 반복 74
2.15 루프 밖으로 빠져 나가기 77
2.16 단일 변숫값에 따라 여러 조치를 하기 79
2.17 문자와 수치 간 비교 81
2.18 문자열 간 비교 84
2.19 논리적 비교 86
2.20 비트 단위 연산 87
2.21 연산과 할당을 동시에 하기 90
3장 수학적 연산자 91
3.0 소개 91
3.1 덧셈, 뺄셈, 곱셈, 나눗셈 91
3.2 값의 증감 93
3.3 나눗셈과 나머지 95
3.4 절댓값 알아내기 97
3.5 수치 값 범위 제한 98
3.6 최솟값과 최댓값 구하기 98
3.7 거듭제곱하기 100
3.8 제곱근 구하기 101
3.9 부동소수점 수를 올림하거나 내림하기 101
3.10 삼각 함수 사용 103
3.11 난수 생성 104
3.12 비트 값 지정 및 읽기 107
3.13 비트 시프트 111
3.14 int/long 형식 데이터의 상위/하위 바이트 추출 113
3.15 상위/하위 바이트를 사용해 int/long 형식 값을 구성하기 115
4장 직렬 통신 118
4.0 소개 118
4.1 정보를 아두이노에서 컴퓨터로 송신하기 126
4.2 서식이 있는 텍스트나 수치 데이터를 아두이노에서 송신하기 130
4.3 아두이노에서 직렬 데이터를 수신하기 135
4.4 여러 텍스트 필드를 단일 메시지로 바꿔 아두이노에서 송신하기 140
4.5 여러 텍스트 필드로 이뤄진 단일 메시지를 아두이노에서 수신하기 147
4.6 아두이노로부터 2진 데이터를 송신하기 151
4.7 아두이노가 보내온 2진 데이터를 컴퓨터에서 수신하기 156
4.8 2진 값을 프로세싱에서 아두이노로 송신하기 159
4.9 여러 아두이노 핀 값 송신 162
4.10 아두이노 데이터 로그를 컴퓨터 파일에 기록 166
4.11 데이터를 여러 직렬 장치로 송신하기 170
4.12 여러 장치로부터 직렬 데이터를 수신 174
4.13 아두이노와 라즈베리 파이 동시 사용 180
5장 간단한 디지털/아날로그 입력 185
5.0 소개 185
5.1 스위치 사용 189
5.2 외부 저항기 없이 스위치를 사용 193
5.3 스위치 눌림 안정적 검출(바운스 제거) 195
5.4 스위치 눌림 시간 지정 199
5.5 키패드 읽기 204
5.6 아날로그 값 읽기 207
5.7 값 범위 변경 209
5.8 아날로그 입력 내용을 일곱 개 이상 읽기 212
5.9 최대 5V 전압 측정 215
5.10 전압 변화 대응 218
5.11 5V 초과 전압 측정(전압 분배기) 220
6장 센서 입력 수신 223
6.0 소개 223
6.1 내장형 센서가 많이 있는 아두이노가 필요한 경우 226
6.2 움직임 감지 230
6.3 빛 검출 232
6.4 생명체 움직임 감지 235
6.5 거리 측정 237
6.6 정확한 거리 측정 243
6.7 진동 감지 245
6.8 소리 감지 247
6.9 온도 측정 252
6.10 RFID(NFC) 태그 판독 256
6.11 회전 운동 추적 259
6.12 인터럽트가 많아서 번잡한 스케치에서 회전 운동을 추적하기 262
6.13 마우스 사용 265
6.14 GPS 위치 획득 269
6.15 자이로스코프 기반 회전 감지 275
6.16 방향 검출 278
6.17 가속도 판독 281
7장 시각적 출력 284
7.0 소개 284
7.1 LED 연결과 사용 288
7.2 LED의 휘도 조절 291
7.3 고전력 LED 구동 293
7.4 LED 색상 조정 296
7.5 다수의 컬러 LED 제어 299
7.6 다중 LED 시퀀싱: 막대그래프 만들기 302
7.7 다중 LED 시퀀싱: 추격 시퀀스 만들기 307
7.8 멀티플렉싱 방식 LED 매트릭스 제어 309
7.9 LED 매트릭스에 이미지를 표시 313
7.10 LED 매트릭스 제어: 찰리플렉싱 316
7.11 7 세그먼트 LED 디스플레이 장치 구동 323
7.12 자리가 여러 개인 7 세그먼트 LED 디스플레이 구동: 멀티플렉싱 325
7.13 핀을 최소로 사용해 7 세그먼트 LED 디스플레이 장치에 숫자 여러 개를 표시하기 328
7.14 MAX72xx 시프트 레지스터를 사용해 LED 어레이 제어하기 330
7.15 PWM 확장 칩을 사용해 아날로그 출력 개수 늘리기 333
7.16 아날로그 패널 미터를 디스플레이 장치로 사용하기 335
8장 물리적 출력 338
8.0 소개 338
8.1 서보를 사용해 회전 위치 제어하기 341
8.2 포텐쇼미터 및 센서 기반 서보 회전 제어 343
8.3 연속 회전 서보 속도 제어 345
8.4 컴퓨터 명령 기반 서보 제어 347
8.5 브러시리스 모터 구동(취미용 스피드 컨트롤러 사용) 349
8.6 솔레노이드 및 릴레이 제어 350
8.7 물체 진동 352
8.8 트랜지스터 기반 브러시 모터 구동 355
8.9 H 브리지 기반 브러시 모터 방향 제어 356
8.10 H 브리지 기반 브러시 모터 방향/속도 제어 360
8.11 센서 기반 브러시 모터 방향/속도 제어 362
8.12 바이폴라 스테퍼 모터 구동 368
8.13 바이폴라 스테퍼 모터 구동(이지드라이버 보드 사용) 372
8.14 ULN2003A 드라이버 칩 기반 유니폴라 스테퍼 모터 구동 376
9장 오디오 출력 379
9.0 소개 379
9.1 음 연주 382
9.2 짧은 선율 연주 385
9.3 2개 동시적 음 생성 387
9.4 PWM을 사용해 간섭 없이 가청음을 생성 389
9.5 미디 제어 392
9.6 오디오 신시사이저 만들기 396
9.7 고품질 오디오 합성 398
10장 외부 장치 원격 제어 401
10.0 소개 401
10.1 적외선 리모컨에 반응하게 하기 402
10.2 적외선 리모컨 신호 디코딩 405
10.3 리모컨 신호 흉내 내기 409
10.4 디지털 카메라 제어 412
10.5 원격 제어 스위치를 해킹해 AC 장치를 제어하기 415
11장 디스플레이 장치 사용 419
11.0 소개 419
11.1 텍스트용 LCD 장치 연결과 사용 420
11.2 서식 있는 텍스트 구성 424
11.3 커서 점멸과 디스플레이 장치 켬/끔 427
11.4 텍스트 스크롤 429
11.5 특수 기호 표시 432
11.6 사용자 정의 문자 구성 435
11.7 단일 문자보다 더 큰 기호 표시 437
11.8 단일 문자보다 더 작은 픽셀 표시 440
11.9 그래픽 LCD 선택 443
11.10 풀컬러 LCD 디스플레이 제어 445
11.11 흑백 OLED 디스플레이 제어 449
12장 시간과 날짜 사용 455
12.0 소개 455
12.1 millis를 사용해 지속시간 알아내기 455
12.2 스케치에 일시정지 기능 추가 457
12.3 펄스 지속시간을 더 정밀하게 측정하기 461
12.4 아두이노 기반 시계 463
12.5 주기적으로 함수를 호출하기 위한 알람 생성 471
12.6 실시간 클록 사용 475
13장 I2C와 SPI를 사용한 통신 480
13.0 소개 480
13.1 여러 I2C 장치 연결 486
13.2 여러 SPI 장치 연결 490
13.3 I2C 집적회로 다루기 493
13.4 I2C 포트 확장기를 사용해 입출력 늘리기 497
13.5 여러 아두이노 보드 간 통신 500
13.6 넌처크 가속도계 사용 505
14장 간단한 무선 통신 512
14.0 소개 512
14.1 저가형 무선 모듈 기반 메시지 송신 512
14.2 ZigBee/802.15.4 네트워크와 아두이노 연결 521
14.3 특정 XBee 기반 메시지 송신 528
14.4 XBee 간 센서 데이터 송신 531
14.5 XBee에 연결된 액추에이터 활성화 537
14.6 구형 블루투스 장치 통신 542
14.7 저전력 블루투스 장치 통신 545
15장 와이파이와 이더넷 549
15.0 소개 549
15.1 이더넷 네트워크 연결 552
15.2 IP 주소 자동 획득 556
15.3 간단한 메시지 송수신(UDP) 558
15.4 와이파이 내장 아두이노 사용 566
15.5 저가형 모듈 기반 와이파이 연결 570
15.6 웹 응답 내용에서 데이터 추출 575
15.7 XML 기반 웹 서버 데이터 요청 580
15.8 아두이노 기반 웹 서버 구성 583
15.9 웹 요청 처리 589
15.10 특정 페이지로 들어오는 수신 요청 처리 593
15.11 HTML 기반 웹 서버 응답 형식 지정 598
15.12 폼 기반 웹 데이터 요청(POST) 603
15.13 데이터가 많은 웹 페이지 제공 607
15.14 트위터 메시지 송신 614
15.15 사물 인터넷용 데이터 교환 617
15.16 MQTT 브로커에 데이터 공개 618
15.17 MQTT 브로커에서 데이터 구독 620
15.18 인터넷 시간 서버에서 시간을 알아내기 622
16장 라이브러리 사용, 수정, 작성 629
16.0 소개 629
16.1 내장 라이브러리 사용 630
16.2 제3자 라이브러리 설치 633
16.3 라이브러리 수정 635
16.4 자신만의 라이브러리 제작 639
16.5 다른 라이브러리를 사용하는 라이브러리를 만들기 646
16.6 아두이노 1.0용 제3자 라이브러리 업데이트 652
17장 고수준 코딩 및 메모리 처리 654
17.0 소개 654
17.1 아두이노 빌드 프로세스 656
17.2 사용 가능 RAM과 사용된 RAM 알아내기 659
17.3 프로그램 메모리 내의 수치 저장과 인출 663
17.4 프로그램 메모리 내의 문자열 저장과 인출 666
17.5 수 대신 #define/const 사용 668
17.8 조건부 컴파일 669
18장 컨트롤러 칩 하드웨어 사용 672
18.0 소개 672
18.1 데이터의 EEPROM 메모리 내 저장 677
18.2 핀 상태 변경 시 동작 자동화 681
18.3 일정 주기 작업 수행 684
18.4 타이머 펄스 폭 설정과 지속시간 설정 686
18.5 펄스 발생기 제작 689
18.6 타이머의 PWM 주파수 변경 691
18.7 펄스 개수 세기 694
18.8 펄스 정밀 측정 696
18.9 아날로그 값 간이 측정 699
18.10 배터리 소모 줄이기 701
18.11 디지털 핀 간이 설정 704
18.12 프로그래머 기반 스케치 업로드 707
18.13 아두이노 부트로더 교체 709
18.14 PC나 맥에서 마우스 커서 옮기기 710
부록 A 전자 부품 714
부록 B 계통도와 데이터시트 사용 719
부록 C 회로 구축 및 연결 725
부록 D 소프트웨어 문제 해결 729
부록 E 하드웨어 문제 해결 734
부록 F 디지털 핀과 아날로그 핀 737
부록 G 아스키와 확장 문자 세트 741
찾아보기 746