A Microsoft Soundscape alkalmazás (valamilyen okból csak az iOS operációs rendszerhez elérhető) használata, amely lehetővé teszi a vak számára az űrben való navigációt, és hangutasítások segítségével megtudja, mi van körülöttük, még kényelmesebb lesz, ha külső hatgombos távirányítót készít, amelyet három szerző javasolt. Instructables - Jazz Ang, Ana Liu és Venkatesh Potluri.
Szigorúan véve, a Soundscape nem maga a Microsoft Corporation fejlesztése, hanem a Microsoft Research elnevezésű részlege, amely kísérletekkel és kutatásokkal foglalkozik sokféle területen. Úgy gondolják, hogy még a belső légkör is teljesen más, mint a társaság többi részén.
A távirányító gombjai:
1 - audio- vagy videofájl lejátszásának elindítása / leállítása, és amikor a Soundsdape alkalmazás fut, és a háttérben fut, bekapcsolja / ki is kapcsolja a program hangjelzéseit.
2 - teljes be / ki hang, a TV-távvezérlő némítás gombjának analógja.
3 - lépjen a következő műsorszámra az audio- vagy videolejátszóban, a Soundscape programban - a következő hangos értesítéshez.
4 - lépjen az előző zeneszámra vagy hangos értesítésre.
5 - másolja a Kezdőlap gombot.
6 - az iOS operációs rendszer "Virtuális vezérlő" módjának vezérlése (lehetővé teszi a külső távirányítók használatát, amint az leírt).
Amint az az ábrán látható házi, a Fritzing programban összeállított gombok, amelyek mindegyike 10 kΩ-os ellenállással van kiegészítve, a meglehetősen drága Adafruit Feather nRF52 Bluefruit LE tábla 11., 7., 15., 16., 27. és 25. kapcsaihoz vannak csatlakoztatva, amely kompatibilis a Arduino IDE, és tartalmaz egy bluetooth modult. Az eszköz használatakor a tápegység tápellátását egy normál mikro-USB-kábel táplálja a tápegységből, és programozásakor - a számítógépből. Felhívjuk figyelmét, hogy sok energiabank automatikusan kikapcsol, ha az áramfogyasztás túl alacsony, és a kikapcsolási küszöb a modelltől függ.
Miután a terv szerint összeállították a sémát, a varázslók beállítják az Arduino IDE-t, hogy működjön együtt ezzel a táblával, a következő két képernyőképe alapján:
Mindent beállítva, a mesterek kitöltik a vázlatot a táblába:
#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;
// csatlakoztassa a táblán lévő csapokat
int playpauseButtonPin = 11;
int muteButtonPin = 7;
int következőButtonPin = 15;
int backButtonPin = 16;
int homeButtonPin = 27;
int switchControlButtonPin = 25;
érvénytelen beállítás ()
{
pinMode (playpauseButtonPin, INPUT);
pinMode (muteButtonPin, INPUT);
pinMode (nextButtonPin, INPUT);
pinMode (backButtonPin, INPUT);
pinMode (homeButtonPin, INPUT);
pinMode (switchControlButtonPin, INPUT);
Serial.begin (115200);
míg (! soros) késleltetés (10); // a nrf52840 esetében natív usb-val
Bluefruit.begin ();
Bluefruit.setTxPower (4); // Ellenőrizze a bluefruit.h támogatott értékeit
Bluefruit.setName ("TESTArroundMeBluefruit52");
// Az eszközinformációs szolgáltatás konfigurálása és indítása
bledis.setManufacturer ("Adafruit Industries");
bledis.setModel ("Bluefruit Feather 52");
bledis.begin ();
/ * Indítsa el a BLE HID-t
* Megjegyzés: Az Apple megköveteli, hogy a BLE eszköz minimális csatlakozási intervallum legyen> = 20m
* (Minél kisebb a csatlakozási intervallum, annál gyorsabban tudunk adatokat küldeni).
* A HID és a MIDI eszközök esetében az Apple azonban elfogadhatja a minimális csatlakozási intervallumot
* 11,25 ms-ig. Ezért a BLEHidAdafruit :: begin () megpróbálja beállítani a min és a max értéket
* A csatlakoztatási intervallum 11,25 ms-ra és 15 ms-ra a legjobb teljesítmény érdekében.
* /
blehid.begin ();
/ * Állítsa be a csatlakozási intervallumot (min, max) az engedélyezett értékre.
* Megjegyzés: A BLEHidAdafruit :: begin () már beállította 11,25ms - 15ms-re
* min = 9 * 1,25 = 11,25 ms, max = 12 * 1,25 = 15 ms
* /
/ * Bluefruit.Periph.setConnInterval (9, 12); * /
// Állítsa be és indítsa el a hirdetést
startAdv ();
}
érvénytelen startAdv (érvénytelen)
{
// Reklámcsomag
Bluefruit.Advertising.addFlags (BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE);
Bluefruit.Advertising.addTxPower ();
Bluefruit.Advertising.addApearance (BLE_APPEARANCE_HID_KEYBOARD);
// Tartalmazza a BLE HID szolgáltatást
Bluefruit.Advertising.addService (blehid);
// Elegendő hely van a dev névre a reklámcsomagban
Bluefruit.Advertising.addName ();
/ * Reklám indítása
* - Automatikus hirdetés engedélyezése, ha nincs kapcsolat
* - Intervallum: gyors mód = 20 ms, lassú mód = 152,5 ms
* - A gyors üzemmód időtúllépése 30 másodperc
* - Start (időtúllépés) időtúllépéssel = 0 örökre hirdet (a csatlakozásig)
*
* Az ajánlott hirdetési intervallumhoz
* https://developer.apple.com/library/content/qa/qa1931/_index.html
* /
Bluefruit.Advertising.restartOnDisconnect (true);
Bluefruit.Hirdetés.setInterval (32, 244); // egysége 0,625 ms
Bluefruit.Advertising.setFastTimeout (30); // másodpercek száma gyors módban
Bluefruit.Advertising.start (0); // 0 = Ne hagyja abba a reklámozást n másodperc után
}
// ezzel a funkcióval a telefon vezérlésére
void sendCommand (uint16_t parancs) {
// Győződjön meg arról, hogy csatlakoztatva vannak és össze vannak kötve / párosítva
mert (uint16_t conn_hdl = 0; conn_hdl csatlakoztatott () && kapcsolat-> párosítva ())
{
// Az adatküldés megkezdésekor kapcsolja be a piros LED-et
digitalWrite (LED_RED, 1);
Serial.println ("Küldési parancs ...");
// Küldés gomb megnyomásával
blehid.consumerKeyPress (conn_hdl, parancs);
// Késleltessen egy kicsit a jelentések között
késleltetés (10);
// kulcskioldás küldése
blehid.consumerKeyRelease (conn_hdl);
// Kapcsolja ki a piros LED-et
digitalWrite (LED_RED, 0);
Serial.println ("Parancs elküldve!");
}
}
késleltetés (250);
}
// ezzel a funkcióval konfigurálható kapcsolóvezérléssel
void sendSwitchControl (karakterlánc parancs) {
mert (int i = 0; i
Az iOS operációs rendszer oldaláról a varázslók először párosítják a távirányítót Bluetooth-on:
Ezután - az összes gomb működése az akadálymentesség szakaszban:
Miután meggyőződött arról, hogy minden működik, a varázslók nyomtatási gombja megnyomja a 3D nyomtatót, és megosztja a szükséges fájlokat az olvasókkal a sokoldalúan CC-BY 3.0 alapján engedélyezett. Ezeket az alkatrészeket más módon is el lehet készíteni, vagy egyáltalán nem lehet elkészíteni.
A következő két videó bemutatja, hogy a mesterek miként tesztelik a távirányítót működésben:
A távirányítót ugyanúgy kell újraépíteni, hanem forrasztással, és az eredményt az ügybe kell tenni, és iOS-ben telepíteni kell a Soundscape alkalmazást, és futtatni a háttérben, és használhatja az eszközt.