Вывод сигнала с датчика на монитор ПК

Есть вопрос? Задайте его тут. Пожалуйста, придерживайтесь правила: один вопрос - одна тема.
Автор темы
Апрель
Откуда: Тюмень

Вывод сигнала с датчика на монитор ПК

Сообщение Апрель » 09 дек 2018, 09:24

Никак не могу найти готовое решение по одному вопросу. Требуется выводить на экран график время/давление от датчика. Датчик выдает напряжение 1-5 в в зависимости от давления.
1. Да можно использовать USB осцилл, но мне важно чтобы на графике были не вольты а именно давление и возможность калибровки датчика.
2. Можно написать "простую" программу, но я хоть и не совсем далек от этого, но все таки не готов.
3. Можно что то замутить с применением ESP8266, но хотелось бы без "сетей" и опять писать программу.

Аватара пользователя
ROW
Реальное имя: Роман
Откуда: Барнаул

Вывод сигнала с датчика на монитор ПК

Сообщение ROW » 09 дек 2018, 11:22

Апрель писал(а):Источник цитаты Требуется выводить на экран график время/давление от датчика. Датчик выдает напряжение 1-5 в в зависимости от давления.
1. Да можно использовать USB осцилл, но мне важно чтобы на графике были не вольты а именно давление

все датчики преобразуют измеряемую неэлектрическую (которой и давление является) в изменение электрического сигнала ка кто : напряжение,частота,ток..поэтому на экран вывести прям сразу давление и не
Апрель писал(а):Источник цитаты написать "простую" программу
вряд ли получится..поэтому либо писать программу либо искать готовое решение " из коробки"-распаковал, подключил,установил наблюдаешь
Нужно любить людей, но быть равнодушным, творить добро и ждать зла, надеяться на лучшее, но ожидать худшего, верить в людей и никому не доверять, быть оптимистом с реалистичными взглядами, жить с открытым сердцем и никого в него не пускать.

Аватара пользователя
T-Duke

Вывод сигнала с датчика на монитор ПК

Сообщение T-Duke » 09 дек 2018, 11:36

ROW писал(а):Источник цитаты поэтому либо писать программу либо искать готовое решение " из коробки"-распакавал, подключил,установил наблюдаешь

готовое решение - это деньги и не маленькие, можно найти что-то от промышленных ПЛК и систем сбора данных. Но это получится из пушки по воробьям. Из более бюджетных решений - это одноплатник распберри пи. Но там тоже не любой сенсор воткнешь, потребуются переходные шилды. Или использовать простенькую дуину и свой софт на компе, или более интегрированное решение на плате с более мощным контроллером и экраном на борту. Короче писать прогу в любом случае придется.
Technology is insignificant comparing to the power of the Force.

Аватара пользователя
L0ki

Вывод сигнала с датчика на монитор ПК

Сообщение L0ki » 10 дек 2018, 15:46

1. USB-ослик оверкил для такой задачи
(к тому же почти наверняка придется заняться реверс-инжирингом протокола обмена ослика с компом :shock: - а оно надо ? :? ).

Более чем хватит любого микроконтроллера с АЦП и компортом унутре + USB-Com-порт конвертор (на FT232 например, или даже использовать подходящий USB-кабель от старых сотовых телефонов с подобным конвертром унутре).

Теоретицки можно съекономить и сделать усбишный стэк программно в МК (например как USB hid устройство),
на практике же гораздо менее геморойно использовать железячное а не программное решение
(да в курсе что есть МК c USB на борту, однако отдельный МК + конвертор будут намного более дешевым и намного менее проблемным решением).

Если же комп имеет com-порты, то тут ваще не надо c USB никак извращаться,
просто подключаем к компорту используя копечную max232 и радуемся жизни. :)

Если влом/неумеем паять - то можно взять готовую платку ардуино + юсбишный довесок к ней.

2. программы писать таки придется.
Полюбому.
(причем две программы - одна для микроконтроллера, другая для компа).
Либо писать самому, либо кому-то заказывать. Иначе, что-то 100%-но готовое "искаропки" (например промышленный ПЛК) будет крайне невменяемых денех стоить. Программа Вам по любому нужна, не святым духом график рисоваться же будет. :jokingly:

3. ESP8266 нафига себе такой сетевой геммор искать ? Почти аналогично с разбери-пи - вы готовы покрасноглазить с линуксом ? :crazy:
Так что тут более чем хватит банальной копеечной атмеги.
чукча - не писатель, чукча - читатель.
Аднака.

Автор темы
Апрель
Откуда: Тюмень

Вывод сигнала с датчика на монитор ПК

Сообщение Апрель » 11 дек 2018, 15:13

Наверно есть что- то вроде USB осциллограф на ардуино, программу которого можно подрихтовать под мою задачу?
Много инфы перерыл по этому вопросу (правда сейчас не нахожу папку с закладками :unknown: ) часто люди пишут "написал простую прогу для ПК" я с МК разобрался кое как, но писать прогу для компа ? Просто не знаю куда её писать )) Но догадываюсь что это на самом деле не так сложно, функционал мне нужен минимальный, дизайн тоже. Должен же быть какой-то эмулятор для чайников, на Бейсике например :pardon:

Аватара пользователя
AnSm
Реальное имя: Андрей
Откуда: Владимирская обл. Собинка.

Вывод сигнала с датчика на монитор ПК

Сообщение AnSm » 12 дек 2018, 02:12

Апрель писал(а):Источник цитаты Просто не знаю куда её писать ))

Если протокол обмена модбас, то есть бесплатные скад системы, чтобы замутить вввод на экран. Есть и с вэб интерфейсом. В скаде есть встроенный протокол модбас, что хорошо. Не нужно покупать описи сервер. В свое время искал, ничего путного бесплатного не нашел из описи.
Вот например. https://simple-scada.com/forum/index.php?topic=114.0

Отправлено спустя 1 минуту 58 секунд:
Ну и вот статейка хорошая.
http://robot-develop.org/archives/1042
По этой ссылке разбирался сам. Пакет собирал, но он мне не подошел из за низкой скорости обмена при большом количестве узлов. В этой библиотеке ,сом порт не работает в overlapped режиме и поэтому при большом количестве узлов, основная программа тормозит. Разработчик библиотеки сам написал что не знает как заставить работать порт в этом режиме. Это я нашел в коментах, ковырясь в исходниках. Но для несложных проектов библиотечка хороша.
Всё проходит...

Аватара пользователя
L0ki

Вывод сигнала с датчика на монитор ПК

Сообщение L0ki » 13 дек 2018, 15:29

AnSm, :? да нафига они нужны какие-то еще и протоколы, когда по сути надо передавать значение двухбайтного числа (АЦП атмеги 10 бит). Девайс то один единственный.
// вот когда их более одного, тогда уже и надо начинать думать о протоколах обмена.
Тем более что необходима
Апрель писал(а):Источник цитаты возможность калибровки датчика

Т.е. все преобразования (в т.ч. и калибровку) и масштабирование будут делаться уже программой на компе.

Ну а в МК лично я бы вообще наипростейшую программу сделал:
Делаем прерывание по таймеру (т.е. через какие там не знаю топикстартеру интервалы времени нужны замеры),
в обработчике прерывания запускаем АЦП преобразование, получавшееся значение преобразовываем в текстовое представление шестнадцатеричного числа, и как текстовую строку (оканчивающуюся стандартными 0D 0A) отправляем в компорт.
Вот и весь "протокол". :pardon:
// для отладки такого "протокола" будет вполне достаточно стандартного виндового гипертерминала.
чукча - не писатель, чукча - читатель.
Аднака.

Аватара пользователя
AnSm
Реальное имя: Андрей
Откуда: Владимирская обл. Собинка.

Вывод сигнала с датчика на монитор ПК

Сообщение AnSm » 13 дек 2018, 16:47

L0ki, Так до да. Передать пару тройку чисел можно и в asci формате. Но тут нужно передавать целочисленные значения. Если передавать с плавающей запятой, то нужно разделять основание и мантиссу. А на принимающей стороне делать обратное преобразование. В принципе для не особо точных значений можно умножить целочисленное на 10. На приемке делить и получить десятые доли. А гонять нужно туда сюда. Тоесть все равно какое то подобие протокола нужно. Плюс какой нить crc. Без него плохо. В итоге сформируется телеграмма. Ну и затем пошли таймауты, отфильтровка бад пакетов и т.д а если захочется несколько узлов повесить на один шнурок?

Отправлено спустя 6 минут 11 секунд:
Также преобразование ацп лучше делать в МК, а посылать в линию уже готовое значение. В таком случае нужно формировать запрос ответ, чтобы передать в МК значения коэффициентов для преобразования. Мало ли зачем может понадобится готовое значение в МК. И тогда может быть неправильная работа. МК вычисляет одно, а на компе вычисляется другое. Это если например поменять датчик(или он уплыл), и коээфициенты жестко прошить в МК, а для отображентя в программе применять свой коэффициент подогнанный при отладке. В общем так не красиво вообще.
Всё проходит...

Аватара пользователя
T-Duke

Вывод сигнала с датчика на монитор ПК

Сообщение T-Duke » 13 дек 2018, 16:57

AnSm писал(а):Источник цитаты Если передавать с плавающей запятой, то нужно разделять основание и мантиссу. А на принимающей стороне делать обратное преобразование.
Не нужно этого делать. Флоаты элементарно приводятся к целым числам и наоборот. Вернее в целое число можно загрузить то, что хранится во флоате именно внутреннее представление. А целые числа легко можно выдать побайтно в поток в УАРТ.

Вот две фичи которыми пользуюсь при работе с флоатами в потоках данных:

Код: Выделить всё

float LoadUintToFloat(u32 n)
{
  float *ptr;
  ptr=(float*)&n;
  return *ptr;
}

u32 LoadFloatToUint(float n)
{
  u32 *ptr;
  ptr=(u32*)&n;
  return *ptr;
}


Таким образом мы загружаем в переменную целого типа, внутреннее представление флоата. А потом в целочисленной переменной можем шинковать представление флоата хоть на байты, хоть на биты. И в обратном порядке так же все работает.
Technology is insignificant comparing to the power of the Force.

Аватара пользователя
AnSm
Реальное имя: Андрей
Откуда: Владимирская обл. Собинка.

Вывод сигнала с датчика на монитор ПК

Сообщение AnSm » 13 дек 2018, 17:02

L0ki писал(а):Источник цитаты отправляем в компорт.

То есть ты предлагаешь сделать МК мастером. А комп будет только слушать ком порт. Ну не знаю. Я как то привык МК слейвом что бы был. А мастер это редко очень. А если подключить второй МК? Тогда или их слейвами делать или маркер мастера пускать. Да ну нафик. Проще будет модбас забодяжить.

Отправлено спустя 8 минут 35 секунд:
T-Duke, Спасибо большое. Отличное решение. :hi: Я не догадался о таком. Я просто пользуюсь готовыми макросами для перевода и не вникал в их работу. Тупо копипаста. Надо посмотреть что они делают.
Всё проходит...


Вернуться в «Вопрос - ответ»