Menggunakan aplikasi Microsoft Soundscape (untuk sebab tertentu hanya tersedia untuk sistem operasi iOS), yang membolehkan orang buta menavigasi ruang dan mengetahui apa yang ada di sekeliling mereka, menggunakan arahan suara, akan lebih mudah jika anda membuat kawalan jauh enam butang luaran yang dicadangkan oleh tiga penulis Instructables - Jazz Ang, Ana Liu dan Venkatesh Potluri.
Secara tepat, Soundscape tidak dibangunkan oleh Microsoft sendiri, tetapi oleh satu bahagian yang dipanggil Microsoft Research, yang terlibat dalam percubaan dan penyelidikan dalam pelbagai bidang. Adalah dipercayai bahawa suasana dalaman juga berbeza daripada yang lain di syarikat itu.
Butang pada alat kawalan jauh:
1 - mula / hentikan memainkan fail audio atau video, dan apabila aplikasi Soundsdape berjalan dan berjalan di latar belakang, ia juga membolehkan / melumpuhkan pemberitahuan suara dari program ini.
2 - bunyi hidup / mati penuh, analog pada butang Bisu di jauh TV.
3 - pergi ke trek seterusnya dalam audio atau video player, dan dalam program Soundscape - pergi ke pemberitahuan suara seterusnya.
4 - pergi ke trek lagu atau pemberitahuan suara sebelumnya.
5 - menduplikasi butang Laman Utama.
6 - mengawal mod "pengendali maya" sistem operasi iOS (membolehkan anda menggunakan alat kawalan luaran seperti yang diterangkan).
Seperti yang dapat dilihat dari gambar rajah buatan sendiri, yang disusun dalam program Fritzing, butang yang masing-masing ditambah dengan perintang tarikan 10 kΩ, disambungkan ke terminal 11, 7, 15, 16, 27 dan 25 dari Adafruit Feather nRF52 Bluefruit LE board yang agak mahal, yang serasi dengan Arduino IDE dan mengandungi modul bluetooth. Apabila menggunakan peranti, papan ini dikuasakan oleh kabel USB mikro standard dari bank kuasa, dan apabila pengaturcaraan - dari PC. Sila ambil perhatian bahawa banyak bank kuasa matikan secara automatik apabila penggunaan semasa terlalu rendah, dan ambang penutup bergantung kepada model.
Setelah memasang reka bentuk mengikut skema, ahli sihir mengkonfigurasi Arduino IDE untuk bekerja dengan lembaga ini, seperti yang ditunjukkan dalam dua tangkapan skrin berikut:
Setelah mengkonfigurasi segala-galanya, tuan-tuan mengisi lakaran itu ke papan:
#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 = false;
/ // pin pin di papan
int playpauseButtonPin = 11;
int muteButtonPin = 7;
int nextButtonPin = 15;
int backButtonPin = 16;
int homeButtonPin = 27;
int switchControlButtonPin = 25;
batal persediaan ()
{
pinMode (playpauseButtonPin, INPUT);
pinMode (muteButtonPin, INPUT);
pinMode (nextButtonPin, INPUT);
pinMode (backButtonPin, INPUT);
pinMode (homeButtonPin, INPUT);
pinMode (switchControlButtonPin, INPUT);
Serial.begin (115200);
sementara (! Serial) kelewatan (10); // untuk nrf52840 dengan usb asli
Bluefruit.begin ();
Bluefruit.setTxPower (4); // Periksa bluefruit.h untuk nilai yang disokong
Bluefruit.setName ("TESTArroundMeBluefruit52");
// Mengkonfigurasi dan Mulakan Perkhidmatan Maklumat Peranti
bledis.setManufacturer ("Adafruit Industries");
bledis.setModel ("Bulu Biru 52");
bledis.begin ();
/ * Mulakan BLE HID
* Nota: Apple memerlukan peranti BLE mesti mempunyai selang sambungan min> = 20m
* (Lebih kecil jarak interval semakin cepat kita dapat menghantar data).
* Walau bagaimanapun untuk peranti HID dan MIDI, Apple dapat menerima interval sambungan min
* sehingga 11.25 ms. Oleh itu BLEHidAdafruit :: begin () akan cuba menetapkan min dan max
* Selang sambungan kepada 11.25 ms dan 15 ms untuk prestasi terbaik.
* /
blehid.begin ();
/ * Tetapkan selang sambungan (min, max) ke nilai yang anda jangkau.
* Nota: Ia telah ditetapkan oleh BLEHidAdafruit :: begin () hingga 11.25ms - 15ms
* min = 9 * 1.25 = 11.25 ms, max = 12 * 1.25 = 15 ms
* /
/ * Bluefruit.Periph.setConnInterval (9, 12); * /
// Sediakan dan mula pengiklanan
startAdv ();
}
tidak sah startAdv (tidak sah)
{
// Pakej iklan
Bluefruit.Advertising.addFlags (BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
Bluefruit.Advertising.addTxPower ();
Bluefruit.Advertising.addAppearance (BLE_APPEARANCE_HID_KEYBOARD);
// Sertakan perkhidmatan BLE HID
Bluefruit.Advertising.addService (blehid);
// Terdapat ruang yang cukup untuk nama dev dalam paket iklan
Bluefruit.Advertising.addName ();
/ * Mulai Pengiklanan
* - Dayakan pengiklanan auto jika terputus
* - Selang: mod cepat = 20 ms, mod perlahan = 152.5 ms
* - Masa untuk mod cepat ialah 30 saat
* - Mula (masa tamat) dengan timeout = 0 akan mengiklankan selamanya (sehingga tersambung)
*
* Untuk selang pengiklanan yang disyorkan
* https://developer.apple.com/library/content/qa/qa1931/_index.html
* /
Bluefruit.Advertising.restartOnDisconnect (true);
Bluefruit.Advertising.setInterval (32, 244); // dalam unit 0.625 ms
Bluefruit.Advertising.setFastTimeout (30); // bilangan detik dalam mod pantas
Bluefruit.Advertising.start (0); // 0 = Jangan berhenti pengiklanan selepas n saat
}
/ / menggunakan fungsi ini untuk mengawal telefon
void sendCommand (perintah uint16_t) {
// Pastikan kita disambungkan dan diikat / dipasangkan
untuk (uint16_t conn_hdl = 0; conn_hdl disambungkan () & & sambungan-> berpasangan ())
{
// Hidupkan LED merah apabila kami mula menghantar data
digitalWrite (LED_RED, 1);
Serial.println ("Menghantar perintah ...");
// Hantar kekunci utama
blehid.consumerKeyPress (conn_hdl, command);
// Tunda sedikit antara laporan
kelewatan (10);
// Hantar pelepasan kunci
blehid.consumerKeyRelease (conn_hdl);
// Matikan LED merah
digitalWrite (LED_RED, 0);
Serial.println ("Perintah dihantar!");
}
}
kelewatan (250);
}
// menggunakan fungsi ini untuk mengkonfigurasi dengan kawalan suis
void sendSwitchControl (String command) {
untuk (int i = 0; i
Dari sisi sistem operasi iOS, para penyihir pertama mengkonfigurasi berpasangan dengan alat kawalan jauh melalui Bluetooth:
Kemudian - fungsi semua butang dalam seksyen aksesibiliti:
Selepas memastikan bahawa semuanya berfungsi, pencetus butang cetak sihir pada pencetak 3D dan berkongsi fail yang diperlukan dengan pembaca pada perkara yang berbeza dilesenkan di bawah CC-BY 3.0. Bahagian-bahagian ini boleh dibuat dengan cara lain, atau tidak dibuat sama sekali.
Dua video berikut menunjukkan bagaimana tuan menguji tindakan yang terpencil:
Ia tetap untuk membina semula alat kawalan jauh dengan cara yang sama, tetapi dengan pematerian, dan meletakkan hasil dalam kes itu, dan dalam iOS memasang aplikasi Soundscape dan menjalankannya di latar belakang, dan anda boleh menggunakan peranti ini.