» elektronik » Arduino »Altı düğmeli kontrol paneli uygulaması Microsoft Soundscape

Altı düğmeli Microsoft Soundscape uygulaması kontrol paneli




Altı düğmeli Microsoft Soundscape uygulaması kontrol paneli


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

Yorum ekle

    • gülümsegülümsemelerxaxatamamdontknowyahoonea
      patronçizikaptalevetevet-evetagresifgizli
      üzgünümdansdance2dance3pardonyardımiçecekler
      Durarkadaşlariyigoodgooddüdükbaygınlıkdil
      dumanzırıltıcraybeyanalaycıDon-t_mentionindir
      ısıöfkelilaugh1mdatoplantımoskingnegatif
      Not_ipatlamış mısırcezalandırmakokumakkorkutmakkorkutuyorarama
      alaythank_youbuto_clueumnikakutanlaşmak
      kötübeeeblack_eyeblum3kızarmakövünçcan sıkıntısı
      sansürlüşakasecret2tehdit etmekzaferyusun_bespectacled
      shokrespektlolPrevedkarşılamaKrutoyya_za
      ya_dobryiyardımcıne_huliganne_othodiFludyasakyakın
2 yorumlar
Breadboard'a monte edilmiş bir şeyi bitmiş bir cihaz olarak konumlandırmak için, bilmiyorum ...
Bu "oldukça pahalı tahta" yı örneğin 320 ruble değerinde bir ESP32 Mini ile değiştirebilirsiniz. Ve tüm bu ekonomiyi en azından ödeme tahtasına aktarmak için breadboard'dan.

Okumanızı tavsiye ederiz:

Akıllı telefon için verin ...