» electronică » Arduino »Aplicația panoului de control cu ​​șase butoane Microsoft Soundscape

Panoul de control al aplicației Microsoft Soundscape cu șase butoane




Panoul de control al aplicației Microsoft Soundscape cu șase butoane


Utilizarea aplicației Microsoft Soundscape (din anumite motive este disponibilă doar pentru sistemul de operare iOS), care permite nevăzătorilor să navigheze în spațiu și să afle ce se află în jurul lor, folosind prompturi vocale, va fi și mai convenabil dacă faceți o telecomandă externă cu șase butoane propusă de trei autori Instructables - Jazz Ang, Ana Liu și Venkatesh Potluri.

În mod strict, Soundscape nu este o dezvoltare a Microsoft Corporation în sine, ci divizia sa numită Microsoft Research, care este angajată în experimente și cercetări într-o mare varietate de domenii. Se crede că chiar atmosfera internă este complet diferită decât în ​​restul corporației.

Butoanele de pe telecomandă:

1 - începe / oprește redarea unui fișier audio sau video, iar când aplicația Soundsdape rulează și rulează în fundal, activează / oprește notificările vocale din acest program.

2 - sunet de pornire / oprire complet, un analog al butonului Mute de pe telecomanda TV.

3 - accesați următoarea melodie în playerul audio sau video, iar în programul Soundscape - mergeți la următoarea notificare vocală.

4 - accesați piesa anterioară sau notificarea vocală.

5 - duplicează butonul Acasă.

6 - controlul modului „Controler virtual” al sistemului de operare iOS (vă permite să utilizați telecomenzi externe, așa cum este descris).

După cum se poate observa din diagramă de casă, compilate în programul Fritzing, butoanele, fiecare fiind completată cu o rezistență de tragere de 10 kΩ, sunt conectate la terminalele 11, 7, 15, 16, 27 și 25 ale plăcii Adafruit Feather nRF52 Bluefruit LE, care este compatibilă, compatibilă cu Arduino IDE și conține un modul bluetooth. Când utilizați dispozitivul, această placă este alimentată de un cablu Micro USB standard de la banca de alimentare, și când programați - de la un computer. Vă rugăm să rețineți că multe bănci de energie se opresc automat atunci când consumul curent este prea mic, iar pragul de închidere depinde de model.



După ce au asamblat designul în conformitate cu schema, vrăjitorii configurează Arduino IDE pentru a lucra cu această placă, așa cum se arată în următoarele două capturi de ecran:




După ce au configurat totul, maeștrii completează schița în tablă:

#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;
// conectați pinii în placă
int playpauseButtonPin = 11;
int muteButtonPin = 7;
int nextButtonPin = 15;
int backButtonPin = 16;
int homeButtonPin = 27;
int switchControlButtonPin = 25;

void setup ()
{
  pinMode (playpauseButtonPin, INPUT);
  pinMode (muteButtonPin, INPUT);
  pinMode (nextButtonPin, INPUT);
  pinMode (backButtonPin, INPUT);
  pinMode (homeButtonPin, INPUT);
  pinMode (switchControlButtonPin, INPUT);
  
  Serial.begin (115200);
  în timp ce (! serial) întârzie (10); // pentru nrf52840 cu usb nativ

  Bluefruit.begin ();
  Bluefruit.setTxPower (4); // Verificați valorile acceptate de bluefruit.h
  Bluefruit.setName ("TESTArroundMeBluefruit52");

  // Configurarea și pornirea serviciului de informații despre dispozitiv
  bledis.setManufacturer („Adafruit Industries”);
  bledis.setModel ("Bluefruit Feather 52");
  bledis.begin ();

  / * Porniți BLE HID
   * Notă: Apple necesită dispozitivul BLE trebuie să aibă un interval de conectare minim> = 20m
   * (Cu cât intervalul de conexiune este mai mic, cu atât mai repede am putea trimite date).
   * Cu toate acestea, pentru dispozitivele HID și MIDI, Apple ar putea accepta un interval minim de conexiune
   * până la 11,25 ms. Prin urmare, BLEHidAdafruit :: begin () va încerca să stabilească min și max
   * interval de conectare la 11.25 ms, respectiv 15 ms, pentru cele mai bune performanțe.
   * /
  blehid.begin ();

  / * Setați intervalul de conexiune (min, max) la valoarea dvs. perferită.
   * Notă: Acesta este deja setat de BLEHidAdafruit :: begin () la 11.25ms - 15ms
   * min = 9 * 1,25 = 11,25 ms, max = 12 * 1,25 = 15 ms
   * /
  / * Bluefruit.Periph.setConnInterval (9, 12); * /

  // Configurați și începeți publicitatea
  startAdv ();
}

void startAdv (void)
{
  // Pachet de publicitate
  Bluefruit.Advertising.addFlags (BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
  Bluefruit.Advertising.addTxPower ();
  Bluefruit.Advertising.addAppaarance (BLE_APPEARANCE_HID_KEYBOARD);
  
  // Includeți serviciul BLE HID
  Bluefruit.Advertising.addService (blehid);

  // Există suficient spațiu pentru numele dev în pachetul de publicitate
  Bluefruit.Advertising.addName ();
  
  / * Începeți publicitatea
   * - Activați publicitatea auto dacă este deconectat
   * - Interval: modul rapid = 20 ms, modul lent = 152,5 ms
   * - Timpul de expirare pentru modul rapid este de 30 de secunde
   * - Start (timeout) cu timeout = 0 va face publicitate pentru totdeauna (până când este conectat)
   *
   * Pentru intervalul de publicitate recomandat
   * https://developer.apple.com/library/content/qa/qa1931/_index.html
   * /
  Bluefruit.Advertising.restartOnDisconnect (adevărat);
  Bluefruit.Advertising.setInterval (32, 244); // în unitate de 0,625 ms
  Bluefruit.Advertising.setFastTimeout (30); // numărul de secunde în modul rapid
  Bluefruit.Advertising.start (0); // 0 = Nu opriți publicitatea după n secunde
}

// folosind această funcție pentru a controla telefonul
void sendCommand (comanda uint16_t) {
  // Asigurați-vă că suntem conectați și legați / împerechem
  for (uint16_t conn_hdl = 0; conn_hdl  conectat () && connection-> paired ())
    {
      // Porniți LED-ul roșu când începem să trimitem date
      digitalWrite (LED_RED, 1);
      Serial.println ("Se trimite comanda ...");

      // Trimiteți apăsarea tastei
      blehid.consumerKeyPress (conn_hdl, comandă);

      // Întârziați un pic între rapoarte
      întârziere (10);

      // Trimiteți versiunea de cheie
      blehid.consumerKeyRelease (conn_hdl);

      // Opriți LED-ul roșu
      digitalWrite (LED_RED, 0);
      Serial.println ("Comandă trimisă!");
    }
  }

  întârziere (250);
}

// folosind această funcție pentru a configura cu control comutator
void sendSwitchControl (comanda String) {
  for (int i = 0; i 


Din partea sistemului de operare iOS, vrăjitorii configurează mai întâi împerecherea cu telecomanda prin Bluetooth:



Apoi - funcțiile tuturor butoanelor din secțiunea de accesibilitate:





După ce te-ai asigurat că totul funcționează, butoanele de imprimare ale vrăjitorilor apasă pe o imprimantă 3D și împărtășesc fișierele necesare cititorilor pe lucruri licențiat în baza CC-BY 3.0. Aceste piese pot fi realizate în alte moduri, sau deloc realizate.

Următoarele două videoclipuri arată cum stăpânii testează telecomanda în acțiune:





Rămâne să reconstruiți telecomanda în același mod, dar prin lipire și puneți rezultatul în caz, iar în iOS instalați aplicația Soundscape și rulați-o în fundal, și puteți utiliza dispozitivul.
0
0
0

Adaugă un comentariu

    • zâmbetzâmbetexaxabinedontknowYahooNea
      șefzgârieturăpăcălidada-daagresivsecret
      scuzedansdance2dance3iertareajutorbăuturi
      oprireprietenibungoodgoodfluiersincopălimbă
      fumaplauzeCrayvestimbatjocoritorDon-t_mentiondescărcare
      căldurămânioslaugh1mdaîntâlniremoskingnegativ
      not_ifloricele de porumbpedepsicititsperiasperiecăutare
      batjocurăthank_youacestto_clueUmnikacutconveni
      răubeeeblack_eyeblum3roșilăudăroșenieplictiseală
      cenzuratpleasantrysecret2amenințavictorieyusun_bespectacled
      ShokRespektlolprevedbun venitKrutoyya_za
      ya_dobryiajutorne_huliganne_othodifludinterdicțieînchide
2 comentarii
Pentru a poziționa ceva asamblat pe o placă de pâine ca dispozitiv final, nu știu ...
Puteți înlocui acest „bord destul de scump”, de exemplu, cu un ESP32 Mini în valoare de aproximativ 320 de ruble. Și de la placa de panou pentru a transfera toată această economie în consiliul de plată cel puțin.

Vă sfătuim să citiți:

Înmânează-l pentru smartphone ...