» elektronik » Arduino »Sex-knapps kontrollpanelapplikation Microsoft Soundscape

Sex-knapps Microsoft Soundscape-appens kontrollpanel




Sex-knapps Microsoft Soundscape-appens kontrollpanel


Att använda Microsoft Soundscape-applikationen (av någon anledning endast tillgänglig för iOS-operativsystemet), som gör att blinda kan navigera i rymden och ta reda på vad som finns runt dem, med hjälp av röstmeddelanden, kommer att bli ännu bekvämare om du gör en extern sexknapps fjärrkontroll som föreslås av tre författare Instruktionsbara - Jazz Ang, Ana Liu och Venkatesh Potluri.

Strängt taget är Soundscape inte en utveckling av Microsoft Corporation själv, utan dess division som kallas Microsoft Research, som bedriver experiment och forskning inom en mängd olika områden. Det tros att även den inre atmosfären där är helt annorlunda än i resten av företaget.

Knapparna på fjärrkontrollen:

1 - starta / stoppa uppspelning av en ljud- eller videofil, och när programmet Soundsdape körs och körs i bakgrunden, slås det också på / av röstmeddelanden från detta program.

2 - fullt on / off-ljud, en analog till Mute-knappen på TV-fjärrkontrollen.

3 - gå till nästa spår i ljud- eller videospelaren och i Soundscape-programmet - gå till nästa röstmeddelande.

4 - gå till föregående spår eller röstmeddelande.

5 - duplicerar Hem-knappen.

6 - kontroll av "Virtual controller" -läget i iOS-operativsystemet (gör att du kan använda externa fjärrkontroller som beskrivs).

Som framgår av diagrammet hemlagad, sammanställda i Fritzing-programmet, varvid knapparna, var och en kompletteras med ett 10 kOhm pull-up-motstånd, är anslutna till terminalerna 11, 7, 15, 16, 27 och 25 på det ganska dyra Adafruit Feather nRF52 Bluefruit LE-kortet, som är kompatibelt med Arduino IDE och innehåller en Bluetooth-modul. När du använder enheten drivs det här kortet med en vanlig Micro USB-kabel från nätbanken och vid programmering - från en PC. Observera att många kraftbanker stängs av automatiskt när den nuvarande förbrukningen är för låg, och avstängningsgränsen beror på modellen.



Efter att ha monterat designen enligt schemat konfigurerar guiderna Arduino IDE för att arbeta med detta kort, som visas i följande två skärmdumpar:




Efter att ha konfigurerat allt fyller mästarna in skissen i brädet:

#include 

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

BLEDis bledis;
BLEHidAdafruit blehid;

bool hasKeyPression = falsk;
// anslut stift i kortet
int playpauseButtonPin = 11;
int muteButtonPin = 7;
int nextButtonPin = 15;
int backButtonPin = 16;
int homeButtonPin = 27;
int switchControlButtonPin = 25;

ogiltig installation ()
{
  pinMode (playpauseButtonPin, INPUT);
  pinMode (muteButtonPin, INPUT);
  pinMode (nextButtonPin, INPUT);
  pinMode (backButtonPin, INPUT);
  pinMode (homeButtonPin, INPUT);
  pinMode (switchControlButtonPin, INPUT);
  
  Serial.begin (115200);
  medan (! seriell) fördröjning (10); // för nrf52840 med inbyggd usb

  Bluefruit.begin ();
  Bluefruit.setTxPower (4); // Kontrollera bluefruit.h för värden som stöds
  Bluefruit.setName ("TESTArroundMeBluefruit52");

  // Konfigurera och starta enhetsinformationstjänsten
  bledis.setProducent ("Adafruit Industries");
  bledis.setModel ("Bluefruit Feather 52");
  bledis.begin ();

  / * Starta BLE HID
   * Obs: Apple kräver att BLE-enheten måste ha min anslutningsintervall> = 20 m
   * (Ju mindre anslutningsintervallet desto snabbare kunde vi skicka data).
   * Men för HID- och MIDI-enheter kan Apple acceptera min anslutningsintervall
   * upp till 11,25 ms. Därför kommer BLEHidAdafruit :: begin () att försöka ställa in min och max
   * anslutningsintervall till 11,25 ms respektive 15 ms för bästa prestanda.
   * /
  blehid.begin ();

  / * Ställ in anslutningsintervall (min, max) till ditt perforerade värde.
   * Obs: Det är redan inställt av BLEHidAdafruit :: start () till 11,25ms - 15ms
   * min = 9 * 1,25 = 11,25 ms, max = 12 * 1,25 = 15 ms
   * /
  / * Bluefruit.Periph.setConnInterval (9, 12); * /

  // Ställ in och börja annonsera
  startAdv ();
}

void startAdv (void)
{
  // Reklampaket
  Bluefruit.Advertising.addFlags (BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
  Bluefruit.Advertising.addTxPower ();
  Bluefruit.Advertising.add Utseende (BLE_APPEARANCE_HID_KEYBOARD);
  
  // Inkludera BLE HID-tjänst
  Bluefruit.Advertising.addService (blehid);

  // Det finns tillräckligt med utrymme för dev-namnet i reklampaketet
  Bluefruit.Advertising.addName ();
  
  / * Börja annonsera
   * - Aktivera automatisk annonsering om den är frånkopplad
   * - Intervall: snabbläge = 20 ms, långsamt läge = 152,5 ms
   * - Timeout för snabbläge är 30 sekunder
   * - Start (timeout) med timeout = 0 kommer att annonsera för alltid (tills det är anslutet)
   *
   * För rekommenderat reklamintervall
   * https://developer.apple.com/library/content/qa/qa1931/_index.html
   * /
  Bluefruit.Advertising.restartOnDisconnect (sant);
  Bluefruit.Advertising.setInterval (32, 244); // i en enhet på 0,625 ms
  Bluefruit.Advertising.setFastTimeout (30); // antal sekunder i snabbläge
  Bluefruit.Advertising.start (0); // 0 = Sluta inte annonsera efter n sekunder
}

// med denna funktion för att styra telefonen
void sendCommand (uint16_t kommando) {
  // Se till att vi är anslutna och bundna / parade
  för (uint16_t conn_hdl = 0; conn_hdl  ansluten () && anslutning-> parad ())
    {
      // Slå på röd lysdiod när vi börjar skicka data
      digitalWrite (LED_RED, 1);
      Serial.println ("Skicka kommando ...");

      // Skicka knapptryckning
      blehid.consumerKeyPress (conn_hdl, kommando);

      // Fördröja lite mellan rapporter
      fördröjning (10);

      // Skicka nyckelutsläpp
      blehid.consumerKeyRelease (conn_hdl);

      // Stäng av den röda lysdioden
      digitalWrite (LED_RED, 0);
      Serial.println ("Kommando skickat!");
    }
  }

  fördröjning (250);
}

// med denna funktion för att konfigurera med omkopplarstyrning
void sendSwitchControl (String-kommando) {
  för (int i = 0; i 


Från sidan av iOS-operativsystemet skapade guiderna först parning med fjärrkontrollen via Bluetooth:



Sedan - funktionerna för alla knappar i tillgänglighetsavsnittet:





När du har kontrollerat att allt fungerar trycker guiderna på en 3D-skrivare och delar de nödvändiga filerna med läsarna på saken licensierad enligt CC-BY 3.0. Dessa delar kan tillverkas på andra sätt eller inte alls.

Följande två videor visar hur mästare testar fjärrkontrollen i aktion:





Det återstår att bygga om fjärrkontrollen på samma sätt, men genom att lödas och sätta resultatet i fallet, och i iOS installera Soundscape-programmet och köra det i bakgrunden, så kan du använda enheten.
0
0
0

Lägg till en kommentar

    • lelerxaxaOKdontknowyahoonea
      bossscratchluraJaja-jaaggressivhemlighet
      ledsendansdance2dance3benådningHjälpdrycker
      stoppvännerbragoodgoodvisselpipasvimningsanfalltunga
      rökklapparcraydeclarehånfulldon-t_mentionnedladdning
      hettaRASANDElaugh1mdamötemoskingnegativ
      not_ipopcornstraffalässkrämmalarmrapportersök
      hånthank_youdettato_clueumnikakutöverens
      illabeeeblack_eyeblum3rougeskrytaledan
      censureradepleasantrysecret2hotasegeryusun_bespectacled
      shokrespektlolprevedvälkommenkrutoyya_za
      ya_dobryihjälparene_huliganne_othodiFLUDförbudstänga
2 kommentarer
Att placera något monterat på en brödskiva som en färdig enhet, det vet jag inte ...
Du kan ersätta detta "ganska dyra kort", till exempel med en ESP32 Mini värd cirka 320 rubel. Och från brödskivan för att överföra all denna ekonomi åtminstone till utbetalningskortet.

Vi rekommenderar att du läser:

Räcka den till smarttelefonen ...