Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Программная инженерия > Микроконтроллеры, робототехника, схемотехника, 3D принтеры
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.09.2014, 14:22   #1
avovana
Пользователь
 
Регистрация: 08.09.2014
Сообщений: 14
По умолчанию Считывание данных с Com-порта

Здравствуйте, уважаемые форумчане! Я только начинаю изучение c, программирование микроконтроллеров!

Мне поставили такую интересную задачу - наглядно вывести данные с Com-порта весового устройства.
Прикрепляю картинку


Данные поступают на порт постоянно. Примерно 3 раза/сек.
Нужно, чтобы они аккуратно складывались, к примеру, в текстовой файл, чтобы в любой момент можно было посмотреть историю взвешиваний.
Т.е. строчка - дата, вес.

Трудности:
Отсечь лишние. В день может быть примерно 10-20 взвешиваний тяжелых машин. Но мне не надо (3*60*60*24) данных веса за 1 день.
Т.е. выводить бы примерно каждые 3 секунды или только когда будет взвешивание.
Ноль, который будет бОльшую часть времени не нужен.

Взвешивание:
Грузовик заезжает на платформу. Весы моментально реагируют и пулеметом выстреливают (примерно 3 раза/сек) данные - нарастающий вес. Когда грузовик останавливается, вес успокаивается в верхней точке. НО, он может колебаться +- несколько десятков кг. Так устроено оборудование. Затем он уезжает, вес стремительно уменьшается до +-нуля.

Ребят, помогите. Задача интересная, но я сам не осилю.
avovana вне форума Ответить с цитированием
Старый 08.09.2014, 17:13   #2
koljsch
Форумчанин
 
Регистрация: 26.01.2009
Сообщений: 360
По умолчанию

Больше похоже на коммерческое приложение. Или свой код в студию, или во фриланс
koljsch вне форума Ответить с цитированием
Старый 08.09.2014, 21:05   #3
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

что тут сложного то .. пока ноль считываете и игнорируете данные.
Как только вес превышает определенный порог начинаете фиксировать данные. Когда вес опять упадет ниже порога останавливаете фиксацию
Фильтруете данные каким нибудь доступным методом фильтрации, находите экстремум и определяете средний вес в экстремальной точке.
Период среднего веса, порог подбираются эмпирически.
Метод фильтрации выбирайте также эмпирически. После нескольких тестовых измерений можно подобрать инструменты и получить достаточно точный результат.

Другой способ:
Использовать производную сигнала полученных данных. Если при наезде на весы вы говорите что вес нарастает стремительно то всплеск производной может быть засчитан как начало данных, и второй всплеск как конец ... между этими сигналами эмпирически подбираете размер производной при устоявшемся весе. Дальше аналогично, вычислить средн.. точку данных и затем средний вес.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.

Последний раз редактировалось WorldMaster; 08.09.2014 в 21:11.
WorldMaster вне форума Ответить с цитированием
Старый 08.09.2014, 21:16   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Переформулируй задачу, СОМ-порт тут роли не играет.
Только входные данные, время, выходные данные.

Допустим, получил ты пачку данных. Выложи сюда, будем посмотреть.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 09.09.2014, 08:28   #5
avovana
Пользователь
 
Регистрация: 08.09.2014
Сообщений: 14
По умолчанию

Цитата:
Сообщение от koljsch Посмотреть сообщение
Больше похоже на коммерческое приложение. Или свой код в студию, или во фриланс
Это просто помощь другу у отца на работе) Делаю из добрых побуждений. Поскольку сам не особо разбираюсь, попросил помощи здесь...)

Цитата:
Сообщение от WorldMaster Посмотреть сообщение

Другой способ:
Использовать производную сигнала полученных данных. Если при наезде на весы вы говорите что вес нарастает стремительно то всплеск производной может быть засчитан как начало данных, и второй всплеск как конец ... между этими сигналами эмпирически подбираете размер производной при устоявшемся весе. Дальше аналогично, вычислить средн.. точку данных и затем средний вес.
Цитата:
Сообщение от min@y™ Посмотреть сообщение
Переформулируй задачу, СОМ-порт тут роли не играет.
Только входные данные, время, выходные данные.

Допустим, получил ты пачку данных. Выложи сюда, будем посмотреть.
Я думаю сложно с этими мат. задачами. Сделать просто - выводить данные в текст. файл - вес, время каждые 3 сек, чтобы в любой момент можно было посмотреть.

Ладно, задача как она есть. Сидит бабушка и смотрит на весы, записывает в журнал показания. Но бабушка может случайно или нет "ошибиться" на пару тонн щебня)))

Вот и надо технологиями XXI века ей помочь, продублировать ее) Друг сделает удаленный доступ, а с меня вывод данных на ПК.
avovana вне форума Ответить с цитированием
Старый 09.09.2014, 08:57   #6
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

avovana, я как раз ищу разные небольшие задания, где у меня есть пробелы. Сейчас проблемка - это не очень крепкие навыки работы с COM-портом. Я побочно тут немножко попишу...

Раз в названии темы Com-порт, значит, сюда будут заходить люди с ним работающие. У меня к ним вопрос. Я раньше использовал программки, которые позволяли создавать пары виртуальных COM-портов. Одна моя программка (назовём генератор) слала данные в один порт. А разрабатываемая программка - читала из другого. Посоветуйте свободную программку, которая надёжно поставится. Кто использует com0com? Как она?
8Observer8 вне форума Ответить с цитированием
Старый 09.09.2014, 09:11   #7
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Поставил вот эту: http://www.hhdsoftware.com/free-virtual-serial-ports

Установил и запустил. Какая-то фигня:
8Observer8 вне форума Ответить с цитированием
Старый 09.09.2014, 09:13   #8
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

А всё извините. Надо было в Help тыкать, там всё написано. Попозже отпишусь/
8Observer8 вне форума Ответить с цитированием
Старый 09.09.2014, 09:20   #9
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

avovana, из вашего описания не слишком понятно, это программа данные куда нибудь записывает? Если записывает, то можно воспользоваться функциями поиска экстремумов.

Есть несколько.
1. Поиск экстремумов методом поразрядного приближения.
2. - // - методом дихотомии.
3. - // - методом золотого сечения.
4. - // - методом квадратичной итерполяции.
5. - // - методом координатного спуска.

Каждай из них, имеет как недостатки, так и преимущества. Какой подойдёт именно Вам, сказать трудно, нужно поэкспериментировать. Описаний их в инете - пруд-пруди на любой вкус и цвет. Удачи.

8Observer8, не лезте в чужую тему со своими вопросами. Люди отвечают конкретному человеку на конкретно поставленный вопрос. Если есть вопросы, соэдайте свою тему и не запутывайте окружающих.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 09.09.2014 в 09:26.
Smitt&Wesson вне форума Ответить с цитированием
Старый 09.09.2014, 09:21   #10
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Справку почитал. Вроде Bridge надо создавать. Но при нажатии на кнопку "Create" вылетает сообщение:



Посоветуйте нормальную программу для создания пары замкнутых виртуальных портов
8Observer8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Приём данных с COM порта Евгений55 Microsoft Office Excel 3 05.01.2013 16:46
Считывание сигнала с COM порта Pasha_Sh Общие вопросы Delphi 8 13.12.2011 23:29
автоматическое считывание с com порта denis_kas Win Api 4 22.11.2010 19:11
Считывание и расшифровка (интерпретация) данных с lpt порта, передаваемых печатающему устройству Ma3a Общие вопросы Delphi 3 21.12.2009 08:46
считывание из СОМ(или USB) порта voron29 Общие вопросы Delphi 1 29.06.2008 13:09