Mümkün olan en düşük gecikme için kablosuz teknolojiyi seçme


10

Hakem'in işaret verdiği ve birden fazla oyuncunun düğmelerine bastığı bir pub quiz projesi hazırlıyorum. İlk iten cevap verme hakkını kazanır.

Tüm düğmelerin (hakemin + X oyuncuları) kablosuz olmasını istiyorum. En iyi sınav oyuncuları sinyalin 10 ms içinde bir düğmeyi tıklayabildiğinden, farklı düğmeler arasında ping işleminde çok, çok az bir fark olması çok önemlidir. "Düğmem laggy!" Diye bağıran oyunculara sahip olamıyorum. Öte yandan, gerekenden daha pahalı / karmaşık teknoloji kullanmak istemiyorum.

Peki, kullanılacak en uygun kablosuz teknoloji ne olurdu? Lütfen benzer projelerdeki deneyiminizi paylaşın (veya sadece teorik bilgi :) Şimdiye kadar araştırdığım şey (yanlışsam beni düzeltin):

  1. Bluetooth 4 LE (RFduino'da olduğu gibi) Artıları: 3-6ms gecikme (reklamı yapılan), düşük enerji Eksileri: maliyet, cihaza en fazla 7 düğme

  2. Wi-fi Artıları: 2ms gecikme (wi-fi yönlendiricime ping yaptım), Eksileri gerekiyorsa düzinelerce düğme: maliyet, güç aç

  3. RF veri tranceiver Artıları: dunno, maliyet biraz daha küçük görünüyor Eksileri: aynı frekansta birden fazla düğme muhtemelen çok gürültü yaratacak

  4. En basit "Radyo uzaktan kumandası" Artıları: hepsi elektromekanik olduğundan sıfır gecikme, veri yok Eksileri: aynı frekansta birden fazla düğme çalışmaz

Bir şey kaçırdım mı? Herhangi bir rehberliği takdir ediyorum.


Toplamda kaç düğme var?
bigjosh

1
Mümkün olan en küçük gereksinim 4, normal durum 8, daha fazla şey memnuniyetle karşılanacaktır - bazı kalabalık eğlenceleri için çok esnek olmasını istiyorum.
Sergey Snegirev

İnsan reaksiyon süresi 200 ms'nin üzerindedir. Bkz. Humanbenchmark.com/tests/reactiontime/statistics ,

@ user31481 Ne olmuş yani? İnsanlar 2 ms'nin altındaki gecikmeleri algılayabilir. Ekteki
Navin

Yanıtlar:


6

Daha önce NRF24L01+Arduino ile yonga seti 2.4GHz kablosuz modüller kullandım ve onları harika ve süper ucuz buldum (ebay'de 10 tanesi için ~ 10 $!). 3 iletim modu vardır: 250kbps, 1Mbps ve 2Mbps. Aralık, daha yüksek bit hızına göre azalır, ancak mesaj göndermek için harcanan zaman da azalır. Modülleri kullanmak için birden fazla Arduino kütüphanesi (örn. RF24, Mirf, RadioHead) ve öğreticiler vardır (bkz. Http://playground.arduino.cc/InterfacingWithHardware/Nrf24L01 ). Ayrıca, kullanılabilecek veya kullanılamayacak yerleşik örgü ağ modlarına da sahiptirler.

RP-SMA anten konektörlü ve 1000 metreye kadar reklamı yapılan sürümlerin her biri yaklaşık 5 $ karşılığında mevcuttur. İhtiyacınız olan aralığa bağlı olarak en azından hakemin düğmesi için bunlardan birini kullanmanızı tavsiye ederim.

Hallard.me'den Charles Hallard'a göre , güçlendirilmemiş çipler 250kbps modunda 30m görüş açısı aralığı elde edebilir ve bunu kendi testimde doğruladım.

Diychristmas.org sporadik kullanıcıya göre , 250kbps modunda bir 32 bayt yük gönderme 1432μs alır alıcı tam mesajı alma için vericinin üzerine Tx modunun baştan. Bu azalır 1Mbps modu 444μs ve 2Mbps modu 283μs .

Bu istatistikler göz önüne alındığında, tetikleme için 2 ms gecikme süresi içinde iyi düşer, uygulamanız için uygundur ve çok az güç kullanırlar. Gecikme, menzil ve gider arasındaki en iyi dengeyi bulmak size kalmıştır.


Teşekkür ederim! Aynı anda birden fazla düğmeye basılırsa ne olur? Çarpışacaklar ve örneğin birbirlerini engelleyecekler mi?
Sergey Snegirev

Hayır, bu yongaların ağ bağlantısı fiyatları için çok sofistike, örgü ağları ve birden fazla Rx borusunu aynı anda müzakere edebilir ve alıcı bir mesajın alındığını kabul etmezse otomatik olarak yeniden gönderebilir.
cortices

1
Bu EE.SE sorusu , durumunuzda olduğu gibi aynı alma adresine birden fazla düğümün nasıl iletilebileceğini detaylandırır . O zaman sadece kimin 'kazandığına' karar vermek için gönderenin adresini almak meselesidir.
cortices


1
Sadece biraz yukarı, antenli NRF24L01 + çipleri orijinal değil, klonla orijinal arasında iletişim kurmaya çalıştığınızda ve dinamik yükler veya şok patlaması kullanmaya çalıştığınızda sorunlara neden olabilir. Ayrıca, bu wikispace makalesi modası geçmiş. Bunun yerine TMRh20 kütüphanesi kullanılmalıdır.
Avamander

3

Gerçek zamanlı saatler kullanmayı düşündünüz mü? Bunları önceden senkronize edebilir ve daha sonra herhangi bir kablosuz protokolü kullanabilirsiniz. Bir düğmeye basıldığında, en erken zaman damgasını bildiren birimi ararsınız ve ardından birkaç saniyelik bir pencere geçtikten sonra kazandığını bildirir. ESP8266s, RTC'ler ile WIFI (802.11) kullanmayı düşünür ve kablosuz bir erişim noktası alırım.

Bu, düşük gecikmeli kablosuz için bir cevap değildir, ancak buna olan ihtiyacı ortadan kaldırır.


2
İyi fikir, ama RTC'ye ihtiyacınız yok. Arduinos'u başlangıçta senkronize edebilirsiniz, bu nedenle millis() - offsetilgili tüm Arduino'lar için aynı sonucu verir (+/- biraz sürüklenme). offsetYerel değeri millis()bir çaba isteyen ana Arduino senkronizasyon sinyali aldığında. Bir ya da iki saat süren bir oyun için yeterli olacaktır.

Bunun için millis () kullanılması, kesintiler devre dışı bırakıldığında millis () artmadığından aygıtların senkronizasyonunu kaybetmesine neden olabilir.
bobsburner

1

Benim görüşüme göre, görüş hattını sağlayabileceğinizi varsayarsak, IR veya başka bir ışık türü kullanırsanız daha ucuz olabilir. Sinyallerin ayrılmasını sağlamak için farklı dalga boyları kullanabilirsiniz.


1
Korkarım ki "görüş hattı" ve "pub quiz" birlikte iyi gitmiyor. Ancak önerdiğiniz için teşekkürler, diğer projeler için IR teknolojisine bakacağım.
Sergey Snegirev

0

Düşük düşük teknoloji çözümü.

  1. Verici komut üzerinde saat sinyalini gönderir.

  2. Alıcı sadece o sinyalin prrsensini tespit etmelidir.

Her şey rf veya ışık tabanlı olabilir - örneğin led ışıklardan biri verici olarak yapılandırılabilir.

Her şey 1 ms içinde iyi olmalıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.