지연을 최소화하기위한 무선 기술 선택


10

심판이 신호를 내고 여러 플레이어가 버튼을 누르는 펍 퀴즈 프로젝트를 작성하고 있습니다. 첫 번째로 푸시하면 답을 줄 권리가 있습니다.

모든 버튼 (레퍼리 + X 플레이어)을 무선으로 사용하고 싶습니다. 최고의 퀴즈 플레이어는 신호의 10ms 이내에 버튼을 클릭 할 수 있기 때문에 다른 버튼 사이에 핑에 차이가 거의없는 것이 매우 중요합니다. "내 버튼이 게으르다!"라고 외치는 플레이어는 없습니다. 반면에, 필요 이상으로 비싸고 복잡한 기술을 사용하고 싶지 않습니다.

그렇다면 최적의 무선 기술은 무엇입니까? 비슷한 프로젝트 (또는 이론적 지식 :)에서 경험을 공유하십시오. 지금까지 내가 연구 한 내용은 다음과 같습니다 (잘못된 경우 수정하십시오).

  1. Bluetooth 4 LE (RFduino에서와 같이) 장점 : 3-6ms 지연 (광고), 저에너지 단점 : 비용, 장치에 대한 7 개 이하의 버튼

  2. Wi-Fi Pro : 2ms의 대기 시간 (Wi-Fi 라우터를 핑한 것만으로), 필요한 경우 수십 개의 버튼 단점 : 비용, 전력 부족

  3. RF 데이터 트랜시버 전문가 : dunno, 비용은 조금 더 작은 것 같습니다 단점 : 같은 주파수의 여러 버튼으로 인해 많은 노이즈가 발생합니다

  4. 가장 간단한 "Radio remote"장점 : 모든 전자 기계식이기 때문에 지연이없고 데이터가 없음 단점 : 동일한 주파수의 여러 버튼이 작동하지 않음

그래서, 내가 무엇을 그리워 했습니까? 안내해 주셔서 감사합니다.


총 몇 개의 버튼이 있습니까?
bigjosh

1
가능한 가장 작은 요구 사항은 4이고 일반적인 경우는 8이며 더 많은 것을 환영합니다. 군중 군중 엔터테인먼트에 매우 유연하게 적용하고 싶습니다.
Sergey Snegirev

인간 반응 시간은 200ms 이상입니다. 참조 humanbenchmark.com/tests/reactiontime/statistics를 ,

@ user31481 그래서 무엇? 인간은 2ms 미만의 대기 시간을 인식 할 수 있습니다. 부록의 링크 참조 : danluu.com/input-lag
Navin

답변:


6

나는 NRF24L01+전에 Arduino와 함께 칩셋 2.4GHz 무선 모듈을 사용했으며 훌륭하고 저렴하다는 것을 알았습니다 (이베이에서 10 개 ~ 10 달러). 250kbps, 1Mbps 및 2Mbps의 3 가지 전송 모드가 있습니다. 비트 전송률이 높을수록 범위가 줄어들지 만 메시지를 보내는 데 걸리는 시간도 줄어 듭니다. 여러 Arduino 라이브러리 (예 : RF24, Mirf, RadioHead)와 모듈 사용에 대한 자습서가 있습니다 ( http://playground.arduino.cc/InterfacingWithHardware/Nrf24L01 참조 ). 또한 사용하거나 사용하지 않을 수있는 내장 메시 네트워킹 모드가 있습니다.

RP-SMA 안테나 커넥터 및 최대 1000m의 광고 범위를 가진 버전도 각각 약 $ 5에 구입할 수 있습니다. 최소한 필요한 범위에 따라 심판의 버튼에이 중 하나를 사용하는 것이 좋습니다.

hallard.me의 Charles Hallard에 따르면 , 증폭되지 않은 칩은 250kbps 모드에서 30m 가시 거리 범위를 얻을 수 있으며 내 테스트에서이를 확인했습니다.

diychristmas.org에 산발적 사용자에 따르면 , 250kbps의 모드에서 32- 바이트 페이로드를 송신하는 1432μs 얻어 수신기의 전체 메시지의 수신을 상기 송신기에 송신 모드에서 시작한다. 이것은 1Mbps 모드 에서 444µs로, 2Mbps 모드 에서 283µs로 감소 합니다 .

이러한 통계를 고려하면 트리거링을 위해 2ms의 대기 시간 내에 해당 애플리케이션에 적합하며 전력을 거의 사용하지 않습니다. 대기 시간, 범위 및 비용의 최상의 균형을 유지하는 것은 귀하의 책임입니다.


감사합니다! 여러 개의 버튼을 동시에 누르면 어떻게됩니까? 그들이 충돌하고 서로를 차단할 것인가?
Sergey Snegirev

아니요,이 칩의 네트워킹은 가격이 매우 정교하며 메시 네트워크와 여러 Rx 파이프를 한 번에 즐겁게 협상 할 수 있으며 수신자가 메시지 수신을 승인하지 않으면 자동으로 다시 보낼 수 있습니다.
cortices

1
이 EE.SE 질문 은 상황에서와 같이 여러 노드가 동일한 수신 주소로 전송하는 방법을 자세히 설명합니다. 그런 다음 발신자 주소를 사용하여 누가 '승리'를 결정 하는가하는 것입니다.
cortices


1
안테나가 달린 NRF24L01 + 칩은 독창적이지 않으므로 클론과 원본 사이의 통신을 시도 할 때와 동적 페이로드 또는 충격 버스트를 사용하려고 할 때 문제가 발생할 수 있습니다. 또한 해당 위키 스페이스 기사는 오래되었습니다. 대신 TMRh20 라이브러리를 사용해야합니다.
Avamander

3

실시간 시계 사용을 고려 했습니까? 미리 동기화하여 무선 프로토콜을 사용할 수 있습니다. 버튼을 누르면 가장 빠른 타임 스탬프를보고하는 장치를 찾은 다음 몇 초의 창이 지나면 이겼 음을 알 수 있습니다. ESP8266, RTC와 함께 WIFI (802.11)를 사용하고 무선 액세스 포인트를 사용하는 것이 좋습니다.

이것은 저 지연 무선에 대한 답은 아니지만 필요하지 않습니다.


2
좋은 생각이지만 RTC가 필요하지 않습니다. 시작할 때 Arduino를 동기화 할 수 있으므로 millis() - offset관련된 모든 Arduino에 대해 동일한 결과 (+/- 일부 드리프트)를 제공합니다. 는 offset로컬의 값 millis()아두 이노 마스터의 Arduino로부터 동기 신호를 수신 할 때. 1-2 시간 지속되는 게임이면 충분합니다.

이를 위해 millis ()를 사용하면 인터럽트가 비활성화 되어도 millis ()가 증가하지 않으므로 장치가 동기화되지 않을 수 있습니다.
bobsburner

1

겸손한 견해로는 시야를 확보 할 수 있다고 가정하면 IR 또는 다른 유형의 조명을 사용하면 훨씬 저렴할 수 있습니다. 다른 파장을 사용하여 신호를 분리 할 수 ​​있습니다.


1
"시선"과 "펍 퀴즈"가 잘 어울리지 않을까 걱정됩니다. 그러나 제안 해 주셔서 감사합니다. 다른 프로젝트를 위해 IR 기술을 조사 할 것입니다.
Sergey Snegirev

0

낮은 기술 솔루션.

  1. 송신기는 명령에 따라 클럭 신호를 보냅니다.

  2. 수신기는 그 신호의 존재를 감지하는 것만 감지하면됩니다.

모든 것은 rf이거나 빛을 기반으로 할 수 있습니다. 예를 들어 led 조명 중 하나를 송신기로 구성 할 수 있습니다.

모든 것이 1ms 이내에 있어야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.