Кориштење Мицрософтове апликације Соундсцапе (из неког разлога доступне само за иОС оперативни систем) која слепима омогућава кретање у простору и откривање онога што је око њих, коришћењем гласовних упута, биће још погодније ако направите спољни даљински управљач са шест тастера који су предложила три аутора Инструцтаблес - Јазз Анг, Ана Лиу и Венкатесх Потлури.
Строго гледано, Соундсцапе није развој саме корпорације Мицрософт, већ њена подјела названа Мицрософт Ресеарцх, која се бави експериментима и истраживањима у широком распону области. Верује се да је и унутрашња атмосфера потпуно другачија него у остатку корпорације.
Тастери на даљинском управљачу:
1 - покретање / заустављање репродукције аудио или видео датотеке, а када се апликација Соундсдапе покреће и ради у позадини, она такође укључује и искључује гласовна обавештења из овог програма.
2 - звук пуног укључивања / искључивања, аналогни тастер Искључи звук на даљинском управљачу телевизора.
3 - пређите на следећу нумеру у аудио или видео плејеру, а у програму Соундсцапе - пређите на следеће гласовно обавештење.
4 - пређите на претходни запис или гласовно обавештење.
5 - дуплира почетно дугме.
6 - управљање режимом „виртуелног контролера“ иОС оперативног система (омогућава вам коришћење спољних даљинских управљача као што је описано).
Као што се види из дијаграма домаће, састављени у програму Фритзинг, тастери од којих је сваки допуњен 10 кОхм отпорним повезивањем, повезани су на терминале 11, 7, 15, 16, 27 и 25 прилично скупе плоче Адафруит Феатхер нРФ52 Блуефруит ЛЕ, која је компатибилна са Ардуино ИДЕ и садржи Блуетоотх модул. Када користите уређај, ову плочу напаја стандардни Мицро УСБ кабл из банке за напајање, а код програмирања - са рачунара. Имајте на уму да се многе банке напајања аутоматски искључују када је тренутна потрошња прениска, а праг искључивања зависи од модела.
Саставивши дизајн према шеми, чаробњаци конфигуришу Ардуино ИДЕ за рад са овом плочом, као што је приказано на следећа два снимка заслона:
Након што су све конфигурисали, мајстори испуњавају скицу у плочу:
#инцлуде <блуефруит.х>
#дефине ЦОНТРОЛ_ПЛАИ_ПАУСЕ 0к00ЦД
#дефине ЦОНТРОЛ_СЦАН_НЕКСТ 0к00Б5
#дефине ЦОНТРОЛ_СЦАН_ПРЕВИОУС 0к00Б6
#дефине ЦОНТРОЛ_МУТЕ 0к00Е2
#дефине АЦ_ФОРВАРД 0к0225
#дефине АЦ_БАЦК 0к0224
#дефине ЦОНСУМЕР_БРОВСЕР_ХОМЕ 0к0223
БЛЕДис бледис;
БЛЕХидАдафруит блехид;
боол хасКеиПресс = лажно;
// повежите игле на плочи
инт плаипаусеБуттонПин = 11;
инт мутеБуттонПин = 7;
инт нектБуттонПин = 15;
инт бацкБуттонПин = 16;
инт хомеБуттонПин = 27;
инт свитцхЦонтролБуттонПин = 25;
подешавање празнине ()
{
пинМоде (плаипаусеБуттонПин, ИНПУТ);
пинМоде (мутеБуттонПин, ИНПУТ);
пинМоде (нектБуттонПин, ИНПУТ);
пинМоде (бацкБуттонПин, ИНПУТ);
пинМоде (хомеБуттонПин, ИНПУТ);
пинМоде (свитцхЦонтролБуттонПин, ИНПУТ);
Сериал.бегин (115200);
док (! серијска) кашњења (10); // за нрф52840 са нативе усб
Блуефруит.бегин ();
Блуефруит.сетТкПовер (4); // Провјерите блуефруит.х на подржане вриједности
Блуефруит.сетНаме ("ТЕСТАрроундМеБлуефруит52");
// Конфигуришите и покрените сервис за информације о уређају
бледис.сетМануфацтурер ("Адафруит Индустриес");
бледис.сетМодел ("Блуефруит Пеатхер 52");
бледис.бегин ();
/ * Покрените БЛЕ ХИД
* Напомена: Аппле захтева да БЛЕ уређај мора имати минималан интервал повезивања> = 20м
* (Што је интервал интерних веза мањи, то ћемо брже моћи да пошаљемо податке).
* Међутим, за ХИД и МИДИ уређаје, Аппле би могао прихватити минималан интервал конекције
* до 11,25 мс. Због тога ће БЛЕХидАдафруит :: бегин () покушати да постави мин и мак
* интервал повезивања до 11,25 мс односно 15 мс за најбоље перформансе.
* /
блехид.бегин ();
/ * Подесите интервал повезивања (мин, мак) на жељену вредност.
* Напомена: БЛЕХидАдафруит :: већ је постављен на: 11,25мс - 15мс
* мин = 9 * 1,25 = 11,25 мс, мак = 12 * 1,25 = 15 мс
* /
/ * Блуефруит.Перипх.сетЦоннИнтервал (9, 12); * /
// Подесите и започните оглашавање
стартАдв ();
}
воид стартАдв (воид)
{
// Рекламни пакет
Блуефруит.Адвертисинг.аддФлагс (БЛЕ_ГАП_АДВ_ФЛАГС_ЛЕ_ОНЛИ_ГЕНЕРАЛ_ДИСЦ_МОДЕ);
Блуефруит.Адвертисинг.аддТкПовер ();
Блуефруит.Адвертисинг.аддАппеаранце (БЛЕ_АППЕАРАНЦЕ_ХИД_КЕИБОАРД);
// Укључите БЛЕ ХИД услугу
Блуефруит.Адвертисинг.аддСервице (блехид);
// У рекламном пакету има довољно места за дев име
Блуефруит.Адвертисинг.аддНаме ();
/ * Покрените оглашавање
* - Омогућите аутоматско оглашавање ако нисте повезани
* - Интервал: брзи режим = 20 мс, спор режим = 152.5 мс
* - Истек времена за брзи режим је 30 секунди
* - Старт (тимеоут) са тимеоут = 0 ће се заувек оглашавати (док не буде повезан)
*
* За препоручени интервал оглашавања
* хттпс://девелопер.аппле.цом/либрари/цонтент/ка/ка1931/_индек.хтмл
* /
Блуефруит.Адвертисинг.рестартОнДисцоннецт (труе);
Блуефруит.Адвертисинг.сетИнтервал (32, 244); // у јединици од 0.625 мс
Блуефруит.Адвертисинг.сетФастТимеоут (30); // број секунди у брзом режиму
Блуефруит.Адвертисинг.старт (0); // 0 = Не заустављајте оглашавање након н секунди
}
// помоћу ове функције за контролу телефона
воид сендЦомманд (наредба уинт16_т) {
// Проверите да ли смо повезани и повезани / упарени
фор (уинт16_т цонн_хдл = 0; цонн_хдл <БЛЕ_МАКС_ЦОННЕЦТИОН; цонн_хдл ++)
{
БЛЕЦоннецтион * веза = Блуефруит.Цоннецтион (цонн_хдл);
иф (веза & веза -> повезана () && веза-> упарена ())
{
// Укључите црвени ЛЕД када почнемо са слањем података
дигиталВрите (ЛЕД_РЕД, 1);
Сериал.принтлн ("Слање наредбе ...");
// Пошаљи тастер
блехид.цонсумерКеиПресс (цонн_хдл, команда);
// Одгодите мало између извештаја
кашњење (10);
// Пошаљите издање кључа
блехид.цонсумерКеиРелеасе (цонн_хдл);
// Искључите црвени ЛЕД
дигиталВрите (ЛЕД_РЕД, 0);
Сериал.принтлн ("Команда је послата!");
}
}
кашњење (250);
}
// помоћу ове функције за конфигурирање с управљачким склопкама
воид сендСвитцхЦонтрол (Стринг наредба) {
фор (инт и = 0; и <цомманд.ленгтх (); и ++) {
блехид.кеиПресс (цомманд.цхарАт (и));
Сериал.врите (цомманд.цхарАт (и));
кашњење (5);
}
кашњење (250); // избегавајте слање исте наредбе поново и поново
}
воид петља ()
{
// дугме за репродукцију или паузирање играча
иф (дигитално читање (плаипаусеБуттонПин) == ХИГХ) {
сендЦомманд (ЦОНТРОЛ_ПЛАИ_ПАУСЕ);
}
// дугме за искључивање телефона
иф (дигитално читање (мутеБуттонПин) == ХИГХ) {
сендЦомманд (ЦОНТРОЛ_МУТЕ);
}
// дугме за репродукцију следећег медија
иф (дигитално читање (нектБуттонПин) == ХИГХ) {
сендЦомманд (ЦОНТРОЛ_СЦАН_НЕКСТ);
сендЦомманд (АЦ_ФОРВАРД);
}
// дугме за репродукцију последњег медија
иф (дигитално читање (бацкБуттонПин) == ХИГХ) {
сендЦомманд (ЦОНТРОЛ_СЦАН_ПРЕВИОУС);
сендЦомманд (АЦ_БАЦК);
}
// дугме за повратак кући
иф (дигитално читање (хомеБуттонПин) == ХИГХ) {
сендЦомманд (ЦОНСУМЕР_БРОВСЕР_ХОМЕ);
}
// контрола прекидача 'селецт'
иф (дигитално читање (свитцхЦонтролБуттонПин) == ХИГХ) {
сендСвитцхЦонтрол ("СЕЛЕЦТ");
ако (притиснуто) {
блехид.кеиРелеасе (свитцхЦонтролБуттонПин);
притиснуто = лажно;
}
}
кашњење (5);
}
Са стране иОС оперативног система, чаробњаци су прво успоставили упаривање са даљинским управљачем путем Блуетоотх-а:
Затим - функције свих тастера у одељку о приступачности:
Након што се увере да све функционише, чаробњаци притискају дугме на 3Д штампачу и деле потребне датотеке са читачима на стварима лиценцирано под ЦЦ-БИ 3.0. Ови делови се могу израдити на друге начине или их уопште не могу направити.
Следећа два видеа показују како мајстори тестирају даљинац на делу:
Остаје обновити даљински управљач на исти начин, али лемљењем, и резултат ставити у случај, а у иОС-у инсталирати апликацију Соундсцапе и покренути је у позадини, а можете користити уређај.