alexvu 5 7 мая, 2021 Опубликовано 7 мая, 2021 · Жалоба 32 минуты назад, Herz сказал: если в Плоттер можно запросто передавать большие числа в формате ASCII посредством Serial.print() и он сам переводит их в десятичный вид, то с SerialPlot это не прокатывает: Походите по вот этим вкладкам, там многое настраивается. Например, в этом режиме он принимает любые числа в ASCII: и целые, и float и даже сам считает их кол-во. При выборе "Simple Binary" и "Custom Frame" - еще много вкусностей по форматам данных. Настройки можно сохранять в файл. Здесь настройки для каждого графика и для осей. И, кстати, можно жестко задать шкалы, отключив галочки "Auto" справа. (Что такое "Select Range Preset" - я пока не понял). Ход времени - не совсем настраивается, но можете попробовать "Plot Width". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 5 7 мая, 2021 Опубликовано 7 мая, 2021 · Жалоба Спасибо. Я пробовал выбирать ASCII, но тогда вообще ничего не происходит. Как быть с float - вообще загадка. Ладно, не буду Вам морочить голову, надо разбираться. Но пока мне и встроенного Плоттера - вполне. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexvu 5 7 мая, 2021 Опубликовано 7 мая, 2021 · Жалоба 2 часа назад, Herz сказал: Если не секрет, какой алгоритм использовали? И чем управляли? У меня 1 этаж многоэтажного дома, и вытяжка тянет очень сильно, иногда бывает ощутимо трудно закрыть окно. Перепад давления, создаваемого вытяжкой, зимой был 50-80 пА, сейчас 30-50 пА. Соответственно ни о каком качестве воздухообмена говорить не приходится, да еще оно пытается затягивать в квартиру воздух из подвала, коридора и т.д. Я сделал 2 управляемые заслонки на вент. отверстия в кухне и туалете. Каждый модуль содержит заслонку с шаговым двигателем и датчик скорости потока, сделанный из компьютерного вентилятора. (Еще пришлось загерметизировать всякие щели в районе санузла, а это работа не меньше, чем сделать контроллер :) Теперь контроллер поддерживает скорости потока на заданном уровне (пока поставил 1 м/с), я пока не пересчитал это в объем, но по ощущениям получилось самое то: через щель приоткрытого окна идет спокойный приток без сквозняков (и тихо, без гудения!) Потом еще поставлю приточные клапаны на окна. Получившийся перепад давления пока не измерял, но наверное он порядка 5-10 пА и у меня нет прибора на такой диапазон. Сами приводы работают очень тихо и вся система потребляет от 5В до 400 мА, а когда не крутит заслонки - то до 100 мА. Алгоритм простейший: П-Д регулятор с мертвой зоной (И - интегрирует сам датчик потока, он получился довольно инерционный). Датчик выдает импульсы (несколько имп. в секунду), они преобразуются в частоту и далее вычисляется количество шагов двигателя на открывание или закрывание. Сейчас дифференциальную составляющую сделал довольно большую, это помогает быстро отрабатывать ситуации открывания двери, окна и т.д. В среднем регулировка после больших перепадов занимает секунд 20-30, не считая "хвост" из небольших колебаний. Еще я думал, что будет проблема взаимного влияния регуляторов из-за перетока давления воздуха и что надо будет их как-то синхронизировать, но пока вроде такого не заметил. Так что на одной ардуине живут 2 независимых регулятора. Существует проблема, что приводы движутся раз в несколько секунд (видимо, потоки нестабильные), и мертвая зона не сильно помогает. Сколько они проживут в таком режиме - неизвестно, хотя нагрузка небольшая. Возможно, для экономии моторесурса надо делать какой-то более интеллектуальный алгоритм, но пока "и так сойдет"(с). 58 минут назад, Herz сказал: Я пробовал выбирать ASCII, но тогда вообще ничего не происходит. Как быть с float - вообще загадка. Надо выбрать правильный разделитель (пробел, запятая и т.д.) - такой же, как в Ваших данных. У меня работает вот так: есть и целые, и float в одной строке. Разделены пробелами: 0.00 527 30 0.00 271 20 Строка заканчивается переводом строки - печатается функцией Serial.println(); Программа все автоматически подхватывает. Да, еще нужно выбрать порт и нажать кнопку "Open" (открыть порт). При этом, кстати, тоже сбрасывается контроллер. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexRayne 7 7 мая, 2021 Опубликовано 7 мая, 2021 · Жалоба у stm есть утилита мониторинга переменых в чипе онлайн - если есть бинарь elf, она с него переменные импрортирует. и по жтаг или свд цепляется к ядру и читает их прямо из памяти. никакой дополнительной оснастки журналировария в софте тут не нужно. оди недостаток - слабая скорость канала не позволяет считывать данные быстро. быстрее семпл/20мс у меня не получалось на винде. тула умеет строить графики и сливать все в жуналы, сохранять сессию и загружать сохраненное. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 5 8 мая, 2021 Опубликовано 8 мая, 2021 · Жалоба 14 часов назад, AlexRayne сказал: у stm есть утилита мониторинга переменых в чипе онлайн Какое это имеет отношение к теме? Цитата Делаю несложный контроллер на ардуино Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexRayne 7 8 мая, 2021 Опубликовано 8 мая, 2021 · Жалоба 1 час назад, Herz сказал: Какое это имеет отношение к теме? в исходном топике фигурировало желание отследить рабрту ПИД. я это делал утилой от стм, т.к. городить дамп в уарт, и парсинг - это возня на неделю. а тут все из коробки Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 5 8 мая, 2021 Опубликовано 8 мая, 2021 · Жалоба Автор же прямо указал на желание отследить работу ПИД на Ардуино. Более того, это ему удалось, и задача решена. Упоминание после всего этого Вами стм и его утилиты как-то... ни к селу, как бы там красиво ни был организован мониторинг. Вам бы эту информацию, да в специализированную ветку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 173 17 мая, 2021 Опубликовано 17 мая, 2021 · Жалоба Вот еще, только увидел. Сам не пользовался. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 5 17 мая, 2021 Опубликовано 17 мая, 2021 · Жалоба 07.05.2021 в 14:02, alexvu сказал: Программа все автоматически подхватывает. Кстати, вышла 12-я версия. Сейчас всё работает безупречно, я доволен. Возможно, и в предыдущей просто не успел разобраться... 17.05.2021 в 10:06, Arlleex сказал: Вот еще, только увидел. Сам не пользовался. Интересно, спасибо. Надо попробовать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Herz 5 28 мая, 2021 Опубликовано 28 мая, 2021 · Жалоба 07.05.2021 в 13:11, alexvu сказал: Настройки можно сохранять в файл. Не нашёл, как сохранять логи. То есть, запись вроде включается, и в окошке для сохранения видны имена файлов, которые, якобы, записывались. Но в проводнике их не найти, и ничего об этих файлах Виндовс не знает. Загрузить обратно в SerialPlot тоже нельзя. Вам удавалось сохранять записи? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 51 29 мая, 2021 Опубликовано 29 мая, 2021 · Жалоба 21 hours ago, Herz said: Не нашёл, как сохранять логи. То есть, запись вроде включается, и в окошке для сохранения видны имена файлов, которые, якобы, записывались. Но в проводнике их не найти, и ничего об этих файлах Виндовс не знает. Загрузить обратно в SerialPlot тоже нельзя. Вам удавалось сохранять записи? Откройте Resource Monitor и посмотрите куда пишет (и пишит ли вообще) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
siargy 6 19 февраля Опубликовано 19 февраля · Жалоба Контроллер присылает данные, есть програмка которая распарсивает на лету теперь сохраняю параметры за определенный период работы структурой последовательно в еепроме и могу их прочитать в таком виде: 08 01 02 E4 00 08 01 06 E4 7F 1C 00 00 AA AF 00 00 A1 38 00 00 A4 FF 3F 00 80 0C 94 05 22 00 22 00 05 00 80 0F 7F 1D 00 00 82 B7 00 00 A1 38 00 00 9B FF 41 00 80 0C 95 05 22 00 22 00 05 00 80 0F 7F 1E 00 00 A3 B7 00 00 A1 38 00 00 D5 FF 1A 00 80 0C 90 05 22 00 22 00 05 00 80 0F 7F 1F 00 00 CD B7 00 00 A1 38 00 00 D0 FF 18 00 80 0C 0C 06 22 00 22 00 05 00 80 0F 7F 20 00 00 DA B8 00 00 A1 38 00 00 CF FF 1A 00 80 0C 0C 06 22 00 22 00 05 00 80 0F 7F 21 00 00 A1 B9 00 00 A1 38 00 00 D1 FF 1A 00 80 0C 0C 06 22 00 22 00 05 00 80 0F 7F 22 00 00 72 BA 00 00 A1 38 00 00 D1 FF 19 00 80 0C 0C 06 22 00 22 00 05 00 80 0F 7F 23 00 00 C8 BA 00 00 A1 38 00 00 D2 FF 18 00 80 0C 0C 06 22 00 22 00 05 00 80 0F 7F 24 00 00 93 D0 00 00 A1 38 00 00 37 FF 1C 00 80 0C 0D 06 22 00 22 00 05 00 80 0F 7F 25 00 00 B8 D1 00 00 A1 38 00 00 CD FF 1C 00 80 0C 0D 06 22 00 22 00 05 00 80 0F 7F 26 00 00 3F D5 00 00 A1 38 00 00 27 F4 1B 00 80 0C 0D 06 22 00 22 00 05 01 84 0F в структуре знаковые и беззнаковые 32, 16, битовые. Возможно есть готовая программа или скрипт для экселя чтобы перевести в читаемый вид? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 69 19 февраля Опубликовано 19 февраля · Жалоба любой понравившийся простой скриптовый язык на lua например можно превратить строку в бинарную (последовательность байтов), и потом уже из бинарной строки выдернуть циферки нужного размера, формата, знаковости и endianess: https://www.lua.org/manual/5.4/manual.html#6.4.2 str = "7F 1C 00 00 AA AF 00 00 A1 38 00 00 A4 FF 3F 00 80 0C 94 05 22 00 22 00 05 00 80 0F" t = {} for s in str:gmatch("%x%x") do table.insert(t,tonumber(s,16)) end f1,f2,f3 = (">I4I2I4"):unpack(string.char(table.unpack(t))) print(f1,f2,f3) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ДЕЙЛ 31 20 февраля Опубликовано 20 февраля · Жалоба 18 hours ago, siargy said: Контроллер присылает данные, есть програмка которая распарсивает на лету теперь сохраняю параметры за определенный период работы структурой последовательно в еепроме и могу их прочитать в таком виде: 08 01 02 E4 00 08 01 06 E4 7F 1C 00 00 AA AF 00 00 A1 38 00 00 A4 FF 3F 00 80 0C 94 05 22 00 22 00 05 00 80 0F 7F 1D 00 00 82 B7 00 00 A1 38 00 00 9B FF 41 00 80 0C 95 05 22 00 22 00 05 00 80 0F 7F 1E 00 00 A3 B7 00 00 A1 38 00 00 D5 FF 1A 00 80 0C 90 05 22 00 22 00 05 00 80 0F 7F 1F 00 00 CD B7 00 00 A1 38 00 00 D0 FF 18 00 80 0C 0C 06 22 00 22 00 05 00 80 0F 7F 20 00 00 DA B8 00 00 A1 38 00 00 CF FF 1A 00 80 0C 0C 06 22 00 22 00 05 00 80 0F 7F 21 00 00 A1 B9 00 00 A1 38 00 00 D1 FF 1A 00 80 0C 0C 06 22 00 22 00 05 00 80 0F 7F 22 00 00 72 BA 00 00 A1 38 00 00 D1 FF 19 00 80 0C 0C 06 22 00 22 00 05 00 80 0F 7F 23 00 00 C8 BA 00 00 A1 38 00 00 D2 FF 18 00 80 0C 0C 06 22 00 22 00 05 00 80 0F 7F 24 00 00 93 D0 00 00 A1 38 00 00 37 FF 1C 00 80 0C 0D 06 22 00 22 00 05 00 80 0F 7F 25 00 00 B8 D1 00 00 A1 38 00 00 CD FF 1C 00 80 0C 0D 06 22 00 22 00 05 00 80 0F 7F 26 00 00 3F D5 00 00 A1 38 00 00 27 F4 1B 00 80 0C 0D 06 22 00 22 00 05 01 84 0F в структуре знаковые и беззнаковые 32, 16, битовые. Возможно есть готовая программа или скрипт для экселя чтобы перевести в читаемый вид? Отправляй из одного терминала в другой через com0com и распарсивай построчно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
siargy 6 20 февраля Опубликовано 20 февраля · Жалоба 5 hours ago, ДЕЙЛ said: Отправляй из одного терминала в другой через com0com и распарсивай построчно. тут нет битовых полей Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться