Korzystanie z aplikacji Microsoft Soundscape (z jakiegoś powodu dostępnej tylko dla systemu operacyjnego iOS), która pozwala niewidomym poruszać się w przestrzeni i dowiedzieć się, co jest wokół nich, za pomocą komunikatów głosowych, będzie jeszcze wygodniejsze, jeśli wykonasz zewnętrzny pilot z sześcioma przyciskami zaproponowany przez trzech autorów Instructables - Jazz Ang, Ana Liu i Venkatesh Potluri.
Ściśle mówiąc, Soundscape nie jest rozwinięciem samej korporacji Microsoft Corporation, ale jej działem o nazwie Microsoft Research, który zajmuje się eksperymentami i badaniami w wielu różnych obszarach. Uważa się, że nawet wewnętrzna atmosfera jest zupełnie inna niż w pozostałej części korporacji.
Przyciski na pilocie:
1 - rozpoczęcie / zatrzymanie odtwarzania pliku audio lub wideo, a gdy aplikacja Soundsdape działa i działa w tle, włącza / wyłącza powiadomienia głosowe z tego programu.
2 - pełny dźwięk wł / wył, analog przycisku wyciszenia na pilocie telewizora.
3 - przejdź do następnego utworu w odtwarzaczu audio lub wideo, a w programie Soundscape - przejdź do następnego powiadomienia głosowego.
4 - przejdź do poprzedniego utworu lub powiadomienia głosowego.
5 - duplikuje przycisk Początek.
6 - kontrola trybu „kontrolera wirtualnego” systemu operacyjnego iOS (pozwala na korzystanie z zewnętrznych pilotów, jak opisano).
Jak widać na schemacie domowej roboty, skompilowane w programie Fritzing, przyciski, z których każdy jest uzupełniony rezystorem podciągającym 10 kΩ, są podłączone do zacisków 11, 7, 15, 16, 27 i 25 dość drogiej płyty Adafruit Feather nRF52 Bluefruit LE, która jest kompatybilna z Arduino IDE i zawiera moduł bluetooth. Podczas korzystania z urządzenia ta płyta jest zasilana standardowym kablem Micro USB z power banku, a podczas programowania - z komputera. Należy pamiętać, że wiele banków energii wyłącza się automatycznie, gdy pobór prądu jest zbyt niski, a próg wyłączenia zależy od modelu.
Po złożeniu projektu zgodnie ze schematem, czarodzieje konfigurują Arduino IDE do pracy z tą płytą, jak pokazano na dwóch poniższych zrzutach ekranu:
Po skonfigurowaniu wszystkiego mistrzowie wypełniają szkic na tablicy:
#include
# zdefiniować CONTROL_PLAY_PAUSE 0x00CD
# zdefiniować CONTROL_SCAN_NEXT 0x00B5
# zdefiniować CONTROL_SCAN_PREVIOUS 0x00B6
# zdefiniować CONTROL_MUTE 0x00E2
# zdefiniować AC_FORWARD 0x0225
# zdefiniować AC_BACK 0x0224
# zdefiniować DOMYŚLNY_BROWSER_HOME 0x0223
BLEDis bledis;
BLEHidAdafruit blehid;
bool hasKeyPressed = false;
// połącz piny w płycie
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); // dla nrf52840 z natywnym USB
Bluefruit.begin ();
Bluefruit.setTxPower (4); // Sprawdź bluefruit.h pod kątem obsługiwanych wartości
Bluefruit.setName („TESTArroundMeBluefruit52”);
// Skonfiguruj i uruchom usługę informacji o urządzeniu
bledis.setManufacture („Adafruit Industries”);
bledis.setModel („Bluefruit Feather 52”);
bledis.begin ();
/ * Uruchom BLE HID
* Uwaga: Apple wymaga, aby urządzenie BLE miało minimalny odstęp między połączeniami> = 20 m
* (Im krótszy interwał połączenia, tym szybciej możemy wysłać dane).
* Jednak w przypadku urządzeń HID i MIDI Apple może zaakceptować minimalny interwał połączenia
* do 11,25 ms. Dlatego BLEHidAdafruit :: begin () spróbuje ustawić min i max
* interwał połączenia odpowiednio do 11,25 ms i 15 ms dla najlepszej wydajności.
* /
blehid.begin ();
/ * Ustaw interwał połączenia (min., Maks.) Na preferowaną wartość.
* Uwaga: Jest już ustawiony przez BLEHidAdafruit :: begin () na 11.25ms - 15ms
* min = 9 * 1,25 = 11,25 ms, maks. = 12 * 1,25 = 15 ms
* /
/ * Bluefruit.Periph.setConnInterval (9, 12); * /
// Skonfiguruj i zacznij reklamować
startAdv ();
}
void startAdv (void)
{
// Pakiet reklamowy
Bluefruit.Advertising.addFlags (BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
Bluefruit.Advertising.addTxPower ();
Bluefruit.Advertising.addAppearance (BLE_APPEARANCE_HID_KEYBOARD);
// Dołącz usługę BLE HID
Bluefruit.Advertising.addService (blehid);
// W pakiecie reklamowym jest wystarczająco dużo miejsca na nazwę programisty
Bluefruit.Advertising.addName ();
/ * Rozpocznij reklamę
* - Włącz automatyczne wyświetlanie reklam, jeśli jest odłączone
* - Interwał: tryb szybki = 20 ms, tryb wolny = 152,5 ms
* - Limit czasu dla trybu szybkiego wynosi 30 sekund
* - Start (limit czasu) z limitem czasu = 0 będzie reklamować się na zawsze (do momentu połączenia)
*
* Dla zalecanego okresu reklamowego
* https://developer.apple.com/library/content/qa/qa1931/_index.html
* /
Bluefruit.Advertising.restartOnDisconnect (prawda);
Bluefruit.Advertising.setInterval (32, 244); // w jednostce 0,625 ms
Bluefruit.Advertising.setFastTimeout (30); // liczba sekund w trybie szybkim
Bluefruit.Advertising.start (0); // 0 = Nie przestawaj reklamować się po n sekundach
}
// użycie tej funkcji do sterowania telefonem
void sendCommand (polecenie uint16_t) {
// Upewnij się, że jesteśmy połączeni i powiązani / sparowani
dla (uint16_t conn_hdl = 0; conn_hdl połączone () i& połączenie-> sparowane ())
{
// Włącz czerwoną diodę LED, gdy zaczniemy wysyłać dane
digitalWrite (LED_RED, 1);
Serial.println („Wysyłanie polecenia ...”);
// Wyślij klawisz naciśnij
blehid.consumerKeyPress (conn_hdl, polecenie);
// Opóźnij trochę między raportami
opóźnienie (10);
// Wyślij klucz wydania
blehid.consumerKeyRelease (conn_hdl);
// Wyłącz czerwoną diodę LED
digitalWrite (LED_RED, 0);
Serial.println („Polecenie wysłane!”);
}
}
opóźnienie (250);
}
// użycie tej funkcji do skonfigurowania sterowania przełącznikiem
void sendSwitchControl (polecenie String) {
for (int i = 0; i
Od strony systemu operacyjnego iOS, kreatory najpierw konfigurują parowanie z pilotem przez Bluetooth:
Następnie - funkcje wszystkich przycisków w sekcji dostępności:
Po upewnieniu się, że wszystko działa, kreatory drukują popychacze przycisków na drukarce 3D i udostępniają niezbędne pliki czytelnikom na różne tematy licencjonowany na licencji CC-BY 3.0. Części te mogą być wykonane w inny sposób lub wcale.
Poniższe dwa filmy pokazują, jak mistrzowie testują pilota w akcji:
Pozostaje odbudować pilota w ten sam sposób, ale lutując i umieszczając wynik w etui, a na iOS zainstaluj aplikację Soundscape i uruchom ją w tle, a będziesz mógł korzystać z urządzenia.