» elektronik » Arduino »Seks-knap kontrolpanel applikation Microsoft Soundscape

Seks-knap Microsoft Soundscape app-kontrolpanel




Seks-knap Microsoft Soundscape app-kontrolpanel


Brug af Microsoft Soundscape-applikationen (af en eller anden grund kun tilgængelig til iOS-operativsystemet), som gør det muligt for blinde at navigere i rummet og finde ud af, hvad der er omkring dem, ved hjælp af stemmemeddelelser, vil være endnu mere praktisk, hvis du laver en ekstern seks-knap fjernbetjening foreslået af tre forfattere Instruktiver - Jazz Ang, Ana Liu og Venkatesh Potluri.

Strengt taget er Soundscape ikke en udvikling af Microsoft Corporation selv, men dens opdeling under navnet Microsoft Research, der beskæftiger sig med eksperimenter og forskning på forskellige områder. Det menes, at selv den interne atmosfære der er helt anderledes end i resten af ​​selskabet.

Knapperne på fjernbetjeningen:

1 - start / stop afspilning af en lyd- eller videofil, og når Soundsdape-applikationen kører og kører i baggrunden, tænder / slukker den også for stemmebesked fra dette program.

2 - fuld On / Off-lyd, en analog af Mute-knappen på TV-fjernbetjeningen.

3 - gå til det næste spor i lyd- eller videoafspilleren, og i Soundscape-programmet - gå til næste stemmemeddelelse.

4 - gå til det forrige spor eller stemmemeddelelse.

5 - duplikerer Hjem-knappen.

6 - kontrol af tilstanden "Virtuel controller" i iOS-operativsystemet (giver dig mulighed for at bruge eksterne fjernbetjeninger som beskrevet).

Som det ses af diagrammet hjemmelavet, samlet i Fritzing-programmet, er knapperne, der hver især er suppleret med en 10 kΩ pull-up-modstand, forbundet til terminalerne 11, 7, 15, 16, 27 og 25 på det temmelig dyre Adafruit Feather nRF52 Bluefruit LE-bord, som er kompatibelt med Arduino IDE og indeholder et Bluetooth-modul. Når du bruger enheden, er dette kort drevet af et standard Micro USB-kabel fra strømbanken, og ved programmering - fra en pc. Bemærk, at mange kraftbanker slukker automatisk, når det aktuelle forbrug er for lavt, og nedlukningstærsklen afhænger af modellen.



Efter at have samlet designet i henhold til skemaet, konfigurerer guiderne Arduino IDE til at arbejde med dette bord, som vist i de følgende to skærmbilleder:




Efter at have konfigureret alt, udfylder mestrene skissen i tavlen:

#include 

#definér CONTROL_PLAY_PAUSE 0x00CD
#definér CONTROL_SCAN_NEXT 0x00B5
#definér CONTROL_SCAN_PREVIOUS 0x00B6
#definér CONTROL_MUTE 0x00E2
#definer AC_FORWARD 0x0225
#definer AC_BACK 0x0224
#definer CONSUMER_BROWSER_HOME 0x0223

BLEDis bledis;
BLEHidAdafruit blehid;

bool hasKeyPression = falsk;
// tilslut stifter i brættet
int playpauseButtonPin = 11;
int muteButtonPin = 7;
int nextButtonPin = 15;
int backButtonPin = 16;
int homeButtonPin = 27;
int switchControlButtonPin = 25;

ugyldig opsætning ()
{
  pinMode (playpauseButtonPin, INPUT);
  pinMode (muteButtonPin, INPUT);
  pinMode (nextButtonPin, INPUT);
  pinMode (backButtonPin, INPUT);
  pinMode (homeButtonPin, INPUT);
  pinMode (switchControlButtonPin, INPUT);
  
  Serial.begin (115200);
  mens (! seriel) forsinkelse (10); // til nrf52840 med indbygget usb

  Bluefruit.begin ();
  Bluefruit.setTxPower (4); // Kontroller bluefruit.h for understøttede værdier
  Bluefruit.setName ("TESTArroundMeBluefruit52");

  // Konfigurer og start enhedsinformationstjeneste
  bledis.setProducent ("Adafruit Industries");
  bledis.setModel ("Bluefruit Feather 52");
  bledis.begin ();

  / * Start BLE HID
   * Bemærk: Apple kræver, at BLE-enheden skal have et lille forbindelsesinterval> = 20 m
   * (Jo mindre forbindelsesinterval, jo hurtigere kunne vi sende data).
   * Men for HID og MIDI-enhed kunne Apple acceptere et lille forbindelsesinterval
   * op til 11,25 ms. Derfor vil BLEHidAdafruit :: begin () forsøge at indstille min og max
   * forbindelsesinterval til henholdsvis 11,25 ms og 15 ms for bedst ydelse.
   * /
  blehid.begin ();

  / * Indstil tilslutningsinterval (min, max) til din perferred værdi.
   * Bemærk: Det er allerede indstillet af BLEHidAdafruit :: start () til 11.25ms - 15ms
   * min = 9 * 1,25 = 11,25 ms, maks = 12 * 1,25 = 15 ms
   * /
  / * Bluefruit.Periph.setConnInterval (9, 12); * /

  // Konfigurer og start annoncering
  startAdv ();
}

void startAdv (void)
{
  // Reklamepakke
  Bluefruit.Advertising.addFlags (BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
  Bluefruit.Advertising.addTxPower ();
  Bluefruit.Advertising.add Utseende (BLE_APPEARANCE_HID_KEYBOARD);
  
  // Inkluder BLE HID-service
  Bluefruit.Advertising.addService (blehid);

  // Der er plads nok til dev-navnet i reklamepakken
  Bluefruit.Advertising.addName ();
  
  / * Start annoncering
   * - Aktivér automatisk reklame, hvis den er afbrudt
   * - Interval: hurtig tilstand = 20 ms, langsom tilstand = 152,5 ms
   * - Timeout for hurtig tilstand er 30 sekunder
   * - Start (timeout) med timeout = 0 vil annoncere for evigt (indtil tilsluttet)
   *
   * Til anbefalet annonceinterval
   * https://developer.apple.com/library/content/qa/qa1931/_index.html
   * /
  Bluefruit.Advertising.restartOnDisconnect (sand);
  Bluefruit.Advertising.setInterval (32, 244); // i enhed på 0,625 ms
  Bluefruit.Advertising.setFastTimeout (30); // antal sekunder i hurtig tilstand
  Bluefruit.Advertising.start (0); // 0 = Stop ikke med at annoncere efter n sekunder
}

// ved hjælp af denne funktion til at styre telefonen
void sendCommand (uint16_t kommando) {
  // Sørg for, at vi er forbundet og bundet / parret
  for (uint16_t conn_hdl = 0; conn_hdl  tilsluttet () && forbindelse-> parret ())
    {
      // Tænd for rød LED, når vi begynder at sende data
      digitalWrite (LED_RED, 1);
      Serial.println ("Sender kommando ...");

      // Send tastetryk
      blehid.consumerKeyPress (conn_hdl, kommando);

      // Forsæt lidt mellem rapporter
      forsinkelse (10);

      // Send tastudgivelse
      blehid.consumerKeyRelease (conn_hdl);

      // Sluk for den røde LED
      digitalWrite (LED_RED, 0);
      Serial.println ("Kommando sendt!");
    }
  }

  forsinkelse (250);
}

// ved hjælp af denne funktion til at konfigurere med switch kontrol
void sendSwitchControl (String-kommando) {
  for (int i = 0; i 


Fra siden af ​​iOS-operativsystemet oprettede guiderne først parring med fjernbetjeningen via Bluetooth:



Derefter - funktionerne for alle knapper i afsnittet om tilgængelighed:





Når du har sørget for, at alt fungerer, udskriver guiderne en knap på en 3D-printer og deler de nødvendige filer med læserne på tingiverse licens under CC-BY 3.0. Disse dele kan fremstilles på andre måder eller slet ikke.

De følgende to videoer viser, hvordan mestre tester fjernbetjeningen i handling:





Det gjenstår at genopbygge fjernbetjeningen på samme måde, men ved at lodde og sætte resultatet i sagen, og i iOS installere Soundscape-applikationen og køre den i baggrunden, og du kan bruge enheden.
0
0
0

Tilføj en kommentar

    • smilesmilxaxaokdontknowyahoonea
      bossscratchnarrejaja-jaaggressivhemmelighed
      undskylddansdance2dance3benådninghjælpdrikkevarer
      stop-vennergodgoodgoodfløjtedånetunge
      røgklappecrayerklærerspottendedon-t_mentiondownloade
      hedeirefullaugh1mdamødemoskingnegativ
      not_ipopcornstraffelæseskræmmeforskrækkelsersøg
      hånethank_youdetteto_clueumnikakutenig
      dårligbeeeblack_eyeblum3blushpralekedsomhed
      censureretpleasantrysecret2truesejryusun_bespectacled
      SHOKRespektlolprevedvelkommenkrutoyya_za
      ya_dobryihjælperenne_huliganne_othodiFludforbudtæt
2 kommentarer
At placere noget samlet på en brødbræt som en færdig enhed, godt, jeg ved ikke ...
Du kan f.eks. Udskifte denne "temmelig dyre tavle" med en ESP32 Mini til en værdi af cirka 320 rubler. Og fra brødbrættet til mindst at overføre al denne økonomi til loddetavlen.

Vi råder dig til at læse:

Giv den til smartphonen ...