|
204 / 20 / 1
Регистрация: 29.10.2009
Сообщений: 430
|
|
.NET 4.x Пример для записи времени таймера в ячейку подключенной БД. Фотофиниш25.08.2016, 09:33. Показов 6907. Ответов 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 из книги Прокопенко В
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
|
Скрипты 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: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|