Вывод на экран графики через плоттер
- Войдите на сайт для отправки комментариев
Ср, 15/07/2020 - 17:53
Коллеги, подскажите, если выводится график данных из массива через println()
Как сделать так чтобы по истечении цикла вывода из массива очередной вывод начался с начала координаты x?
Мне это нужно чтобы смотреть спектр от FFT
Как сделать так чтобы по истечении цикла вывода из массива
поставить флаг, что вывод завершен
очередной вывод начался с начала координаты x?
выводить данные массива с означенного элемента массива.
учимся пользоваться if - как условие, for - как счетчик , массив - как массив
Коллеги, подскажите, если выводится график данных из массива через println()
Как сделать так чтобы по истечении цикла вывода из массива очередной вывод начался с начала координаты x?
Мне это нужно чтобы смотреть спектр от FFT
Судя по тому, что для построения графика Вы предполагаете использовать println, микроконтроллер передает данные ПК для последующего построения. Значит, вопрос разбивается на два:
1. Что должен делать ПК при построении графика.
2. Какие данные должен выдавать МК, чтобы ПК мог построить график.
Вот представьте, что график предстоит строить именно Вам по тем данным, которые придут с МК. Что Вам нужно для построения графика?
Господа, понимаю Ваш юмор в стиле оборжаться....
Надеюсь в будущем я тоже вместе с Вами над кем-нибудь поржу...
а сейчас тема такая что я не могу проверить на компе то что предлагается.
Я просто интерпретирую то что прочел ранее на форумах по плоттеру а именно то что:
индекс не передается в сериальный порт, передаются только данные . каждый раз когда
новые данные передаются то картинка сдвигается влево в случае когда курсор дошёл в крайнюю
правую позицию и поэтому возникает вопрос : как дать понять плоттеру что индекс обнулился и нужно картинку
выводить с нудя? Есть ли какой-то символ для этого??
И Вам тоже хотел написать. Как я понял printnl выводит данные на экран последовательно и не знает когда обнулится индекс массива. Напрмер у меня массив 128 точек. Вывожу 128 потом повторно начинаю с нуля ...
так вот вывод будет продолжаться с той позиции экрана где кончился 128 отсчет итп.
блин а если мне нужно с начала экрана начать???? Как ресетить позицию влево?
О что за флаг о завершении вывода? Спец символ? Какой?
Я просто интерпретирую то что прочел ранее на форумах по плоттеру а именно то что:
Андрей, Вы бы для начала попытались толково сформулировать, чего именно Вы хотите, чтобы не приходилось вытаскивать из Вас информацию клещами и по крупицам, и чтобы вдруг на десятой странице обсуждения не оказывалось, что Вы имеете в виду совсем не то, что обсуждали до этого на 9 страницах.
Видите ли, хрустальные шары есть далеко не у всех, а у кого есть - тоже нередко барахлят.
Ну вот, ни с того, ни с сего вдруг в 3-м посте появился какой-то плоттер, которого в исходном явно не было.
ваще-то плоттер указан прямо в заголовке :)
Насколько мне известно, плоттер - это такой большой планшет, по которому ездит каретка с одним или несколькими пишущими узлами. И работать плоттер может либо автономно, либо под управлением ПК. Для чего ПК должен подготовить для плоттера данные, которые тот будет выводить на бумагу. А вопрос ТС связан не с взаимодействием ПК-плоттер, а с взаимодействием МК-ПК. Т.к. любую сложную задачу при решении надо разбивать на части. То начать вполне естественно именно с части МК-ПК. Тем более, что сам ТС упомянул о println, который как раз и есть со стороны МК. Или что-то не так?
Кстати, если об МК мы что-то знаем - это Ардуино. О ПК тоже можно предположить, что это либо IBM PC, либо Mac, то ни о модели плоттера, ни об используемой им системе команд пока не было написано ни одной буквы. Как можно обсуждать, неизвестно что?
Жесть! Так Вы ребзя дилетанты. А я думал Вы профи.
тогда вот тут прочтите, это расширит Ваши познания в IDE:
http://developer.alexanderklimov.ru/arduino/articles/plotter.php
И вот тут
https://yandex.ru/video/touch/preview?filmId=8606249103242741735&text=%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F%20serial%20plotter%20print%20%D0%BD%D0%B0%20arduino&path=wizard&parent-reqid=1594804135984917-1143196748716175243500303-production-app-host-vla-web-yp-215&redircnt=1594807471.1
Жесть! Так Вы ребзя дилетанты. А я думал Вы профи.
тогда вот тут прочтите, это расширит Ваши познания в IDE:
http://developer.alexanderklimov.ru/arduino/articles/plotter.php
Вам же обьяснили простым языком, что задача которую вы озвучили не ясна, зачем хамить?
В том то и дело, что профи при слове "плоттер" представляют несколько вариантов, так как "плоттер" очень общее наименование как устройств так и программ для PC и у каждого из них может быть свой протокол общения.
Чем пользуетесь вы известно только вам, и мыслей никто здесь не читает.
Помощь нужна вам, и вытягивать из вас информацию что бы вам помочь, никто не собирается.
Ладно, без лишних слов...
кто-нибудь юзал функцию вывода графиков на экран в Arduino?
Ссылка на материал тут:
http://out.arduino.ru/?redirect=http%3A%2F%2Fdeveloper.alexanderklimov.ru%2Farduino%2Farticles%2Fplotter.php&baseU=http%3A%2F%2Farduino.ru%2Fforum%2Fpesochnitsa-razdel-dlya-novichkov%2Fvyvod-na-ekran-grafiki-cherez-plotter%23comment-548386
Вопрос: если выводить массив данных каждый раз с начальной отметки (с левой части экрана) как туда вернуться?
Например если я циклически вывожу спектр через функцию плоттера как мне каждый раз попасть в начало экрана?
Жесть! Так Вы ребзя дилетанты. А я думал Вы профи.
тогда вот тут прочтите, это расширит Ваши познания в IDE:
http://developer.alexanderklimov.ru/arduino/articles/plotter.php
В связи с полной ненадобностью. Если мне нужен график на экране ПК, я его построю в зависимости от потребностей с помощью Эксель, Процессинга, Си, Паскаля, Фортрана, да и еще чего угодно - что окажется оптимальным в конкретной ситуации. И, думаю, любой профессионал поступит так же.
А если у Вас есть инструмент, который Вас вполне устраивает, зачем тогда вообще обращаться на форум?
Например если я циклически вывожу спектр через функцию плоттера как мне каждый раз попасть в начало экрана?
Этой фразы я как раз и не понял... думал что из Вас кто/нить юзал вывод принта через платтер в Ардуино.
что значит «заново запускать»?
есть какая-то команда «обнуления»? Ресет?
как?
Ну а надобность? Объясню. Читал оживленную дискуссию между Вами господа по поводу достоверности результатов FFT. У Вас они выводятся просто на экран в виде чисел... хрен его поймешь что там. А если бы выводился график спектра через plotter от Arduino то было бы сразу видно где какие гармоники стоят... наглядно
вот...
что значит «заново запускать»?
В жизни никогда не запускал.
Думал, Вы расскажете.
есть какая-то команда «обнуления»? Ресет?
(И, кстати, эта одна из причин, по которой я не просто не пользуюсь этим "плоттером", а даже не знаю о его существовании, - он меня явно не устроит по своим возможностям.)
Можно не перезапускать. Можно просто управлять положением курсора на экране. Почитайте здесь. Я рисовал с помощью print и println таблицы в которых менялись данные в разных клетках. Можно и график изобразить.
Спасибо всем, попытаюсь разобраться
отпишу что получилось
Ссылка на материал тут:
http://out.arduino.ru/?redirect=http%3A%2F%2Fdeveloper.alexanderklimov.ru%2Farduino%2Farticles%2Fplotter.php&baseU=http%3A%2F%2Farduino.ru%2Fforum%2Fpesochnitsa-razdel-dlya-novichkov%2Fvyvod-na-ekran-grafiki-cherez-plotter%23comment-548386
Например если я циклически вывожу спектр через функцию плоттера как мне каждый раз попасть в начало экрана?
очевидно же, потребуется использовать машину времени:
"Фактически ось X представляет собой момент времени. Каждая точка на оси X представляет выполнение оператора функции println() - когда вызывается функция, на графике записывается новая точка. "
что значит «заново запускать»?
значит - " закрыли плоттер", а потом заново "открыли плоттер" - руками, другого не предусмотрено.
единственный вариант: закинуть данные в несколько массивов, а потом нужным образом вывести в 2 и более графиков.
программа простая и почти не пригодна для использования.
Понятно
Я другую нашёл более мощную.
https://github.com/CieNTi/serial_port_plotter
сегодня буду смотреть
Спасибо, попробую
Я другую нашёл более мощную.
https://github.com/CieNTi/serial_port_plotter
сегодня буду смотреть
Спасибо, попробую
Жесть! Так Вы ребзя дилетанты. А я думал Вы профи.
тогда вот тут прочтите, это расширит Ваши познания в IDE:
http://developer.alexanderklimov.ru/arduino/articles/plotter.php
Да, конечно...
Вопросов нет
Я другую нашёл более мощную.
https://github.com/CieNTi/serial_port_plotter
сегодня буду смотреть
Она требует printf. Moжно конечно извратиться и обеспечить вывод, а просто сразу из ардуины не получится. Есть много программ рисования данных выводимых через сериал порт. Мы тут недавно датчик пульса и кислорода крови обсуждали. Там к либе приложением шла отличная программа рисования данных выдаваемых через сериал. Можно организовать несколько окон с разными граффиками и весь вывод ардуины шёл стандартным srerial.print.
Смотрите, я ещё не тестил но там же есть библиотека serial_port_plotter-master.zip я так понимаю её надо установить в IDE и тогда можно использовать printf
НЕТ?
printf можно и так использовать, только он кастрирваный, а полный очень много места в памяти отбирает. Посмотрите, может Вам и кастрированного хватит. Поищите по форуму про printf. Были обсуждения возможностей.
А что за проблема с printf кроме того, что он жрет дофига флеша? (14к в варианте stm32)
Я другую нашёл более мощную.
https://github.com/CieNTi/serial_port_plotter
сегодня буду смотреть
Коллега, а можно ссылку на эту "программу рисования"
Спасибо
https://github.com/xcoder123/FlexiPlot/releases
Говорите там вывод через serial.print()
А какие-то спец сиволы нужны для управления выводом?
Не нашёл описания
А вообще для вывода спектра ввиде вертикальных баров эта прога подойдёт??
будет ли курсор возвращаться в начало координат после каждого вывода буфера ??
После слов An example packet for plotting to a bar graph: идёт описание пакета данных.
Здесь есть пример, как организован вывод на 4 графика 8 кривых под спойлером код. http://arduino.ru/forum/pesochnitsa-razdel-dlya-novichkov/max30100-kitai...
Вы имеете ввиду это?
Serial.print("{P0|IR|0,0,255|");
Serial.print(result.dcFilteredIR);
Serial.print("|RED|255,0,0|");
Serial.print(result.dcFilteredRed);
Serial.println("}");
Serial.print("{P1|RED|255,0,255|");
Serial.print(result.irCardiogram);
Serial.print("|BEAT|0,0,255|");
Serial.print(result.lastBeatThreshold);
Serial.println("}");
Serial.print(result.rawIR);
Serial.print("|RED|0,0,255|");
Serial.print(result.rawRed);
Serial.println("}");
Долго смотрел за сообщениями и молчал.
И как я понял автору нужно всего-навсего после вывода какого-то массива точек
очистить экран и нарисовать его снова.
Вряд-ли в Ардуиновском плоттере есть такая комманда.
Что-нибудь типа "cls" - CLear Screen
Просто забей нулями.