본문 바로가기

도서 소개

레시피로 배우는 아두이노 쿡북(제2판)

 

 

그동안 읽어주신 분들께 감사드립니다. 이 책은 현재 절판되었습니다.

출판사  제이펍
원출판사  O'Reilly
원서명  Arduino Cookbook(2nd edition)(원서 ISBN 9781449313876)
저자명  마이클 마골리스(Michael Margolis)
역자명  윤순백
출판일  2012년 9월 12일
페이지  888쪽
판  형  4*6배판 변형(188*245) 반양장(Soft Cover)
정  가  38,000원
ISBN  978-89-94506-48-7   부가기호: 93560
키워드  스케치 / 시리얼 통신 / 센서 / 아두이노 1.0 / 전자회로 / 로봇 / LED
분  야  하드웨어 / 마이크로 컴퓨터

 

관련 사이트
원출판사 도서소개페이지

아마존도서소개페이지

■ 아두이노 스토리(국내 최대 아두이노 까페)

 

독자 Q&A
■ 출판사 이메일(jeipub골뱅이gmail.com)과 역자 이메일(soonbaek골뱅이empas.com)

 

관련 포스트
2012/09/02 - [출간전 책소식] - 명실상부한 아두이노 바이블이 출간됩니다!

 

강의 자료
■ 교재로 채택하신 분들에게는 강의교안을 만들 수 있는 자료를 보내드리도록 하겠습니다.(출판사로 메일이나 전화로 연락주세요)


관련 도서
■ 200개의 단계별 예제로 배우는 안드로이드 4.0

 

소스 코드 다운로드

http://examples.oreilly.com/0636920022244/

 

샘플 챕터(본문 전 앞부분, 1장 시작하기, 2장 스케치 만들기, 찾아보기)

아두이노쿡북(제2판)_FM.pdf
다운로드
아두이노쿡북(제2판)_ch01.pdf
다운로드
아두이노쿡북(제2판)_ch02.pdf
다운로드
아두이노쿡북(제2판)_index.pdf
다운로드

 

 

정오표 페이지
번역서 정오표 페이지

 

도서구매 사이트(가나다순)

[강컴]   [교보문고]   [대교리브로]   [도서11번가]   [반디앤루니스]   [알라딘]   [예스이십사]   [인터파크]

 

도서 소개
아두이노 프로젝트의 시작과 확장 그리고 발전을 도와주는 풍부한 레시피 수록!
아두이노 1.0 기반, 1.x 지원!

 

실제 세상과 상호 작용할 수 있는 장치를 만들고 싶은가? 유명한 아두이노 마이크로컨트롤러 및 프로그래밍 환경을 사용하려는 모든 사람에게 가장 적합한 이 책에는 접촉, 소리, 위치, 열 및 빛을 감지하여 반응할 수 있는 장난감, 감지기, 로봇 및 인터랙티브 의상과 같은 다양한 오브젝트와 프로토타입을 만드는 데 도움이 되는 200가지 이상의 팁과 기술이 담겨 있다.

 

아두이노나 프로그래밍에 대한 경험이 없는 초보자도 무리 없이 시작할 수 있게 구성하였다. 아두이노 1.0 릴리스용으로 업데이트된 이 2판의 레시피에서는 엔지니어, 아티스트, 디자이너, 애호가, 학생을 비롯한 누구라도 자신의 프로젝트를 지금 당장 시작하고, 확장하고, 발전시키는 데 활용할 수 있는 다양한 실전 예제와 지침을 볼 수 있다.

 

• 아두이노 보드와 필수 소프트웨어 개념을 빠르게 익힐 수 있다.
• 디지털 및 아날로그 신호 판독을 위한 기본 기술을 익힐 수 있다.
• 잘 알려져 있는 다양한 입력 장치 및 센서와 함께 아두이노를 사용할 수 있다.
• 시각적 디스플레이를 구동하고, 사운드를 생성하고, 여러 가지 모터를 제어할 수 있다.
• TV와 가전기기처럼 리모컨을 사용하는 다양한 장치와 상호 작용할 수 있다.
• 지연 시간 및 시간 측정을 다루는 기술을 익힐 수 있다.
• 고급 코딩 및 메모리 처리 기술을 적용할 수 있다.

 

추천사
독자 여러분은 이 책을 통해 어떤 상상의 나래를 펼치실지 궁금합니다. 진공청소기에 아두이노를 "마이클 마골리스의 종합적인 레시피 세트는 빠르게 성장하고 있는 아두이노 커뮤니티를 위한 멋진 선물이다. 독자의 배경과 기술에 상관없이 이 쿡북은 모든 독자에게 지금 고민하고 있는 프로젝트에 유용한 솔루션을 제공할 뿐만 아니라 앞으로 개발할 무엇인가를 즐겁게 상상할 수 있는 계기를 제공한다. 아마도 이 책은 내 작업 책상을 영원히 떠나지 않을 것이다."

_ 미칼 하트, 아두이노 Uno 자문팀


책속으로
독자 여러분은 이 책을 통해 어떤 상상의 나래를 펼치실지 궁금합니다. 진공청소기에 아두이노를 연결해서 시중에 나와 있는 것보다 더 깨끗이 청소해 주는 로봇 청소기를 만들어 보면 어떨까요? 부질없는 상상이 될 수도 있겠지만, 그 상상이 우리에게 활력소가 되고 발전의 원동력이 될 수도 있을 것입니다. 기초적인 사용법부터 무선 네트워크에 이르기까지 아두이노의 다양한 기능을 잘 설명해 주는 이 책에 여러분의 상상력이 더해진다면 정말 멋진 결과물을 얻을 수 있을 것입니다. 여러분도 이 책을 통해 그 기쁨을 마음껏 누리실 수 있기를 바래봅니다.

_ 옮긴이 머리말 중에서

 

아두이노에서는 일반적으로 프로그램을 스케치라고 부른다. 초기에 주로 아티스트와 디자이너가 사용했기 때문에 아이디어를 빠르고 쉽게 실현할 수 있는 방법이라는 의미로 스케치라는 용어가 사용되었다. 따라서 스케치(sketch)와 프로그램(program)이라는 용어는 동의어로 이해해도 무관하다
_ 24쪽

 

대부분 첫 번째 시리얼 포트는 Mac에서 주로 사용되는 포트이며, 마지막 시리얼 포트는 Windows에서 주로 사용되는 포트다. 이 Processing 스케치에는 사용할 수 있는 포트와 현재 선택된 포트를 보여 주는 코드가 포함되어 있으며, 이 포트가 아두이노에 연결된 포트인지 확인한다.
_ 132쪽

 

loop에서는 write 메소드를 사용하여 픽셀을 켠다. 그리고 clear 메소드는 픽셀을 끈다. write에는 매개변수가 3개 있는데, 그 중 처음 2개는 LED의 열과 행(x와 y)을 식별하며, 세 번째 매개변수(HIGH 또는 LOW)는 LED를 켜거나 끈다.
_ 345쪽

 

저자 소개
마이클 마골리스(Michael Margolis)
마이클 마골리스는 환경과 상호 작용하는 하드웨어와 소프트웨어를 전문적으로 개발해 온 실시간 컴퓨팅 분야의 공학자다. 소니, 마이크로소프트 및 루슨트/벨 연구소에서 선임 기술자로 30년 이상의 경력을 지니고 있는 그는 아두이노 1.0 배포판에 포함되어 있는 라이브러리와 핵심 소프트웨어를 개발했다.

 

역자 소개
윤순백

아주대학교에서 정보및컴퓨터공학을 전공한 후 (주)프로랭스에서 3년 동안 소프트웨어 현지화 전문가로 활동했다. 이후 IT 분야 전문 프리랜서 번역가로 활발하게 활동하고 있다. 대표적인 번역물로는 오픈 소스 개발자를 위한 사이트인 IBM developerWorks에 2009년부터 2년 동안 (주)아이시스에서 근무하면서 번역했던 수백 편의 아티클과 수십 편의 튜토리얼이 있다. 옮긴 책으로는 『렛츠 고! 플렉스 프로그래밍』이 있다.

 

차 례
Chapter 1 시작하기 _ 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 스케치 만들기 _ 25
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 수학 연산자 사용하기 _ 83
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 시리얼 통신 _ 109
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 간단한 디지털 및 아날로그 입력 _ 183
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 센서로부터 입력받기 _ 225
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 시각적 출력 _ 297
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 물리적 출력 _ 353
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 오디오 출력 _ 399
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 원격으로 외부 장치 제어하기 _ 425
10.0 소개 _ 425

10.1 적외선 리모컨에 응답하기 _ 426
10.2 적외선 리모컨 신호 디코딩하기 _ 430
10.3 리모컨 신호 모방하기 _ 434
10.4 디지털 카메라 제어하기 _ 437
10.5 원격 제어 스위치로 AC 장치 제어하기 _ 440

 

Chapter 11 디스플레이 사용하기 _ 445
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 시간과 날짜 사용하기 _ 487
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를 사용하여 통신하기 _ 517
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 무선 통신 _ 563
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 이더넷과 네트워킹 _ 607
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 라이브러리 사용, 수정 및 만들기 _ 689
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 고급 코딩 및 메모리 처리 _ 715
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 컨트롤러 칩 하드웨어 사용하기 _ 735
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