» Elektronik » Arduino »Sechs-Tasten-Bedienfeldanwendung Microsoft Soundscape

Microsoft Soundscape App-Bedienfeld mit sechs Tasten




Microsoft Soundscape App-Bedienfeld mit sechs Tasten


Die Verwendung der Microsoft Soundscape-Anwendung (aus irgendeinem Grund nur für das iOS-Betriebssystem verfügbar), mit der Blinde mithilfe von Sprachansagen im Weltraum navigieren und herausfinden können, was sich um sie herum befindet, ist noch bequemer, wenn Sie eine externe Fernbedienung mit sechs Tasten verwenden, die von drei Autoren vorgeschlagen wurde. Instructables - Jazz Ang, Ana Liu und Venkatesh Potluri.

Genau genommen handelt es sich bei Soundscape nicht um eine Entwicklung der Microsoft Corporation selbst, sondern um eine Abteilung unter dem Namen Microsoft Research, die Experimente und Forschungen in verschiedenen Bereichen durchführt. Es wird angenommen, dass selbst die interne Atmosphäre dort völlig anders ist als im Rest des Unternehmens.

Die Tasten auf der Fernbedienung:

1 - Starten / Stoppen der Wiedergabe einer Audio- oder Videodatei. Wenn die Soundsdape-Anwendung im Hintergrund ausgeführt wird, werden auch Sprachbenachrichtigungen von diesem Programm ein- und ausgeschaltet.

2 - Voller Ein / Aus-Ton, ein Analogon der Mute-Taste auf der TV-Fernbedienung.

3 - Gehen Sie zum nächsten Titel im Audio- oder Videoplayer und im Soundscape-Programm - Gehen Sie zur nächsten Sprachbenachrichtigung.

4 - Gehen Sie zum vorherigen Titel oder zur vorherigen Sprachbenachrichtigung.

5 - dupliziert die Home-Taste.

6 - Steuerung des "Virtual Controller" -Modus des iOS-Betriebssystems (ermöglicht die Verwendung externer Fernbedienungen wie beschrieben).

Wie aus dem Diagramm ersichtlich hausgemachtDie im Fritzing-Programm kompilierten Tasten, die jeweils durch einen 10-kOhm-Pull-up-Widerstand ergänzt werden, sind mit den Klemmen 11, 7, 15, 16, 27 und 25 der recht teuren Adafruit Feather nRF52 Bluefruit LE-Platine verbunden, mit der kompatibel ist Arduino IDE und enthält ein Bluetooth-Modul. Bei Verwendung des Geräts wird diese Karte über ein Standard-Micro-USB-Kabel von der Power Bank und beim Programmieren von einem PC aus mit Strom versorgt. Bitte beachten Sie, dass sich viele Powerbanks automatisch ausschalten, wenn der Stromverbrauch zu niedrig ist und die Abschaltschwelle vom Modell abhängt.



Nachdem die Assistenten das Design gemäß dem Schema zusammengestellt haben, konfigurieren sie die Arduino IDE für die Verwendung mit dieser Karte, wie in den folgenden beiden Screenshots gezeigt:




Nachdem die Master alles konfiguriert haben, füllen sie die Skizze in die Tafel aus:

#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;
// Pins in der Platine verbinden
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); // für nrf52840 mit nativem usb

  Bluefruit.begin ();
  Bluefruit.setTxPower (4); // Überprüfen Sie bluefruit.h auf unterstützte Werte
  Bluefruit.setName ("TESTArroundMeBluefruit52");

  // Geräteinformationsdienst konfigurieren und starten
  bledis.setManufacturer ("Adafruit Industries");
  bledis.setModel ("Bluefruit Feather 52");
  bledis.begin ();

  / * Starten Sie BLE HID
   * Hinweis: Apple verlangt, dass das BLE-Gerät ein Mindestverbindungsintervall von> = 20 m hat
   * (Je kleiner das Verbindungsintervall, desto schneller können wir Daten senden).
   * Für HID- und MIDI-Geräte kann Apple jedoch ein minimales Verbindungsintervall akzeptieren
   * bis zu 11,25 ms. Daher versucht BLEHidAdafruit :: begin (), die Min- und Max-Werte festzulegen
   * Verbindungsintervall bis 11,25 ms bzw. 15 ms für beste Leistung.
   * /
  blehid.begin ();

  / * Stellen Sie das Verbindungsintervall (min, max) auf Ihren bevorzugten Wert ein.
   * Hinweis: Es wurde bereits von BLEHidAdafruit :: begin () auf 11,25 ms - 15 ms festgelegt
   * min = 9 * 1,25 = 11,25 ms, max = 12 * 1,25 = 15 ms
   * /
  / * Bluefruit.Periph.setConnInterval (9, 12); * /

  // Werbung einrichten und starten
  startAdv ();
}}

void startAdv (void)
{
  // Werbepaket
  Bluefruit.Advertising.addFlags (BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
  Bluefruit.Advertising.addTxPower ();
  Bluefruit.Advertising.addAppearance (BLE_APPEARANCE_HID_KEYBOARD);
  
  // BLE HID-Service einschließen
  Bluefruit.Advertising.addService (blehid);

  // Im Werbepaket ist genügend Platz für den Entwicklernamen
  Bluefruit.Advertising.addName ();
  
  / * Werbung starten
   * - Aktivieren Sie die automatische Werbung, wenn die Verbindung getrennt wird
   * - Intervall: schneller Modus = 20 ms, langsamer Modus = 152,5 ms
   * - Das Zeitlimit für den Schnellmodus beträgt 30 Sekunden
   * - Start (Timeout) mit Timeout = 0 wirbt für immer (bis zur Verbindung)
   * *
   * Für empfohlenes Werbeintervall
   * https://developer.apple.com/library/content/qa/qa1931/_index.html
   * /
  Bluefruit.Advertising.restartOnDisconnect (true);
  Bluefruit.Advertising.setInterval (32, 244); // in Einheiten von 0,625 ms
  Bluefruit.Advertising.setFastTimeout (30); // Anzahl der Sekunden im Schnellmodus
  Bluefruit.Advertising.start (0); // 0 = Nach n Sekunden nicht aufhören zu werben
}}

// Verwenden dieser Funktion zur Steuerung des Telefons
void sendCommand (Befehl uint16_t) {
  // Stellen Sie sicher, dass wir verbunden und verbunden sind
  für (uint16_t conn_hdl = 0; conn_hdl  verbunden () && Verbindung-> gepaart ())
    {
      // Schalten Sie die rote LED ein, wenn wir mit dem Senden von Daten beginnen
      digitalWrite (LED_RED, 1);
      Serial.println ("Befehl senden ...");

      // Tastendruck senden
      blehid.consumerKeyPress (conn_hdl, Befehl);

      // Zwischen den Berichten etwas verzögern
      Verzögerung (10);

      // Schlüsselfreigabe senden
      blehid.consumerKeyRelease (conn_hdl);

      // Schalte die rote LED aus
      digitalWrite (LED_RED, 0);
      Serial.println ("Befehl gesendet!");
    }}
  }}

  Verzögerung (250);
}}

// Verwenden dieser Funktion zum Konfigurieren mit Schaltersteuerung
void sendSwitchControl (String-Befehl) {
  für (int i = 0; i 


Auf der Seite des iOS-Betriebssystems konfigurieren die Assistenten zunächst das Pairing mit der Fernbedienung über Bluetooth:



Dann - die Funktionen aller Tasten im Bereich Barrierefreiheit:





Nachdem sichergestellt wurde, dass alles funktioniert, drucken die Assistenten die Tastenschieber auf einem 3D-Drucker und teilen die erforderlichen Dateien mit den Lesern auf thingiverse lizenziert unter CC-BY 3.0. Diese Teile können auf andere Weise oder überhaupt nicht hergestellt werden.

Die folgenden zwei Videos zeigen, wie Master die Fernbedienung in Aktion testen:





Es bleibt, die Fernbedienung auf die gleiche Weise neu zu erstellen, jedoch durch Löten und Einfügen des Ergebnisses in die Hülle. Installieren Sie unter iOS die Soundscape-Anwendung und führen Sie sie im Hintergrund aus. Sie können das Gerät verwenden.
0
0
0

Kommentar hinzufügen

    • lächelnlächeltxaxaokweiß nichtYahoonea
      ChefKratzerDummkopfjaja-jaaggressivGeheimnis
      Entschuldigungtanzendance2Tanz3VerzeihungHilfeGetränke
      hör aufFreundegutgut gutpfeifenOhnmachtZunge
      RauchklatschenCrayerklärenspöttischdon-t_mentionherunterladen
      Hitzeärgerlichlach1mdaTreffenMoskingnegativ
      not_iPopcornbestrafenlesenerschreckenAngstSuche
      verspottendankedasto_clueumnikakutstimme zu
      schlechtbeeeblack_eyeblum3errötenprahlenLangeweile
      zensiertAngenehmheitsecret2drohenSiegyusun_bespectacled
      shokrespektlolvorgezogenWillkommenKrutoyya_za
      ya_dobryiHelferne_huliganne_othodiFludVerbotschließen
2 Kommentar
Um etwas als fertiges Gerät auf einem Steckbrett zu positionieren, weiß ich nicht ...
Sie können dieses "ziemlich teure Board" beispielsweise durch ein ESP32 Mini im Wert von etwa 320 Rubel ersetzen. Und vom Steckbrett, um all diese Wirtschaftlichkeit zumindest auf das Auszahlungsbrett zu übertragen.

Wir empfehlen Ihnen zu lesen:

Gib es für das Smartphone ...