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.