» Électronique » Arduino »Application de panneau de commande à six boutons Microsoft Soundscape

Panneau de configuration de l'application Microsoft Soundscape à six boutons




Panneau de configuration de l'application Microsoft Soundscape à six boutons


L'utilisation de l'application Microsoft Soundscape (pour une raison quelconque uniquement disponible pour le système d'exploitation iOS), qui permet aux aveugles de naviguer dans l'espace et de découvrir ce qui les entoure, à l'aide d'invites vocales, sera encore plus pratique si vous créez une télécommande externe à six boutons proposée par trois auteurs Instructables - Jazz Ang, Ana Liu et Venkatesh Potluri.

À proprement parler, Soundscape n'est pas un développement de Microsoft Corporation lui-même, mais sa division sous le nom de Microsoft Research, qui est engagée dans des expériences et des recherches dans divers domaines. On pense que même l'atmosphère interne y est complètement différente de celle du reste de l'entreprise.

Les boutons de la télécommande:

1 - démarrer / arrêter la lecture d'un fichier audio ou vidéo, et lorsque l'application Soundsdape s'exécute et s'exécute en arrière-plan, elle active / désactive également les notifications vocales de ce programme.

2 - son marche / arrêt complet, un analogue du bouton Muet de la télécommande du téléviseur.

3 - allez à la piste suivante dans le lecteur audio ou vidéo, et dans le programme Soundscape - allez à la prochaine notification vocale.

4 - allez à la piste précédente ou à la notification vocale.

5 - duplique le bouton Accueil.

6 - contrôle du mode "Virtual controller" du système d'exploitation iOS (vous permet d'utiliser des télécommandes externes comme décrit).

Comme le montre le diagramme fait maison, compilé dans le programme Fritzing, les boutons, dont chacun est complété par une résistance de rappel de 10 kΩ, sont connectés aux bornes 11, 7, 15, 16, 27 et 25 de la carte assez coûteuse Adafruit Feather nRF52 Bluefruit LE, qui est compatible avec Arduino IDE et contient un module bluetooth. Lorsque vous utilisez l'appareil, cette carte est alimentée par un câble micro USB standard de la banque d'alimentation et lors de la programmation - à partir d'un PC. Veuillez noter que de nombreuses banques d'alimentation s'éteignent automatiquement lorsque la consommation actuelle est trop faible et que le seuil d'arrêt dépend du modèle.



Après avoir assemblé la conception selon le schéma, les assistants configurent l'IDE Arduino pour fonctionner avec cette carte, comme indiqué dans les deux captures d'écran suivantes:




Après avoir tout configuré, les maîtres remplissent le croquis dans le tableau:

#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;
// connecter des broches dans la carte
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);
  tandis que (! Serial) retard (10); // pour nrf52840 avec usb natif

  Bluefruit.begin ();
  Bluefruit.setTxPower (4); // Vérifiez bluefruit.h pour les valeurs prises en charge
  Bluefruit.setName ("TESTArroundMeBluefruit52");

  // Configurer et démarrer le service d'informations sur les périphériques
  bledis.setManufacturer ("Adafruit Industries");
  bledis.setModel ("Bluefruit Feather 52");
  bledis.begin ();

  / * Démarrer BLE HID
   * Remarque: Apple requiert que l'appareil BLE ait un intervalle de connexion minimal> = 20 m
   * (Plus l'intervalle de connexion est petit, plus nous pourrions envoyer de données rapidement).
   * Cependant, pour les appareils HID et MIDI, Apple pourrait accepter un intervalle de connexion minimum
   * jusqu'à 11,25 ms. Par conséquent, BLEHidAdafruit :: begin () essaiera de définir les valeurs min et max
   * intervalle de connexion à 11,25 ms et 15 ms respectivement pour de meilleures performances.
   * /
  blehid.begin ();

  / * Réglez l'intervalle de connexion (min, max) à votre valeur préférée.
   * Remarque: il est déjà défini par BLEHidAdafruit :: begin () à 11,25 ms - 15 ms
   * min = 9 * 1,25 = 11,25 ms, max = 12 * 1,25 = 15 ms
   * /
  / * Bluefruit.Periph.setConnInterval (9, 12); * /

  // Configurer et commencer la publicité
  startAdv ();
}

void startAdv (void)
{
  // Paquet publicitaire
  Bluefruit.Advertising.addFlags (BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
  Bluefruit.Advertising.addTxPower ();
  Bluefruit.Advertising.addAppearance (BLE_APPEARANCE_HID_KEYBOARD);
  
  // Inclut le service BLE HID
  Bluefruit.Advertising.addService (blehid);

  // Il y a assez de place pour le nom du développeur dans le paquet publicitaire
  Bluefruit.Advertising.addName ();
  
  / * Commencer la publicité
   * - Activer la publicité automatique en cas de déconnexion
   * - Intervalle: mode rapide = 20 ms, mode lent = 152,5 ms
   * - Le délai d'attente pour le mode rapide est de 30 secondes
   * - Démarrer (timeout) avec timeout = 0 fera de la publicité pour toujours (jusqu'à ce qu'il soit connecté)
   *
   * Pour l'intervalle publicitaire recommandé
   * https://developer.apple.com/library/content/qa/qa1931/_index.html
   * /
  Bluefruit.Advertising.restartOnDisconnect (true);
  Bluefruit.Advertising.setInterval (32, 244); // en unité de 0,625 ms
  Bluefruit.Advertising.setFastTimeout (30); // nombre de secondes en mode rapide
  Bluefruit.Advertising.start (0); // 0 = Ne pas arrêter la publicité après n secondes
}

// utiliser cette fonction pour contrôler le téléphone
void sendCommand (commande uint16_t) {
  // Assurez-vous que nous sommes connectés et liés / appariés
  pour (uint16_t conn_hdl = 0; conn_hdl  connecté () && connexion-> jumelé ())
    {
      // Allumez la LED rouge lorsque nous commençons à envoyer des données
      digitalWrite (LED_RED, 1);
      Serial.println ("Commande d'envoi ...");

      // Appuyez sur la touche Envoyer
      blehid.consumerKeyPress (conn_hdl, commande);

      // Retard un peu entre les rapports
      retard (10);

      // Envoyer la libération de la clé
      blehid.consumerKeyRelease (conn_hdl);

      // Éteignez la LED rouge
      digitalWrite (LED_RED, 0);
      Serial.println ("Commande envoyée!");
    }
  }

  retard (250);
}

// utiliser cette fonction pour configurer avec le contrôle du commutateur
void sendSwitchControl (commande String) {
  for (int i = 0; i 


Du côté du système d'exploitation iOS, les assistants ont d'abord configuré le couplage avec la télécommande via Bluetooth:



Ensuite - les fonctions de tous les boutons de la section d'accessibilité:





Après s'être assuré que tout fonctionne, les assistants impriment des poussoirs de bouton sur une imprimante 3D et partagent les fichiers nécessaires avec les lecteurs sur thingiverse sous licence CC-BY 3.0. Ces pièces peuvent être réalisées d'autres manières, ou pas du tout.

Les deux vidéos suivantes montrent comment les maîtres testent la télécommande en action:





Il reste à reconstruire la télécommande de la même manière, mais en soudant, et en mettant le résultat dans le boîtier, et dans iOS installez l'application Soundscape et exécutez-la en arrière-plan, et vous pouvez utiliser l'appareil.
0
0
0

Ajoutez un commentaire

    • souriresouritxaxaokne sais pasYahoonea
      patronse gratterfououioui-ouiagressifsecret
      désolédansedanse2danse3pardonaiderles boissons
      arrêteramisbonbonsifflerévanouirla langue
      fumerapplaudircraydéclarermoqueurdon-t_mentiontélécharger
      chaleurirritérire1mdaréunionmasquagenégatif
      not_ipop-cornpunirlireeffrayerfait peurrecherche
      railleriemerci_vousçato_clueumnikaigud'accord
      mauvaisabeilleblack_eyeblum3rougirse vanterennui
      censuréplaisanteriesecret2menacervictoireyusun_bespectacled
      shokrespektlolprévalubienvenuekrutoyya_za
      ya_dobryiaidene_huliganne_othodifludinterdirefermer
2 commentaire
Pour positionner quelque chose assemblé sur une planche à pain comme un appareil fini, eh bien, je ne sais pas ...
Vous pouvez remplacer cette "carte plutôt chère", par exemple, par une ESP32 Mini d'une valeur d'environ 320 roubles. Et de la planche à pain pour transférer toute cette économie vers la carte de paiement au moins.

Nous vous conseillons de lire:

Donnez-le au smartphone ...