제 3 장 아두이노 무조건 따라하기 - 스마트 폰으로 제어하는 아두이노 -
학습개요 아두이노는 개발용 PC에서 스케치(sketch)를 사용하여 LED를 깜박이거나 스위치나 센서로부터 입력을 받아들여 다른 기기를 제어 하는 작업이 간단하다. 이 장에서는 프로그램 설명 등의 세부적인 설명은 뒤로 미루고 간단한 예제 2개를 따라하며 사용법을 익혀 보자.
3.1 LED 깜박이게 하기 1 아두이노 호환 보드들은 보드 위에 디지털 입출력 핀인 13번에 LED 연결 ① 개발용 PC와 아두이노 보드를 USB 케이블 연결한다
LED 깜박이게 하기 2 ② 스케치작성 개발용 PC에서 arduino.exe를 실행시켜 스케치 창을 열고 스케치를 작성 int digitalPin = 13; void setup() { pinMode(digitalPin, OUTPUT); } void loop() { digitalWrite(digitalPin, HIGH); delay(1000); digitalWrite(digitalPin, LOW);
LED 깜박이게 하기 3 ③ 저장 : 스케치 툴바에서 파일-저장을 선택
LED 깜박이게 하기 4 ④ 업로드 : 아두이노 보드에 스케치를 업로드 ⑤ 실행결과 : 아두이노 보드의 칩 LED on/off 확인
3.2 스마트 폰으로 아두이노 제어하기 아두이노 보드에 블루투스 쉴드 모듈을 연결하고 안드로이드 스마트 폰과 블루투스 통신을 통하여 아두이노 보드를 제어하여 보자. 안드로이드 폰의 이용하여 아두이노 보드에 연결된 LED를 ON/OFF. 아두이노 보드가 블루투스 통신을 통하여 안드로이드 폰으로부터 ON/OFF 명령을 받아 LED제어
(1) 아두이노 보드에 블루투스 쉴드 설치 아두이노 보드에 블루투스 쉴드를 장착하고, 아두이노 보드에 블루투스 통신이 가능하도록 설정 프로그램을 개발용 PC를 통하여 설치
(2) 안드로이드 스마트 폰에 App 설치 안드로이드 폰에 제공된 다음과 같은 ON/OFF 스위치로 사용할 수 있는 엡(App.)을 설치 “BT_ONOFFSW.apk”설치 블루투스 기능을 활성화 시킨 후 App. 실행 ON/OFF앱은 구글 앱인벤터로 제작하여 사용함. 엡 제작 방법 “부록B. 스마트폰과 연동, App 만들기”수록 "www.bookdoo.co.kr"이나 "www.hanabck.co.kr"을 통하여 "BT_ONOFFSW.apk"을 다운 가능
(3) 아두이노 스케치 작성 개발용 PC에서 아두이노 개발환경으로 스케치 작성 byte phoneData; void setup() { Serial.begin(9600); pinMode(13, OUTPUT); } void loop() { if (Serial.available()> 0) { phoneData = Serial.read(); if(phoneData ==1) { digitalWrite(13,HIGH); if(phoneData ==2) { digitalWrite(13,LOW);
(4) 업로드와 블루투스 쉴드 결합 아두이노 보드에 블루투스 쉴드를 장작하지 않은 상태에서 USB 케이블을 통하여 업로드 블루투스 쉴드를 적층형으로 연결 블루투스 쉴드가 결합된 아두이노 보드에 전원을 공급
(5) 실행 ⓐ 스마트 폰의 블루투스 기능 ON ⓑ 스마트폰의 화면에서‘블루투스 찾기’터치 ⓒ 검색된 아두이노 블루투스를 선택하여 등록(페어링) ⓓ 스마트폰에서 "Switch ON"과 "Switch OFF"를 터치 ⓔ 아두이노 보드의 LED ON/OFF 확인
3.3 아두이노 프로그램의 기본 구조 아두이노 프로젝트에서는 아두이노 보드와 지원 하드웨어를 통합하는 작업이 큰 비중 차지 프로젝트의 나머지 부분에서는 어떤 작업을 수행하려고 하는지를 보드에게 인식 필요 아두이노에서 일반적으로 프로그램을 스케치라고 함. 초기에 주로 아티스트와 디자이너가 사용했기 때문에 아이디어를 빠르고 쉽게 실현할 수 있는 방법이라는 의미로 스케치라는 용어가 사용 스케치(sketch)와 프로그램(program)이라는 용어는 같은 의미로 사용
아두이노 프로그램의 구성 아두이노는 스케치라는 프로그램에 코드를 작성 아두이노의 가장 기본 구조 명령구문(structure), 변수(variables)와 상수(constant), 함수(function) 아두이노는 C/C++ 기반으로 만들어진 언어 내장된 컴파일러는 개조된 WinAVR 공개버전 아두이노의 명령은 표준 C++과 문법의 동일 입출력 전용명령만 조금 다름
아두이노의 구문(Structure) 아두이노 스케치(프로그램)는 초기화 구문인 setup()구문과 실제 구동 구문인 loop()구문으로 구성
아두이노 예제 "blink.ino"의 스케치
“void” loop()에서 함수를 호출할 때, 자동적으로 함수 내부에서 반환 되는 변수가 없음을 말하며, ()안에 변수가 없음은 입력되는 변수들이 없다는 것 보통 void 함수()으로 선언된 함수는, 함수에서 처리할 변수는 모두 지역변수이거나, 외부로 나가거나 외부에서 들어오는 변수는 모두 광역변수(global variable)를 사용한다는 것 의미 브라켓 “{ }” 명령구문을 확장시키는 역할 브라켓이 없으면 1줄로 명령구문이 끝나며, 브라켓을 사용하면 "{ }"안에 여러 줄의 명령구문을 하나의 함수나 분기 명령후의 처리구문을 작성 가능