Scelta della tecnologia wireless per il minor ritardo possibile


10

Sto redigendo un progetto di quiz in un pub, in cui l'arbitro dà un segnale e più giocatori premono i loro pulsanti. Il primo a spingere vince il diritto di dare una risposta.

Voglio che tutti i pulsanti (arbitro + giocatori X) siano wireless. Dato che i migliori giocatori del quiz possono fare clic su un pulsante entro 10 ms dal segnale, è molto importante che il ping tra i diversi pulsanti presenti una variazione molto, molto ridotta. Non posso avere giocatori che gridano "il mio pulsante è in ritardo!" D'altra parte, non voglio usare una tecnologia più costosa / complessa del necessario.

Quindi, quale sarebbe la tecnologia wireless ottimale da usare? Per favore, condividi la tua esperienza con progetti simili (o solo con conoscenze teoriche :) Ecco cosa ho studiato finora (correggimi se sbaglio):

  1. Bluetooth 4 LE (come in RFduino) Pro: latenza 3-6ms (pubblicizzata), basso consumo energetico: costo, non più di 7 pulsanti sul dispositivo

  2. Pro Wi-fi: latenza di 2ms (ho appena eseguito il ping del mio router Wi-Fi), dozzine di pulsanti, se necessario, Contro: costo, fame di energia

  3. Tranceiver di dati RF Pro: non so, il costo sembra essere un po 'più piccolo Contro: più pulsanti alla stessa frequenza probabilmente creano molto rumore

  4. Pro "Radio remote" più semplici: zero lag poiché è tutto elettromeccanico, nessun dato Contro: più pulsanti alla stessa frequenza non funzioneranno

Quindi, mi sono perso qualcosa? Apprezzo qualsiasi consiglio.


Quanti pulsanti in totale?
bigjosh

1
Il requisito più piccolo possibile è 4, il caso normale è 8, sarebbe gradito qualcosa di più - mi piacerebbe che fosse molto flessibile per l'intrattenimento della folla.
Sergey Snegirev l'

Il tempo di reazione umana è di oltre 200 ms. Vedi humanbenchmark.com/tests/reactiontime/statistics ,

@ user31481 E allora? Gli umani possono percepire una latenza inferiore a 2 ms. Vedi i collegamenti nell'appendice: danluu.com/input-lag
Navin

Risposte:


6

Ho già usato NRF24L01+moduli wireless a 2,4 GHz con chipset Arduino e li ho trovati fantastici e super economici (~ $ 10 per 10 di loro su eBay!). Hanno 3 modalità di trasmissione: 250 kbps, 1 Mbps e 2 Mbps. L'intervallo diminuisce di conseguenza con bitrate più elevato, ma anche il tempo impiegato per l'invio di un messaggio. Esistono più librerie Arduino (ad es. RF24, Mirf, RadioHead) e tutorial per l'utilizzo dei moduli (vedere http://playground.arduino.cc/InterfacingWithHardware/Nrf24L01 ). Hanno anche modalità di rete mesh integrate che possono essere o non essere utili.

Sono disponibili anche versioni con un connettore per antenna RP-SMA e una portata pubblicizzata fino a 1000 m per circa $ 5 ciascuno. Consiglierei di usare almeno uno di questi per il pulsante dell'arbitro, a seconda della distanza che ti serve.

Secondo Charles Hallard di hallard.me , i chip non amplificati possono ottenere un raggio di 30 m in modalità 250 kbps e l'ho verificato nei miei test.

Secondo l'utente sporadic su diychristmas.org , l' invio di un payload a 32 byte in modalità 250kbps richiede 1432µs dall'inizio della modalità Tx sul trasmettitore per ricevere il messaggio completo sul ricevitore. Ciò diminuisce a 444µs in modalità 1 Mbps e 283µs in modalità 2 Mbps .

Date queste statistiche, rientrano bene entro 2 ms di latenza per l'attivazione, adatte alla tua applicazione e consumano pochissima energia. Sta a te decidere il miglior equilibrio tra latenza, intervallo e spesa.


Grazie! Cosa succede se si premono più pulsanti contemporaneamente? Si scontreranno e, ad esempio, si bloccheranno a vicenda?
Sergey Snegirev,

No, la rete di questi chip è molto sofisticata per il loro prezzo, possono negoziare felicemente reti mesh e più pipe Rx contemporaneamente e rinviare automaticamente se il destinatario non riconosce la ricezione di un messaggio.
cortices

1
Questa domanda EE.SE descrive in dettaglio come è possibile trasmettere più nodi allo stesso indirizzo di ricezione, come nella propria situazione. Quindi si tratta semplicemente di prendere l'indirizzo del mittente per decidere chi ha "vinto".
cortices


1
Solo un po 'a testa bassa, quei chip NRF24L01 + con antenne non sono originali, potrebbero causare problemi quando si tenta di comunicare tra clone e originale e se si tenta di utilizzare payload dinamici o shockburst. Inoltre, l'articolo wikispace è obsoleto. Si dovrebbe usare invece la libreria TMRh20.
Avamandro

3

Hai preso in considerazione l'utilizzo di orologi in tempo reale? Potresti sincronizzarli tutti in anticipo e quindi utilizzare qualsiasi protocollo wireless. Una volta premuto un pulsante, cercherai l'unità che riporta il primo timestamp e poi, una volta passata una finestra di pochi secondi, fai sapere che ha vinto. Vorrei prendere in considerazione l'utilizzo del WIFI (802.11) con ESP8266, RTC e portare con sé un punto di accesso wireless.

Questa non è una risposta al wireless a basso ritardo ma ne elimina la necessità.


2
Buona idea, ma non è necessario un RTC. Puoi sincronizzare gli Arduinos all'avvio, quindi millis() - offsetdà lo stesso risultato (+/- qualche deriva) per tutti gli Arduinos coinvolti. Il offsetè il valore locale, millis()quando un Arduino ricevere il segnale di sincronizzazione da maestro Arduino. Per un gioco che dura una o due ore sarà sufficiente.

L'uso di millis () per questo può causare la perdita della sincronizzazione dei dispositivi, poiché millis () non aumenta quando gli interrupt sono disabilitati.
Bobsburner

1

Secondo la mia modesta opinione, potrebbe essere ancora più economico se si utilizza IR o qualche altro tipo di luce, supponendo che si possa garantire la visuale. È possibile utilizzare diverse lunghezze d'onda per garantire la separazione dei segnali.


1
Temo che "linea di vista" e "pub quiz" non vadano bene insieme. Ma grazie per averlo suggerito, esaminerò la tecnologia IR per altri progetti.
Sergey Snegirev l'

0

Soluzione a bassa tecnologia.

  1. Il trasmettitore invia il suo segnale di clock a comando.

  2. Il ricevitore deve solo rilevare rilevare la presenza di quel segnale.

Il tutto può essere basato su rf o basato sulla luce, ad esempio una delle luci a led può essere configurata come trasmettitore.

Tutto dovrebbe essere entro 1ms.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.