» elektronika » Arduino »Hatgombos kezelőpanel alkalmazás, a Microsoft Soundscape

Hatgombos Microsoft Soundscape alkalmazás vezérlőpultja




Hatgombos Microsoft Soundscape alkalmazás vezérlőpultja


A Microsoft Soundscape alkalmazás (valamilyen okból csak az iOS operációs rendszerhez elérhető) használata, amely lehetővé teszi a vak számára az űrben való navigációt, és hangutasítások segítségével megtudja, mi van körülöttük, még kényelmesebb lesz, ha külső hatgombos távirányítót készít, amelyet három szerző javasolt. Instructables - Jazz Ang, Ana Liu és Venkatesh Potluri.

Szigorúan véve, a Soundscape nem maga a Microsoft Corporation fejlesztése, hanem a Microsoft Research elnevezésű részlege, amely kísérletekkel és kutatásokkal foglalkozik sokféle területen. Úgy gondolják, hogy még a belső légkör is teljesen más, mint a társaság többi részén.

A távirányító gombjai:

1 - audio- vagy videofájl lejátszásának elindítása / leállítása, és amikor a Soundsdape alkalmazás fut, és a háttérben fut, bekapcsolja / ki is kapcsolja a program hangjelzéseit.

2 - teljes be / ki hang, a TV-távvezérlő némítás gombjának analógja.

3 - lépjen a következő műsorszámra az audio- vagy videolejátszóban, a Soundscape programban - a következő hangos értesítéshez.

4 - lépjen az előző zeneszámra vagy hangos értesítésre.

5 - másolja a Kezdőlap gombot.

6 - az iOS operációs rendszer "Virtuális vezérlő" módjának vezérlése (lehetővé teszi a külső távirányítók használatát, amint az leírt).

Amint az az ábrán látható házi, a Fritzing programban összeállított gombok, amelyek mindegyike 10 kΩ-os ellenállással van kiegészítve, a meglehetősen drága Adafruit Feather nRF52 Bluefruit LE tábla 11., 7., 15., 16., 27. és 25. kapcsaihoz vannak csatlakoztatva, amely kompatibilis a Arduino IDE, és tartalmaz egy bluetooth modult. Az eszköz használatakor a tápegység tápellátását egy normál mikro-USB-kábel táplálja a tápegységből, és programozásakor - a számítógépből. Felhívjuk figyelmét, hogy sok energiabank automatikusan kikapcsol, ha az áramfogyasztás túl alacsony, és a kikapcsolási küszöb a modelltől függ.



Miután a terv szerint összeállították a sémát, a varázslók beállítják az Arduino IDE-t, hogy működjön együtt ezzel a táblával, a következő két képernyőképe alapján:




Mindent beállítva, a mesterek kitöltik a vázlatot a táblába:

#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;
// csatlakoztassa a táblán lévő csapokat
int playpauseButtonPin = 11;
int muteButtonPin = 7;
int következőButtonPin = 15;
int backButtonPin = 16;
int homeButtonPin = 27;
int switchControlButtonPin = 25;

érvénytelen beállítás ()
{
  pinMode (playpauseButtonPin, INPUT);
  pinMode (muteButtonPin, INPUT);
  pinMode (nextButtonPin, INPUT);
  pinMode (backButtonPin, INPUT);
  pinMode (homeButtonPin, INPUT);
  pinMode (switchControlButtonPin, INPUT);
  
  Serial.begin (115200);
  míg (! soros) késleltetés (10); // a nrf52840 esetében natív usb-val

  Bluefruit.begin ();
  Bluefruit.setTxPower (4); // Ellenőrizze a bluefruit.h támogatott értékeit
  Bluefruit.setName ("TESTArroundMeBluefruit52");

  // Az eszközinformációs szolgáltatás konfigurálása és indítása
  bledis.setManufacturer ("Adafruit Industries");
  bledis.setModel ("Bluefruit Feather 52");
  bledis.begin ();

  / * Indítsa el a BLE HID-t
   * Megjegyzés: Az Apple megköveteli, hogy a BLE eszköz minimális csatlakozási intervallum legyen> = 20m
   * (Minél kisebb a csatlakozási intervallum, annál gyorsabban tudunk adatokat küldeni).
   * A HID és a MIDI eszközök esetében az Apple azonban elfogadhatja a minimális csatlakozási intervallumot
   * 11,25 ms-ig. Ezért a BLEHidAdafruit :: begin () megpróbálja beállítani a min és a max értéket
   * A csatlakoztatási intervallum 11,25 ms-ra és 15 ms-ra a legjobb teljesítmény érdekében.
   * /
  blehid.begin ();

  / * Állítsa be a csatlakozási intervallumot (min, max) az engedélyezett értékre.
   * Megjegyzés: A BLEHidAdafruit :: begin () már beállította 11,25ms - 15ms-re
   * min = 9 * 1,25 = 11,25 ms, max = 12 * 1,25 = 15 ms
   * /
  / * Bluefruit.Periph.setConnInterval (9, 12); * /

  // Állítsa be és indítsa el a hirdetést
  startAdv ();
}

érvénytelen startAdv (érvénytelen)
{
  // Reklámcsomag
  Bluefruit.Advertising.addFlags (BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
  Bluefruit.Advertising.addTxPower ();
  Bluefruit.Advertising.addApearance (BLE_APPEARANCE_HID_KEYBOARD);
  
  // Tartalmazza a BLE HID szolgáltatást
  Bluefruit.Advertising.addService (blehid);

  // Elegendő hely van a dev névre a reklámcsomagban
  Bluefruit.Advertising.addName ();
  
  / * Reklám indítása
   * - Automatikus hirdetés engedélyezése, ha nincs kapcsolat
   * - Intervallum: gyors mód = 20 ms, lassú mód = 152,5 ms
   * - A gyors üzemmód időtúllépése 30 másodperc
   * - Start (időtúllépés) időtúllépéssel = 0 örökre hirdet (a csatlakozásig)
   *
   * Az ajánlott hirdetési intervallumhoz
   * https://developer.apple.com/library/content/qa/qa1931/_index.html
   * /
  Bluefruit.Advertising.restartOnDisconnect (true);
  Bluefruit.Hirdetés.setInterval (32, 244); // egysége 0,625 ms
  Bluefruit.Advertising.setFastTimeout (30); // másodpercek száma gyors módban
  Bluefruit.Advertising.start (0); // 0 = Ne hagyja abba a reklámozást n másodperc után
}

// ezzel a funkcióval a telefon vezérlésére
void sendCommand (uint16_t parancs) {
  // Győződjön meg arról, hogy csatlakoztatva vannak és össze vannak kötve / párosítva
  mert (uint16_t conn_hdl = 0; conn_hdl  csatlakoztatott () && kapcsolat-> párosítva ())
    {
      // Az adatküldés megkezdésekor kapcsolja be a piros LED-et
      digitalWrite (LED_RED, 1);
      Serial.println ("Küldési parancs ...");

      // Küldés gomb megnyomásával
      blehid.consumerKeyPress (conn_hdl, parancs);

      // Késleltessen egy kicsit a jelentések között
      késleltetés (10);

      // kulcskioldás küldése
      blehid.consumerKeyRelease (conn_hdl);

      // Kapcsolja ki a piros LED-et
      digitalWrite (LED_RED, 0);
      Serial.println ("Parancs elküldve!");
    }
  }

  késleltetés (250);
}

// ezzel a funkcióval konfigurálható kapcsolóvezérléssel
void sendSwitchControl (karakterlánc parancs) {
  mert (int i = 0; i 


Az iOS operációs rendszer oldaláról a varázslók először párosítják a távirányítót Bluetooth-on:



Ezután - az összes gomb működése az akadálymentesség szakaszban:





Miután meggyőződött arról, hogy minden működik, a varázslók nyomtatási gombja megnyomja a 3D nyomtatót, és megosztja a szükséges fájlokat az olvasókkal a sokoldalúan CC-BY 3.0 alapján engedélyezett. Ezeket az alkatrészeket más módon is el lehet készíteni, vagy egyáltalán nem lehet elkészíteni.

A következő két videó bemutatja, hogy a mesterek miként tesztelik a távirányítót működésben:





A távirányítót ugyanúgy kell újraépíteni, hanem forrasztással, és az eredményt az ügybe kell tenni, és iOS-ben telepíteni kell a Soundscape alkalmazást, és futtatni a háttérben, és használhatja az eszközt.
0
0
0

Adj hozzá egy megjegyzést

    • smilemosolyogxaxarendbendontknowjehunea
      főnökkarcolásbolondigenigen-igenagresszívtitok
      Bocsánattáncdance2dance3megbocsátássegítségitalok
      megállásbarátokjógoodgoodsípájulásnyelv
      füsttapsolóCrayállapítsagúnyosdon-t_mentionletöltés
      hőségingerültlaugh1MDAtalálkozómoskingnegatív
      not_ipopcornbüntetolvasmegijesztijesztkeresés
      gúnyolódásthank_youeztto_clueumnikakutegyetért
      rosszbeeeblack_eyeblum3pírdicsekvésunalom
      cenzúrázottvidámságsecret2fenyegetgyőzelemyusun_bespectacled
      ShokRespektlolprevedfogadtatáskrutoyya_za
      ya_dobryisegítőne_huliganne_othodiFLUDtilalomközel
2 megjegyzések
Nos, nem tudom, hogy a kenyérvágólapra összeszerelt valamit kész eszközként helyezzük el
Ezt a "meglehetősen drága táblát" lecserélheti például egy ESP32 Mini-re, amely körülbelül 320 rubelt ér. És a kenyértartótól kezdve, hogy ezt a gazdaságot átadjuk legalább a kifizető testületnek.

Azt javasoljuk, hogy olvassa el:

Adja át az okostelefon számára ...