Схема управления с Arduino

Простейшие вопросы в области инженерной разработки
Boxa
junior
junior
Сообщения: 63
Зарегистрирован: 10 янв 2021, 17:41
Версия LabVIEW: 2019
Благодарил (а): 17 раз
Контактная информация:

Re: Схема управления с Arduino

Сообщение Boxa »

IvanLis писал(а): 30 янв 2025, 23:24 Это как в LabVIEW, можно быстро используя ExpressVI сделать,но получить слабо контролируемого монстра. А можно ручками все собрать, но требует знаний и умений :D
Для начинающих вообще огонь тема, главное не борщить. А когда уже получил результат то можно и переделать, сам такое практиковал когда с помощью экспресс решал проблему, а уже потом переделывал с осознанием что должно получится.
Вы просто уже все гуру в этой теме и вам это всё просто и нюансы опускаете, а ты сидишь и потом не понимаешь даже как начать это делать и сначала гуглишь что вы подсказали чтобы хоть понять о чем речь была)))))
Я вижу что тут много ленивых студентов с однотипными проблемами и желание просто сдать лабу и вы их хотите мотивировать думать, но для старичков которые в свободное время хотят что-то сделать нужен отдельный раздел типо "благотворительность" где именно покажут, а не расскажут как правильно😀. Можно сделать вход по паспорту😂
Аватара пользователя
Select
professional
professional
Сообщения: 306
Зарегистрирован: 12 дек 2017, 23:56
Версия LabVIEW: 18
Откуда: Врата надежды.
Поблагодарили: 3 раза

Re: Схема управления с Arduino

Сообщение Select »

Boxa писал(а): 31 янв 2025, 11:14
IvanLis писал(а): 30 янв 2025, 23:24 Это как в LabVIEW, можно быстро используя ExpressVI сделать,но получить слабо контролируемого монстра. А можно ручками все собрать, но требует знаний и умений :D
Для начинающих вообще огонь тема, главное не борщить. А когда уже получил результат то можно и переделать, сам такое практиковал когда с помощью экспресс решал проблему, а уже потом переделывал с осознанием что должно получится.
Вы просто уже все гуру в этой теме и вам это всё просто и нюансы опускаете, а ты сидишь и потом не понимаешь даже как начать это делать и сначала гуглишь что вы подсказали чтобы хоть понять о чем речь была)))))
Я вижу что тут много ленивых студентов с однотипными проблемами и желание просто сдать лабу и вы их хотите мотивировать думать, но для старичков которые в свободное время хотят что-то сделать нужен отдельный раздел типо "благотворительность" где именно покажут, а не расскажут как правильно😀. Можно сделать вход по паспорту😂
Интересный месседж.

Скажем так, если ожидание, что здесь будут проводить ликбез с нуля, или выложат вам целиком готовый функционал это навряд, разве что кому не лень, чтоб не отшивать новичков и не валить контент, скуки ради или из каких-то собственных посылов, часто в виде линка к NI. Лень здесь не уживается с ответами, их надо фильтровать ну и благодарить за участие.
Могут ответить расплывчато на вопрос, если он задан расплывчато, это да. Мне здесь часто отвечали на 50% в попад, но это был для меня хороший стимул для личного мозгового штурма и решения находились самостоятельно, главное не искать источник проблем в замкнутом пространстве сообщества.
В моей практике работал всегда принцип пересмотра вопроса под иным ракурсом.

Как можно быстро разрулить Вашу ситуацию?
Все определяет инструмент, который Вам будет понятен на уровнe ввода клик - инструкций, и такой инструмент с функциями управления бинарной логикой существует со всеми плюшками которые востребованы для самостоятельных разработок.

Такой подход приблизит Вас к цели без обкуривания всем тем, что Вы здесь обсуждаете.
Вопрос спорный, на сколько такой леденец поднимет Ваши скилы в стремлении контролировать всё и вся.

Все это функционирует на базе PC под OC Win в комплекте с начальным I/O комплектом, что по сути есть IDE Soft Controller.
К примеру там есть кнопки ON/OFF, которые запускают Вами настроенные параметры, такие как: "Хочу чтоб на I/O выходе № n в открылась логическая 1 (DC 5V) и оставалась в таком состоянии 5 минут, там же задать, если надо, чтоб на входе № n в это же время будет вестись счет внешних данных от датчика в пределах 3.3V.
Там же и возможность указать что будет применено в качестве триггерного значения и т.д. и т.п. и все это на уровне клик - настройки "как видим, так и понимаем". Можно строить длинные поведенческие сценарии с применением 'AND", "OR", "NOT", "XOR" по всем этим "кнопкам". В общем достаточно серьезный джентельменский набор для разных идей без крайностей с Ардуиной. Если вдруг каких то инструкций маловато, реализуем бинарную логику обращения к внешнему железу, которое решает Вашу проблему аппаратно.
LabView 14,18
Boxa
junior
junior
Сообщения: 63
Зарегистрирован: 10 янв 2021, 17:41
Версия LabVIEW: 2019
Благодарил (а): 17 раз
Контактная информация:

Re: Схема управления с Arduino

Сообщение Boxa »

Select писал(а): 31 янв 2025, 12:27 В моей практике работал всегда принцип пересмотра вопроса под иным ракурсом.
Примерно так и сделал, читаю книжку "Язык программирования С" от Кернигана, нахрапом не получилось, изучим сначала синтаксис языка и как он обрабатывает последовательность кода, а потом вернусь к теме управления от лабвью (вдруг найдется челок со свободным временем :brows: ). Возможно Вы были правы что взять ардуино было ошибкой, этот набор хорош на лабороторных работах основа схемотехники и програмирования, но поборимся еще. Дорогу осилит идущий.
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5561
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 32 раза
Поблагодарили: 108 раз

Re: Схема управления с Arduino

Сообщение IvanLis »

Если Вы хотите использовать LabVIEW для отладки программы МК, т.е. отображения значений, сам периодически пользуюсь, только наблюдаю все в терминале.
То я бы не городил огород, а сделал бы одно универсальное решение.
Писать в МК по хорошему ничего не нужно, он то потом без LV должен работать, по этому связь односторонняя необходима (МК->LabVIEW).
А после отладки можно ненужное закомментировать или удалить.

Вот простейший пример, определил два типа данных U16 и SGL. Аналогично можно и другие типы определить и отправлять.
В принципе достаточно одной строки записи в порт, но я сделал, как мне удобнее.
В первой посылке пишу Name и Type. А во второй дописываю значение и терминатор ('\n' = 10) - признак окончания пакета.

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

uint16_t i;
float r;

void setup() {
  Serial.begin(9600);
}

void loop() {

  i = random(0, 100);
  Serial.print("TestInt;U16;");
  Serial.println(i);
  delay(1000);
  
  r = random(0, 100) / 100.0;
  Serial.print("TestFloat;SGL;");
  Serial.println(r);
  delay(1000);
  
}
В LabVIEW сделали примитивный монитор. Который позволяет в зависимости от Name и Type передаваемого значения, обрабатывать его по разному.
Snip.png
Arduino Communication.zip
lv2015
(18.05 КБ) 8 скачиваний
Boxa
junior
junior
Сообщения: 63
Зарегистрирован: 10 янв 2021, 17:41
Версия LabVIEW: 2019
Благодарил (а): 17 раз
Контактная информация:

Re: Схема управления с Arduino

Сообщение Boxa »

IvanLis писал(а): 01 фев 2025, 11:28 Если Вы хотите использовать LabVIEW
С разделителем я разобрался благодаря Вам и книжке по СИ, там я и узнал что конец строки это 10 и тогда собралась Ваша подсказка. В вот за упрощение разделения огромное спасибо, только один вопрос что мы ожидаем в поле Empty (ниразу эта вкладка не выполнилась)?
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5561
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 32 раза
Поблагодарили: 108 раз

Re: Схема управления с Arduino

Сообщение IvanLis »

Boxa писал(а): 01 фев 2025, 17:22 только один вопрос что мы ожидаем в поле Empty (ниразу эта вкладка не выполнилась)?
Это Case структура и в этом случае она должна иметь значение "По умолчанию" (Default). Т.к. обрабатывается строковый тип, то количество его состояний бесконечно много.

В С например это как пишется:

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

switch(выражение)
{
    case значение_1: инструкции_1;
    case значение_2: инструкции_2;
    ...................
    case значение_N: инструкции_N;
     
    default: инструкции;
}
И если не дописать в конец default, то в случае когда ни одно совпадение не найдено, будет выход из структуры switch.
LabVIEW не может как текстовый язык программирования просто взять и игнорировать, по этому я создал case именем empty и назначил его Default. Можно было сделать без имени, тут дело привычки.
Но если в этот Case поставить точку останова BreakPoint, то можно отследить, когда пришло неизвестное (которое не будет обработано) значение Type.
Например в Arduino вы ввели новый тип данных, а в LabVIEW забыли или не успели...
Или в Arduino ошиблись и неправильно указали Type.
Вариантов много, а именно empty - дело привычки :wink: , кто-то idle пишет.
Фактически это case который "ничего не делает".
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»