레시피로 배우는 아두이노 쿡북 (프로젝트를 시작하고, 확장하고, 강화하기 위한 레시피 | 3 판)

레시피로 배우는 아두이노 쿡북 (프로젝트를 시작하고, 확장하고, 강화하기 위한 레시피 | 3 판)

$46.01
Description
200개 이상의 다양한 레시피가 가득한 아두이노 백과사전!
현실 세계와 상호작용하는 장치를 만들고 싶은가? 아두이노 마이크로컨트롤러와 프로그램 개발 환경을 실험해 보고자 하는 사람들에게 적합한 이 책에는 IoT 솔루션, 환경 모니터링, 위치 인식, 접촉/소리/열/빛에 대응할 수 있는 제품 개발처럼 다양한 제품이나 시제품을 제작하는 데 필요한 200개 이상의 요령과 기법이 담겨 있다.

아두이노 1.8 릴리스에 맞춰 새롭게 보강한 이 책(제3판)의 레시피에는 엔지니어, 디자이너, 예술가, 학생, 취미 개발자가 프로젝트를 시작하고, 확장하고, 보강하는 데 도움이 될 만한 실용 예제와 지침이 다양하게 실려 있다.

■ 아두이노 보드와 필수 소프트웨어 개념을 빠르게 익힐 수 있다.
■ 디지털 신호와 아날로그 신호를 읽어 내는 데 필요한 기본 기술을 배울 수 있다.
■ 다양한 입력 장치와 센서를 아두이노에 달아 사용해 본다.
■ 디스플레이 장치를 구동하고, 소리를 합성하고, 다양한 모터를 제어해 본다.
■ 텔레비전을 비롯한 다양한 가전 제품을 원격으로 제어해 본다.
■ 시간 지연이나 시간 측정을 처리하는 기술을 배운다.
■ 고급 코딩 기법과 메모리 처리 기법을 적용해 본다.
저자

마이클마골리스

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

목차

옮긴이머리말xi
이책에대하여xiii
혼동하기쉬운번역어대조표xxv
베타리더후기xxviii

1장출발선에서기1
1.0소개1
1.1통합개발환경(IDE)설치6
1.2아두이노보드구성11
1.3통합개발환경에서아두이노스케치를준비하기13
1.4Blink스케치를보드에올려실행해보기16
1.5스케치작성및저장18
1.6처음으로해볼만큼쉬운아두이노프로젝트21
1.7비표준보드용아두이노사용26
1.832비트아두이노(또는호환제품)사용29

2장아두이노프로그래밍33
2.0소개33
2.1전형적인아두이노스케치34
2.2간단한기본데이터형식(변수)사용36
2.3부동소수점수사용39
2.4배열(값의모음)활용42
2.5아두이노문자열함수사용46
2.6C방식문자열사용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.14int/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.82진값을프로세싱에서아두이노로송신하기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.115V초과전압측정(전압분배기)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.10RFID(NFC)태그판독256
6.11회전운동추적259
6.12인터럽트가많아서번잡한스케치에서회전운동을추적하기262
6.13마우스사용265
6.14GPS위치획득269
6.15자이로스코프기반회전감지275
6.16방향검출278
6.17가속도판독281

7장시각적출력284
7.0소개284
7.1LED연결과사용288
7.2LED의휘도조절291
7.3고전력LED구동293
7.4LED색상조정296
7.5다수의컬러LED제어299
7.6다중LED시퀀싱:막대그래프만들기302
7.7다중LED시퀀싱:추격시퀀스만들기307
7.8멀티플렉싱방식LED매트릭스제어309
7.9LED매트릭스에이미지를표시313
7.10LED매트릭스제어:찰리플렉싱316
7.117세그먼트LED디스플레이장치구동323
7.12자리가여러개인7세그먼트LED디스플레이구동:멀티플렉싱325
7.13핀을최소로사용해7세그먼트LED디스플레이장치에숫자여러개를표시하기328
7.14MAX72xx시프트레지스터를사용해LED어레이제어하기330
7.15PWM확장칩을사용해아날로그출력개수늘리기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.9H브리지기반브러시모터방향제어356
8.10H브리지기반브러시모터방향/속도제어360
8.11센서기반브러시모터방향/속도제어362
8.12바이폴라스테퍼모터구동368
8.13바이폴라스테퍼모터구동(이지드라이버보드사용)372
8.14ULN2003A드라이버칩기반유니폴라스테퍼모터구동376

9장오디오출력379
9.0소개379
9.1음연주382
9.2짧은선율연주385
9.32개동시적음생성387
9.4PWM을사용해간섭없이가청음을생성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.1millis를사용해지속시간알아내기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.3I2C집적회로다루기493
13.4I2C포트확장기를사용해입출력늘리기497
13.5여러아두이노보드간통신500
13.6넌처크가속도계사용505

14장간단한무선통신512
14.0소개512
14.1저가형무선모듈기반메시지송신512
14.2ZigBee/802.15.4네트워크와아두이노연결521
14.3특정XBee기반메시지송신528
14.4XBee간센서데이터송신531
14.5XBee에연결된액추에이터활성화537
14.6구형블루투스장치통신542
14.7저전력블루투스장치통신545

15장와이파이와이더넷549
15.0소개549
15.1이더넷네트워크연결552
15.2IP주소자동획득556
15.3간단한메시지송수신(UDP)558
15.4와이파이내장아두이노사용566
15.5저가형모듈기반와이파이연결570
15.6웹응답내용에서데이터추출575
15.7XML기반웹서버데이터요청580
15.8아두이노기반웹서버구성583
15.9웹요청처리589
15.10특정페이지로들어오는수신요청처리593
15.11HTML기반웹서버응답형식지정598
15.12폼기반웹데이터요청(POST)603
15.13데이터가많은웹페이지제공607
15.14트위터메시지송신614
15.15사물인터넷용데이터교환617
15.16MQTT브로커에데이터공개618
15.17MQTT브로커에서데이터구독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일정주기