snap4arduino + arduino bluetooth
스크래치 (scratch) 나 s4a, scratchX, 엔트리, snap4arduino등은 아두이노의 기본 개발환경인 C언어를 다루지 않고도 아두이노를 프로그래밍 할 수 있도록 해주기 때문에 편리하지만 USB케이블이 언제나 연결되어있어야 하는 불편이 있다. 블루투스를 사용하면 이 케이블을 제거해 무선 통신을 통해 스크래치로 아두이노를 제어토록 할 수 있다. 스크래치, 엔트리, s4a 나 snap4arduino등 도 물론이고, firmata 프로토콜을 사용해 프로세싱(processingn)이나 다른 툴로 개발한 데스크탑 어플리케이션도 당연히 같은 방법으로 블루투스를 사용해 아두이노와 연결 가능하다.
준비물
아두이노 보드, HC-06 블루투스 모듈, 9V 배터리
step 1. 블루투스 설정
- 블루투스 모듈에 두가지 설정을 해주어야 하는데, 1. 통신속도를 standardfirmata 에서 사용하는 57600baud로 맞추는 것과 2.다른 블루투스 기기와 구분되도록 고유한 이름을 부여하는 것.
- 먼저 블루투스 모듈에 AT command 를 입력하기위해 회로 구성하고 아두이노 스케치를 실행한다. 이 스케치에서 아두이노는 단순히 컴퓨터와는 Serial로, 블루투스 모듈과는 SoftwareSerial 로 연결해 양쪽 통신을 중계하는 역할만 한다.
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(9,10); // RX | TX (블루투스 모듈의 tx|rx에 각각 연결
void setup()
{
Serial.begin(9600);
Serial.println("Enter AT commands:");
BTSerial.begin(9600); // 처음 hc-06의 기본값은 9600이지만 연결이 이루어지지 않으면 19200, 38400, 57600 ...등으로 바꾸어가며 시도한다.
}
void loop()
{
// Keep reading from HC-06 and send to Arduino Serial Monitor
if (BTSerial.available())
Serial.write(BTSerial.read());
// Keep reading from Arduino Serial Monitor and send to HC-06
if (Serial.available())
BTSerial.write(Serial.read());
}
섬네일|블루투스 모듈 ATcommand 입력용 아두이노 스케치 다운로드
- AT command가 잘작동하는지
AT
(대문자!!)를 입력해 확인한다.OK
라는 답이오면 OK. OK가 되돌아오지 않는 경우 가장 먼저 확인할 것은 현재 블루투스 모듈의 통신속도가 위 스케치상의 통신속도BTSerial.begin(9600);
과 다를 가능성이다. 이 때에는 9600대신 19200, 38400, 57600 ...등으로 바꾸어가며 스케치를 업로드 해 OK가 되돌아 오는 통신속도로 연결한다.
- 여러개의 블루투스 모듈을 사용하는 경우 혼란을 방지하기 위해 블루투스모듈의 이름을 고유하게 설정한다. HC-06모듈에서 이를 위해 사용하는 명령어는
AT+NAME이름
이다. - firmata 프로토콜은 기본으로 Baudrate 57600을 사용하므로 블루투스 모듈의 속도를 이와같이 설정한다. HC-06모듈에서 사용하는 명령어는
AT+BAUD7
(대문자) 이다. (참고로 9600으로 되돌릴 때에는AT+BAUD4
)
step 2. 아두이노에 standardFirmata 스케치 업로드
- 아두이노보드에 StandardFirmata 스케치를 업로드한다. 아두이노 메뉴바에서 File -> Examples -> Firmata -> StandardFirmata 를 선택해 업로드하면 된다.
step 3. 회로 연결
- USB 케이블을 제거하고 배터리를 사용해 아두이노에 전원 공급한다.
- 블루투스 모듈의 TX-> 아두이노 0번핀 (RX 라고 씌여있다.), 블루투스 모듈의 RX -> 아두이노 1번핀 (TX라고 씌여있다)에 연결한다.
note: 아두이노 스케치를 업로드할때는 반드시 아두이노 0,1번핀은 뽑아두도록 하자. 아두이노의 0,1번핀은 시리얼 통신을 위해 사용되며 USB와 연결되어있다.
step 4. 블루투스 페어링 (pairing)
- 운영체제의 블루투스 설정에서 새로운 블루투스장치를 검색한다.
- step1에서 설정한 블루투스 모듈 이름을 찾아 페어링 시킨다. 비밀번호는 보통 1234 혹은 0000 이다.
- 컴퓨터와 블루투스 모듈이 최초 연결 이후 재차 연결이 잘 되지 않을 때에는 페어링을 끊은 후 다시 처음부터 연결을 시도해본다.
step 5. snap4arduino 연결
- 블루투스와 연결된 포트가 2개 이상 표시될 때,
dev B
라고 표시된 포트를 선택한다.
dev B프로파일에 대한 설명 참고 - 윈도우즈 경우 dev B표시 없이 com4, com5 하는 식으로 둘 이상의 포트가 보이는 경우에는.
윈도우즈 메뉴바 -> 블루투스 -> 설정 열기 -> COM포트 에서
dev B
라고 표시된 포트를 선택한다.
- 연결에 성공했다는 메세지가 나오면 일반적인 USB케이블을 사용하는 것과 동일하게 snap4arduino를 사용하면 된다.