» elettronica » Arduino »Applicazione del pannello di controllo a sei pulsanti Microsoft Soundscape

Pannello di controllo dell'app Microsoft Soundscape a sei pulsanti




Pannello di controllo dell'app Microsoft Soundscape a sei pulsanti


L'uso dell'applicazione Microsoft Soundscape (per qualche motivo disponibile solo per il sistema operativo iOS), che consente ai non vedenti di navigare nello spazio e scoprire cosa li circonda, utilizzando i comandi vocali, sarà ancora più conveniente se si crea un telecomando esterno a sei pulsanti proposto da tre autori Instructables - Jazz Ang, Ana Liu e Venkatesh Potluri.

A rigor di termini, Soundscape non è uno sviluppo della stessa Microsoft Corporation, ma la sua divisione chiamata Microsoft Research, che è impegnata in esperimenti e ricerche in una vasta gamma di settori. Si ritiene che anche l'atmosfera interna sia completamente diversa rispetto al resto della società.

I pulsanti sul telecomando:

1 - avvia / interrompe la riproduzione di un file audio o video e quando l'applicazione Soundsdape è in esecuzione e in esecuzione in background, abilita / disabilita le notifiche vocali da questo programma.

2 - suono on / off completo, un analogo del pulsante Mute sul telecomando del televisore.

3 - vai alla traccia successiva nel lettore audio o video e nel programma Soundscape - vai alla notifica vocale successiva.

4 - vai al brano precedente o notifica vocale.

5 - duplica il pulsante Home.

6 - controllo della modalità "Virtual controller" del sistema operativo iOS (consente di utilizzare telecomandi esterni come descritto).

Come si può vedere dal diagramma fatto in casa, compilati nel programma Fritzing, i pulsanti, ognuno dei quali è integrato con una resistenza pull-up da 10 kΩ, sono collegati ai terminali 11, 7, 15, 16, 27 e 25 della piuttosto costosa scheda Adafruit Feather nRF52 Bluefruit LE, compatibile con Arduino IDE e contiene un modulo bluetooth. Quando si utilizza il dispositivo, questa scheda è alimentata da un cavo Micro USB standard da power bank e durante la programmazione da un PC. Si noti che molti power bank si spengono automaticamente quando il consumo corrente è troppo basso e la soglia di spegnimento dipende dal modello.



Dopo aver assemblato il progetto secondo lo schema, i maghi configurano l'IDE Arduino per funzionare con questa scheda, come mostrato nei seguenti due screenshot:




Dopo aver configurato tutto, i maestri compilano lo schizzo nella scheda:

#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;
// collega i pin nella scheda
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);
  while (! Serial) delay (10); // per nrf52840 con usb nativo

  Bluefruit.begin ();
  Bluefruit.setTxPower (4); // Controlla bluefruit.h per i valori supportati
  Bluefruit.setName ("TESTArroundMeBluefruit52");

  // Configura e avvia il servizio informazioni dispositivo
  bledis.setManufacturer ("Adafruit Industries");
  bledis.setModel ("Bluefruit Feather 52");
  bledis.begin ();

  / * Avvia BLE HID
   * Nota: Apple richiede che il dispositivo BLE deve avere un intervallo di connessione minimo> = 20 m
   * (Minore è l'intervallo di connessione, più velocemente potremmo inviare i dati).
   * Tuttavia, per i dispositivi HID e MIDI, Apple potrebbe accettare un intervallo di connessione minimo
   * fino a 11,25 ms. Pertanto BLEHidAdafruit :: begin () proverà a impostare min e max
   * intervallo di connessione rispettivamente a 11,25 ms e 15 ms per prestazioni ottimali.
   * /
  blehid.begin ();

  / * Imposta l'intervallo di connessione (min, max) sul valore assegnato.
   * Nota: è già impostato da BLEHidAdafruit :: begin () su 11,25ms - 15ms
   * min = 9 * 1,25 = 11,25 ms, max = 12 * 1,25 = 15 ms
   * /
  / * Bluefruit.Periph.setConnInterval (9, 12); * /

  // Imposta e avvia la pubblicità
  startAdv ();
}

void startAdv (void)
{
  // Pacchetto pubblicitario
  Bluefruit.Advertising.addFlags (BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
  Bluefruit.Advertising.addTxPower ();
  Bluefruit.Advertising.addAppearance (BLE_APPEARANCE_HID_KEYBOARD);
  
  // Include il servizio BLE HID
  Bluefruit.Advertising.addService (blehid);

  // C'è spazio sufficiente per il nome dev nel pacchetto pubblicitario
  Bluefruit.Advertising.addName ();
  
  / * Inizia la pubblicità
   * - Abilita la pubblicità automatica se disconnesso
   * - Intervallo: modalità veloce = 20 ms, modalità lenta = 152,5 ms
   * - Il timeout per la modalità veloce è di 30 secondi
   * - Start (timeout) con timeout = 0 pubblicizzerà per sempre (fino a quando non è collegato)
   *
   * Per intervallo pubblicitario consigliato
   * https://developer.apple.com/library/content/qa/qa1931/_index.html
   * /
  Bluefruit.Advertising.restartOnDisconnect (true);
  Bluefruit.Advertising.setInterval (32, 244); // in unità di 0,625 ms
  Bluefruit.Advertising.setFastTimeout (30); // numero di secondi in modalità veloce
  Bluefruit.Advertising.start (0); // 0 = Non interrompere la pubblicità dopo n secondi
}

// usando questa funzione per controllare il telefono
void sendCommand (comando uint16_t) {
  // Assicurati che siamo connessi e collegati / accoppiati
  per (uint16_t conn_hdl = 0; conn_hdl  connesso () && connessione-> paired ())
    {
      // Attiva il LED rosso quando iniziamo a inviare dati
      digitalWrite (LED_RED, 1);
      Serial.println ("Invio comando ...");

      // Invia tasto premuto
      blehid.consumerKeyPress (conn_hdl, comando);

      // Ritarda un po 'tra i rapporti
      ritardo (10);

      // Invia rilascio chiave
      blehid.consumerKeyRelease (conn_hdl);

      // Spegni il LED rosso
      digitalWrite (LED_RED, 0);
      Serial.println ("Comando inviato!");
    }
  }

  ritardo (250);
}

// usando questa funzione per configurare con il controllo switch
void sendSwitchControl (comando String) {
  for (int i = 0; i 


Dal lato del sistema operativo iOS, le procedure guidate configurano innanzitutto l'associazione con il telecomando tramite Bluetooth:



Quindi - le funzioni di tutti i pulsanti nella sezione accessibilità:





Dopo essersi accertati che tutto funzioni, i maghi stampano i pulsanti su una stampante 3D e condividono i file necessari con i lettori su thingiverse concesso in licenza in base a CC-BY 3.0. Queste parti possono essere realizzate in altri modi o non realizzate affatto.

I seguenti due video mostrano come i master testano il telecomando in azione:





Resta da ricostruire il telecomando allo stesso modo, ma mediante saldatura, e mettere il risultato nel caso, e in iOS installare l'applicazione Soundscape ed eseguirlo in background, quindi è possibile utilizzare il dispositivo.
0
0
0

Aggiungi un commento

    • sorrideresorrisiXaxabeneDONTKNOWyahoonea
      capozeroimbrogliaresìSì-sìaggressivosegreto
      scusaballaredance2dance3perdonoaiutobevande
      arrestoamicibuonogoodgoodfischiodeliquiolinguetta
      fumobattimanicraydeclarederisoriodon-t_mentionscaricare
      caloreadiratolaugh1mdaincontromoskingnegativo
      not_ipopcornpunireleggerespaventarespaventacerca
      schernirethank_youquestoto_clueumnikacutoconcordare
      cattivobeeeblack_eyeblum3arrossirevanterianoia
      censuratospiritosagginesecret2minacciarevittoriayusun_bespectacled
      ShokRespektlolPrevedbenvenutoKrutoyya_za
      ya_dobryiaiutantene_huliganne_othodiFludbandovicino
2 commenti
Per posizionare qualcosa assemblato su una breadboard come dispositivo finito, beh, non lo so ...
È possibile sostituire questa "scheda piuttosto costosa", ad esempio, con una Mini ESP32 del valore di circa 320 rubli. E dalla breadboard per trasferire almeno tutta questa economia alla scheda di pagamento.

Ti consigliamo di leggere:

Passalo per lo smartphone ...