책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 객체지향 프로그래밍/UML
· ISBN : 9788994506487
· 쪽수 : 888쪽
· 출판일 : 2012-09-12
책 소개
목차
Chapter 1 시작하기
1.0 소개 _ 1
1.1 통합 개발 환경(IDE) 설치하기 _ 5
1.2 아두이노 보드 설정하기 _ 9
1.3 통합 개발 환경(IDE)에서 아두이노 스케치 준비하기 _ 12
1.4 Blink 스케치 업로드 및 실행하기 _ 15
1.5 스케치 작성 및 저장하기 _ 17
1.6 아두이노 사용하기 _ 20
Chapter 2 스케치 만들기
2.0 소개 _ 25
2.1 아두이노 프로그램 구조화하기 _ 26
2.2 간단한 기본 유형(변수) 사용하기 _ 28
2.3 부동 소수점 숫자 사용하기 _ 30
2.4 여러 개의 값으로 구성된 배열 작업 _ 33
2.5 아두이노의 문자열 기능 사용하기 _ 37
2.6 C 문자열 사용하기 _ 43
2.7 쉼표로 구분된 텍스트를 그룹으로 분리하기 _ 45
2.8 숫자를 문자열로 변환하기 _ 48
2.9 문자열을 숫자로 변환하기 _ 50
2.10 코드를 기능 블록으로 구조화하기 _ 53
2.11 하나의 함수에서 두 개 이상의 값 리턴하기 _ 59
2.12 조건에 따라 작업 수행하기 _ 62
2.13 명령문 시퀀스 반복하기 _ 63
2.14 카운터를 사용하여 명령문 반복하기 _ 66
2.15 루프 종료하기 _ 70
2.16 단일 변수를 기반으로 다양한 작업 수행하기 _ 70
2.17 문자 및 숫자 값 비교하기 _ 73
2.18 문자열 비교하기 _ 76
2.19 논리 비교 수행하기 _ 77
2.20 비트 연산 수행하기 _ 78
2.21 연산과 할당 결합하기 _ 81
Chapter 3 수학 연산자 사용하기
3.0 소개 _ 83
3.1 더하기, 빼기, 곱하기 그리고 나누기 _ 83
3.2 값 증가 및 감소시키기 _ 85
3.3 두 값을 나눈 후 나머지 찾기 _ 86
3.4 절댓값 확인하기 _ 87
3.5 숫자를 일정 범위의 값으로 제한하기 _ 88
3.6 여러 값의 최솟값 또는 최댓값 찾기 _ 89
3.7 숫자의 거듭 제곱 구하기 _ 91
3.8 제곱근 구하기 _ 92
3.9 부동 소수점 숫자 반올림하기 _ 92
3.10 삼각 함수 사용하기 _ 94
3.11 난수 생성하기 _ 95
3.12 비트 설정 및 읽기 _ 98
3.13 비트 이동하기 _ 102
3.14 int 또는 long형 데이터에서 상위 및 하위 바이트 추출하기 _ 104
3.15 상위 및 하위 바이트를 사용하여 int 또는 long형 값 만들기 _ 106
Chapter 4 시리얼 통신
4.0 소개 _ 109
4.1 아두이노의 디버그 정보를 컴퓨터로 보내기 _ 116
4.2 아두이노에서 형식 지정된 텍스트 및 숫자 데이터 보내기 _ 120
4.3 아두이노에서 시리얼 데이터 받기 _ 124
4.4 아두이노에서 단일 메시지로 여러 텍스트 필드 전송하기 _ 130
4.5 아두이노에서 여러 텍스트 필드를 단일 메시지로 받기 _ 136
4.6 아두이노에서 2진 데이터 보내기 _ 141
4.7 컴퓨터에서 아두이노의 2진 데이터 받기 _ 146
4.8 Processing에서 아두이노로 2진 값 보내기 _ 148
4.9 여러 아두이노 핀의 값 보내기 _ 151
4.10 PC나 Mac에서 마우스 커서를 이동하는 방법 _ 156
4.11 아두이노로 Google 어스 제어하기 _ 161
4.12 아두이노 데이터를 컴퓨터 파일에 로깅하기 _ 167
4.13 동시에 두 개의 시리얼 장치에 데이터 전송하기 _ 171
4.14 동시에 두 장치의 시리얼 데이터 수신하기 _ 175
4.15 시리얼 데이터 송수신을 위해 컴퓨터에서 Processing 설정하기 _ 180
Chapter 5 간단한 디지털 및 아날로그 입력
5.0 소개 _ 183
5.1 스위치 사용하기 _ 187
5.2 외부 저항 없이 스위치 사용하기 _ 192
5.3 스위치 닫힘을 안정적으로 감지하기 _ 194
5.4 스위치의 눌림 시간 확인하기 _ 197
5.5 키패드 읽기 _ 203
5.6 아날로그 값 읽기 _ 207
5.7 값 범위 변경하기 _ 209
5.8 7개 이상의 아날로그 입력 읽기 _ 212
5.9 최대 5볼트의 전압 표시하기 _ 215
5.10 전압 변경에 대응하기 _ 219
5.11 5볼트 이상의 전압 측정하기(전압 분배기) _ 220
Chapter 6 센서로부터 입력받기
6.0 소개 _ 225
6.1 이동 감지하기 _ 228
6.2 조명 감지하기 _ 231
6.3 동작 감지하기(적외선 감지기 통합) _ 233
6.4 거리 측정하기 _ 235
6.5 정확한 거리 측정하기 _ 240
6.6 진동 감지하기 _ 244
6.7 소리 감지하기 _ 246
6.8 온도 측정하기 _ 250
6.9 RFID 태그 판독하기 _ 254
6.10 로터리 이동 추적하기 _ 257
6.11 두 개 이상 로터리 인코더의 이동 추적하기 _ 261
6.12 실행 중인 스케치에서 로터리 이동 추적하기 _ 263
6.13 마우스 사용하기 _ 266
6.14 GPS로부터 위치받기 _ 271
6.15 자이로스코프를 사용하여 회전 감지하기 _ 277
6.16 방향 감지하기 _ 284
6.17 게임 컨트롤 패드(PlayStation)의 입력받기 _ 290
6.18 가속도 읽기 _ 293
Chapter 7 시각적 출력
7.0 소개 _ 297
7.1 LED 연결 및 사용하기 _ 302
7.2 LED 밝기 조절하기 _ 305
7.3 고출력 LED 사용하기 _ 307
7.4 LED 색상 조정하기 _ 310
7.5 여러 개의 LED 연결하기: 막대 그래프 만들기 _ 314
7.6 여러 개의 LED 연결하기: 체이스 시퀀스 만들기 _ 318
7.7 멀티플렉싱을 사용하여 LED 매트릭스 제어하기 _ 319
7.8 LED 매트릭스에 이미지 표시하기 _ 323
7.9 LED 매트릭스 제어하기: 찰리플렉싱 _ 326
7.10 7세그먼트 LED 디스플레이 구동하기 _ 334
7.11 멀티 7세그먼트 LED 디스플레이 사용하기: 멀티플렉싱 _ 337
7.12 MAX7221 시프트 레지스터를 사용하여 멀티 7세그먼트 LED 디스플레이 구동하기 _ 340
7.13 MAX72xx 시프트 레지스터를 사용하여 LED 배열 제어하기 _ 343
7.14 PWM 확장 칩(TLC5940)으로 아날로그 출력 수 늘리기 _ 346
7.15 아날로그 계측기를 디스플레이로 사용하기 _ 350
Chapter 8 물리적 출력
8.0 소개 _ 353
8.1 서보 위치 제어하기 _ 357
8.2 포텐셔미터나 센서를 통해 2개 이하의 서보 제어하기 _ 359
8.3 연속 회전 서보의 속도 제어하기 _ 361
8.4 컴퓨터 명령으로 서보 제어하기 _ 363
8.5 브러시리스 모터 구동하기(일반형 변속기 사용) _ 366
8.6 솔레노이드와 릴레이 제어하기 _ 367
8.7 진동 모터 사용하기 _ 369
8.8 트랜지스터를 사용하여 브러시드 모터 구동하기 _ 372
8.9 H브릿지를 사용하여 브러시드 모터의 방향 제어하기 _ 374
8.10 H브릿지를 사용하여 브러시드 모터의 방향과 속도 제어하기 _ 377
8.11 센서를 사용하여 브러시드 모터의 방향과 속도 제어하기(L293 H브릿지) _ 380
8.12 바이폴라 스텝퍼 모터 구동하기 _ 387
8.13 바이폴라 스텝퍼 모터 구동하기(EasyDriver 보드 사용) _ 391
8.14 유니폴라 스텝퍼 모터 구동하기(ULN2003A) _ 395
Chapter 9 오디오 출력
9.0 소개 _ 399
9.1 신호음 재생하기 _ 402
9.2 간단한 멜로디 재생하기 _ 405
9.3 2개 이상의 동시 신호음 생성하기 _ 407
9.4 오디오 신호음 생성 및 LED 페이딩 _ 410
9.5 WAV 파일 재생하기 _ 413
9.6 MIDI 제어하기 _ 417
9.7 오디오 신디사이저 만들기 _ 421
Chapter 10 원격으로 외부 장치 제어하기
10.0 소개 _ 425
10.1 적외선 리모컨에 응답하기 _ 426
10.2 적외선 리모컨 신호 디코딩하기 _ 430
10.3 리모컨 신호 모방하기 _ 434
10.4 디지털 카메라 제어하기 _ 437
10.5 원격 제어 스위치로 AC 장치 제어하기 _ 440
Chapter 11 디스플레이 사용하기
11.0 소개 _ 445
11.1 텍스트 LCD 디스플레이 연결 및 사용하기 _ 446
11.2 텍스트 서식 지정하기 _ 451
11.3 커서와 디스플레이를 켜거나 끄기 _ 454
11.4 텍스트 스크롤하기 _ 456
11.5 특수 기호 표시하기 _ 460
11.6 사용자 정의 문자 만들기 _ 463
11.7 단일 문자보다 큰 기호 표시하기 _ 466
11.8 단일 문자보다 작은 픽셀 표시하기 _ 469
11.9 그래픽 LCD 디스플레이 연결 및 사용하기 _ 472
11.10 그래픽 디스플레이에 사용할 비트맵 만들기 _ 477
11.11 TV에 텍스트 표시하기 _ 480
Chapter 12 시간과 날짜 사용하기
12.0 소개 _ 487
12.1 지연 시간 만들기 _ 487
12.2 millis 함수로 기간 결정하기 _ 489
12.3 좀 더 정확한 펄스 기간 측정하기 _ 493
12.4 아두이노를 시계로 사용하기 _ 496
12.5 주기적으로 함수를 호출하는 알람 만들기 _ 506
12.6 실시간 클럭 사용하기 _ 510
Chapter 13 I2C와 SPI를 사용하여 통신하기
13.0 소개 _ 517
13.1 BlinkM 모듈을 사용하여 RGB LED 제어하기 _ 522
13.2 Wii 눈차크 가속도계 사용하기 _ 528
13.3 외부 실시간 클럭 사용하기 _ 534
13.4 외부 EEPROM 메모리 추가하기 _ 536
13.5 디지털 온도계로 온도 판독하기 _ 541
13.6 2개의 배선만으로 4개의 7세그먼트 LED 구동하기 _ 547
13.7 I2C 포트 확장기 통합하기 _ 551
13.8 SPI를 사용하여 멀티 7세그먼트 디스플레이 구동하기 _ 554
13.9 2개 이상의 아두이노 보드끼리 통신하기 _ 558
Chapter 14 무선 통신
14.0 소개 _ 563
14.1 저가형 무선 모듈을 사용하여 메시지 보내기 _ 564
14.2 ZigBee 또는 802.15.4 네트워크에 아두이노 연결하기 _ 571
14.3 특정 XBee에 메시지 보내기 _ 579
14.4 XBee 간에 센서 데이터 보내기 _ 582
14.5 XBee에 연결된 액츄에이터 활성화하기 _ 589
14.6 저가형 트랜시버를 사용하여 메시지 보내기 _ 595
14.7 블루투스 장치와 통신하기 _ 602
Chapter 15 이더넷과 네트워킹
15.0 소개 _ 607
15.1 이더넷 쉴드 설정하기 _ 611
15.2 자동으로 IP 주소받기 _ 614
15.3 호스트 이름으로 IP 주소 찾기(DNS) _ 616
15.4 웹 서버 데이터 요청하기 _ 618
15.5 XML을 사용하여 웹 서버 데이터 요청하기 _ 624
15.6 아두이노를 웹 서버로 설정하기 _ 628
15.7 수신 웹 요청 처리하기 _ 631
15.8 특정 페이지에 대한 수신 요청 처리하기 _ 634
15.9 HTML을 사용하여 웹 서버 응답 형식 지정하기 _ 640
15.10 폼을 사용하여 웹 페이지 제공하기(POST) _ 645
15.11 대용량 웹 페이지 제공하기 _ 648
15.12 트위터 메시지 보내기 _ 657
15.13 간단한 메시지 보내고 받기(UDP) _ 662
15.14 인터넷 타임 서버에서 시간 받아오기 _ 670
15.15 Pachube 피드 모니터링하기 _ 676
15.16 Pachube에 정보 보내기 _ 683
Chapter 16 라이브러리 사용, 수정 및 만들기
16.0 소개 _ 689
16.1 내장 라이브러리 사용하기 _ 690
16.2 써드파티 라이브러리 설치하기 _ 692
16.3 라이브러리 수정하기 _ 694
16.4 고유 라이브러리 만들기 _ 699
16.5 다른 라이브러리를 사용하는 라이브러리 만들기 _ 706
16.6 아두이노 1.0용 써드파티 라이브러리 업데이트하기 _ 713
Chapter 17 고급 코딩 및 메모리 처리
17.0 소개 _ 715
17.1 아두이노 빌드 프로세스 이해하기 _ 717
17.2 사용 중인 RAM 용량 및 여유 공간 확인하기 _ 721
17.3 프로그램 메모리에 숫자 값 저장 및 검색하기 _ 723
17.4 프로그램 메모리에 문자열 저장 및 검색하기 _ 727
17.5 정수 대신 #define 및 const 사용하기 _ 730
17.6 조건부 컴파일 사용하기 _ 731
Chapter 18 컨트롤러 칩 하드웨어 사용하기
18.0 소개 _ 735
18.1 영속적 EEPROM 메모리에 데이터 저장하기 _ 740
18.2 하드웨어 인터럽트 사용하기 _ 745
18.3 타이머 기간 설정하기 _ 748
18.4 타이머 펄스 폭 및 기간 설정하기 _ 751
18.5 펄스 생성기 만들기 _ 755
18.6 타이머의 PWM 주파수 변경하기 _ 759
18.7 펄스 카운트하기 _ 762
18.8 정확하게 펄스 측정하기 _ 764
18.9 빠르게 아날로그 값 측정하기 _ 768
18.10 배터리 소모량 줄이기 _ 770
18.11 빠르게 디지털 핀 설정하기 _ 772
18.12 프로그래머로 스케치 업로드하기 _ 776
18.13 아두이노 부트로더 교체하기 _ 778
18.14 Uno를 리프로그래밍하여 네이티브 USB 장치 에뮬레이트하기 _ 779
APPENDIX A 전자 부품 _ 785
APPENDIX B 스키마 다이어그램과 데이터 시트 사용하기 _ 791
APPENDIX C 회로 구축 및 연결하기 _ 799
APPENDIX D 소프트웨어 문제 해결을 위한 팁 _ 803
APPENDIX E 하드웨어 문제 해결을 위한 팁 _ 809
APPENDIX F 디지털 및 아날로그 핀 _ 813
APPENDIX G ASCII 및 확장 문자 세트 _ 819
APPENDIX H 아두이노 1.0으로 마이그레이션하기 _ 825
찾아보기 _ 831
책속에서
아두이노에서는 일반적으로 프로그램을 스케치라고 부른다. 초기에 주로 아티스트와 디자이너가 사용했기 때문에 아이디어를 빠르고 쉽게 실현할 수 있는 방법이라는 의미로 스케치라는 용어가 사용되었다. 따라서 스케치(sketch)와 프로그램(program)이라는 용어는 동의어로 이해해도 무관하다
대부분 첫 번째 시리얼 포트는 Mac에서 주로 사용되는 포트이며, 마지막 시리얼 포트는 Windows에서 주로 사용되는 포트다. 이 Processing 스케치에는 사용할 수 있는 포트와 현재 선택된 포트를 보여 주는 코드가 포함되어 있으며, 이 포트가 아두이노에 연결된 포트인지 확인한다.
loop에서는 write 메소드를 사용하여 픽셀을 켠다. 그리고 clear 메소드는 픽셀을 끈다. write에는 매개변수가 3개 있는데, 그 중 처음 2개는 LED의 열과 행(x와 y)을 식별하며, 세 번째 매개변수(HIGH 또는 LOW)는 LED를 켜거나 끈다.