자바스크립트로 시작하는 로보틱스 [아두이노와 Johnny-Five를 활용한]
- 원서명Learning JavaScript Robotics (ISBN 9781785883347)
- 지은이카산드라 퍼치(Kassandra Perch)
- 옮긴이박종건
- ISBN : 9788960779341
- 18,000원
- 2016년 11월 25일 펴냄 (절판)
- 페이퍼백 | 184쪽 | 188*235mm
- 시리즈 : acorn+PACKT
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(https://github.com/AcornPublishing/javascript-robotics)
요약
아두이노와 자바스크립트를 활용해 로보틱스 프로젝트를 시작한다. Node.JS와 IoT 라이브러리 중 각광받고 있는 조니 파이브(Johnny-Five)를 이용해 C 언어가 아닌 자바스크립트로 센서와 서보, 모터를 제어함으로써 나만의 움직이는 로봇을 제작해본다. 또한 복잡한 움직임을 제어하기 위한 애니메이션 API를 통해 좀 더 섬세한 동작을 가능하게 한다. 마지막으로 인터넷과 연결해 IoT 환경을 구축하고 더 나아갈 방향을 제시한다.
이 책에서 다루는 내용
■ 조니 파이브 REPL(Read-Eval-Print-Loop) 소개
■ 기본 출력 장치로 로봇 제작
■ 복잡한 출력 장치를 통한 프로젝트 생성 및 조니 파이브 API를 통한 I2C 같은 복잡한 인터페이스가 필요한 장치 사용 단순화
■ 서보와 모터 객체를 사용한 움직이는 로보틱스 프로젝트
■ 타이밍과 키 프레임을 사용해 복잡한 움직임을 프로그래밍할 수 있게 하는 애니메이션 API 소개
■ 조니 파이브 프로젝트에 USB 장치와 같은 다른 장치 적용
■ 외부 API에 조니 파이브 프로젝트 접속 및 자신만의 IoT 생성
이 책의 대상 독자
아두이노를 사용해본 적이 있거나 오픈소스 하드웨어를 새로 시작하고, 자바스크립트로 프로그램을 작성하고 싶은 독자에게 이 책이 적합하다. 자바스크립트와 Node.js에 대한 기본 지식을 갖췄다면 이 책을 효과적으로 학습하는 데 큰 도움이 될 것이다.
이 책의 구성
1장, ‘자바스크립트 로보틱스 시작’에서는 첫걸음으로 아두이노 우노(Arduino Uno)를 설정하고, NodeBot 세계를 살펴본다.
2장, ‘조니 파이브로 작업’에서는 REPL(Read-Eval-Print-loop)을 포함해 조니 파이브의 기초를 다룬다. 첫 프로젝트를 만들어본다.
3장, ‘디지털 출력 핀과 PWM 출력 핀 사용’에서는 기본적인 출력 장치인 디지털 출력 핀과 PWM 출력 핀의 사용 방법을 다룬다.
4장, ‘특수 출력 장치 사용’에서는 한 개 이상의 출력 핀을 이용해 장치를 제어하는 방법을 다룬다.
5장, ‘입력 장치와 센서 사용’에서는 아날로그 방식의 GPIO 핀을 이용해 입력장치를 이용하는 방법을 다룬다.
6장, ‘움직이는 로봇’에서는 조니 파이브로 서보와 모터를 제어해 13동작을 만드는 방법을 다룬다.
7장, ‘애니메이션 라이브러리를 활용한 움직임 개선’에서는 NodeBot의 움직임을 어떻게 개선해 구현할 수 있는지 살펴보고, 애니메이션 라이브러리를 알아본다.
8장, ‘고급 컴포넌트: SPI, I2C, 기타 장치’에서는 I2C, SPI와 고급 컴포넌트를 조니 파이브로 사용하는 방법을 다룬다.
9장, ‘세상과 NodeBot 연결, 앞으로 가야 할 길’에서는 아두이노와 다른 플랫폼에 조니 파이브를 이용해 NobeBot을 어떻게 인터넷에 연결할지 살펴본다.
본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
목차
목차
- 1장. 자바스크립트 로보틱스 시작
- 자바스크립트 로보틱스, NodeBots, 조니 파이브 이해
- NobeBot의 정의와 기타 기본 용어
- 조니 파이브와 NobeBot 혁명
- 이 책에서 사용하는 부품
- 개발 환경 설정
- Node.JS 설치
- 프로젝트 설정과 조니 파이브 설치
- 마이크로컨트롤러 연결과 Firmata 설치
- Hello, World!: 보드의 LED 깜빡이기
- 조니 파이브 스크립트 작성
- 스크립트 실행
- 요약
- 자바스크립트 로보틱스, NodeBots, 조니 파이브 이해
- 2장. 조니 파이브로 작업
- 2장에 필요한 준비물
- 조니 파이브 프로그램의 동작 원리
- 객체, 함수, 그리고 이벤트
- 깜빡이는 LED 스크립트 살펴보기
- 조니 파이브 이벤트의 이해
- 이벤트인 이유
- 외부 LED 연결
- 하드웨어 설정
- REPL 사용
- REPL에 이용 가능한 컴포넌트 만들기
- REPL 사용
- 요약
- 3장. 디지털 출력 핀과 PWM 출력 핀 사용
- 3장에서 필요한 준비물
- GPIO 핀의 동작 원리
- 디지털 출력 핀
- PWM 출력 핀
- 디지털 핀과 PWM 핀의 차이점
- 여러 LED를 가진 다중 핀
- 프로젝트를 위한 하드웨어 설정
- 프로젝트용 스크립트 작성
- 조니 파이브의 LED 객체 자세히 살펴보기
- PWM 핀에 피에조 장치 사용
- 하드웨어 설정
- 스크립트 작성
- 핀에서 무슨 일이 일어난 것인가?
- 피에조 API 살펴보기
- 요약
- 4장. 특수 출력 장치 사용
- 4장에서 필요한 준비물
- 다중 핀이 필요한 출력
- I2C
- 조니 파이브와 호환성 점검
- 연결 다이어그램과 기타 문서 구하기
- 프로젝트: 문자열 LCD 디스플레이
- 선 연결: I2C LCD
- 코드
- I2C 버전
- 비I2C 버전
- 코드 실행
- 요약
- 5장. 입력 장치와 센서 사용
- 5장에서 필요한 준비물
- 아날로그 입력 핀의 동작 원리
- 조니 파이브 센서 이벤트
- 기본 입력 사용: 버튼과 가변 저항기
- 버튼과 LED 연결
- Button-led.js 코딩
- 가변 저항기와 LED 연결
- 디머 스위치 코딩
- 센서 사용: 빛과 온도
- 조도 센서 연결
- 조도 센서 예제 코딩
- barcli
- 모두 통합한 코딩
- 온도 센서 연결
- 온도 센서 예제 코딩
- 요약
- 6장. 움직이는 로봇
- 6장에 필요한 준비물
- 서보와 모터의 차이점
- 모터와 서보의 정의
- 기억해야 할 점
- 모터의 종류
- 서보의 종류
- 서보나 모터를 사용해야 하는가?
- 서보와 모터 제어 장치
- 모터와 서보 쉴드
- 모터와 서보 사용 시 특별 고려 사항
- 전원 고려 사항
- 제약 사항과 전선
- 서보와 모터 연결
- 서보 연결
- 모터 연결
- 모터 프로젝트 생성과 REPL 사용
- 모터 API 살펴보기
- 서보와 센서를 활용한 프로젝트 생성
- REPL을 이용한 서보 API 살펴보기
- 요약
- 7장. 애니메이션 라이브러리를 활용한 움직임 개선
- 7장에서 필요한 준비물
- 애니메이션 API란?
- 애니메이션 API를 사용하는 이유
- 애니메이션인 이유
- 애니메이션 API 살펴보기
- 용어 학습
- .to()와 애니메이션 API의 차이점
- ServoArray 객체 사용
- 프로젝트: 세 개의 서보 연결과 배열 생성
- 서보 애니메이션 작성
- 키 프레임 작성
- 키 프레임 객체
- 키 프레임 속기법
- 키 프레임 작성 예제
- 세그먼트 작성
- 세그먼트 옵션
- 한 세그먼트의 다중서보
- 세그먼트 작성 예제
- 애니메이션 객체
- 프로젝트: 서보 배열 움직이기
- 키 프레임 작성
- 애니메이션 이벤트
- 정보 판독 LCD와 서보 배열로 만들기
- 요약
- 8장. 고급 컴포넌트: SPI, I2C, 기타 장치
- 8장에서 필요한 준비물
- I2C와 SPI 프로토콜이 필요한 이유
- SPI 장치 살펴보기
- SPI 동작 방법
- 조니 파이브에서 SPI의 사용 방법
- SPI의 이점과 단점
- SPI 장치를 사용해 구축하기: LED 매트릭스
- 구축
- API
- LED 매트릭스를 위한 데이터 서식
- 그리기 함수
- 코드
- I2C 장치 살펴보기
- I2C 동작 원리
- I2C에 사용되는 핀
- I2C 장치가 데이터를 보내고 받는 방법
- I2C의 이점과 단점
- 이점
- 단점
- I2C 장치로 구현하기: 가속도 센서
- 가속도 센서 연결
- 예제 코드 작성
- I2C 동작 원리
- 외부 장치
- 외부 장치인 이유
- node-serialport
- node-hid
- USB 게임패드 구축
- 하드웨어
- node-gamepad API
- 코드
- 외부 장치인 이유
- 요약
- 9장. 세상과 NodeBot 연결, 앞으로 가야 할 길
- 9장에서 필요한 준비물
- 웹에 NodeBot 연결
- 단지 Node Server일 뿐!
- Twilio 사용
- 날씨 봇 만들기
- 문자 봇 사용
- 조니 파이브와 마이크로컨트롤러의 세계
- 날씨 봇을 Particle Photon으로 이전
- 제약 사항과 조니 파이브
- 기타 자바스크립트 라이브러리와 플랫폼
- Espruino
- Tessel
- Cylon.js
- JerryScript
- 작은 리눅스 컴퓨터
- 제조사 라이브러리
- 앞으로 가야 할 길