2013-03-28 4 views
32

질문부터 시작하겠습니다.근접 감지를위한 Bluetooth LE RSSI iOS

BTLE RSSI는 두 장치의 근접성을 나타내는 좋은 방법입니까? fobs 등과 같은 작은 장치에서만 작동합니까?

시트 문제점 : 저는 현재 BTLE를 사용하여 근접에 따라 연결을 허용 할 응용 프로그램을 만드는에서 찾고

. 이와 관련하여 Advanced Core 블루투스 기조 연설에서 애플이 보여주는 데모 애플 리케이션과 매우 흡사합니다 (두 개의 장치가 거의 만져서 연결될 때).

내가 알고 있듯이, 근접성은 중앙에서 주변 장치를 발견 할 때 RSSI 값에 따라 결정됩니다. 그러나 두 iPad로 신호를 시도하면 신호가 너무 강해 보입니다. 너무 가까이에 정확한 찌르기가 너무 일치하지 않으므로 주변 장치와의 상관 관계가 너무 높습니다.

나는 Apple 샘플 코드를 사용해 보았는데, 정보가 서로간에 전달되기 위해 장치가 가까이 있지 않아도되는 것과 비슷합니다.

는 경우에만 사전에 어떤 도움 ....

감사를 주변 장치 광고의 신호 강도를 줄일 수있는 방법이 있었다.

답변

20

Matthew Griffin의 경험이 내 작품과 일치합니다. 그러나 우리가 공정한 시간 동안 측정 할 수있을 때 우리는이 점을 더 잘 보정하는 데 도움이되었습니다.

안테나 오리엔테이션과 IMU에 단순한 (칼만) 필터를 포장하여 거친 실황 해설을 얻어야했습니다. 이것은 CPU 나 배터리 잔량이 아닙니다.

  • IMU를 사용하면 여행 거리/방향을 알 수 있으며, 짧은 시간이 지나면 다른 '측면'이 고정되어 있다고 가정합니다. 이것은 '현재'방향에 대한 가치를 얻고 '현재의 환경 소음을 호출하는 데 많은 도움이됩니다.
  • 마찬가지로 - 회전/위치 변경에도 동일하게 적용하십시오.

우리는 일반적으로 장치의 방향이 바뀌면 방향을 얻는 데 더 좋은 방법이라는 것을 알았습니다. 그 거리는 '이동'보정 후 최대 30 ~ 600 초까지 그리고 장치가 너무 많이 회전하지 않은 경우에만 신뢰할 수 있습니다. 실제로 4-5 개의 '다른'장치가 필요합니다. 이상적으로는 너무 이동성이 없으므로 스스로를 동적으로 보정해야합니다.

그러나 그 반대는 매우 신뢰할 수 있습니다. 즉 측정하지 않을 때를 알고 있습니다. 그리고 그물 결과는 '키보드에서'와 '재배치'/ 특정 문/개방 또는 방향을 통해 멀리 이동하는 것과 같은 것을 상당히 잘 확인할 수 있다는 것입니다. 마찬가지로 룸을 무작위로 춤춰 현장을 측정합니다. 방향을 바꾸는 것은 고정 된 기간 후에 수신기 안테나 돌출부가 다소 잘 풀리면 잘 작동합니다.

+0

db를 미터로 변환 할 수있는 공식이 있습니까? – ilesh

10

나는 RSSI를 엄격하게 다루면서 위치 삼각 측량과 거리 변환을 위해 Wifi 및 Bluetooth LE 센서를 사용하려고 애썼다.

불행히도, 내가 발견 한 것은 RSSI가 너무 까다 롭고 일관성있게 거리를 결정하는 데 사용할 수 없다는 것입니다. 이론적으로, RSSI와 거리는 역 제곱 법 (거리의 두 배로, RSSI는 고정 된 수의 데시벨로 떨어집니다)에 따라 동작하지만, 실제로 RSSI는 날씨와 같은 통제 할 수없는 요소의 영향을받습니다 (건조한 날씨는 RF 필드가 더 잘 이동하는 경우) 장애물 (한 센서에서 다른 센서로가는 금속 물체 또는 사람이 감쇠를 일으키고 센서 중 하나에 밀접하게 위치한 금속 물체가 신호 강도를 증가시킵니다).

이를 보완하는 방법이 있습니다. This paper은 정확한 결과를 얻는 방법에 대해 읽은 가장 좋은 논문 중 하나입니다.하지만 장치가 어디에 있는지에 대한 일반적인 아이디어가 필요하지 않다면 결론은 신뢰할 수없는 방법입니다.

+0

기사 링크가 끊어졌습니다. – Raanan

2

잘 이해하면 WWDC 데모에서 볼 수있는 기능과 Bump과 같은 기능을 구현하는 것과 유사한 기능을 구현하려고합니다. 그 RSSI가 적절할 것입니다. 적절한 임계 값 (예 :> 30)을 테스트하면 문제가되지 않습니다.

+0

그렇게 간단하지 않습니다. RSSI 값은 매우 시끄럽고 필터링이 필요합니다. –

+0

@PhillApley 필자는 응용 프로그램에 크게 의존한다고 생각합니다. 두 장치가 매우 가깝고 어떤 오류가 허용되는지를 결정할 필요가있는 대부분의 경우 RSSI는 그대로입니다. – allprog

13

RSSI가 격렬하게 무작위로 점프하는 것은 전적으로 맞습니다. 2 초마다 RSSI 값을 가져와야합니다 (더 빠르면 오류가 발생합니다). 대략 -40 데시벨 스파이크가 넘는 RSSI 값을 버리고 사용자에게 대략적인 범위를 선언하기 전에 과거 값의 집합을 사용하십시오.

다음 진술에 대해서는 운이 좋았습니다.

는 경우에만 당신이 찾고있는 서비스가 TX Power Service라고

.... 주변 장치 광고의 신호 강도를 줄일 수있는 방법이 있었다. 주변 장치에이 서비스를 구현하면 장치의 전송 전력을 줄일 수 있습니다. 그렇게하면 광고 데이터를 볼 수있는 범위를 줄일 수 있습니다. 하지만 불행히도 iOS 기기에서이 서비스에 액세스 할 수는 없습니다. 그러나 BLE 주변 장치에 대한 자체 펌웨어를 작성하는 경우 원하는 서비스입니다.

관련 문제