Блог им. DennisGerasimovthe ИДЕЯ: если есть два смарфона - то есть почти готовый таймер (секундомер) для трека ...

26", привет!

Столкнулись с «небольшой проблемой» — решили погоняться на своем споте друг с другом на время.
Но (ожидаемо!) оказалось, что ни раций, ни (тем более!) омеги под рукой нет, т.е. замерять время нечем…


Шняга? Полная! Однако есть решение, но нужна помощь людей умеющих программировать.

Поможет простое приложение, которое будет запускаться на двух смартфонах, и синхронизироваться по сети.
Два «судьи» — на старте и финише.
Первый запускает отсчет на своем смартфоне (старт!), второй — останавливает (финиш!!!)

Будущая функциональность — простая, хотя написать серверную часть тоже потребуется (небольшую).

-Регистрация (можно даже по номеру мобилы, чтобы можно было идентифиицировать аппараты)
-Синхронизация с сервером (+учет возможных «лагов» моб.сети)
-Функционал выбора заезда (можно id заезда пересылать по сети на устрйоство с id нужной мобилки, номер уже знаем)
-Функционал старт/стоп отсчета

Думаю что хостинг серверной части можно придумать бесплатный (нагрузки там будет с гномью письку, в конце концов можно у знакомых поселить)

Может кто-то возьмется? Первый респектую и коньяк пришлю,
да и сообщество навернео оценит )

ЗЫ: спасибо за время, которое Вы потратили на чтение этого поста ))
Возьметесь делать — помогу с макетами UI/UX скетчей


  • Поделиться
  • добавить в избранное
    2
  • +13
  • Мнения

Комментарии (52)

+1
Если трек достаточно длинный и не кольцевой, то сегменты в Страве вам в помощь.
avatar

Stas17

0
Это если: (

А если спот не в страве (как наш, не палимся), или короткий?

Кстати Вы неожиданно навели меня на мысль как можно обойтись одни смартфоном: )
GPS понадобится (точность ± 3 м = ОК) и «показать» смартфону точки начала и конца трека

Минус — смартфон придется везти с собой (есть шанс угЪёбить девайс если разложиться)
Плюс — полная автоматизация. Пересек точку старта — пошел отсчет, приехал в  точку финиша — стоп ))

но программить все равно придется
Последний раз редактировалось
avatar

nanaMEX555

+11
так страва же это делает вроде уже. премиум акк, сегмент в фавориты ставишь и прям при езде тебе девушка в ухо лепечет что-то вроде «сегмён а комменсе, вотр мейёр тэм э каранте-дё сегон»
avatar

raskladnoy

0
Ну да, но:
1) надо страву (я ее не люблю, и я не один такой, хотя нас немного): )
сейчас для «трэканья» юзаю RunKeeper (но такого таймера нет)
Опять же надо спот прописывать в страве
2) премиум аккаунт
3) везешь девайс с собой (есть шанс угробить)

P.S. пользуясь случаем — Серж, спасибо за переводы роликов!!!
Последний раз редактировалось
avatar

nanaMEX555

+9
Чтобы прописать спот в страве не надо платного аккаунта. Создать свой отрезок можно и в бесплатном.
avatar

myzlofartart

+2
Могу ещё идейку накинуть: что бы стояло два телефона в влюченной камерой, а программа могла бы фиксировать время старта и финиша, анализируя изображение с камеры, а так же что бы сохраняло изображение старта и финиша. Если знать примерное время старта и финиша всех участников (фиксируется маршалом), то можно сопоставить данные и выявить победителя. При каких-то спорах будет фотофиниш.
Последний раз редактировалось
avatar

KonstantinMaksimov

0
Хорошая идея, думал об этом же.

Но — это реализовать не совсем «в два пальца», и если за это кто-то возьмется — то все навороты обычно уходят во второй, третий и т.д. релизы.

Можно много чего «навернуть» — включая анализ изображений, автоматический запуск и стоп таймера при пересечении линиий старт/финиш, и прочее ))
avatar

nanaMEX555

+1
Вешаете QR на гонщика, это однозначно определит, кто проехал в створе наблюдения. Не два пальца, но библиотеки распознавалки QR для андроида вроде как в свободном доступе.
avatar

NailTashbulatov

0
Зачем нужен фотофинишь в гонке на время? И фотофиниш это задача для высокоскоростных камер, стандартных 30 к/с тут маловато.
avatar

hotcooler17

+1
>> Зачем нужен фотофиниш

себяшки жеж!: ))))))))))))))
Последний раз редактировалось
avatar

nanaMEX555

0
Фотофиниш делается скорее с помощью щелевой съемки — только так можно тысячи кадров в секунду получать на не слишком крутом железе.

Вот только на обычный телефон такое не заснимешь.
Там все размазано будет к чертям, точность будет как у ручного секундомера.

+ важный момент — гарантированная синхронизация с точными часами. Это тоже не про телефон. 
avatar

m12sl

+1
На хабре была статья про самодельные омеги. По сути нужен GPS для синхронизации времени, но я хз, есть ли в дроиде доступ к времени GPS через API. Остается только проблема с бэкендом, нужен сервер который примет метки от обеих сторон. Можно попробовать оффлайново, с последующией синхронизацией при сближении девайсов, но минусы тут очевидны. Жаль, совсем нет времени на реализацию, но идея такая.
Последний раз редактировалось
avatar

hotcooler17

0
В дроиде есть все. А чего нет в дроиде — откопаем в цианогене и выковыряем из мьюи  )))

Там выше мне подумалось, что можно обойтись одной железкой с GPS, и можно без серверной реализации тогда!

Чекнул точку старта и финиша (типа настроил трек)
приехал в старт
жмякнул «Ready/Go»
ка ктолько прокатил точку старта — пошел отсчет.
Доехал до финиша — стоптаймер
 
avatar

nanaMEX555

+7
NTP не позволит получить точность выше 1 секунды, и ту с погрешностью на пинг. GPS же покрывает всю площадь постоянными сигналами с точным временем. Т.е. на дистанции в пару км можно с увереностью полагать что два устройства получат одну и ту же метку времени одновременно. Тут хорошо бы вообще уйти от андроида целиком на отдельное устройство, которое гарантированно подцепит время от спутника в течении 1 мс, но, даже в случае с дроидом, таким образом можно гарантировать фиксированную временную дельту между двумя девайсами, даже если интернетов нет вот вообще.
По поводу использования GPS по назначению — 3 метра это сферическая точность в вакууме. На практике GPS очень сильно гуляет. Приемлемо точно (0.1 секунды) посчитать по нему невозможно, особенно если это будет какой нибудь лес. 
avatar

hotcooler17

0
Я правильно понимаю, что реализация схемы с двумя девайсами (старт и финиш) лучше чем таскать с собой один девайс по трассе?

Насчет лагов времени — можно сделать проще, считать пинг до сервера обоими девайсами, и на основании ее вычислять дельту погрешности. причем, для двух девайсов это нужно тольков  момент старта!
На финише достаточно дать «стоп» одному устройству (да, это менее надежно — но мы же пока из говна и палок лепим)

3 м — это да, я не подумал. Мы ж частенько в оврагах, лесах — да и небо не безоблачное… )) 
avatar

nanaMEX555

0
Нет понятия «лучше», есть понятие «возможно». Если приехать в одиночку то два девайса явно не лучше. Но в плане точности — да, два устройства будут точнее. Причем можно извратится и даже сделать примитивный стартовый и финишный створ, который будет щелкать кнопку гарнитуры.

Лаг нельзя посчитать пингом, пинг плавает. В условиях мобильного интернета это может измеряться секундами разницы на двух устройствах. Плюс интернета может и не быть вовсе. И синхронизировать время нельзя каждый раз, даже в идеальных условиях андроид может выдавать приложению метки времени с разной задержкой, не говоря уже о том, что время может просто поменяться по желанию NTP. Синхронизация один раз при запуске, дальше два устройства работают только на внутренем таймере. В случае с самодельным внешним девайсом все проще, тут можно просто постоянно брать метку с GPS, он ее обработает быстро и не внесет большой погрешности.

Говна и палки бывают разными. Нормально делай — нормально будет.
avatar

hotcooler17

0
самодельный девайс имеет один минус: он будет не у всех и не у каждого.

Я это рассматривал как  «способ с разумной допустимой погрешностью померять время если понадобится»

Приехали компашкой на трек, он всем «зашел», нука адыайцте погоняемся и… оппа, есть приложуха
(очень збс если весит мало, чтоб можно было «в полях» скачать елси что)

да, НЕ будет работать в условиях отсутствия моб.сети — так этого пока и не нужно )
Последний раз редактировалось
avatar

nanaMEX555

0
я бы _пока_ рассматрвиал это как «простой и приемлимый способ, без наворотов, пусть и не самый точный»


ну а с пингом можно разобраться, если по шагам то:
1. Перед стартом — стартовый смартфон посчитал пинг.
2. В момент старта — пошел отсчет + финишный смартфон посчитал свой пинг
3. Пока идет отсчет, параллеьлно посчитали «пинговую дельту» для финишного смартфона
4. На финише уже никаких пингов нет, отсечка идет исключительно по остановке таймера финишным смартфоном

ТАкое решение — приемлимо для компаний, фановых и ламповых покатушек и всего подобного,
думаю что  если промахиваться на старте не будут — вряд ли будет погрешность больше чем 0,5сек, этого более чем достаточно (судьи с рациями и секундомерами в руках меряют с примерно такой же погрешностью)
avatar

nanaMEX555

0
С пингом не нужно разбираться вообще. Хвала небесам в лице Геттинга, Паркинсона и Ли Истона у нас всех есть GPS. Бери время оттуда сейчас, бесплатно и без СМС. Я не удивлюсь если это окажется самым простым способом синхронизации. Все остальное, что я написал — идеи для дальнейшего развития. Механизм в два тыка: нажал на первом смартфоне — сохранилась метка старта. Нажал на втором — метка финиша. Нажал на N-ом — промежуточная метка/метка сектора/метка открытия банки ред булла/метка готовности заказа в макдаке или что угодно вообще. Что с метками делать уже не важно, хоть в оффлайне в таблицу своди, хоть тут же кидай на сервер для синхронизации с остальными девайсами.
avatar

hotcooler17

0
Я тормоз. по другому на тайм-метки GPS смотрел. практически идеальное предложениe! Спасибо!!!
avatar

nanaMEX555

0
вдогонку о фотофинишах:

т.к. все равно таймер запускается и останавливается человеком,
то имеет смысл в этот момент делать небольшую видеозапись (т.е. маршал будет не только жать стоп, но и наводить камеру в этот момент)

система САМА автоматом снимет 3-х секундный ролик  .

Затем, чтобы уменьшить погрешность (кнопку ж человек жмет) измерений
— перед финальгным овычислением времени маршалы старта и финиша на «замедленном» просмотер выбирают кадры с которых начинается и заканчивается отсчет, и вуаля — погрешность практически отсутствует
 
avatar

nanaMEX555

0
а базовая станция даёт время?
avatar

zvladimir

0
Для одного ивента не нужная какая-то сложная или точная синхронизация.
Лишь бы часы правильно ходили — вот это условие соблюдается практически на любом современном девайсе.

Систематический сдвиг будет во всех измерениях и совершенно не важно какой он, важно что он меняется в пределах погрешности часов (а она мала).

 
avatar

m12sl

+3
А корованы грабить можно будет? ©
avatar

OmskayaPtica

0
Канешна! 
Иначе зачем это все?! ) 
avatar

nanaMEX555

0
Берешь палочку. К ней прикручиваешь контактный включатель. Едешь через старт — его задеваешь. У тебя есть время старта. То же самое делаешь внизу. У тебя есть время финиша. Зачем привязываться к мировому времени, если тебе надо узнать время прохождения на участке. Грубо говоря тебе не важно что ты стартовал в 13.01.15. Тебе важно только что ты проехал участок за 120 секунд этот. 
avatar

mark1352

0
К контактному включателю также понадобится микроконтроллер и софт… и короче это та же омега, вид сбоку, разрез по диагонали ((
avatar

nanaMEX555

+3
А секундомер на руль не предлагали ещё?
avatar

Wermachtocheck

+4
Задача использовать два смартфона, за что вы так люто ненавидите автора и постоянно пытаетесь упростить задачу??
avatar

AcidRider

0
21 век, смартфоны, искусственный интеллект, дополненная реальность… не, не слышали…
avatar

singulardroid

0
Ога, особенно когда он один, и его надо туда сюда возить постоянно. 
avatar

nanaMEX555

0
неужели с другом настолько важно время определять с точностью до десятых долей секунды?
Неужели нет доверия к другу?
На старте запустили сенундомеры. На финише остановили.
Сравнили. 
avatar

mrStep

0
хотелось удобства, ну и посмотреть как это будет работать — вдруг контест соберемся проводить: )
avatar

nanaMEX555

0
как бы ты не хейтил страву, она тебя и спасет.
в страве можно сделать участок приватным (никто, кроме тебя его там не увидит) и запускать страву под одним аккаунтом на твоем с другом устройствах. после заезда сохранять тренировку и не забывать нажимать на «замочек», чтобы сделать тренировку видимой только для тебя
avatar

AntonChehov

0
век живи век учись, спасибо
avatar

nanaMEX555

+1
Идея не нова, уже почти все из сказанного реслизовано в webscorer, плюс регистрация на эвенты (тут все вспоминают про гуглоформы и прочий колхоз) и стриминг финишей и различные варианты стартов и даже стык с профессиональными системами хпонометража. Фотофиниш тоже реализован и насколько я знаю, патентован. В том же вебскорере есть и возможность создать промежуточные отсечки аля сегменты стравы. Просто рунет он такой, всегда идет своим путем. Но это даже к лучшему, потому что если сделать приложение получше, более привлекательную модель монетизации в него вклячить чем в вебскорере и расчитать его использование не только в маунтинбайке, который является не самым популярным аутдор занятием (включая эндуру) то эффект может быть. Так как вебскорер это скорее для общественных организаций с возможностью платить за годовую подписку по сто уе за устройство. То, чего еще нет это видеостиминга с промежуточных точек ( представть еще там перископ внутри приложения, и каждый поц из зрителей снимает кусок трассы) и нет нормального follow-режима, но я не удивлюсь если в ближайшие лет пять дроны таки будут летать по лесу за гонщиками, но для проработки такого решения нужны серьезные бюджеты. Но в целом идею можно опенсорсить и лог открыть для накидывания идей
avatar

singulardroid

+1
Продумывал идею с год назад, на чистом энтузиазме не вытянуть, а для монетизации только байк тусовка рф слишком мала, это должно быть глобальное решение — в смысле языков и видов спорта. Для начала под копирку драть вебскорер, а дальше уже отклонения в сторону pay per event и так далее.
Последний раз редактировалось
avatar

singulardroid

0
о вэбскорере только узнал, спасибо — изучу.
 о наворотах (включая фотофиниши и т.д.) тоже думал — но если гвоорить о действительном желании взять и сделать
— то надо жестко профичкатить идею, сделать минимум, и пробовать.

P.S. да, может пригодиться не только и не столько в МТБ )

 
avatar

nanaMEX555

0
MVP = использование стандартных смартфонов android, раздельный фотофиниш/фотостарт, применимость вне кольцевых состязаний, индивидуальный или интервальный старт.
всё остальное — можно полжить в беклог на развитие, а с MVP уже искать инвесторов, показывая кейс вебскорера и говоря «так будет скоро, дайте бабла»
avatar

singulardroid

0
Я б даже фотофиниш/старт убрал
avatar

nanaMEX555

0
На данный момент стараемся реализовать подобный проект, но не думаю, что сможем раньше следующего года его представить на общественность.
Последний раз редактировалось
avatar

iDiablo

0
А как же agile, ранее тестирование на целевой аудитории и die fast? Этож может быть целых три месяца разработки без отклика. 
avatar

singulardroid

0
Уважаемый, м.б. есть ресурс «по бырику» закодить?
avatar

nanaMEX555

0
скорее есть та же идея, готов обсудить её развитие и бюджет, фичи, фазы, а так же модель вовлечения как дженералиста, но не кодера. я последние годы работаю вдалеке от кода и потерял навык, плюс свободного времени около 10 часов в месяц.
avatar

singulardroid

0
там работы на 60 часов + вверстка. Долго ждать, но будем ждать: (
avatar

nanaMEX555

0
на самом деле работы там гораздо меньше, все всегда упирается в минимум свободного времени
avatar

iDiablo

0
сомневаюсь в точности оценки — особенно в сценарии про мобильные приложения в качестве чекпоинтов. остальные варианты «страничка в браузере» и так далее можно забыть — нужен решение должно работать в оффлайн режиме, в реальном мире нигде в горах не будет стабильного сигнала. в центре москвы на любимом споте — может быть, но какая ценность такого прототипа?
avatar

singulardroid

0
Без моб.сети — не, браться не стоит, тем более в MVP

потому что это будет либо решение, использующее доп железяки,
либо с «пост»-обработкой результатов, либо еще какой «костыль».
avatar

nanaMEX555

0
Юзайте racehrono, в любительском автоспорте для тренировок супер заходит. От стационарного хронометража отличаются результаты максимум на одну-две десятки, обычно меньше, правда используем 10 hz приемник жпс.
 
avatar

VladimirBerezhnoy

0
Спасибо, но опять же нужен отдельный приемник  : ( В любом случае изучу
avatar

nanaMEX555

0
это только для трековых состязаний и носимое/возимое устройство. для трековых состязаний уже хренова гора придумана приложений и устройств. все основные проблемы и пожелания возникают когда есть трасса где финиш не совпадает с стартом, где есть трудный рельеф, на котором нельзя проложить кабелизацию по всей длине и / или хреновая связь и так далее. плюс в случае с рейсхроно на каждом гонщике надо по андрой-девайсу, так? таких решений куча и есть свои лидеры в автоспорте, есть в FMB и так далее. чего стоит аналитика от интел по анализу перемещений спортсмена и байка в x-games и подобных соревах.

мы же говорим про другое — что чекпоинты на трассе — это устройства. как минимум их два — стартовое устройство и финишное. это смартфоны. принцип работы — старта/финиша либо по отсечке (для гонок с интервальным стартом) либо по пересечению line of sight / визуального тега в кадре. если чекпоинтов больше то круто было бы вести стриминг видео с каждого, делать отсечки и так далее. страву можно спокойно забыть — она очень любительская и для хронометража по сегментам в dh-гонке или эндуро подойдет только для людей отстающих от лидера на десятки процентов, у остальных есть реальный шанс ехать не хуже но по страве приехать вторыми и т.п. — так как gps позиционирование на высокой скорости на склоне горы это довольно серьезная задача и там будут сбои на любительском gps оборудовании
Последний раз редактировалось
avatar

singulardroid

+1
Есть проверенное решение, берете двое любых часов и проверяете синхронность хода, судья на старте записывает время старта, судья на финише — время финиша. Потом считаете разницу.
avatar

digger

Комментировать


Зарегистрируйтесь или авторизуйтесь. Сделайте что-нибудь.