책소개
이 책은 최근의 사물인터넷(IoT) 오픈소스 하드웨어 바람에 스크래치, 앱인벤터와 자주 입에 오르내리는 아두이노에 관한 책이다. 아두이노는 마이크로프로세서 보드 기초 실습이 가능한 오픈소스 피지컬 컴퓨팅 환경이다. 이 아두이노에 처음 입문하여 자유롭게 프로그래밍하고 응용할 수 있는 실력을 키우고자 하는 학생들을 위한 아두이노 개념 원리 및 활용서이다.
특히 이 책은 아두이노에 대한 기초 이론 뿐 아니라 논리회로에 대한 기본 개념 등 원리에 충실한 설명을 바탕으로 매 장이 철저하게 실습 위주로 충분한 아두이노 활용이 가능하도록 도와준다. 매 장마다 준비물-회로도-사진 보고 따라하기-스케치 코드-구현 결과 방식으로 구성된 실습 위주로 구성되어 아두이노를 처음 해보는 대학생이나 일반인 누구나 실행이 가능하다. 실습도 전반적으로 초급-중급-고급(활용) 식의 3단계 구성이며, 보고(LCD), 듣고(부저, 스피커), 체험하고(센서, 모터), 통신하고(시리얼, I2C, 블루투스) 연동하는(스마트폰과 무선자동차) 다양한 예제를 포함하고 있다. 또한 스케치코드로 C++과 프로세싱 코드, 스크래치 등 다양한 예제가 수록되어 프로그래밍 실력도 함께 향상된다.
아두이노를 한 학기에 마스터할 수 있는 15장 구성으로 대학생뿐 아니라 누구나 기초부터 응용까지 실력 향상이 가능하다. 컴퓨터공학과나 소프트웨어공학과, 전자공학과, 기계공학과의 논리회로 설계와 마이크로프로세서 실습 또는 기초 시스템 설계 등의 과목에 대학 교재로 채택할 경우 강의용 PPT도 제공하며, 이 책에 활용된 소스와 실행예제 동영상은 성안당 홈페이지 자료실-[자료실] 탭을 선택하여 다운로드 할 수 있다. 부록으로는 1) 아두이노 보드와 쉴드 설명 2) 회로를 쉽게 그릴 수 있는 프릿징 회로도 3) 아두이노 참고 사이트 4) 연습문제와 정답 해설 5) 라이브러리 추가하는 법 등을 제공한다.
목차
저자 인사말(Preface) 3
Part 1. 아두이노 기초
Chapter 1. 오픈소스 하드웨어 플랫폼, 아두이노 8
누구나 쉽게 친할 수 있는 아두이노 / 아두이노의 개발 환경
물리적 하드웨어 환경 / 지원 소프트웨어 / 아두이노의 커뮤니티 환경
Chapter 2. LED와 스위치 다루기 32
LED와 LED 구동 회로의 이해 / 아두이노 보드 내의 LED 다루기
(디지털 Output) / 브레드보드에 LED 회로 꾸미고 다루기
스위치와 풀업, 풀다운 저항 / 스위치를 눌러 LED 켜기
스위치를 눌러 LED 토글하기
Chapter 3. 아두이노와 PC의 직렬 통신하기 55
직렬 통신 개요 / 아두이노 보드와 PC와의 직렬 통신 / 직렬 통신으로
LED 켜고 끄기 / 직렬 통신으로 아두이노 보드에서의 스위치 입력 받기
Part 2. 아두이노의 다양한 활용
Chapter 4. 다양한 센서 사용하기 72
직렬 통신으로 아두이노 보드에서의 스위치 입력 받기
포텐셔미터를 사용한 ADC / CdS를 이용한 광량 측정기
초음파 센서로 거리 알기(Pulse in) / PSD 센서를 이용한 거리 측정
Chapter 5. 아날로그 신호를 디지털로 바꿔주는 ADC 94
DAC 개요 / 부저를 이용한 소리내기 / 피에조 스피커를 이용한 멜로디 연주
LED 밝기 조절
Chapter 6. 모터 다루기 114
모터의 개요와 종류 / 가변 저항을 이용한 DC 모터 속도 조절
RC 서보 모터 다루기 / 스텝 모터 다루기
Chapter 7. 텍스트 LCD 다루기 131
LCD 개요 / LCD를 이용한 정보 표현하기
Chapter 8. 논리 회로 다루기 142
부울 대수 / 논리 게이트 / 쉬프트 레지스터 74HC595
아두이노와 논리 게이트를 이용한 LED 제어
Chapter 9. 리모컨 다루기 149
적외선 통신 개요 / 리모컨을 이용한 신호 보내기
Chapter 10. EEPROM 다루기 154
메모리 / EPROM과 EEPROM / EEPROM 읽어오기 / EEPROM에 쓰기
EEPROM 초기화
Part 3. 확장된 아두이노 다루기
Chapter 11. 다양한 통신의 활용 164
시리얼 통신 이외의 통신 / 눈차크 다루기
I2C 통신을 이용하여 가속도 센서 값 얻기
Chapter 12. 무선 통신 다루기 181
무선 통신 / 블루투스 모듈을 활용한 블루투스 통신
근거리 무선 통신 방법, 엑스비(XBee) 통신
Chapter 13. 프로세싱과 아두이노의 연동 192
프로세싱 / 포텐셔미터를 이용한 그래프 그리기
Chapter 14. 매트랩과 아두이노의 연동 203
공학용 소프트웨어, 매트랩 / 매트랩과 아두이노의 연동 준비
매트랩과 아두이노의 연동을 통한 RC 서보 모터 제어
색이 변하는 LED 시스템 / PID 모터 제어를 통한 자세 안정
Chapter 15. 안드로이드 스마트폰과 아두이노의 연동 225
MIT 앱 인벤터 / 블루투스를 연동한 LED 켜고 끄기
스마트폰과 블루투스 연동 자동차 만들기
[부록] ? 아두이노 보드의 종류와 특징 258
? Fritzing(프릿징) 사용법266
? 아두이노 참조 사이트 270
? 연습문제 & 정답 해설 271
? 라이브러리 추가하는 방법 295Part
저자
정길도
출판사리뷰
“아두이노?”라는 물음표로 시작하여 느낌표로 답하는 책
‘아두이노(arduino)’는 ‘친한 친구’라는 이탈리아어라는 설명이 이 책 서두에 등장한다. 많은 신문 지상이나 전문지에서 아두이노를 말하지만 쉽게 아두이노란 무엇인지 설명할 수 있는 이는 많지 않다. 처음 접했을 때 인터넷 검색의 힘을 빌어야 한다. 검색을 하고 나도 개념이 뭔가 명확하게 떠오르지는 않을 것이다.
아두이노는 소프트웨어에서나 들어본 ‘오픈소스’ 개념을 마이크로컨트롤러 보드 개념에서도 도입한 하드웨어 개발환경이다. 누구나 개발할 수 있도록 열린 컴퓨팅 환경이지만 그 문턱을 넘기가 쉽지 않다. 누구나 구입할 수 있고 조립할 수 있고 미리 조립된 보드를 구입해 창작물을 개발할 수 있는 아두이노는 특히 창의력이 원천인 대학생뿐 아니라 예술가, 취미로 하는 일반인들에게는 도전할 만한 영감을 주고, 실제 많은 분야에서 연구와 실험의 대상이 되고 있고, 벤처 창업의 대상이 되기도 한다. 그런 아두이노를 어떻게 접근할 것인가? 이 책은 그런 아두이노의 문턱을 넘도록 해주는 입문서이자 종합 활용서이다.
이 책은 ‘아두이노’라는 개념이 생소했을 수년 전부터 장영원 박사가 첫 기획한 뒤 전북대 정길도 교수님 지도 하에 박사과정 연구원들의 노력으로 2년 만에야 결실을 맺은 아두이노 입문 활용서이다. 특히 이 책의 메인 저자인 ETRI의 류지형 연구원은 이 책을 집필하면서 박사 학위를 받았다. 이 책을 위해 저자진들은 매 장마다 일일이 준비물을 구해 실험을 거쳐 실행을 확인했으며, 실행 과정은 회로도로 그리고 사진 촬영으로 보고 따라할 수 있도록 새로 제작했다. 모든 소스와 일부 실행 결과 동영상은 성안당 홈페이지에서 제공할 정도로 대충 넘어간 부분이 없다.
특히 프로그래밍과 아두이노와의 연동 부분은 ‘13장 프로세싱과 아두이노의 연동’을 통해 설명했으며, ‘15장의 안드로이드 스마트폰과 아두이노와 연동’ 부분은 요즘 추세에 맞게 앱인벤터와 스크래치를 활용하여 따라할 수 있도록 새로 기획되었다.
아두이노를 실행할 수 있는 회로도는 ‘프릿징’이라는 소프트웨어를 사용할 수 있도록 부록에서도 다루었고, 아두이노에서 기본으로 제공하는 라이브러리 사용법도 부록 5) 에서 별도로 설명을 추가했다.
이 책에서 다루는 아두이노는 리얼(real)하다. 저자진들의 노력과 전북대 정길도 교수님과 군산대 이덕진 교수님의 집필과 내용 감수 등 각고의 노력 끝에 완성된 이 책이 아두이노에 대한 살아있는 교과서가 될 것으로 확신한다.