관련글

블루투스 설정에 관한 글 http://eskelt.tistory.com/14

블루투스 활용에 관한 글 http://eskelt.tistory.com/16

블루투스 자동차 http://eskelt.tistory.com/22

에서 작성된 스마트폰 + 블루투스 + 아두이노자동차 배선도 이다

(모터, 모터드라이버,블루투스,아두이노를 연결)

모터의 출력을 높이기위해 모터 쪽으로 배터리를 따로 연결 하였다.

주의점은 아두이노의 GND와 추가 배터리의 GND를 연결해야 한다.



이전글중 블루투스 장치 설정과
초음파센서 활용 글을 참고 


초음파모듈로 거리를 측정하여 
블루투스르 통해 다른블루투스 장치로 data전송하자
여기서 다른 블루투스장치는 PC다.

통신 경로는
아두이노-블루투스(RN42) <---------->블루투스-PC-com포트를 통한 시리얼 통신프로그램으로 결과 확인
pc에서는 아두이노 블루투스 장치를 추가하여 
장치관리자에서 com포트 확인하여 시리얼통신 프로그램으로 확인한다.

소스 스케치
-------------------------------------------------------------------------------------
/* 블루투스 장치를 이용한 초음파측정값 전송*/

#include <SoftwareSerial.h>   //아두이노 우노에서 시리얼 통신은 기본으로 0번과 1번을 쓴다.
                                        // 이 포트를 중복해서 사용하지 않고 다른 포트를 사용하기 위해서는
                                        // 아두이노에서 제공하는 라이브러리 SoftwareSerial을 사용하면 된다.
SoftwareSerial BTserial(2,3);  // BTserial이라는 이름의 통신장치로 2(TX), 3(RX)포트로 시리얼 통신한는 설정
int sonicPin = 8;   // 초음파센서핀
long sonicval = 0;
long cm, inch;
void setup(){
  BTserial.begin(115200);   // 통신모듈의 baudrate값을 써 통신을 시작
}
void loop(){
  pinMode(sonicPin, OUTPUT);
  digitalWrite(sonicPin,LOW);
  delayMicroseconds(2);
  digitalWrite(sonicPin,HIGH);
  delayMicroseconds(5);
  digitalWrite(sonicPin,LOW);
  pinMode(sonicPin, INPUT);

  sonicval = pulseIn(sonicPin,HIGH);    // 초음파가 반사하여 되돌아온 시간을 저장

  cm = cmtomicro(sonicval);  // cm거리계산
  inch = inchtomicro(sonicval);  //inch거리계산
  BTserial.print(cm);
  BTserial.print("cm  ");
  BTserial.print(inch);
  BTserial.println("inch");  // 블루투스를 통해 다른 장치에 출력
  delay(1000);

}
long cmtomicro(long a){
  return a/29/2;
}
long inchtomicro(long b){
  return b/74/2;
}
 ------------------------------------------------------------------------------

작동영상

'아두이노_프로세싱 > 아두이노' 카테고리의 다른 글

아두이노 pro mini소개  (0) 2012.06.26
LCD모듈과 Serial LCD 사용  (1) 2012.06.26
초음파 센서 활용  (0) 2012.06.26
블루투스 모듈(RN-42) 설정  (2) 2012.06.26
soft potentiometer + RGBLED  (0) 2012.06.26

블루투스 모듈(RN-42) 설정


다른 블루투스 장비와 아두이노를 통신하기 위해서
아두이노에 블루투스 모듈을 연결 하면 된다

즉. "블루투스기능이 있는 pc <->블루투스모듈아두이노" 의 연결로
아두이노에서 수행한 데이터를 블루투스를 통해 pc로 보내거나
pc에서 입력한 값을 블루투스를 통해 아두이노에 보내 작동하도록 스케치할 수 있다.

이렇게 하기 위해서는 아두이노가 블루투스 통신할 수 있도록 블루투스 모듈을 구입 연결 해야한다.

따라서 이러한 기능을 가능하게 하기위해
이번에 사용한 블루투스 모듈은
 

아트로봇에서 구입한 모듈이다


일단 블루투스 모듈을 사용할 수 있도록 설정을 변동할 필요가 있는데 
블루투스 모듈마다 설정모드로 진입하는 방법 및 설정 명령은 다르므로 구입시 소개 페이지를 잘 살펴야한다.
(이 모듈 하나 설정 하겠다고 자료를 쳐다보면서 일주일 이상 시간을 보냈다)
 
(연결 핀번호가 "1234"와 기본baudrate가 115200이라는 것을 알고 있다면
아래 설정없이 아두이노에서 스케치하면 된다.) 
 
 
일단 모듈에 전원을 넣고
블루투스 기능이 있는 pc에서 블루투스 장치 추가하여
블루투스 모듈을 추가한다.
추가시 연결핀번호를 입력후 연결
연결 핀번호는 "1234"이다.(이모듈의 경우)
완료 하면 pc에서 블루투스 모듈이 장치로 추가되고
장치관리자에서 추가된 블루투스 모듈이 com포트를 몇번을 쓰는지 확인한다. 
(이모듈은 com6번으로 추가됨)
 
통신터밀널이나 시리얼 통신 프로그램 컴포트마스터(http://withrobot.com/ 에서 구함), 
또는 hercules_3-2-8 (http://www.hw-group.com/products/hercules/index_en.html)로 블루투스와 연결한다.
 
컴포트 마스터와 연결 그림

 
그림1번에서 블루투스 모듈 컴포트와 baudrate를 맞추고
(이 모듈은 baudrate는 기본으로 115200이다 위그림은 9600으로 바꾼 상태에서 다시 115200설정하는 화면이다)
 
그림2번에서 openport클릭하면 블루투스 모듈이 빨간불에서 녹색불로 바뀌어 연결됨을 표시한다.
 
그림3에서 command모드로 진입하기 위해서 $$$ 입력후 send 클릭하면
 
그림4번에서 CMD가 찍히며 command모드로 진입했음을 알린다.
(블루투스 모듈이 노색불이 켜져있는 상태어세 빨간불이 번적거린다.)
 
그림3번에서 "D" 입력
체크박스에 체크(CR/LF 체크- 개행 및 커서가 줄 맨처음으로 이동 ->즉 앤터의미)후 send클릭하면
현재 모듈의 상태를 보여준다 그림4번
***Settings***
BTA=000XXXXXXXX
BTName=RN42-XXX
Baudrt=115K
Parity=None
Mode  =Slav
Authen=0
Encryp=0
PinCod=1234
Bonded=0
Rem=NONE SET

baudrate를 115200으로 바꾸기 위해서 그림3에서
"SU,115K" 입력후 체크박스 체크후 send하면
AOK 라고 나타나면 옳게 설정된 것이다.

이후 command 모드를 나오려면
"---" 입력후 체크박스 체크후 send 클릭

이것으로 아두이노에서 블루투스모듈을 사용하기 위해
baudrate를 115200로 또는 9600으로 설정을 변경하는 방법이다.

(사실 115200으로 기본 그대로 설정 변경 없이 사용해도 된다.
아두이노 스케치에서 115200으로 스케치하면 사용가능하다.
그렇지만 이 모듈의 설정을 변경하고자 할때 설정 모드로 진입하는 방법을 설명하고자 작성한 글이다.)

==============================================================
=사용된 모듈 설정 명령=
$$$ -> command 모드 진입
--- -> command 모드를 빠져나옴
SU,9600(115K)   -> baudrate 설정
D -> 현재 상태 확인)
는 모두
이 모듈을 제어하는 명령으로
소개페이지 http://www.sparkfun.com/products/10269  를 참고 해야한다.
===============================================================

+ Recent posts