이 책으로 아두이노의 무한한 가능성에 한 걸음 내디뎌 보세요. 이 책에서는 아두이노가 무엇인지 알아보고, 기울기 센서, 온도 센서, 가속도 센서, LED, LCD, DC 팬 등을 활용한 예제로 프로그래밍과 전자 회로 공작을 확실하게 배운다. 전자 부품과 아두이노 보드가 없어도 예제를 실습해 볼 수 있는 프로그램까지 소개한다. 이 책이 여러분의 첫걸음을 도와줄 거예요. 지금부터 아두이노로 무엇을 해 볼지 마음껏 상상해 보세요!
목차
지은이 머리말 옮긴이 머리말 이 책의 특징과 활용법
1부 준비 편
1장 아두이노는 무엇인가?
1 아두이노의 탄생과 배경 2 아두이노 ___2.1 아두이노와 통합 개발 환경을 알아보자 ___2.2 아두이노로 무엇을 할 수 있을까 ___2.3 아두이노 마이컴 보드의 종류 ___2.4 아두이노의 확장성 ___2.5 오픈 소스 하드웨어와 아두이노의 보급 ___2.6 새로운 제품 제작의 혁신 3 아두이노의 특징과 장점 4 아두이노의 기능 ___4.1 아두이노 마이컴 보드 ___4.2 아두이노의 인터페이스 5 아두이노 준비 ___5.1 준비해야 할 전자 부품 ___5.2 컴퓨터에 통합 개발 환경(IDE) 구축 ___5.3 무엇을 더 알아야 할까 6 통합 개발 환경 준비 ___6.1 통합 개발 환경 다운로드 ___6.2 통합 개발 환경 설치 ___6.3 통합 개발 환경의 메뉴 ___6.4 컴퓨터와 아두이노를 연결하기 위한 드라이버 설정과 확인 7 아두이노를 효율적으로 공부하자 ___7.1 아두이노를 시스템으로 놓고 이해하기 ___7.2 아두이노를 공부하는 두 단계 ___7.3 아두이노 사용 순서 ___7.4 공부 속도를 더 빠르게 하기 ___7.5 아두이노에 빠르게 능숙해지기
2장 아두이노를 작동해 보자
1 컴퓨터와 아두이노를 USB 케이블로 연결할 때 주의할 점 2 스케치 예제를 실행해 보자 ___2.1 스케치 작성하기(스케치 예제 불러오기) ___2.2 아두이노 실행하기(스케치를 컴파일하여 업로드하고 실행하기) ___2.3 한 단계 더! ① 예제 스케치를 이해해 보자 ___2.4 한 단계 더! ② 예제 스케치를 바꿔 보자 3 컴퓨터와 아두이노의 시리얼 통신(시리얼 모니터 표시) ___3.1 스케치 입력 ___3.2 시리얼 통신의 활용 4 브레드보드와 점퍼 와이어를 사용해 보자 ___4.1 브레드보드의 구조를 살펴보자 ___4.2 브레드보드를 사용하여 스케치를 실행해 보자 5 아날로그 입출력, 디지털 입출력, 시리얼 통신을 알아보자 ___5.1 아날로그 입출력 ___5.2 디지털 입출력 ___5.3 시리얼 통신
3장 프로그래밍 기초
1 시작하기 전에 알아둘 것 ___1.1 아두이노는 어떤 방식으로 움직이는가 ___1.2 프로그램 컴파일과 업로드 ___1.3 디버깅과 문제 해결 2 C언어 기초 문법을 배워 보자 ___2.1 공백 문자 사용 방법 ___2.2 주석 사용 방법 ___2.3 숫자 값을 정의하는 방법 ___2.4 데이터형 선언하는 방법 ___2.5 문자열과 문자 ___2.6 식별자와 키워드 ___2.7 계산식과 연산자 ___2.8 처리 구문과 처리 부분 ___2.9 함수 ___2.10 전처리기 3 변수를 사용해 보자 ___3.1 변수를 사용해 보자 ___3.2 계산식이나 제어문으로 변수를 바꿔 보자 ___3.3 전처리기로 변수 선언하기 ___3.4 const와 static 변수 ___3.5 변수의 범위와 메모리 크기 ___3.6 형 변환 ___3.7 전역 변수와 지역 변수의 사용 범위 4 제어문을 배워 보자 ___4.1 판단과 반복 작업 ___4.2 변화를 판단하자(if-else 제어문) ___4.3 변수나 값을 사용한 분기 정리(switch-case 제어문) ___4.4 변수를 사용해 반복해 보자(for 제어문) ___4.5 조건을 사용해 반복해 보자(while 제어문과 do-while 제어문) ___4.6 break 문 사용 ___4.7 프로그램 흐름을 생각해 보자(알고리즘) 5 함수를 사용해 보자 ___5.1 함수 ___5.2 void 형 매개변수와 반환 값 ___5.3 재귀 호출을 배워 보자 ___5.4 외부 함수를 사용해 보자 6 자주 사용하는 것들 ___6.1 배열 ___6.2 구조체 ___6.3 문자와 문자열 함수 ___6.4 시간 제어 함수 ___6.5 아두이노의 setup 함수, loop 함수와 표준 C언어의 main 함수의 관계 ___6.6 문제가 생겼을 때는 어떻게 할까
2부 기초 편
4장 입력 부품을 능숙하게 사용하자
1 아날로그와 디지털 입력을 배워 보자 ___1.1 아날로그 입력 함수 ___1.2 디지털 입력 함수 ___1.3 디지털 입력에 사용하는 풀업 저항 2 아날로그 입력(가변저항과 전압 측정)을 배워 보자 ___2.1 가변저항과 배선 ___2.2 가변저항을 사용하는 스케치 작성 ___2.3 건전지 전압 측정 ___2.4 변환식에 편리한 map 함수를 배워 보자 3 디지털 입력(택트 스위치와 기울기 센서)을 배워 보자 ___3.1 택트 스위치 사용 방법 ___3.2 택트 스위치를 아두이노와 연결하는 방법 ___3.3 택트 스위치를 사용하기 위한 스케치 작성 ___3.4 기울기 센서 사용 방법 ___3.5 기울기 센서를 아두이노와 연결하는 방법 ___3.6 기울기 센서를 사용하기 위한 스케치 작성 ___3.7 기울기 센서를 사용하여 전원 바꾸기
5장 출력 부품을 능숙하게 사용하자
1 아날로그와 디지털 출력을 배워 보자 ___1.1 아날로그 출력 함수 ___1.2 디지털 출력 함수 2 PWM을 사용한 아날로그 출력(LED와 압전 스피커 제어)을 배워 보자 ___2.1 PWM(펄스 폭 변조) ___2.2 PWM 제어를 사용하기 위한 LED와 저항 연결 방법 ___2.3 PWM 제어로 LED를 켜는 스케치 ___2.4 PWM 제어로 압전 스피커 사용하기 3 디지털 출력으로 LED 제어하기 ___3.1 디지털 출력을 사용하기 위한 LED 연결 방법 ___3.2 LED를 빠르게 깜빡이게 하기 ___3.3 LED의 밝기 ___3.4 LED의 밝기 변화시키기 4 디지털 출력으로 압전 스피커 제어하기 ___4.1 디지털 제어로 스피커에서 소리 나게 하기 ___4.2 디지털 제어로 스피커 음계 바꾸기 ___4.3 tone 함수를 사용하여 스피커 음계 바꾸기 5 아날로그 출력으로 모터 작동하기 ___5.1 소형 DC 팬을 작동해 보자 ___5.2 가변저항으로 팬을 제어해 보자
3부 ‘한 단계 더’ 편
6장 고급 입출력 부품을 사용해 보자
1 온도 센서(아날로그)를 사용해 보자 ___1.1 연결해 보자 ___1.2 스케치를 작성해 보자 ___1.3 작동해 보자 ___1.4 디지털 입력 포트를 전원과 GND로 사용하는 방법 ___1.5 중요한 점을 알아보자 2 광센서(아날로그)를 사용해 보자 ___2.1 연결해 보자 ___2.2 스케치를 작성해 보자 ___2.3 작동해 보자 ___2.4 바꿔 보자 ___2.5 중요한 점을 알아보자 3 가속도 센서(아날로그)를 사용해 보자 ___3.1 연결해 보자 ___3.2 스케치를 작성해 보자 ___3.3 작동해 보자 ___3.4 바꿔 보자 ___3.5 중요한 점을 알아보자 4 초음파 거리 센서(아날로그)를 사용해 보자 ___4.1 초음파 거리 센서란 ___4.2 초음파 거리 센서를 연결해 보자 ___4.3 스케치를 작성해 보자 ___4.4 작동해 보자 ___4.5 중요한 점을 알아보자 5 적외선 거리 센서(아날로그)를 사용해 보자 ___5.1 적외선 거리 센서의 구조 살펴보기 ___5.2 연결해 보자 ___5.3 스케치를 작성해 보자 ___5.4 작동해 보자 ___5.5 바꿔 보자 ___5.6 중요한 점을 알아보자 6 액정 디스플레이(LCD)를 사용해 보자 ___6.1 연결해 보자 ___6.2 스케치를 작성해 보자 ___6.3 작동해 보자 ___6.4 응용해 보자 ___6.5 중요한 점을 알아보자
7장 여러 가지 팁
1 타이머 기능 사용하기 ___1.1 타이머 기능이란 ___1.2 일정 시간 간격으로 센서 값 가져오기 ___1.3 타이머 기능 응용 2 탭으로 스케치 여러 개 사용하기 ___2.1 탭 화면 설정하기 ___2.2 탭 화면 편집하기 ___2.3 탭 화면을 사용하여 컴파일 및 저장 폴더 선택하기 3 비휘발성 메모리 EEPROM 사용하기 ___3.1 EEPROM 기능이란 ___3.2 EEPROM 사용 방법 ___3.3 EEPROM 사용 시 주의할 점 4 인터럽트 기능 사용하기 ___4.1 아두이노의 인터럽트 처리란 ___4.2 인터럽트 처리를 사용하는 스케치 예제 5 시리얼 통신 기능 사용하기 ___5.1 시리얼 통신에 사용하는 함수 ___5.2 아두이노 두 개로 시리얼 통신 해 보기 ___5.3 아두이노 두 개를 사용하는 스케치 ___5.4 컴퓨터 키보드로 아두이노에 데이터 보내기 6 알아두면 좋은 아두이노 정보 ___6.1 아두이노 레퍼런스 ___6.2 문제 해결 방법 ___6.3 새로운 센서나 전자 부품 사용하기 ___6.4 새로운 전자 부품 구매하기
8장 아두이노 없이 아두이노를 다뤄 보자
1 Autodesk 123D Circuits ___1.1 회원 가입하기 ___1.2 메뉴 살펴보기 2 Blink 예제로 123D Circuits 실습해 보기 ___2.1 아두이노 배치하고 코드 업로드하여 실행하기 ___2.2 다른 부품 배치하고 시뮬레이션해 보기 3 7 세그먼트 디스플레이 제어 ___3.1 7 세그먼트 디스플레이란 ___3.2 7 세그먼트 디스플레이 연결하기 ___3.3 7 세그먼트 디스플레이 제어 코드 작성하기 ___3.4 IC 칩을 사용한 7 세그먼트 디스플레이
부록
A 이 책에서 사용한 전자 부품 B 이 책에서 사용한 전자 부품용 스케치 정리 C 탭 실드 소개 D 아두이노 관련 사이트
공학 박사, 1급 건축사. 2010년 일본 총무성의 ‘고용 창출 ICT 연결 프로젝트’에서 모바일 교재를 개발했다. 그 후로는 아두이노를 사용한 3G 실드 개발과 보급 사업을 전개했다. 3G 실드는 휴대전화에 사용되는 SIM 카드를 내장한 보드로, 3G 실드를 사용하면 누구나 간단하게 통신 기술을 집어넣은 개발을 할 수 있다. 학생용 전자 공작 코어 기판 혹은 사물 인터넷 솔루션에 관련된 많은 시제품으로 주목받고 있다. 현재는 주식회사 타브레인의 대표 감독(http://tabrain.jp/), NPO 법인 3G 실드 얼라이언스의 대표이사(http://3gsa.org/)이고 다방면으로 활동 중이다.
ㆍ옮긴이
장진희
옮긴이 소개
역자 장진희는 우주의 신비를 풀고자 고려대학교 물리학과를 졸업하고 동 대학원에서 원자핵을 들여다보다 옆길로 새서 아두이노의 재미에 빠진 물리학도. 수개월간 신나게 즐기며 이 재미를 다른 사람들과 공유하기 위해 페이스북 그룹 ‘한국 아두이노 사용자 모임’을 운영 중이다.
독자의견 남기기