Üç yazar tarafından önerilen harici altı düğmeli bir uzaktan kumanda yaparsanız, körlerin uzayda gezinmesine ve etraflarında ne olduğunu bulmasına izin veren Microsoft Soundscape uygulamasını (bazı nedenlerden dolayı yalnızca iOS işletim sistemi için kullanılabilir) kullanmak daha da kolay olacaktır. Ang, Ana Liu ve Venkatesh Potluri.
Kesinlikle konuşmak gerekirse, Soundscape Microsoft Corporation'ın kendisinin bir gelişimi değil, çok çeşitli alanlarda deneyler ve araştırmalar yapan Microsoft Research adlı bölümüdür. İç ortamın bile şirketin geri kalanından tamamen farklı olduğuna inanılmaktadır.
Uzaktan kumandadaki düğmeler:
1 - bir ses veya video dosyasının oynatılmasını başlat / durdur ve Soundsdape uygulaması arka planda çalışırken ve çalışırken, bu programdan sesli bildirimleri açar / kapatır.
2 - tam açma / kapama sesi, TV uzaktan kumandasındaki Sessiz düğmesinin bir analogu.
3 - ses veya video oynatıcıdaki bir sonraki parçaya ve Soundscape programında - bir sonraki sesli bildirime gidin.
4 - önceki parçaya veya sesli bildirime gider.
5 - Ana Ekran düğmesini çoğaltır.
6 - iOS işletim sisteminin "Sanal denetleyici" modunun kontrolü (anlatıldığı gibi harici uzaktan kumandalar kullanmanızı sağlar).
Diyagramdan görülebileceği gibi ev yapımıFritzing programında derlenen, her biri 10 kΩ'luk bir çekme direnci ile desteklenen düğmeler, oldukça pahalı olan Adafruit Feather nRF52 Bluefruit LE kartının 11, 7, 15, 16, 27 ve 25 terminallerine bağlanır Arduino IDE ve bir bluetooth modülü içerir. Cihazı kullanırken, bu anakart güç bankasından standart bir Mikro USB kablosuyla ve programlama sırasında bir bilgisayardan beslenir. Akım tüketimi çok düşük olduğunda ve birçok güç sınırının modele bağlı olduğunu unutmayın.
Tasarımı şemaya göre birleştiren sihirbazlar, Arduino IDE'yi aşağıdaki iki ekran görüntüsünde gösterildiği gibi bu kartla çalışacak şekilde yapılandırır:
Her şeyi yapılandırdıktan sonra, ustalar taslağı tahtaya doldurur:
#include
#define CONTROL_PLAY_PAUSE 0x00CD
#define CONTROL_SCAN_NEXT 0x00B5
#define CONTROL_SCAN_PREVIOUS 0x00B6
#define CONTROL_MUTE 0x00E2
#define AC_FORWARD 0x0225
#define AC_BACK 0x0224
#define CONSUMER_BROWSER_HOME 0x0223
BLEDis bledis;
BLEHidAdafruit blehid;
bool hasKeyPressed = yanlış;
// tahtadaki pinleri bağlayın
int playpauseButtonPin = 11;
int muteButtonPin = 7;
int nextButtonPin = 15;
int backButtonPin = 16;
int homeButtonPin = 27;
int switchControlButtonPin = 25;
geçersiz kurulum ()
{
pinMode (playpauseButtonPin, INPUT);
pinMode (muteButtonPin, INPUT);
pinMode (nextButtonPin, INPUT);
pinMode (backButtonPin, INPUT);
pinMode (homeButtonPin, INPUT);
pinMode (switchControlButtonPin, INPUT);
Serial.begin (115200);
süre (! Seri) gecikme (10); // yerel usb ile nrf52840 için
Bluefruit.begin ();
Bluefruit.setTxPower (4); // desteklenen değerler için bluefruit.h dosyasını kontrol edin
Bluefruit.setName ("TESTArroundMeBluefruit52");
// Aygıt Bilgi Hizmetini Yapılandırma ve Başlatma
bledis.setManufacturer ("Adafruit Industries");
bledis.setModel ("Bluefruit Feather 52");
bledis.begin ();
/ * BLE HID'i başlat
* Not: Apple, BLE cihazının minimum bağlantı aralığı> = 20m olması gerekir
* (Bağlantı aralığı ne kadar küçükse, veri o kadar hızlı gönderilebilir).
* Ancak HID ve MIDI cihazı için Apple minimum bağlantı aralığını kabul edebilir
* 11,25 ms'ye kadar. Bu nedenle BLEHidAdafruit :: begin (), min. Ve maks.
* En iyi performans için sırasıyla 11,25 ms ve 15 ms bağlantı aralığı.
* /
blehid.begin ();
/ * Bağlantı aralığını (min, maks.) Tercih ettiğiniz değere ayarlayın.
* Not: BLEHidAdafruit :: begin () tarafından 11.25ms - 15ms olarak ayarlanmıştır
* min = 9 * 1,25 = 11,25 ms, maks = 12 * 1,25 = 15 ms
* /
/ * Bluefruit.Periph.setConnInterval (9, 12); * /
// Reklamları ayarlayın ve başlatın
startAdv ();
}
void startAdv (void)
{
// Reklam paketi
Bluefruit.Advertising.addFlags (BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
Bluefruit.Advertising.addTxPower ();
Bluefruit.Advertising.addAppearance (BLE_APPEARANCE_HID_KEYBOARD);
// BLE HID hizmetini dahil et
Bluefruit.Advertising.addService (blehid);
// Reklam paketinde geliştirici adı için yeterli alan var
Bluefruit.Advertising.addName ();
/ * Reklam vermeye başlayın
* - Bağlantısı kesilirse otomatik reklamcılığı etkinleştir
* - Aralık: hızlı mod = 20 ms, yavaş mod = 152,5 ms
* - Hızlı mod için zaman aşımı 30 saniyedir
* - Zaman aşımı = 0 ile başlat (zaman aşımı) sonsuza dek (bağlanana kadar) reklam verir
*
* Önerilen reklam aralığı için
* https://developer.apple.com/library/content/qa/qa1931/_index.html
* /
Bluefruit.Advertising.restartOnDisconnect (true);
Bluefruit.Advertising.setInterval (32, 244); // 0,625 ms biriminde
Bluefruit.Advertising.setFastTimeout (30); // hızlı modda saniye sayısı
Bluefruit.Advertising.start (0); // 0 = n saniye sonra reklamı durdurma
}
// telefonu kontrol etmek için bu işlevi kullanma
void sendCommand (uint16_t komutu) {
// Bağlı ve bağlı / eşlendiğimizden emin olun
için (uint16_t conn_hdl = 0; conn_hdl bağlı () && bağlantı-> eşleştirilmiş ())
{
// Veri göndermeye başladığımızda kırmızı LED'i aç
digitalWrite (LED_RED, 1);
Serial.println ("Komut gönderiliyor ...");
// Gönder tuşuna basın
blehid.consumerKeyPress (conn_hdl, komut);
// Raporlar arasında biraz gecikme
gecikme (10);
// Anahtar bırakma gönder
blehid.consumerKeyRelease (conn_hdl);
// Kırmızı LED'i kapatın
digitalWrite (LED_RED, 0);
Serial.println ("Komut gönderildi!");
}
}
gecikme (250);
}
// anahtar kontrolü ile yapılandırmak için bu işlevi kullanma
void sendSwitchControl (String command) {
for (int i = 0; i
İOS işletim sisteminin yanından, sihirbazlar ilk önce Bluetooth üzerinden uzaktan kumanda ile eşleştirme ayarladı:
Ardından - erişilebilirlik bölümündeki tüm düğmelerin işlevleri:
Her şeyin çalıştığından emin olduktan sonra, sihirbazlar 3D yazıcıda düğmeye basar ve gerekli dosyaları okuyucularla paylaşır bir şeyde CC-BY 3.0 altında lisanslanmıştır. Bu parçalar başka şekillerde yapılabilir veya hiç yapılmayabilir.
Aşağıdaki iki video, ustaların uzaktan kumandayı nasıl test ettiğini gösterir:
Uzaktan kumandayı aynı şekilde yeniden inşa etmeye devam ediyor, ancak lehimleyerek ve sonucu kasaya koyuyor ve iOS'ta Soundscape uygulamasını yükleyip arka planda çalıştırarak cihazı kullanabilirsiniz.