Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

С чего начать создание спортивного секундомера (1 сенсор запускает секундомер, 2 останавливает)

Тема в разделе "Раздел для начинающих", создана пользователем nikilex, 17 май 2019.

  1. nikilex

    nikilex Новичок

    Сообщения:
    8
    Симпатии:
    0
    Здравствуйте, уважаемые форумчане. Подскажите, пожалуйста, как можно реализовать такую задачу:
    1. На старте человек стоит ногой на первом сенсоре, после того, как нога сойдет с сенсора запустить секундомер.
    2. На финише человек дотрагивается рукой до второго сенсора и секундомер отключается.
    Всё это нужно сделать на беспроводной сети. И желательно чтоб можно было данные с секундомера записывать в файл на компьютере.
     
  2. CodeNameHawk

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.618
    Симпатии:
    180
    Все просто
    1. Взять три есп, синхронизировать на всех "время", первая есп передат время старта, вторая время финиша, третья все принимает, считает разницу и передает на комп, но для этого нужно.
    2. Научиться программировать.
    3. Написать три скетча.
     
    nikilex нравится это.
  3. nikilex

    nikilex Новичок

    Сообщения:
    8
    Симпатии:
    0
    Вот спасибо тебе, пойду покупать всё для этого, мне главное было узнать возможно ли синхронизировать 3 есп межу собой и передать это на комп
     
  4. nikolz

    nikolz Гуру

    Сообщения:
    4.698
    Симпатии:
    452
    еще осталось определиться с датчиком
    вдруг ногой мимо наступит на финише?
    а если участников десять?
     
  5. nikilex

    nikilex Новичок

    Сообщения:
    8
    Симпатии:
    0
    Участника будет 2, я думаю 5 есп взять, 2 на старте, 2 на финише и 1 записывает в комп, на финише нужно рукой дотронуться, а ногой нужно уйти с датчика (на размыкание так сказать=))
     
  6. nikolz

    nikolz Гуру

    Сообщения:
    4.698
    Симпатии:
    452
    а почему бы луч лазера не использовать?
     
  7. nikilex

    nikilex Новичок

    Сообщения:
    8
    Симпатии:
    0
    Лазеры вроде сильно зависимы от света и возможно менее подойдут, чем сенсорный датчик.
     
  8. CodeNameHawk

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.618
    Симпатии:
    180
    На одну есп есть возможность подключить более одного датчика.
     
  9. nikilex

    nikilex Новичок

    Сообщения:
    8
    Симпатии:
    0
    Как мне подключить 2 датчика на расстоянии 10 метров без проводов?
     
  10. CodeNameHawk

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.618
    Симпатии:
    180
    Они, что стартуют с разных точек?
     
  11. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.699
    Симпатии:
    1.282
    1. С расчета необходимой точности и дискретности замера.
    2. Выбора соответствующего метода и оборудования для достижения необходимой точности и дискретности замера.
    3. Выбора необходимой среды разработки ПО для реализации алгоритма.

    https://esp8266.ru/forum/threads/sinxronizacija-chasov.1951/page-12#post-28692
     
  12. nikilex

    nikilex Новичок

    Сообщения:
    8
    Симпатии:
    0
    Аааа, точняяяк, можно же эти фишки соединить, ехехехе, ну стартуют они всё равно в метрах трех друг от друга и финишируют тоже так же. Это скалолазание на скорость
     
  13. nikolz

    nikolz Гуру

    Сообщения:
    4.698
    Симпатии:
    452
    возможно, но посмотрите на лазерные дальномеры и прицелы которые работают до 100 и 1000 метров и свет не мешает
    простая лазерная указка легко дает пятно 5 мм на расстоянии 10 метров.
    --------------
    в любом случае выбор датчиков надо делать изначально.
    что же касается ESP то их можно просто использовать как линии связи и режим ESP-NOW который обеспечит устойчивую работу без каких-либо подключений и точек доступа
    но можно взять и BLE
    --------------
    возможно проще и точнее будет две ESP. Одна на дорожке другая у компа.
    А датчик можно и проводом пробросить либо инфракрасным лучом.
     
  14. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.699
    Симпатии:
    1.282
    @nikilex
    Реализация и алгоритм решения вашей задача выглядит так:

    Т.к. не знаю, ввели или нет в Arduino функцию чтения счетчика TSF, то:

    1. Берете последний SDK для ESP8266. Готовите необходимый патч для дров WiFi, реализующий функцию чтения TSF.

    Далее пишите программу, состоящую из трех задач:

    1. Считывания TSF в прерывании по изменению уровня на пине и передающей это значение в таск (основной задаче).
    2. Основная задача передает полученное значение TSF (и уровень с пина – on/off) на роутер.
    3. Система настройки с основной функцией - подключение к роутеру.

    С ESP8266 это всё.

    На устройстве (пусть смартфоне) или роутере, выступающем в качестве AP для нескольких подключенных ESP8266, принимаете значение TSF от источников (ESP8266) и вычисляете разницу между этими значениями. Т.к. эти значения в микросекундах и они синхронизованы и заданы от AP, то получаете период между событиями любой ESP8266 в микросекундах.

    Всё. Далее “выкрасить и выбросить” или продать, или застолбить методу своим (c) :)
     
  15. nikolz

    nikolz Гуру

    Сообщения:
    4.698
    Симпатии:
    452
    еще можно сделать так
    По кнопке "старт" центральное ESP отсылает по протоколу ESP-NOW сигнал для ESP на дорожке
    они запоминают собственное время
    при срабатывании датчика старта
    первая ESP определяет запаздывание относительно старта
    при срабатывании датчика стопа вторая запоминает запаздывание относительно старта
    потом эти ESP отдают значения запаздывания первой и та рассчитывает время бега.
    --------------
    Отличие от предыдущего - нет надобности в роутерах и в маяках все работает в прямой видимости.
    и не требует никаких костылей к стандартной SDK
     
  16. CodeNameHawk

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.618
    Симпатии:
    180
    Полтора метра до кнопки с правильной обьвязкой и экранированным проводом, не должно создать особых проблем.
     
  17. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.699
    Симпатии:
    1.282
    Да, TSF - это Timing synchronization function - Wikipedia
    В предельном случае, когда всё описано на СИ, правильно обработана атомарность связки чтения TSF и изменения на пине, используя ESP8266, получите точность к +-5 us от хода кварца в AP.
    По методу, описанному Nicolz с ESP-NOW и несколькими ESP - предельная точность составит до +- пары сек в рабочей обстановке и возможны потери событий...
     
  18. nikolz

    nikolz Гуру

    Сообщения:
    4.698
    Симпатии:
    452
    предлагаю такой вариант (кто проще?)
    1) срабатывает датчик старта ESP1 посылает по ESP-NOW сигнал на ESP3 та запоминает свое системное время
    2) срабатывает датчик финиш ESP2 посылает по ESP-NOW сигнал на ESP3 та вычисляет разность системного и запомненного
    Нет никакой проблемы с синхронизацией часов на ESP
    программа у ESP1 и ESP2 элементарная - пришло прерывание - послали короткую посылку
    и усе
     
  19. CodeNameHawk

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.618
    Симпатии:
    180
    Добавляется погрешность, время передачи пакета может быть не постоянным.
     
  20. CodeNameHawk

    CodeNameHawk Moderator Команда форума

    Сообщения:
    1.618
    Симпатии:
    180
    И надо послать два сигнала, иногда почти одновременно.
     

Поделиться этой страницей