Brug af Microsoft Soundscape-applikationen (af en eller anden grund kun tilgængelig til iOS-operativsystemet), som gør det muligt for blinde at navigere i rummet og finde ud af, hvad der er omkring dem, ved hjælp af stemmemeddelelser, vil være endnu mere praktisk, hvis du laver en ekstern seks-knap fjernbetjening foreslået af tre forfattere Instruktiver - Jazz Ang, Ana Liu og Venkatesh Potluri.
Strengt taget er Soundscape ikke en udvikling af Microsoft Corporation selv, men dens opdeling under navnet Microsoft Research, der beskæftiger sig med eksperimenter og forskning på forskellige områder. Det menes, at selv den interne atmosfære der er helt anderledes end i resten af selskabet.
Knapperne på fjernbetjeningen:
1 - start / stop afspilning af en lyd- eller videofil, og når Soundsdape-applikationen kører og kører i baggrunden, tænder / slukker den også for stemmebesked fra dette program.
2 - fuld On / Off-lyd, en analog af Mute-knappen på TV-fjernbetjeningen.
3 - gå til det næste spor i lyd- eller videoafspilleren, og i Soundscape-programmet - gå til næste stemmemeddelelse.
4 - gå til det forrige spor eller stemmemeddelelse.
5 - duplikerer Hjem-knappen.
6 - kontrol af tilstanden "Virtuel controller" i iOS-operativsystemet (giver dig mulighed for at bruge eksterne fjernbetjeninger som beskrevet).
Som det ses af diagrammet hjemmelavet, samlet i Fritzing-programmet, er knapperne, der hver især er suppleret med en 10 kΩ pull-up-modstand, forbundet til terminalerne 11, 7, 15, 16, 27 og 25 på det temmelig dyre Adafruit Feather nRF52 Bluefruit LE-bord, som er kompatibelt med Arduino IDE og indeholder et Bluetooth-modul. Når du bruger enheden, er dette kort drevet af et standard Micro USB-kabel fra strømbanken, og ved programmering - fra en pc. Bemærk, at mange kraftbanker slukker automatisk, når det aktuelle forbrug er for lavt, og nedlukningstærsklen afhænger af modellen.
Efter at have samlet designet i henhold til skemaet, konfigurerer guiderne Arduino IDE til at arbejde med dette bord, som vist i de følgende to skærmbilleder:
Efter at have konfigureret alt, udfylder mestrene skissen i tavlen:
#include
#definér CONTROL_PLAY_PAUSE 0x00CD
#definér CONTROL_SCAN_NEXT 0x00B5
#definér CONTROL_SCAN_PREVIOUS 0x00B6
#definér CONTROL_MUTE 0x00E2
#definer AC_FORWARD 0x0225
#definer AC_BACK 0x0224
#definer CONSUMER_BROWSER_HOME 0x0223
BLEDis bledis;
BLEHidAdafruit blehid;
bool hasKeyPression = falsk;
// tilslut stifter i brættet
int playpauseButtonPin = 11;
int muteButtonPin = 7;
int nextButtonPin = 15;
int backButtonPin = 16;
int homeButtonPin = 27;
int switchControlButtonPin = 25;
ugyldig opsætning ()
{
pinMode (playpauseButtonPin, INPUT);
pinMode (muteButtonPin, INPUT);
pinMode (nextButtonPin, INPUT);
pinMode (backButtonPin, INPUT);
pinMode (homeButtonPin, INPUT);
pinMode (switchControlButtonPin, INPUT);
Serial.begin (115200);
mens (! seriel) forsinkelse (10); // til nrf52840 med indbygget usb
Bluefruit.begin ();
Bluefruit.setTxPower (4); // Kontroller bluefruit.h for understøttede værdier
Bluefruit.setName ("TESTArroundMeBluefruit52");
// Konfigurer og start enhedsinformationstjeneste
bledis.setProducent ("Adafruit Industries");
bledis.setModel ("Bluefruit Feather 52");
bledis.begin ();
/ * Start BLE HID
* Bemærk: Apple kræver, at BLE-enheden skal have et lille forbindelsesinterval> = 20 m
* (Jo mindre forbindelsesinterval, jo hurtigere kunne vi sende data).
* Men for HID og MIDI-enhed kunne Apple acceptere et lille forbindelsesinterval
* op til 11,25 ms. Derfor vil BLEHidAdafruit :: begin () forsøge at indstille min og max
* forbindelsesinterval til henholdsvis 11,25 ms og 15 ms for bedst ydelse.
* /
blehid.begin ();
/ * Indstil tilslutningsinterval (min, max) til din perferred værdi.
* Bemærk: Det er allerede indstillet af BLEHidAdafruit :: start () til 11.25ms - 15ms
* min = 9 * 1,25 = 11,25 ms, maks = 12 * 1,25 = 15 ms
* /
/ * Bluefruit.Periph.setConnInterval (9, 12); * /
// Konfigurer og start annoncering
startAdv ();
}
void startAdv (void)
{
// Reklamepakke
Bluefruit.Advertising.addFlags (BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
Bluefruit.Advertising.addTxPower ();
Bluefruit.Advertising.add Utseende (BLE_APPEARANCE_HID_KEYBOARD);
// Inkluder BLE HID-service
Bluefruit.Advertising.addService (blehid);
// Der er plads nok til dev-navnet i reklamepakken
Bluefruit.Advertising.addName ();
/ * Start annoncering
* - Aktivér automatisk reklame, hvis den er afbrudt
* - Interval: hurtig tilstand = 20 ms, langsom tilstand = 152,5 ms
* - Timeout for hurtig tilstand er 30 sekunder
* - Start (timeout) med timeout = 0 vil annoncere for evigt (indtil tilsluttet)
*
* Til anbefalet annonceinterval
* https://developer.apple.com/library/content/qa/qa1931/_index.html
* /
Bluefruit.Advertising.restartOnDisconnect (sand);
Bluefruit.Advertising.setInterval (32, 244); // i enhed på 0,625 ms
Bluefruit.Advertising.setFastTimeout (30); // antal sekunder i hurtig tilstand
Bluefruit.Advertising.start (0); // 0 = Stop ikke med at annoncere efter n sekunder
}
// ved hjælp af denne funktion til at styre telefonen
void sendCommand (uint16_t kommando) {
// Sørg for, at vi er forbundet og bundet / parret
for (uint16_t conn_hdl = 0; conn_hdl tilsluttet () && forbindelse-> parret ())
{
// Tænd for rød LED, når vi begynder at sende data
digitalWrite (LED_RED, 1);
Serial.println ("Sender kommando ...");
// Send tastetryk
blehid.consumerKeyPress (conn_hdl, kommando);
// Forsæt lidt mellem rapporter
forsinkelse (10);
// Send tastudgivelse
blehid.consumerKeyRelease (conn_hdl);
// Sluk for den røde LED
digitalWrite (LED_RED, 0);
Serial.println ("Kommando sendt!");
}
}
forsinkelse (250);
}
// ved hjælp af denne funktion til at konfigurere med switch kontrol
void sendSwitchControl (String-kommando) {
for (int i = 0; i
Fra siden af iOS-operativsystemet oprettede guiderne først parring med fjernbetjeningen via Bluetooth:
Derefter - funktionerne for alle knapper i afsnittet om tilgængelighed:
Når du har sørget for, at alt fungerer, udskriver guiderne en knap på en 3D-printer og deler de nødvendige filer med læserne på tingiverse licens under CC-BY 3.0. Disse dele kan fremstilles på andre måder eller slet ikke.
De følgende to videoer viser, hvordan mestre tester fjernbetjeningen i handling:
Det gjenstår at genopbygge fjernbetjeningen på samme måde, men ved at lodde og sætte resultatet i sagen, og i iOS installere Soundscape-applikationen og køre den i baggrunden, og du kan bruge enheden.