» Elektronika » Arduino »Šešių mygtukų valdymo pulto programa„ Microsoft Soundscape “

Šešių mygtukų „Microsoft Soundscape“ programos valdymo skydelis




Šešių mygtukų „Microsoft Soundscape“ programos valdymo skydelis


Naudoti „Microsoft Soundscape“ programą (dėl tam tikrų priežasčių galima tik „iOS“ operacinei sistemai), kuri leidžia neregiams naršyti erdvėje ir išsiaiškinti, kas yra aplinkui, pasinaudojant balso instrukcijomis, bus dar patogiau, jei padarysite išorinį šešių mygtukų nuotolinio valdymo pultą, kurį pasiūlė trys autoriai „Instructables - Jazz“. Ang, Ana Liu ir Venkatesh Potluri.

Griežtai tariant, „Soundscape“ nėra pačios „Microsoft Corporation“ plėtra, tačiau jos padalinys vadinamas „Microsoft Research“, kuris užsiima eksperimentais ir tyrimais labai įvairiose srityse. Manoma, kad net vidinė atmosfera ten yra visiškai kitokia nei likusioje korporacijos dalyje.

Nuotolinio valdymo pulto mygtukai:

1 - paleisti / sustabdyti garso ar vaizdo failo atkūrimą, o kai „Soundsdape“ programa veikia ir veikia fone, ji taip pat įjungia / išjungia balso pranešimus iš šios programos.

2 - visas įjungimo / išjungimo garsas, televizoriaus nuotolinio valdymo pulto mygtuko „Nutildyti“ analogas.

3 - pereikite prie kito garso arba vaizdo grotuvo takelio, o „Soundscape“ programoje - pereikite prie kito balso pranešimo.

4 - pereiti prie ankstesnio takelio ar balso pranešimo.

5 - dubliuoja mygtuką „Pagrindinis“.

6 - „iOS“ operacinės sistemos „virtualiojo valdiklio“ režimo valdymas (leidžia naudoti išorinius nuotolinio valdymo pultelius, kaip aprašyta).

Kaip matyti iš diagramos naminis, sukompiliuotoje programoje „Fritzing“, mygtukai, kurių kiekvienas papildytas 10 kΩ talpos rezistoriumi, yra prijungti prie gana brangios „Adafruit Feather nRF52 Bluefruit LE“ plokštės 11, 7, 15, 16, 27 ir 25 gnybtų, suderinamų su Arduino IDE ir jame yra „bluetooth“ modulis. Kai naudojate įrenginį, ši plokštė maitinama standartiniu „Micro USB“ kabeliu iš maitinimo banko, o programuojant - iš kompiuterio. Atminkite, kad daugelis galios bankų automatiškai išsijungia, kai dabartinis sunaudojimas yra per mažas, o išjungimo slenkstis priklauso nuo modelio.



Surinkę dizainą pagal schemą, vedliai sukonfigūruoja „Arduino IDE“ dirbti su šia lenta, kaip parodyta šiose dviejose ekrano kopijose:




Viską sukonfigūravę meistrai užpildo eskizą lentoje:

# įtraukti 

#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 = klaidingas;
// prijunkite smeigtukus lentoje
int playpauseButtonPin = 11;
int muteButtonPin = 7;
int nextButtonPin = 15;
int backButtonPin = 16;
int homeButtonPin = 27;
int switchControlButtonPin = 25;

negaliojanti sąranka ()
{
  „pinMode“ („playpauseButtonPin“, INPUT);
  „pinMode“ („muteButtonPin“, INPUT);
  pinMode (nextButtonPin, INPUT);
  „pinMode“ („backButtonPin“, INPUT);
  pinMode (homeButtonPin, INPUT);
  pinMode (switchControlButtonPin, INPUT);
  
  Serialas.beginas (115200);
  tuo tarpu (! nuoseklusis) delsimas (10); // už nrf52840 su vietine usb

  Bluefruit.begin ();
  „Bluefruit.setTxPower“ (4); // Patikrinkite bluefruit.h, ar nėra palaikomų verčių
  „Bluefruit.setName“ („TESTArroundMeBluefruit52“);

  // Konfigūruokite ir paleiskite įrenginio informacijos tarnybą
  bledis.setGamintojas („Adafruit Industries“);
  bledis.setModel („Bluefruit Plunksna 52“);
  bledis.begin ();

  / * Pradėti BLE HID
   * Pastaba: „Apple“ reikalauja, kad BLE įrenginio jungčių intervalas būtų> = 20m
   * (Kuo mažesnis ryšio intervalas, tuo greičiau galėtume siųsti duomenis).
   * Tačiau „HID“ ir „MIDI“ įrenginiams „Apple“ gali sutikti su minimaliu ryšio intervalu
   * iki 11,25 ms. Todėl BLEHidAdafruit :: begin () bandys nustatyti min. Ir maks
   * jungties intervalas atitinkamai iki 11,25 ms ir 15 ms, kad būtų užtikrintas geriausias našumas.
   * /
  blehid.begin ();

  / * Nustatykite prisijungimo intervalą (min., Maks.) Pagal jūsų leidžiamą vertę.
   * Pastaba: tai jau nustatė „BLEHidAdafruit :: begin“) 11,25–15 ms
   * min = 9 * 1,25 = 11,25 ms, maks. = 12 * 1,25 = 15 ms
   * /
  / * „Bluefruit.Periph.setConnInterval“ (9, 12); * /

  // Susikurkite ir pradėkite reklamą
  startAdv ();
}

void startAdv (negalioja)
{
  // Reklaminis paketas
  „Bluefruit.Advertising.addFlags“ (BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
  „Bluefruit.Advertising.addTxPower“ ();
  „Bluefruit.Advertising.add“ pasirodymas (BLE_APPEARANCE_HID_KEYBOARD);
  
  // Įtraukite BLE HID paslaugą
  „Bluefruit.Advertising.addService“ (blehid);

  // Reklamos pakete yra pakankamai vietos dev pavadinimui
  Bluefruit.Advertising.addName ();
  
  / * Pradėkite reklamuotis
   * - įgalinti automatinę reklamą, jei ji atjungta
   * - intervalas: greitasis režimas = 20 ms, lėtasis režimas = 152,5 ms
   * - greitojo režimo laikas yra 30 sekundžių
   * - pradžia (laikas) su timeout = 0 bus reklamuojama amžinai (kol bus prijungta)
   *
   * Dėl rekomenduojamo reklamos intervalo
   * https://developer.apple.com/library/content/qa/qa1931/_index.html
   * /
  „Bluefruit.Advertising.restartOnDisconnect“ (tiesa);
  „Bluefruit.Advertising.setInterval“ (32, 244); // 0,625 ms vienetu
  „Bluefruit.Advertising.setFastTimeout“ (30); // sekundžių skaičius greitajame režime
  „Bluefruit.Advertising.start“ (0); // 0 = Nenustokite reklamuotis po n sekundės
}

// Naudojant šią funkciją telefonui valdyti
void sendCommand (komanda uint16_t) {
  // Įsitikinkite, kad esame prijungti ir surišti / suporuoti
  už (uint16_t conn_hdl = 0; conn_hdl  prijungtas () ir ryšys-> suporuotas ())
    {
      // Įjunkite raudoną šviesos diodą, kai pradedame siųsti duomenis
      „digitalWrite“ (LED_RED, 1);
      „Serial.println“ („Siunčiama komanda ...“);

      // Siųsti klavišą
      blehid.consumerKeyPress (conn_hdl, komanda);

      // Šiek tiek atidėkite ataskaitas
      vėlavimas (10);

      // Siųsti rakto paleidimą
      blehid.consumerKeyRelease (conn_hdl);

      // Išjunkite raudoną šviesos diodą
      „digitalWrite“ (LED_RED, 0);
      „Serial.println“ („Komanda išsiųsta!“);
    }
  }

  vėlavimas (250);
}

// naudojant šią funkciją konfigūruoti su jungiklio valdymu
void sendSwitchControl (eilutės komanda) {
  už (int i = 0; i 


Iš „iOS“ operacinės sistemos pusės vedliai pirmiausia sukonfigūruoja poravimąsi su nuotolinio valdymo pultu per „Bluetooth“:



Tada - visų mygtukų, esančių pritaikymo neįgaliesiems skyriuje, funkcijos:





Įsitikinę, kad viskas veikia, vedliai spausdinimo mygtuką paspaudžia 3D spausdintuve ir dalijasi reikiamais failais su skaitytojais ant visatos licencijuota pagal CC-BY 3.0. Šios dalys gali būti pagamintos kitais būdais arba jų iš viso negalima gaminti.

Šie du vaizdo įrašai rodo, kaip meistrai išbando nuotolinio valdymo pultą veikiant:





Belieka atkurti nuotolinio valdymo pultą tuo pačiu būdu, bet litavimo būdu, o rezultatą įdėkite į bylą, o „iOS“ įdiekite „Soundscape“ programą ir paleiskite ją fone, o jūs galite naudoti įrenginį.
0
0
0

Pridėti komentarą

    • šypsotisšypsosixaxagerainežiniaYahoonea
      viršininkassubraižytikvailystaiptaip-taipagresyvusslapta
      atsiprašaušoktišokis2šokis3atleiskpadėtigėrimai
      sustotidraugaigeraigerašvilpukassupyktiliežuvis
      rūkytiplojimaiklastingaspareikštiniokojantisdon-t_mentionatsisiųsti
      šilumanedrąsusjuoktis1mdasusitikimasmoskingneigiamas
      not_ipopkornasnubaustiskaitytigąsdintigąsdinapaieška
      gundytiačiūtaito_clueumnikūmussusitarti
      blogaibičiųjuoda akisblum3skaistalaipasigirtinuobodulys
      cenzūruotamalonumasslapta2grasintipergalėju„sun_bespectacled“
      šoktipagarbalolišlenktaslaukiamekrutojusya_za
      ya_dobryipagalbininkasne_huliganne_othodifludisuždraustiarti
2 komentaras
Na, aš nežinau, kad ką nors, surinktą ant duonos lentos, išdėstyti kaip gatavą įrenginį ...
Galite pakeisti šią "gana brangią plokštę", pavyzdžiui, ESP32 Mini, kurios vertė yra apie 320 rublių. Ir nuo „lentos“ perduoti visą šią ekonomiką bent jau į „pay-off“ lentą.

Mes patariame perskaityti:

Perduokite jį išmaniajam telefonui ...