» Electronics » Arduino »Anim na pindutan ng control panel application ng Microsoft Soundscape

Anim na pindutan ng panel ng kontrol ng Microsoft Soundscape app




Anim na pindutan ng panel ng kontrol ng Microsoft Soundscape app


Gamit ang application ng Microsoft Soundscape (sa ilang kadahilanan magagamit lamang para sa operating system ng iOS), na nagpapahintulot sa mga bulag na mag-navigate sa espasyo at malaman kung ano ang nasa paligid nila, gamit ang mga boses na boses, ay magiging mas maginhawa kung gumawa ka ng isang panlabas na anim na pindutan na remote control na iminungkahi ng tatlong may-akda na Mga Tagagamit - Jazz Ang, Ana Liu at Venkatesh Potluri.

Matindi ang pagsasalita, ang Soundscape ay hindi isang pag-unlad ng Microsoft Corporation mismo, ngunit ang dibisyon nito na tinatawag na Microsoft Research, na nakikibahagi sa mga eksperimento at pananaliksik sa isang iba't ibang mga lugar. Ito ay pinaniniwalaan na kahit na ang panloob na kapaligiran ay may ganap na naiiba kaysa sa iba pang mga korporasyon.

Ang mga pindutan sa remote control:

1 - simulan / itigil ang pag-playback ng isang audio o video file, at kapag ang application ng Soundsdape ay tumatakbo at tumatakbo sa background, lumiliko din ito / off ang mga abiso sa boses mula sa programang ito.

2 - buong on / off na tunog, isang analogue ng pindutan ng I-mute sa remote na TV.

3 - pumunta sa susunod na track sa audio o video player, at sa programa ng Soundscape - pumunta sa susunod na abiso ng boses.

4 - pumunta sa nakaraang abiso ng track o boses.

5 - Doblehin ang pindutan ng Home.

6 - kontrol ng mode na "Virtual controller" ng operating system ng iOS (nagbibigay-daan sa iyo na gumamit ng mga panlabas na remote tulad ng inilarawan).

Tulad ng makikita mula sa diagram gawang bahay, naipon sa programang Fritzing, ang mga pindutan, bawat isa ay pupunan ng isang 10 kOhm pull-up resistor, ay konektado sa mga terminal 11, 7, 15, 16, 27 at 25 ng medyo mahal na Adafruit Feather nRF52 Bluefruit LE board, na katugma sa Arduino IDE at naglalaman ng isang bluetooth module. Kapag ginagamit ang aparato, ang board na ito ay pinalakas ng isang karaniwang Micro USB cable mula sa power bank, at kapag nagprograma - mula sa isang PC. Mangyaring tandaan na maraming mga bangko ng kuryente ang awtomatikong naka-off kapag ang kasalukuyang pagkonsumo ay masyadong mababa, at ang pagsara ng threshold ay nakasalalay sa modelo.



Ang pagkakaroon ng tipunin ang disenyo ayon sa scheme, isinaayos ng mga wizards ang Arduino IDE upang gumana sa board na ito, tulad ng ipinapakita sa sumusunod na dalawang screenshot:




Ang pagkakaroon ng na-configure ang lahat, ang mga masters ay punan ang sketch sa board:

#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 = maling;
// kumonekta ang mga pin sa board
int playpauseButtonPin = 11;
int muteButtonPin = 7;
int kasunod sa ButtonPin = 15;
int backButtonPin = 16;
int homeTatayanPin = 27;
int switchControlButtonPin = 25;

walang pag-setup ()
{
  pinMode (playpauseButtonPin, INPUT);
  pinMode (muteButtonPin, INPUT);
  pinMode (kasunod na ButtonPin, INPUT);
  pinMode (backButtonPin, INPUT);
  pinMode (homeButtonPin, INPUT);
  pinMode (switchControlButtonPin, INPUT);
  
  Serial.begin (115200);
  habang (! Serial) pagkaantala (10); // para sa nrf52840 na may katutubong usb

  Bluefruit.begin ();
  Bluefruit.setTxPower (4); // Suriin ang bluefruit.h para sa mga suportadong halaga
  Bluefruit.setName ("TESTArroundMeBluefruit52");

  // I-configure at Simulan ang Serbisyo ng Impormasyon ng Device
  bledis.setManufacturer ("Adafruit Industries");
  bledis.setModel ("Bluefruit Feather 52");
  bledis.begin ();

  / * Simulan ang BLE HID
   * Tandaan: Kinakailangan ng Apple ang aparato ng BLE ay dapat magkaroon ng agwat ng koneksyon sa min. = = 20m
   * (Mas maliit ang agwat ng koneksyon ng mas mabilis na maipadala namin ang data).
   * Gayunpaman para sa aparato ng HID at MIDI, maaaring tanggapin ng Apple ang min pagitan ng koneksyon
   * hanggang sa 11.25 ms. Samakatuwid BLEHidAdafruit :: magsimula () ay susubukan na itakda ang min at max
   * pagitan ng koneksyon sa 11.25 ms at 15 ms ayon sa pagkakabanggit para sa pinakamahusay na pagganap.
   * /
  blehid.begin ();

  / * Itakda ang agwat ng koneksyon (min, max) sa iyong perished na halaga.
   * Tandaan: Nakatakda na ito ng BLEHidAdafruit :: magsimula () hanggang 11.25ms - 15ms
   * min = 9 * 1.25 = 11.25 ms, max = 12 * 1.25 = 15 ms
   * /
  / * Bluefruit.Periph.setConnInterval (9, 12); * /

  // I-set up at simulan ang advertising
  startAdv ();
}

walang bisa StartAdv (walang bisa)
{
  // Pakete ng advertising
  Bluefruit.Advertising.addFlags (BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
  Bluefruit.Advertising.addTxPower ();
  Bluefruit.Advertising.addAppearance (BLE_APPEARANCE_HID_KEYBOARD);
  
  // Isama ang serbisyo sa BLE HID
  Bluefruit.Advertising.addService (blehid);

  // Mayroong sapat na silid para sa pangalan ng dev sa packet ng advertising
  Bluefruit.Advertising.addName ();
  
  / * Simulan ang Advertising
   * - Paganahin ang auto advertising kung naka-disconnect
   * - Interval: mabilis na mode = 20 ms, mabagal na mode = 152.5 ms
   * - Ang timeout para sa mabilis na mode ay 30 segundo
   * - Start (timeout) na may timeout = 0 mai-advertise magpakailanman (hanggang konektado)
   *
   * Para sa inirekumendang agwat ng advertising
   * https://developer.apple.com/library/content/qa/qa1931/_index.html
   * /
  Bluefruit.Advertising.restartOnDisconnect (totoo);
  Bluefruit.Advertising.setInterval (32, 244); // sa yunit ng 0.625 ms
  Bluefruit.Advertising.setFastTimeout (30); // bilang ng mga segundo sa mabilis na mode
  Bluefruit.Advertising.start (0); // 0 = Huwag itigil ang advertising pagkatapos ng n segundo
}

// gamit ang function na ito upang makontrol ang telepono
walang bisa sendCommand (uint16_t utos) {
  // Siguraduhin na kami ay konektado at naka-bonding / ipinares
  para sa (uint16_t conn_hdl = 0; conn_hdl  konektado () && koneksyon-> ipinares ()
    {
      // I-on ang pulang LED kapag sinimulan namin ang pagpapadala ng data
      digitalWrite (LED_RED, 1);
      Serial.println ("Nagpapadala ng utos ...");

      // Magpadala ng pindutin ang key
      blehid.consumerKeyPress (conn_hdl, utos);

      // Mag-antala ng kaunti sa pagitan ng mga ulat
      pagkaantala (10);

      // Magpadala ng key release
      blehid.consumerKeyRelease (conn_hdl);

      // I-off ang pulang LED
      digitalWrite (LED_RED, 0);
      Serial.println ("Ipinadala ang Utos!");
    }
  }

  pagkaantala (250);
}

// gamit ang function na ito upang i-configure ang switch control
walang bisa sendSwitchControl (String command) {
  para sa (int i = 0; i 


Mula sa gilid ng operating system ng iOS, unang nagtataguyod ang mga wizards sa pagpapares kasama ang remote control sa pamamagitan ng Bluetooth:



Pagkatapos - ang mga pag-andar ng lahat ng mga pindutan sa seksyon ng pag-access:





Matapos tiyakin na gumagana ang lahat, ang mga pindutan ng pag-print ng mga wizards sa isang 3D printer at ibahagi ang mga kinakailangang file sa mga mambabasa sa bagay na bagay lisensyado sa ilalim ng CC-BY 3.0. Ang mga bahaging ito ay maaaring gawin sa iba pang mga paraan, o hindi ginawa.

Ang sumusunod na dalawang video ay nagpapakita kung paano sinubukan ng mga masters ang malayong pagkilos:





Ito ay nananatiling muling maitayo ang remote control sa parehong paraan, ngunit sa pamamagitan ng paghihinang, at ilagay ang resulta sa kaso, at sa iOS i-install ang Soundscape application at patakbuhin ito sa background, at maaari mong gamitin ang aparato.
0
0
0

Magdagdag ng isang puna

    • ngitinakangitixaxaok langhindi alamyahoonea
      bosskumamottangaoooo-ooagresibolihim
      sorrysayawsayaw2sayaw3kapatawarantumulonginumin
      humintomga kaibiganmabutigoodgoodsipolswoondila
      usokpumapalakpakkrayolaipahayagnakakainisdon-t_mentionpag-download
      initnakakainistumawa1mdapagpupulongnakikipag-usapnegatibo
      hindi_ipopcornparusahanbasahintakottakotpaghahanap
      panunuyasalamat_youitoto_clueumniktalamaksumang-ayon
      masamabeeeblack_eyeblum3namulamagyabanginip
      censoredkaaya-ayalihim2nagbabantatagumpayyusun_bespectacled
      shokrespektlolnagustuhanmaligayang pagdatingkrutoyya_za
      ya_dobryikatulongne_huliganne_othodimapusokpagbabawalmalapit
2 komentaryo
Upang iposisyon ang isang bagay na natipon sa isang tinapay na gawa bilang isang tapos na aparato, well, hindi ko alam ...
Maaari mong palitan ang "halip mahal na board", halimbawa, na may isang ESP32 Mini na nagkakahalaga ng tungkol sa 320 rubles. At mula sa breadboard upang ilipat ang lahat ng ekonomiya na ito sa pay-off board kahit papaano.

Pinapayuhan ka naming basahin:

Ipasa ito para sa smartphone ...