|
204 / 20 / 1
Регистрация: 29.10.2009
Сообщений: 430
|
|
.NET 4.x Пример для записи времени таймера в ячейку подключенной БД. Фотофиниш25.08.2016, 09:33. Показов 6859. Ответов 38
Метки нет (Все метки)
Друзья, всем привет!
Очень давно не заходил на форум, не программировал очень давно, растерял со своей "памятью" все знания, прошу помощи с полезным делом! Хочу сделать на нашу старенькую горнолыжку (в моем поселке есть гора, на которой занимается спортивная секция) и порадовать народ "новыми технологиями" =) Как-то катаясь я услышал "вот бы и нам такую штуку сюда как фотофиниш, было бы здорово!" и подумал почему бы не попробовать? ... И так, что я хочу собрать? Нужно собрать устройство, которое будет регистрировать момент старта участника и момент его пересечения финиша. Из железа а у меня есть микроконтроллер, на который я повешу датчики старта и датчики финиша (фотоэлемент, на который светит лазерный луч). Микроконтроллер будет подключаться по COM-порту и отправлять в програму всего 2 команды - "старт" и "финиш". Что я хочу написать? Нужно написать простое и удобное приложение, которое при получении команды "старт" начинает отсчет времени в формате ЧЧ:ММ:СС:МС. При получении команды "финиш" таймер останавливается, и вносит запись в базу данных, или текстовый документ. Ах да, тут я не знаю как лучше, но наверное лучше подключить БД и в нее вбивать. Перед стартом организатор или судья должен заполнить таблицу участниками. Вроде это все? Прошу помочь на моем примере со следующим: - в таймере настроить работу "миллисекунд" - помочь с подключением COM-порта (как подключить и открыть я знаю, как отправить тоже знаю, а вот как мониторить постоянно порт и ждать команды старта или финиша - не знаю) - помочь сделать простую БД с возможностью внесения в нее записей типа "ФИО|Группа|Время 1|Время 2|Время 3|" с сохранением. - помочь сделать так, чтобы время таймера вносилось в поля "Время 1, 2, 3" постепенно по проезду каждого участника, ну или пока вручную. Впринципе на начальном этапе достаточно выводить мессадж о пересечении финиша и в нем указывать точное время, которое оператор перекопирует в столбик БД. Из всего этого уже есть: - примерная форма - рабочий таймер (но без отсчета миллисекунд, они нужны) - подключенная БД Буду очень признателен если кто-нибудь скачает мой пример и с ним поможет собрать проект.
0
|
|
| 25.08.2016, 09:33 | |
|
Ответы с готовыми решениями:
38
Подбор времени для таймера для передвижение объекта за точное время Реализовать работу таймера для обратного отсчета времени |
|
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
|
||||||||
| 26.08.2016, 11:46 | ||||||||
1
|
||||||||
|
204 / 20 / 1
Регистрация: 29.10.2009
Сообщений: 430
|
||
| 26.08.2016, 12:13 [ТС] | ||
|
Добавлено через 23 минуты Возвращаясь к TextBoxN.Text. Так как я вывожу информацию из текстбокса в ячейку Excel, то возникает вопрос с форматами ячеек. Возможно ли сделать так, чтобы мы в итоге видели цифры формата 00:00:00.000? Так как Excel выводит, например 00:23:11.299, так: 23:11,3. Вроде не так страшно? Может и так оставить, вроде понятно, хотя могут придраться мол "нестандартное значение времени в спорте" (я кстати не знаю как в идеале выглядеть должно, пойду загуглю...)
0
|
||
|
204 / 20 / 1
Регистрация: 29.10.2009
Сообщений: 430
|
|
| 26.08.2016, 14:02 [ТС] | |
|
Да... "01" час вообще потерялся... Так дело не пойдет... Куда он делся? (
0
|
|
|
204 / 20 / 1
Регистрация: 29.10.2009
Сообщений: 430
|
|||||||||||
| 26.08.2016, 14:20 [ТС] | |||||||||||
|
Не пойму почему после подключения к порту программа пишет порт закрыт?
Ругается(Порт закрыт.) на строку:
0
|
|||||||||||
|
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
|
|||||||
| 26.08.2016, 15:40 | |||||||
|
объяви SerialPort вне функций. Добавлено через 13 минут SERGEY199100, да, кстати, список портов в системе можно получить
1
|
|||||||
|
204 / 20 / 1
Регистрация: 29.10.2009
Сообщений: 430
|
||||||
| 26.08.2016, 15:41 [ТС] | ||||||
|
Да, чуть позже сделаю чтобы можно было их выбирать.
Почему не работает простетское условие:
0
|
||||||
|
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
|
|
| 26.08.2016, 15:43 | |
|
SERGEY199100, поставь точку останова и посмотри отладчиком точно ли там "s"
0
|
|
|
204 / 20 / 1
Регистрация: 29.10.2009
Сообщений: 430
|
|
| 26.08.2016, 15:44 [ТС] | |
|
aquaMakc, в label выводится либо "s" либо "f" (это я передаю каждые 5 секунд в ком порт с контроллера либо s либо f). Но условие почему-то не видит эти s/f
0
|
|
|
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
|
||
| 26.08.2016, 15:47 | ||
|
2
|
||
|
204 / 20 / 1
Регистрация: 29.10.2009
Сообщений: 430
|
|
| 26.08.2016, 15:49 [ТС] | |
|
Не знал раньше о таком! Спасибо )
POT "f\r" string
0
|
|
|
204 / 20 / 1
Регистрация: 29.10.2009
Сообщений: 430
|
|
| 26.08.2016, 16:04 [ТС] | |
|
Все работает! Теперь надо как-то решить вопрос с форматом который выводится в Excel. Я видел где-то комментарии что можно принудительно ячейке задать формат, но что-то там у человека не получалось. Как автоматически проставлять в textBox1, 2, 3, 4, ... N текст из textBox0 по очереди?
0
|
|
|
204 / 20 / 1
Регистрация: 29.10.2009
Сообщений: 430
|
|
| 29.08.2016, 08:51 [ТС] | |
|
Вроде придумал как заполнять текстбоксы. Проверяем каждый по очереди начиная с первого, если первый = null - вносим в него запись, следующий круг если певрый != null - вносим во второй текстбокс запись, и так далее по первому столбцу, потом дальше. Как вот только написать условие правильно? =)
0
|
|
|
204 / 20 / 1
Регистрация: 29.10.2009
Сообщений: 430
|
|
| 01.03.2017, 19:35 [ТС] | |
|
Всем привет!
Ну что, можно сказать система протестирована и введена в работу на одном из горнолыжных комплексов на Севере России официально =) YouTube: ОМЕГА - Автоматическая система фотофиниша в действии. Горнолыжный склон Petsamo
Ссылка на Видео https://www.youtube.com/watch?v=zqybXF02qn8
НА ВИДЕО РЕЗУЛЬТАТ РАБОТЫ АВТОМАТИЧЕСКОЙ СИСТЕМЫ РЕГИСТРАЦИИ ФИНИШИРОВАНИЯ "ОМЕГА" Соревнования прошли, система "О'МЕГА" прошла тестирование. За 3 дня была собрана конструкция из 3-х втыкающихся в снег стоек, с установленными на каждую датчиками. Одна из стоек - стартовый флажок, который отгибается и возвращается на место сам (сам - это значит не надо его трогать. Вот это есть "норма" а не тогда, когда контролер должен возвращать флажок вручную на место!), другие две стойки - система с микроконтроллером, которая обрабатывает всю информацию с датчиков, в том числе с флажка на старте, и с датчика, который регистрирует прерывание лазерного луча на на третьей стойке. Для удобства и понятности работы конструкции, для стартующего сделана световая индикация - "зеленый свет - можно стартовать", "красный свет - стартовать нельзя, жди". По идее, в таком случае, контроллер на верху просто говорит участнику - "Старт по готовности" (участник сам стартует без отмашки "на старт, внимание, марш!"). Для работоспособности всей этой железной части было разработано авторское программное обеспечение - две программы. Одна из программ устанавливается в ОМЕГУ, вторая программа - терминал на компьютере. Программа в ОМЕГЕ: считывает показания со всех датчиков, регистрирует прерывание луча лазера, производит световую индикацию на стартовом столе (кстати есть еще и звуковая индикация, но я не стал ее включать). Всю информацию ОМЕГА отправляет на терминал. Терминал на компьютере: это программа с человеко-понятным интерфейсом, с которым работает СУДЬЯ. В этой программе вбиваются все участники, производится подключение к ОМЕГЕ. Все работает автоматически. Как только участник стартует - запускается отсчет времени и судья просто сидит и "отдыхает". Как только участник пересекает финишную линию - секундомер в программе останавливается фиксирую время участника с точностью до тысячных миллисекунд! Далее СУДЬЯ просто копирует время и переносит его в ячейку финишировшего участника. Почему тут в ручную? Да потому что то кто-то замешкается, то кто-то стартует не по списку, или перезачет. После проезда всех двух попыток, занесенное время для каждого участника выгружается в таблицу Exel где всего в пару нажатий мышки проводится сортировка по времени и за 1 минуту выявляются призовые места. ПЛЮСЫ использования данной системы: 0. 21 век! Теперь у нас есть рабочий прототип, чего нет у других! 1. Автоматизация процесса подсчета времени с исключением человеческого фактора "блин я не понял он чо стартанул?? Я же не засек!" или тому подобное. 2. Участники сами смотрят когда им стартовать. Если они не по списку, то судье по рации говорится номер участника и судья вбивает время этому номеру. 3. Включил и работает. 4. Сохранение результатов Exel 5. Моментальное определение победителей 6.Установка и настройка за 1 час (при 6 работниках) МИНУСЫ, выявленные на этапе тестирования: 1. Луч на дистанции 3-4 метра менее сфокусированный и не бъет в точку, а бъет в ЖИРНУЮ точку размером в 2 см! Решение проблемы №1: использование 2-х лазеров, которые светят в одну точку. Решение проблемы №2: делаем более широкое окно куда светит лазер. 2. Падающий снег. Для фиксации пересечения лазерного луча на большой скорости и при проблеме, указанной в п.1 происходит ложное срабатывание лазера. Решение: указано в п.1. 3. Мороз и компьютер. Необходима переделка кабеля и установка компьютера в теплом помещении. Решение №1: финишные ворота ставятся рядом с домом, от финиша через USB-удлинители воткнутые друг за другом последовательно тянем их до окна. Решение №2: оставляем финиш где стоял, но пробуем сделать длинный "USB" кабель из "сетевого LAN-кабеля". Но тут неизвестно как поведет себя компьютер, возможны проблемы. 4. Несогласованность СУДЬИ и технического персонала. Необходимо перед проведением мероприятия конкретно говорить каждому его задачу и обязанности. Ознакомить с работой системы. Ознакомить с возникающими проблемами и способами их устранения. Это все делается уже по ходу работы с системой на этапах тестирования и настройки. ИТОГО: Система отработала на 4+. Я не вижу минусов, кроме того, что луч ложно срабатывал. Это исправимо и не является проблемой, так что я бы поставил 5. ФОТО ниже
3
|
|
|
378 / 375 / 213
Регистрация: 29.03.2013
Сообщений: 867
|
|
| 01.03.2017, 20:21 | |
|
SERGEY199100, браво! Интересный проект получился. А фальстарт предусмотрен, если раньше времени на стартовый флажок надавить, или он просто не отогнется раньше времени? Тут основная работа и основные сложности всё же наверное были с "железной" частью: устройствами и датчиками, конструкцией. А что за микроконтроллер? на языке Си его программировали?
Спасибо за отчет, фото- и видеоматериалы
0
|
|
|
204 / 20 / 1
Регистрация: 29.10.2009
Сообщений: 430
|
|
| 01.03.2017, 20:31 [ТС] | |
|
Спасибо за отзыв!) Да, фальшстарт предусмотрен. Стартовый стол имеет флажок, который отоводится в стороны и замыкает цепь (прерывание происходит). Флажок возвращается обратно в свою начальную позицию. Там же я сделал оптический сигнализатор "Зеленый и красный свет + бипер). Мы в контроллере (Arduino NANO) отслеживаем это событие. Как только оно произойдет, мы активируем проверку другого события - прерывание луча лазера на финише. Пока оно не произойдет - флажок можно задергаться - это никак не повлияет на отсчет участника который уже летит к финишу. Проблема у меня была с улавливанием лазерного луча. Стойки круглые и я полагаю они потихоньку разворачиваются от ветра или от тяжести замерзающих проводов. Но тут будет переделка, когда лень уйдет =) У меня в программе ловится перемена освещения фотодатчика в трубке. А трубка из белого материала - внешнее освещение ее засвечивало и мне приходилось подстраиваться под это. В новой версии это будет исправлено и я введу переменную "ошибка" которая по ПИД-составляющему алгоритму будет учитываться при проверке пересечения луча. Фотодатчик реагирует на пересечение луча снежинкой размером с 2-3 мм)) Это надо исправлять. У меня даже спор вышел с судьями. Я им говорю - "зачем вам автоматика если вы, динозавры, возвращаете флажок обратно вручную?". А они мне говорят - так принято. Ну елки палки... Как так принято? Я вам сделал так чтоб вы отдыхали и только следили за участником чтоб он не чудил на старте и все =) Старые привычки
1
|
|
|
378 / 375 / 213
Регистрация: 29.03.2013
Сообщений: 867
|
|
| 01.03.2017, 21:17 | |
|
SERGEY199100, да уж, спорт зачастую слишком консервативен, но современные технологии всё-равно берут своё и массово внедряются в нашу жизнь. Мне кажется, развернутая статья по этой теме с техническими подробностями будет интересна и на ресурсах типа хабр/гиктаймс. Но это конечно если вам это интересно, как хорошая реклама может сработать.
1
|
|
|
204 / 20 / 1
Регистрация: 29.10.2009
Сообщений: 430
|
|
| 03.03.2017, 12:31 [ТС] | |
|
Видео 2 В данном видео можно посмотреть как выглядит система в железном исполненииhttps://www.youtube.com/watch?v=28_fkaqGNgA
0
|
|
|
0 / 0 / 0
Регистрация: 19.06.2018
Сообщений: 1
|
|
| 19.06.2018, 12:11 | |
|
SERGEY199100, Сергей, добрый день. Крайне интересен ваш результат. У нас в Раменском, ГРАД (Городская Раменская Авто Дружина) собирается провести гонки на трассе автодрома. Будет два этапа, скоростное маневрирование и слепое маневрирование. Вот мы и заморочились с системой фотофиниша. Нам крайне интересна ваша прога. Если не трудно и этот сайт работает, просьба выйти на связь на почту avtomagik@mail.ru. Очень ждем.
0
|
|
| 19.06.2018, 12:11 | |
|
Как перенести данные в ячейку по записи в другую ячейку без использования макросов Пример таймера на PHP
Пример работы таймера AT90S2313 из книги Прокопенко В
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|