[아두이노] MDR Mini A Ver 2.0 레이다 센서 사용기

  


안녕하세요. 디바이스마트입니다. ^^



오늘은 레이더 센서를 통해 움직임, 속도 측정 포스팅을 한 번 해보겠습니다.

레이더 센서는 자동차/장비, 교통, 의료, 보안 등 폭넓은 분야로 쓰이고 있는데요!!



 




이번에 포스팅할 레이더 센서는 인지니어스(주)에서 개발한 MDR Mini A Ver 2.0 모듈입니다.

MDR이란 Motion Detection Radar란 뜻으로 움직임 감지, 속도 측정(Ver 2.0)이 주 분야인데요.



 




위 제품의 특징을 간단히 설명드리면



24GHz K-band RADAR

원보드 형식

안테나 및 DSP 모듈 포함

소형 사이즈/ 저가 비용

저전력 소비

GPIO, UART or I2C(옵션) 인터페이스

사용자 편리성을 고려한 출력

쉬운 사용법

PIR 센터 대체 가능


입니다!!!



아두이노와 연결해 사용할 수 있는데요.


 


준비물 : MDR Mini A Ver 2.0, 아두이노 우노, 점퍼선 5개



MDR Mini A Ver 2.0

아두이노 우노 

1번 핀(빨강)

5V

2번 핀(녹색)

GND 

 3번 핀(노랑) 

D7 

 8번 핀(파랑) 

D8 

9번 핀(흰색)

D9 


핀은 5개로 아두이노와 연결해주시면 됩니다.




MDR Mini A Ver 2.0 예제


 예제는 인지니어스(주)에서 제공하는 소스코드를 이용해 업로드 해보았습니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <SoftwareSerial.h>                       // 소프트웨어 시리얼 라이브러리 등록
 
/*------------------------ 아두이노 보드마다 소프트웨어 시리얼로 사용할 수 있는 핀 번호가 다르므로 주의 요망 ---------------------------*/
#define RX 8                                      // 소프트웨어 RX포트로 사용할 핀 번호 정의
#define TX 9                                      // 소프트웨어 TX포트로 사용할 핀 번호 정의
/*------------------------ 아두이노 보드마다 소프트웨어 시리얼로 사용할 수 있는 핀 번호가 다르므로 주의 요망 ---------------------------*/
 
SoftwareSerial Arduino_to_Radar_Serial(RX, TX);   // 소프트웨어 시리얼 객체명 선언(설정 보드의 RX 핀, 설정보드의 TX 핀)
 
int Radar_Signal_Read_Pin = 7;                    // Radar 모듈 신호선(3번핀)과 아두이노에 연결된 핀번호
 
// 변수
int val = 0;                                      // Read한 Radar 모듈 신호선의 값을 저장할 변수
 
/*------------------------ CLI_Command 종류 ---------------------------*/
// MotionDataEnable 0 : MDR이 측정하고 있는 MotionData를 주기적으로 출력
// MotionDataEnable 1 : MDR이 측정하고 있는 MotionData를 주기적으로 출력
// DetectLevel : 현재 설정되어 있는 DetectLevel 확인
// DetectLevel 11000 : DetectLevel [11000] 설정
// HoldTime : 현재 설정되어 있는 HoldTime 확인
// HoldTime 2000 : HoldTime [2000ms] 설정
/*------------------------ CLI_Command 종류 ---------------------------*/
 
void setup()
{
  // put your setup code here, to run once:
  pinMode(Radar_Signal_Read_Pin, INPUT); // 디지털 7번핀을 GPIO INPUT으로 설정
  pinMode(LED_BUILTIN, OUTPUT); // LED_BUILTIN는 아두이노 보드에 자체적으로 달린 LED이며, 이를 Signal Out핀으로 설정
 
  Serial.begin(9600); // Serial 객체는 PC와 Arduino와의 시리얼 통신을 담당하며, Baud Rate = 9600 설정
  Arduino_to_Radar_Serial.begin(9600); // Arduino_to_Radar_Serial 객체는 Arduino와 Radar 모듈과의 시리얼 통신을 담당하며, Baud Rate = 9600 설정
}
 
void loop()
{
  // put your main code here, to run repeatedly:
  val = digitalRead(Radar_Signal_Read_Pin);   // Radar로부터의 움직임 신호를 Read하여 val 변수에 저장
  digitalWrite(LED_BUILTIN, val);  // val 변수의 값에 따른 LED의 High, Low 상태 결정
 
  
  /*------------------------ 움직임이 있을 경우 수행하고 싶은 코드를 입력하세요 Start ---------------------------*/
  if(val > 0)
  {
    // 움직임이 있을 경우 수행하고 싶은 코드를 입력하세요.
    
  }
  /*------------------------ 움직임이 있을 경우 수행하고 싶은 코드를 입력하세요 End ---------------------------*/
 
  // 시리얼 모니터 -> 아두이노 -> Radar 모듈
  if(Serial.available())
  {
    // read the incoming byte:
    char Transmit_Char = Serial.read(); // 시리얼 모니터를 통해 전송할 데이터를 1바이트씩 읽고 Transmit_Char 변수에 저장
    Arduino_to_Radar_Serial.write(Transmit_Char); // Transmit_Char 변수에 저장된 1바이트 값을 Radar 모듈로 송신
    Serial.print(Transmit_Char); // 아두이노 사용자가 자신이 전송한 데이터를 알 수 있도록 Transmit_Char 변수에 저장된 1바이트 값을 시리얼 모니터에 표시
  }
 
  // Radar 모듈 -> 아두이노 -> 시리얼 모니터
  if(Arduino_to_Radar_Serial.available())
  {
    // read the incoming byte:
    char Receive_Char = Arduino_to_Radar_Serial.read(); // Radar 모듈이 보낸 데이터를 1바이트씩 읽고 Receive_Char 변수에 저장
    Serial.print(Receive_Char); // Radar 모듈이 보낸 데이터를 아두이노 사용자가 알 수 있도록 Receive_Char 변수에 저장된 1바이트 값을 시리얼 모니터에 표시
  }
}

cs


친절하게 한줄한줄 주석까지 달려져 있습니다!

아두이노의 시리얼 모니터로 동작하는걸 확인해 볼까요?


 


처음 실행하시면 아무 화면도 안뜨는데 이 때 당황하지 마시고 소스코드 15~22번째 줄을 읽어보시면 CLI Command 종류가 있습니다.


여기서 MotionDataEnable 1 을 작성하신 후 전송버튼을 누르면!!!




 MotionData가 계속 나오는 것을 확인하실 수 있습니다.


수신 데이터 숫자의 의미는

순서대로 Detect Value, 속도(km/h), 신호선으로 

첫 번째 데이터는 Detect Value로 움직임이 클수록 값도 따라서 커진다고 해요.

두 번째 데이터는 속도인데요, 방향도 감지한다고 합니다.

레이더로 접근하면 -, 레이더에서 멀어지면 + 값을 나타내며 단위는 (km/h)입니다.

3번째 숫자는 감지시 1, 미감지시 0의 값을 추출합니다.






지금까지 레이더 모듈을 간단하게 사용해보았습니다.

센서 기능을 잘 이용한다면 다양한 프로젝트에 사용될 수 있을 것으로 보입니다.


본 포스팅에 사용된 MDR Series 센서는 아래 링크에서 구매 가능합니다.


https://www.devicemart.co.kr/goods/brand?code=2148

 

감사합니다.



댓글 쓰기

0 댓글