Memilih teknologi nirkabel untuk kelambatan serendah mungkin

10

Saya sedang menyusun proyek kuis pub, di mana Wasit memberikan sinyal dan beberapa pemain menekan tombol mereka. Yang pertama untuk mendorong memenangkan hak untuk memberikan jawaban.

Saya ingin semua tombol (pemain + X wasit) menjadi nirkabel. Karena pemain kuis terbaik dapat mengklik tombol dalam 10 ms dari sinyal, sangat penting bahwa ada varian yang sangat, sangat sedikit di ping antara tombol yang berbeda. Saya tidak bisa membuat pemain berteriak, "tombol saya laggy!" Di sisi lain, saya tidak ingin menggunakan teknologi yang lebih mahal / kompleks daripada yang dibutuhkan.

JADI, apa teknologi nirkabel yang optimal untuk digunakan? Silakan bagikan pengalaman Anda dari proyek serupa (atau hanya pengetahuan teoretis :) Inilah yang saya teliti sejauh ini (koreksi saya jika saya salah):

  1. Bluetooth 4 LE (seperti dalam RFduino) Kelebihan: latensi 3-6ms (diiklankan), energi rendah Kekurangan: biaya, tidak lebih dari 7 tombol ke perangkat

  2. Wi-fi Pro: latensi 2ms (saya hanya ping router wi-fi saya), puluhan tombol jika perlu Kontra: biaya, haus daya

  3. RF tranceiver data Kelebihan: tidak tahu, biaya tampaknya sedikit lebih kecil Kontra: beberapa tombol pada frekuensi yang sama mungkin akan membuat banyak suara

  4. Kelebihan "Radio remote" Kelebihan: tidak ada lag karena semuanya elektromekanis, tidak ada data Kekurangan: beberapa tombol pada frekuensi yang sama tidak akan berfungsi

Jadi, apakah saya melewatkan sesuatu? Saya menghargai panduan apa pun.

Sergey Snegirev
sumber
Berapa banyak tombol secara total?
bigjosh
1
Persyaratan terkecil yang mungkin adalah 4, kasus normal adalah 8, apa pun yang akan diterima - Saya ingin itu sangat fleksibel untuk beberapa hiburan orang banyak.
Sergey Snegirev
Waktu reaksi manusia lebih dari 200 ms. Lihat humanbenchmark.com/tests/reactiontime/statistics ,
@ user31481 Jadi apa? Manusia dapat merasakan latensi di bawah 2ms. Lihat tautan di apendiks: danluu.com/input-lag
Navin

Jawaban:

6

Saya telah menggunakan NRF24L01+modul nirkabel chipset 2.4GHz dengan Arduino sebelumnya, dan menemukan mereka menjadi hebat, dan super murah (~ $ 10 untuk 10 dari mereka di ebay!). Mereka memiliki 3 mode transmisi: 250kbps, 1Mbps, dan 2Mbps. Kisaran menurun sesuai dengan bitrate yang lebih tinggi, tetapi waktu yang dihabiskan untuk mengirim pesan juga. Ada beberapa perpustakaan Arduino (mis. RF24, Mirf, RadioHead) dan tutorial untuk menggunakan modul (lihat http://playground.arduino.cc/InterfacingWithHardware/Nrf24L01 ). Mereka juga memiliki mode jaringan mesh built-in yang mungkin atau mungkin tidak digunakan.

Versi dengan konektor antena RP-SMA dan kisaran yang diiklankan hingga 1000m juga tersedia untuk masing-masing sekitar $ 5. Saya akan merekomendasikan menggunakan salah satu dari ini untuk tombol wasit setidaknya, tergantung pada kisaran yang Anda butuhkan.

Menurut Charles Hallard dari hallard.me , chip non-amplified bisa mendapatkan 30m line-of-sight range dalam mode 250kbps , dan saya telah memverifikasi ini dalam pengujian saya sendiri.

Menurut sporadis pengguna di diychristmas.org , mengirimkan payload 32 byte dalam mode 250kbps membutuhkan 1432 μs mulai dari mode Tx pada pemancar hingga menerima pesan penuh pada receiver. Ini berkurang menjadi 444μs pada mode 1Mbps dan 283µs pada mode 2Mbps .

Dengan statistik ini, mereka berada dalam latensi 2 ms untuk dipicu, cocok untuk aplikasi Anda, dan mereka menggunakan daya yang sangat kecil. Terserah Anda untuk mencari keseimbangan latensi, rentang, dan biaya terbaik.

korteks
sumber
Terima kasih! Bagaimana jika beberapa tombol ditekan bersamaan? Akankah mereka bertabrakan dan misalnya saling menghalangi?
Sergey Snegirev
Tidak, jaringan chip ini sangat canggih untuk harganya, mereka dapat menegosiasikan jaringan mesh dan beberapa pipa Rx sekaligus dengan senang hati, dan secara otomatis mengirim ulang jika penerima tidak mengetahui penerimaan pesan.
cortices
1
Pertanyaan EE.SE ini merinci bagaimana Anda dapat mengirim banyak node ke alamat penerima yang sama, seperti dalam situasi Anda. Maka itu hanya masalah mengambil alamat pengirim untuk memutuskan siapa yang 'menang'.
cortices
1
Contoh yang lebih bermanfaat: arduino-info.wikispaces.com/nRF24L01-RF24-Contoh
korteks
1
Sedikit saja, chip NRF24L01 + dengan antena tersebut tidak asli, ini dapat menyebabkan masalah ketika Anda mencoba untuk berkomunikasi antara klon dan asli dan jika Anda mencoba menggunakan muatan dinamis atau kejutan. Juga, artikel wikispace sudah usang. Orang harus menggunakan perpustakaan TMRh20 sebagai gantinya.
Avamander
3

Sudahkah Anda mempertimbangkan untuk menggunakan jam waktu nyata? Anda dapat menyinkronkan semuanya terlebih dahulu dan kemudian menggunakan protokol nirkabel apa pun. Setelah tombol ditekan, Anda akan mencari unit yang melaporkan cap waktu paling awal dan kemudian setelah jendela beberapa detik berlalu, beri tahu ia menang. Saya akan mempertimbangkan menggunakan WIFI (802.11) dengan ESP8266s, RTCs dan membawa jalur akses nirkabel.

Ini bukan jawaban untuk nirkabel jeda rendah tetapi menghilangkan kebutuhan untuk itu.

Squat
sumber
2
Ide bagus, tetapi Anda tidak perlu RTC. Anda dapat menyinkronkan Arduino di awal, sehingga millis() - offsetmemberikan hasil yang sama (+/- beberapa penyimpangan) untuk semua Arduino yang terlibat. The offsetadalah nilai lokal millis()ketika Arduino menerima sinyal sync dari master Arduino. Untuk gim yang bertahan satu atau dua jam saja sudah cukup.
Menggunakan millis () untuk ini dapat menyebabkan perangkat kehilangan sinkronisasi, karena millis () tidak bertambah ketika interupsi dinonaktifkan.
bobsburner
1

Menurut pendapat saya yang sederhana, mungkin lebih murah jika Anda menggunakan IR atau jenis cahaya lain, dengan asumsi Anda dapat memastikan saling berhadapan. Anda dapat menggunakan panjang gelombang yang berbeda untuk memastikan pemisahan sinyal.

Igor Stoppa
sumber
1
Saya takut bahwa "garis pandang" dan "kuis pub" tidak cocok bersama. Tetapi terima kasih telah menyarankannya, saya akan mencari teknologi IR untuk proyek lain.
Sergey Snegirev
0

Solusi teknologi rendah rendah.

  1. Pemancar mengirimkan sinyal jamnya sesuai perintah.

  2. Penerima hanya perlu mendeteksi mendeteksi sinyal itu.

Semuanya bisa rf, atau berbasis cahaya - misalnya salah satu lampu yang dipimpin dapat dikonfigurasi sebagai pemancar.

Semuanya harus baik dalam 1 ms.

dannyf
sumber