Последние записи
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
- wprintf как напечатать кириллицу
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
18th
Фев
Считывание данных с Com-порта
Posted by obzor under c/c++, Топик-обзор
Я только начинаю изучение c, программирование микроконтроллеров!
Мне поставили такую интересную задачу — наглядно вывести данные с Com-порта весового устройства.
Данные поступают на порт постоянно. Примерно 3 раза/сек.
Нужно, чтобы они аккуратно складывались, к примеру, в текстовой файл, чтобы в любой момент можно было посмотреть историю взвешиваний.
Т.е. строчка — дата, вес.
Трудности:
Отсечь лишние. В день может быть примерно 10-20 взвешиваний тяжелых машин. Но мне не надо (3*60*60*24) данных веса за 1 день.
Т.е. выводить бы примерно каждые 3 секунды или только когда будет взвешивание.
Ноль, который будет бОльшую часть времени не нужен.
Взвешивание:
Грузовик заезжает на платформу. Весы моментально реагируют и пулеметом выстреливают (примерно 3 раза/сек) данные — нарастающий вес. Когда грузовик останавливается, вес успокаивается в верхней точке. НО, он может колебаться +- несколько десятков кг. Так устроено оборудование. Затем он уезжает, вес стремительно уменьшается до +-нуля.
Ребят, помогите. Задача интересная, но я сам не осилю.
что тут сложного то .. пока ноль считываете и игнорируете данные.
Как только вес превышает определенный порог начинаете фиксировать данные. Когда вес опять упадет ниже порога останавливаете фиксацию
Фильтруете данные каким нибудь доступным методом фильтрации, находите экстремум и определяете средний вес в экстремальной точке.
Период среднего веса, порог подбираются эмпирически.
Метод фильтрации выбирайте также эмпирически. После нескольких тестовых измерений можно подобрать инструменты и получить достаточно точный результат.
Другой способ:
Использовать производную сигнала полученных данных. Если при наезде на весы вы говорите что вес нарастает стремительно то всплеск производной может быть засчитан как начало данных, и второй всплеск как конец … между этими сигналами эмпирически подбираете размер производной при устоявшемся весе. Дальше аналогично, вычислить средн.. точку данных и затем средний вес.
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)