이미 소장하고 있다면 판매해 보세요.
|
옮긴이 머리말 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 |
Michael Margolis
Brian Jepson
Nicholas Robert Weldin
박진수의 다른 상품
|
이 책의 이번 판(즉, 제3판)에서는 아두이노 1.8.x에 맞춰 내용을 보강하고 검증했다. 이번 3판용으로 내려받을 수 있는 코드를 개정해 두 개의 저장소에 올려 두었다. 그중 한 곳에는 아두이노 스케치(https://github.com/bjepson/Arduino-Cookbook-3ed-INO)를 모두 올려 두었고, 다른 한 곳에서는 프로세싱 스케치를 모두 올려 두었다(https://github.com/bjepson/Arduino-Cookbook-3ed-PDE).
--- p.xix 크기가 4인 배열의 마지막 원소를 가리킬 때 array[3]처럼 표현하는 것이 이상해 보일 수 있겠지만, 첫 번째 원소를 array[0]으로 표현하고, 두 번째 원소를 array[1]로 표현하기로 약속했기 때문에 생기는 현상이다. 그러므로 우리가 예로 드는 배열의 네 개의 원소들을 각기 inputPins[0], inputPins[1], inputPins[2], inputPins[3]으로 나타낼 수 있다. --- p.45 parseInt와 parseFloat 메서드는 Serial로부터 수치를 추출하는 일을 단순화해 주는데, 이것을 사용해 두 자리 이상인 수number들을 수신할 수 있다. (또한 Ethernet 클래스와 Stream 클래스에서 파생된 그 밖의 객체들과도 더불어 작동하며, 네트워킹 객체들을 사용한 스트림 파싱에 관해 더 알고 싶다면 15장의 ‘소개’ 부분을 참고하자.) --- p.136 우노, 레오나르도, 메가 보드에 달린 아두이노 핀에서는 최대 40㎃에 해당하는 전류를 공급할 수 있다. 이는 일반적인 중간 광도 LED에는 충분하지만 단일 핀에 연결된 고휘도 LED나 다중 LED를 구동하기에는 충분하지 않다. 레시피 7.3은 트랜지스터를 사용해 LED를 통과하는 전류를 늘리는 방법을 보여 준다. --- p.287 스케치는 배열로부터 부호를 가져와 전달하고, 부호 뒤에 따라오는 수는 해당 수가 얼마나 많은 비트로 이뤄져 있는지를 함수에 알려준다. 스케치 상단의 irKeyCodes 정의 부분에 나오는 숫자 시작 부분의 0x는 부호가 16진수로 작성되었다는 점을 의미한다(16진수에 관해 더 알고 싶다면 2장을 참고하자). 16진수를 이루는 각 문자는 4비트 값을 나타낸다. 여기서 부호가 여덟 글자로 이뤄져 있으므로 그 총 길이는 32비트가 된다. --- p.412 이제 XBee 모듈을 구성했으므로 XBee들 중 하나를 선택하고 연결된 직렬 터미널을 닫고 컴퓨터에서 분리하자. 다음으로 이 레시피 해법에 표시된 코드로 아두이노를 프로그래밍하고 그림 14-2에 표시한 대로 XBee를 아두이노에 연결하자. 다른 XBee에 연결된 XCTU 콘솔에 문자를 입력하면 다시 문자가 표시된다(a를 입력하면 aa가 표시됨). 아두이노가 문자를 수신하면 내장형 LED가 깜박인다. --- p.527 |
|
200개 이상의 다양한 레시피가 가득한 아두이노 백과사전!
현실 세계와 상호작용하는 장치를 만들고 싶은가? 아두이노 마이크로컨트롤러와 프로그램 개발 환경을 실험해 보고자 하는 사람들에게 적합한 이 책에는 IoT 솔루션, 환경 모니터링, 위치 인식, 접촉/소리/열/빛에 대응할 수 있는 제품 개발처럼 다양한 제품이나 시제품을 제작하는 데 필요한 200개 이상의 요령과 기법이 담겨 있다. 아두이노 1.8 릴리스에 맞춰 새롭게 보강한 이 책(제3판)의 레시피에는 엔지니어, 디자이너, 예술가, 학생, 취미 개발자가 프로젝트를 시작하고, 확장하고, 보강하는 데 도움이 될 만한 실용 예제와 지침이 다양하게 실려 있다. · 아두이노 보드와 필수 소프트웨어 개념을 빠르게 익힐 수 있다. · 디지털 신호와 아날로그 신호를 읽어 내는 데 필요한 기본 기술을 배울 수 있다. · 다양한 입력 장치와 센서를 아두이노에 달아 사용해 본다. · 디스플레이 장치를 구동하고, 소리를 합성하고, 다양한 모터를 제어해 본다. · 텔레비전을 비롯한 다양한 가전 제품을 원격으로 제어해 본다. · 시간 지연이나 시간 측정을 처리하는 기술을 배운다. · 고급 코딩 기법과 메모리 처리 기법을 적용해 본다. |