8. 여러개의 센서 사용

MaxSonar 초음파 센서 여러개 사용하기

 

센서를 한개만 사용할 때는 free run mode로 동작시켜서 거리탐지를 수행할 수 있으며, 이 방법은 쉽고 잘 동작합니다.

본 게시물에서는 여러개의 초음파 센서를 동작시키는 방법을 설명하고 있으며 다음과 같은 내용을 포함하고 있습니다.

  • Free Run Operation
  • Simultaneous Operation
  • Commanded Sequential Reading
  • Constant Looping Operation

참고로 MCU의 입출력포트가 많지 않아서 여러개의 센서 출력을 연결하기 어려운 경우에는 I2CXL-MaxSonar-EZ제품군의 센서를 검토하십시오. 이 센서들은 I2C로 인터페이싱이 가능하여 두개의 wire로 여러개의 센서 제어가 가능합니다.

모든 센서를 Free run mode로 동작시키기 (추천하지 않음)

동시에 여러개의 센서를 free run mode로 동작시키는 것은 대부분 센서 동작에 문제가 생기게 됩니다. 만약 4번 핀(Rx PIN)을 연결하지 않은 상태로 놓아 모든 센서가 계속적으로 동작한다면, 센서가 동기화 되어 있지 않기 때문에 모든 센서는 동작을 하면서 서로서로 간섭을 일으키게 됩니다. 이러한 간섭은 아날로그 전압 출력에 노이즈 형태로 주기적으로 나타나게 됩니다. 추가적으로 디지털 출력 역시 잘못된 값을 주기적으로 출력할 수 있게 됩니다. 이러한 노이즈는 측정거리가 길수록 더욱 뚜렸하게 나타나며 측정데이터를 신뢰할 수 없게 됩니다.

이러한 현상이 나타나는 이유는 센서들이 동기화 되지 않아서 또는 같은 속도로 동작되지 않아서 나타납니다. 센서들은 서로서로 약간의 속도 차이가 있을 수 있습니다. 예를 들어 센서 1이 49.0mS로 동작하는 반면 센서2는 49.2mS로 동작할 수 있습니다. 센서가 동기화 되지 않는다면 한쪽 센서에서는 송신모드에 있을 때 다른 센서는 수신모드에 있게 됩니다. 이런 현상이 나타나기 때문에 센서는 자신이 송신한 음파의 반송파 대신 다른 센서의 것을 받을 수 있습니다. 센서가 동기화 될수록 더 안정적인 값을 얻을 수 있지만, 동기화가 되지 않으면 결과값을 신뢰할 수 없게 됩니다.

아래의 Figure 1은 센서 하나가 센서로부터 96인치 가량 떨어진 물체를 탐지하는 것을 보여줍니다. Figure 2, 3은 다른 센서가 같은 영역에서 free run mode상태로 동작하고 있는 것을 보여줍니다. 센서가 점점 비동기화 되므로 탐지결과값도 점점 더 불안정하게 됩니다.



Figure 1. Single Sensor operation
 

Figure 2


Figure 3

동시에 거리를 탐지할 수 있도록 MaxSonar 센서 제어하기(대부분의 경우에 동작가능)

사용하는 모든 MaxSonar의 RX라인을 같이 연결하고 마이크로컨트롤러의 핀중 하나에 연결합니다. (아래 그림 참조)


Figure 4

RX핀을 20uS동안 high로 만들면 모든 센서를 같이 동작시킬 수 있습니다. LV-MaxSonar 센서는 이러한 방법을 매 50ms마다 동작 시킬수 있습니다. XL-MaxSonar 센서는 100ms마다 동작시킬수 있습니다. 이러한 방법으로 센서를 동시에 동작시킬수 있습니다.

여러개의 센서를 동시에 동작시킬 때 MaxSonar 센서는 인접 센서를 무시합니다. 이러한 방법은 아날로그 전압(AN출력)을 이용할때 특히 편리합니다. 왜냐하면 AN출력값은 항상 읽을 수 있기 때문입니다.

위에서는 LV-MaxSonar-EZ센서를 예로 들었지만 모든 MaxSonar에서 적용가능한 방법입니다. 4번 핀(RX)이 MCU와 같은 트리거 장치에 연결되어 있는한 모든 센서는 동시에 탐지를 시작합니다.

순차 탐지(항상 동작하는 방법임)

연결된 센서를 순차적으로 동작하게 하려면 MCU와 같은 트리거 장치를 첫번째 센서의 4번 핀(RX)에 연결하고 첫번째 센서의 5번 핀(TX)을 두번째 센서의 RX핀에 연결합니다. 이러한 방식으로 연결하고 싶은 수많큼의 센서를 연결합니다. 아래의 그림은 센서가 어떻게 chaining되어 있는지를 보여줍니다.


Figure 5 LV-MaxSonar-EZ and XL-MaxSonar-EZ/AE Diagram



Figure 6 HRLV-MaxSonar-EZ diagram



Figure 7 MaxSonar-WR and MaxSonar-WRC diagram



Figure 8 HRXL-MaxSonar-WR and HRXL-MaxSonar-WRC diagram

위와 같이 연결한 후에 순차적으로 탐지를 시작하려면, 첫번째 센서를 트리거 합니다. 이런 방법은 각각의 센서가 이전 센서가 작동된 후에만 동작하게 함으로써 모든 센서를 순차적으로 동작 시킬 수 있습니다. LV-MaxSonar 센서는 매 50mS 마다 XL-MaxSonar센서는 매 100mS 마다 동작합니다. 이러한 순차탐지는 센서간 간섭없이 항상 동작합니다만 각각의 센서가 탐지를 반복하는 주기는 사용된 센서의 수만큼 늘어납니다.

위의 방법은 HR-MaxSonar 제품군만 제외하고 모든 MaxSonar제품에 적용이 가능합니다.

반복 순차 탐지

센서들이 돌아가면서 탐지를 계속하게 하여 아날로그 전압출력을 항상 얻고 싶다면 마지막 센서의 5번 핀을 첫번째 센서의 4번 핀에 연결하면 됩니다. 이때 1K 저항을 5번핀과 4번핀 사이에 위치 시켜야 합니다. 그림은 아래와 같습니다.


Figure 9
LV-MaxSonar-EZ and XL-MaxSonar-EZ/AE Constant Chaining Loop Diagram


Figure 10
HRLV-MaxSonar-EZ Constant Chaining Loop Diagram


Figure 11
XL-MaxSonar-WR and XL-MaxSonar-WRC Constant Chaining Loop Diagram


Figure 12
HRXL-MaxSonar-WR and HRXL-MaxSonar-WRC Constant Chaining Loop Diagram

이러한 chaining 방법으로 첫번째 센서의 4번 핀을 20uS동안 high로 만들면, 모든 센서들이 순차적으로 동작합니다. MCU가 4번 핀을 High상태로 만든후에 MCU는 핀을 다시 high impedance상태로 돌려놓아야 합니다. 그래야 마지막 센서가 TX신호를 출력하면 다시 첫번째 센서의 RX 핀을 트리거 할 수 있습니다.

 

Comments