Jeffrey Cross
Jeffrey Cross

Педала бицикла кроз виртуалну стварност за мање од 100 долара

Паул Ианова "Ардуино ствар" доноси бициклистичку виртуалну стварност у област приступачности. Иан признаје: "Апсолутно мрзим вежбање и желим да то искуство учиним мало мање болним и умирујућим." То, заједно са његовом идејом да је Ардуино "алтернативна врста контролера игара", довела је до идеје за виртуалну стварност бикинг екпериенце. Уређај ради на два механизма: мери обртање котача бицикла помоћу тахометра који користи инфрацрвено светло и може да пренесе ту информацију на паметни телефон преко БЛЕ-а. Ови механизми заједно раде на мерењу излаза педалирања и уносе га у окружење виртуелне реалности.

Иан је поставио бицикл на стационарни затворени тренер, допуштајући му да педалира на мјесту. Лепота његовог уређаја је да је широко компатибилан не само са било којим типом бицикла, већ и теоретски са било којим уређајем који има петљу или ротирајућу површину, као што је трака за трчање. То је зато што је оптички тахометар релативно неинвазиван, захтијевајући само мали комад папира залијепљен на гуму. Иан објашњава да “сваки пут када се точак окрене, Ардуино ће открити када комад папира прође, а затим послати бежичну поруку на мобилни телефон”, на тај начин померајући виртуални бицикл напред кроз његово виртуално окружење.

Иан користи ову слушалицу од $ 10 и једноставан град цртаних филмова развијен са Унити-ом, који он прави за ВР користећи бесплатни СДК Гоогле картице. Он објашњава како је поставио виртуални бицикл да се креће кроз окружење:

Користио сам пакет треће стране под називом Симпле Ваипоинт Систем за извлачење сплине стазе. Ако знате шта радите, овај пакет није потребан, али је учинио живот много лакшим. Један од њихових примјера је направљен да би гурнуо аутомобил уздуж стазе помоћу дугмета за подизање типковнице па сам замијенио аутомобил опремом за фотоапарат, и да је долазни БЛЕ пинг звао исту функцију као и гумб горе.

Све у свему, Иан наводи свој трошак као $ 30 за Ардуино и $ 10 за слушалице, што је укупно износило $ 40 за пројекат. Међутим, важно је напоменути да је Унити окружење $ 10 довнлоад, пакет треће стране који подржава БЛЕ за иОС и Андроид је још 10 $, а опциони Симпле Ваипоинт Систем је 15 $. Такође ћете морати да изградите или набавите стационарни бицикл, БЛЕ пробој и ИР сензор за повезивање са Ардуином. Осим тога, ако желите да управљате бициклом лијево и десно, то ће захтијевати и додатне компоненте.Иако ова додатна разматрања свакако доносе цену преко $ 40, она и даље може бити изграђена за мање од 100 долара, што није превише опуштено.

Испод је Иан-ова шема као и Ардуино код.

Ардуино има две кључне компоненте: БЛЕ пробој (Адафруит-ов нРФ8001) и рефлективни ИР сензор. Сензор рефлексије има две стране: једну са ИР ЛЕД (“Е”) и другу са ИР фототранзистором (“С”). Спајала сам их на малу даску од Ардуина са продужним каблом састављеним од жице од 18 мерача. Жица је довољно дебела да обеси перфорд у ваздух, али довољно флексибилна да прилагоди свој положај и циља као лампа са гуским вратом. НРФ8001 БЛЕ пребацивање заузима пинове 2, 9, 10, 11, 12 и 13, али ће се ваше подешавање вероватно разликовати.

#инцлуде #инцлуде "Адафруит_БЛЕ_УАРТ.х" // нРФ8001 пинови: СЦК: 13, МИСО: 12, МОСИ: 11, РЕК: 10, АЦИ: Кс, РСТ: 9, 3Во: Кс #дефине АДАФРУИТБЛЕ_РЕК 10 #дефине АДАФРУИТБЛЕ_РСТ 9 # дефине АДАФРУИТБЛЕ_РДИ 2 Адафруит_БЛЕ_УАРТ уарт = Адафруит_БЛЕ_УАРТ (АДАФРУИТБЛЕ_РЕК, АДАФРУИТБЛЕ_РДИ, АДАФРУИТБЛЕ_РСТ); дуго непотписано = 0л; боолеан цоннецтион = фалсе; уинт8_т бтм = 65; уинт8_т оут = бтм; уинт8_т цап = 90; #дефине персец 30 #дефине сендат (1000 / персец) инт ирПин = 7; инт ирСенсорПин = 5; инт тестЛЕДПин = 4; инт трипТиме = 0; инт ластТрип = 0; инт трипБетвеен; боолеан детецтСтате = фалсе; боолеан ластДетецтСтате = фалсе; воид сетуп (воид) {Сериал.бегин (9600); пинМоде (ирПин, ОУТПУТ); пинМоде (ирСенсорПин, ИНПУТ); пинМоде (тестЛЕДПин, ОУТПУТ); уарт.сетДевицеНаме ("ИанБЛЕ"); / * дефинирајте БЛЕ име: 7 знакова мак! * / уарт.сетРКСцаллбацк (ркЦаллбацк); уарт.сетАЦИцаллбацк (ациЦаллбацк); уарт.бегин (); } воид лооп () {поллИР (); // ИР сензор уарт.поллАЦИ (); // БЛЕ} воид поллИР () {дигиталВрите (ирПин, ХИГХ); иф (дигиталРеад (ирСенсорПин) == ЛОВ) {детецтСтате = труе; иф (детецтСтате! = ластДетецтСтате) {// покреће први пут рефлексију је откривено Сериал.принтлн ("порука послата преко БЛЕ"); иф (цоннецтион == труе) {сендБлуеМессаге ("1"); // думми дата хере хере, то може бити било која вредност. Ми само требамо пингати апликацију} ластДетецтСтате = труе; } елсе {// овде видимо исту рефлексију у неколико оквира // укључи тест ЛЕД да би се добила визуелна индикација позитивне рефлексије дигиталног писања (тестЛЕДПин, ХИГХ); }} елсе {детецтСтате = фалсе; ластДетецтСтате = фалсе; дигиталВрите (тестЛЕДПин, ЛОВ); }} / *********************************************** *************************** / / *! Функције везане за БЛЕ испод ове тачке * / / **************************************** ********************************** / воид ациЦаллбацк (догађај аци_евт_опцоде_т) {// ова функција се позива кад год одаберете АЦИ догађаји се дешавају прекидач (догађај) {цасе АЦИ_ЕВТ_ДЕВИЦЕ_СТАРТЕД: Сериал.принтлн (Ф ("Оглашавање је почело")); пауза; цасе АЦИ_ЕВТ_ЦОННЕЦТЕД: Сериал.принтлн (Ф ("Цоннецтед!")); цоннецтион = труе; пауза; цасе АЦИ_ЕВТ_ДИСЦОННЕЦТЕД: Сериал.принтлн (Ф ("Дисцоннецтед")); цоннецтион = фалсе; пауза; дефаулт: бреак; }} воид ркЦаллбацк (уинт8_т * буффер, уинт8_т лен) {// ова функција се зове кад год подаци стигну на РКС канал} воид сендБлуеМессаге (Стринг порука) {уинт8_т сендбуффер [20]; мессаге.гетБитес (сендбуффер, 20); цхар сендбуфферсизе = мин (20, мессаге.ленгтх ()); Сериал.принт (Ф (" т * Слање ->" ")); Сериал.принт ((цхар *) сендбуффер); Сериал.принтлн (" "); // написати податке уарт.врите (сендбуффер, сендбуфферсизе); }

Удео

Оставите Коментар