» elektronikk » Arduino »Seksknapps kontrollpanelapplikasjon Microsoft Soundscape

Seks-knapps Microsoft Soundscape app-kontrollpanel




Seks-knapps Microsoft Soundscape app-kontrollpanel


Å bruke Microsoft Soundscape-applikasjonen (av en eller annen grunn bare tilgjengelig for iOS-operativsystemet), som lar blinde navigere i verdensrommet og finne ut hva som er rundt dem, ved å bruke stemmemeldinger, vil være enda mer praktisk hvis du lager en ekstern seks-knapps fjernkontroll foreslått av tre forfattere Instruktiver - Jazz Ang, Ana Liu og Venkatesh Potluri.

Strengt tatt er Soundscape ikke en utvikling av Microsoft Corporation selv, men dens divisjon kalt Microsoft Research, som driver med eksperimenter og forskning på en lang rekke områder. Det antas at selv den indre atmosfæren der er helt annerledes enn i resten av selskapet.

Knappene på fjernkontrollen:

1 - start / stopp avspilling av en lyd- eller videofil, og når Soundsdape-applikasjonen kjører og kjører i bakgrunnen, slås den også på / av talevarsler fra dette programmet.

2 - full av / på lyd, en analog av Mute-knappen på TV-fjernkontrollen.

3 - gå til neste spor i lyd- eller videospilleren, og i Soundscape-programmet - gå til neste talemelding.

4 - gå til forrige spor eller talemelding.

5 - dupliserer Hjem-knappen.

6 - kontroll av "Virtual controller" -modus til iOS-operativsystemet (lar deg bruke eksterne fjernkontroller som beskrevet).

Som det fremgår av diagrammet hjemmelaget, samlet i Fritzing-programmet, og knappene, som hver er supplert med en 10 kΩ opptrekksmotstand, er koblet til terminalene 11, 7, 15, 16, 27 og 25 på det ganske dyre Adafruit Feather nRF52 Bluefruit LE-brettet, som er kompatibelt med Arduino IDE og inneholder en Bluetooth-modul. Når du bruker enheten, drives dette kortet av en standard Micro USB-kabel fra strømbank, og når du programmerer - fra en PC. Vær oppmerksom på at mange kraftbanker slår seg av automatisk når strømforbruket er for lavt, og nedleggelsesgrensen avhenger av modellen.



Etter å ha montert designet i henhold til skjemaet, konfigurerer veiviserne Arduino IDE til å jobbe med dette brettet, som vist i de følgende to skjermdumpene:




Etter å ha konfigurert alt, fyller mestrene skissen inn i tavlen:

#include 

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

BLEDis bledis;
BLEHidAdafruit blehid;

bool hasKeyPressed = falsk;
// koble pinner i brettet
int playpauseButtonPin = 11;
int muteButtonPin = 7;
int nextButtonPin = 15;
int backButtonPin = 16;
int homeButtonPin = 27;
int switchControlButtonPin = 25;

ugyldig oppsett ()
{
  pinMode (playpauseButtonPin, INPUT);
  pinMode (muteButtonPin, INPUT);
  pinMode (nextButtonPin, INPUT);
  pinMode (backButtonPin, INPUT);
  pinMode (homeButtonPin, INPUT);
  pinMode (switchControlButtonPin, INPUT);
  
  Serial.begin (115200);
  mens (! seriell) forsinkelse (10); // for nrf52840 med innbyggert usb

  Bluefruit.begin ();
  Bluefruit.setTxPower (4); // Sjekk bluefruit.h for støttede verdier
  Bluefruit.setName ("TESTArroundMeBluefruit52");

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

  / * Start BLE HID
   * Merk: Apple krever at BLE-enheten må ha min tilkoblingsintervall> = 20 meter
   * (Jo mindre tilkoblingsintervall jo raskere kan vi sende data).
   * For HID og MIDI-enheter kan Apple imidlertid godta min tilkoblingsintervall
   * opp til 11,25 ms. Derfor vil BLEHidAdafruit :: begin () prøve å stille inn min og maks
   * tilkoblingsintervall til henholdsvis 11,25 ms og 15 ms for best mulig ytelse.
   * /
  blehid.begin ();

  / * Angi tilkoblingsintervall (min, maks) til den valgte verdien.
   * Merk: Det er allerede satt av BLEHidAdafruit :: begin () til 11,25ms - 15ms
   * min = 9 * 1,25 = 11,25 ms, maks = 12 * 1,25 = 15 ms
   * /
  / * Bluefruit.Periph.setConnInterval (9, 12); * /

  // Sett opp og begynn å annonsere
  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-tjeneste
  Bluefruit.Advertising.addService (blehid);

  // Det er nok plass til dev-navnet i reklamepakken
  Bluefruit.Advertising.addName ();
  
  / * Begynn å annonsere
   * - Aktiver automatisk annonsering hvis den er koblet fra
   * - Intervall: hurtig modus = 20 ms, sakte modus = 152,5 ms
   * - Timeout for hurtigmodus er 30 sekunder
   * - Start (timeout) med timeout = 0 vil annonsere for alltid (tilkoblet)
   *
   * For anbefalt annonseintervall
   * https://developer.apple.com/library/content/qa/qa1931/_index.html
   * /
  Bluefruit.Advertising.restartOnDisconnect (sant);
  Bluefruit.Advertising.setInterval (32, 244); // i enhet på 0,625 ms
  Bluefruit.Advertising.setFastTimeout (30); // antall sekunder i hurtigmodus
  Bluefruit.Advertising.start (0); // 0 = Ikke slutt å annonsere etter n sekunder
}

// bruker denne funksjonen til å kontrollere telefonen
ugyldig sendCommand (uint16_t kommando) {
  // Forsikre deg om at vi er koblet og bundet / sammenkoblet
  for (uint16_t conn_hdl = 0; conn_hdl  tilkoblet () && tilkobling-> sammenkoblet ())
    {
      // Slå på rød lysdiode når vi begynner å sende data
      digitalWrite (LED_RED, 1);
      Serial.println ("Sender kommando ...");

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

      // Forsink litt mellom rapportene
      forsinkelse (10);

      // Send tastutgivelse
      blehid.consumerKeyRelease (conn_hdl);

      // Slå av den røde lysdioden
      digitalWrite (LED_RED, 0);
      Serial.println ("Kommando sendt!");
    }
  }

  forsinkelse (250);
}

// bruker denne funksjonen til å konfigurere med bryterkontroll
void sendSwitchControl (String-kommando) {
  for (int i = 0; i 


Fra siden av iOS-operativsystemet konfigurerer veiviserne først sammenkobling med fjernkontrollen via Bluetooth:



Deretter - funksjonene til alle knappene i tilgjengelighetsdelen:





Etter å ha sørget for at alt fungerer, trykker veiviserne knappetrykk på en 3D-skriver og deler de nødvendige filene med leserne på tingiverse lisensiert under CC-BY 3.0. Disse delene kan lages på andre måter, eller ikke produseres i det hele tatt.

Følgende to videoer viser hvordan mestere tester fjernkontrollen i aksjon:





Det gjenstår å gjenoppbygge fjernkontrollen på samme måte, men ved å lodde, og legge resultatet i saken, og i iOS installere Soundscape-applikasjonen og kjøre den i bakgrunnen, og du kan bruke enheten.
0
0
0

Legg til en kommentar

    • smilersmilerxaxaokdontknowyahoonea
      sjefscratchlurejaja-jaaggressivhemmelighet
      beklagerdansedance2dance3benådninghjelpdrikkevarer
      stoppvennergodgoodgoodfløytebesvimelsetunge
      røykklappingCrayerklærehånligdon-t_mentionnedlasting
      heteirefullaugh1MDAmøtemoskingnegative
      not_ipopcornstraffeleseskremmeskremmersøk
      spydighetthank_youdetteto_clueumnikakuttenig
      dårligbeeeblack_eyeblum3rødmeskrytekjedsomhet
      sensurertpleasantrysecret2trueseieryusun_bespectacled
      ShokRespektlolPrevedvelkommenKrutoyya_za
      ya_dobryihelperne_huliganne_othodiFLUDforbudnær
2 kommentarer
Å plassere noe samlet på en brødplate som et ferdig apparat, vel, jeg vet ikke ...
Du kan erstatte dette "ganske dyre brettet", for eksempel med en ESP32 Mini verdt 320 rubler. Og fra brødbrettet for å overføre all denne økonomien i det minste til avbetalingsstyret.

Vi anbefaler deg å lese:

Gi den til smarttelefonen ...