» Elektronik » Arduino »Aplikasi panel kawalan enam-butang Microsoft Soundscape

Enam butang panel kawalan aplikasi Microsoft Soundscape




Enam butang panel kawalan aplikasi Microsoft Soundscape


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.
0
0
0

Tambah komen

    • senyumtersenyumxaxaokdontknowyahoonea
      bosawalbodohyaya-yaagresifrahsia
      maaftariandance2dance3pengampunanmembantuminuman
      berhentikawan-kawanbaikgoodgoodwiseltolaklidah
      asapbertepuk tangancraymengisytiharkanderisivejangan dengarmuat turun
      panasberalunketawa1mdamesyuaratmoskingnegatif
      not_ipopcornmenghukumbacamenakutkanmenakutkancarian
      mengejekterima kasihinito_clueumnikakutbersetuju
      burukbeeeblack_eyeblum3memerahbermegahkebosanan
      ditapiskesenanganrahsia2mengancamkemenanganyusun_bespectacled
      shokrespektloldiingatiselamat datangkrutoyya_za
      ya_dobryipembantune_huliganne_othodifludlarangantutup
2 ulasan
Untuk meletakkan sesuatu yang dipasang pada papan bilah sebagai alat siap, saya tidak tahu ...
Anda boleh menggantikan "papan yang agak mahal" ini, contohnya, dengan ESP32 Mini bernilai kira-kira 320 rubel. Dan dari papan roti untuk memindahkan semua ekonomi ini ke papan bayar sekurang-kurangnya.

Kami menasihati anda untuk membaca:

Bawa ia untuk telefon pintar ...