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

Простейшие вопросы в области инженерной разработки
WSLB60
beginner
beginner
Сообщения: 19
Зарегистрирован: 18 окт 2016, 11:18
Версия LabVIEW: 2015 SP1

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

Сообщение WSLB60 »

Добрый день.

Помоги пожалуйста начинающему в LabView.

Необходимо собрать схему управления двигателем, которая будет регулировать его
обороты (эта задача максимум).
Задача минимум - собрать хоть какую-нибудь схему управления хоть чем-нибудь.

Исходные данные: есть контроллер Cerebot MX3cK (chipKIT MX3) http://store.digilentinc.com/cerebot-mx3ck-retired/
Pmod HB5 - http://store.digilentinc.com/pmod-hb5-h ... ck-inputs/
И такой вот мотор DC Motor/Gearbox - http://store.digilentinc.com/motor-gear ... obot-kits/

Ни с программированием контроллеров ни с LabView у меня опыта работы нет, поэтому разбираюсь с нуля.

Установил Arduino 1.6.7
Через VI Package Manager подгрузил LabView interface for Arduino.
Попутно выяснил, что с Cerebot хоть и можно работать через софт Arduino, но во-первых он поддерживает далеко не все
модели,а во-вторых, даже если поддерживает, с ними могут возникнуть сложности.
Вот и решил заменить выданный мне контроллер на Arduino.

На тестэксперте нашёл информацию, что LabView совместим со следующими контроллерами:

Arduino™ Uno
Arduino™ Mega
Arduino™ Due
Arduino™ Nano
Arduino™ Yun
Arduino™ Leonardo

Подскажите, действительно ли совместим и какой из этих контроллеров лучше выбрать для реализации поставленой задачи?

Небольшое пояснение: под задачей минимум подразумеваеться управление, например вкл/выкл светодиодов или
вкл/выкл того-же мотора.
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

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

Сообщение Blackman »

WSLB60
beginner
beginner
Сообщения: 19
Зарегистрирован: 18 окт 2016, 11:18
Версия LabVIEW: 2015 SP1

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

Сообщение WSLB60 »

Спасибо за видео. Разобрался.
Взял Arduino-Uno и собрал по примеру простую схему (вкл/выкл).
Возник вот какой вопрос: у моста Pmod HB5 есть такие выходы как SA и SB.
Соеденил SA c аналоговым портом ардуино и получил на графике изменение вольтажа от 0 до приблизительно 3.3.
Если я правильно всё понял, то период изменения это и есть оборт двигателя, которые мне нужны.
Подскажите, каким их подсчитать? Пробовал это сделать через элемент Bool to и сумму, но они совместно не работают.
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

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

Сообщение Blackman »

Cхема моста
https://reference.digilentinc.com/_medi ... b5_sch.pdf
SA и SB две цифровые последовательности сигналов энкодера двигателя. Их параметры должны быть в спецификации на двигатель. По ним определяется угол поворота вала двигателя и все остальные производные параметры. Их надо подключать к цифровым входам согласно подпрограмме эндокодера для Вашего контроллера.
WSLB60
beginner
beginner
Сообщения: 19
Зарегистрирован: 18 окт 2016, 11:18
Версия LabVIEW: 2015 SP1

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

Сообщение WSLB60 »

Спасибо. Со схемой моста разобрался.
Как оказалось, управлять направлением вращения через Arduino довольно просто.
Вот какой вопрос возник по ходу изучения LabView.
Есть ли где-нибудь подробное описание пакета Arduino?
Согласно описанию моста, который подсоеденён к Arduino, управлять оборотами двигателя нужно по средствам ШИМ.
Для этого в LabView в пакете Arduino есть элемент PWM Write Pin. По идее изменяя количество значений от 0 до 255 можно добиться изменения частоты подачи напряжения за период. Но собранная схема реагирует на изменение значений только как на вкл/выкл. До 127 - мотор выключен, с 128 до 255 мотор работает.
Возможно в элементе PWM Write Pin требуется выполнить какие-либо настройки в свойствах?
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

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

Сообщение Borjomy_1 »

Вообще-то поздновато, но я бы порекомендовал RasberryPi3 посмотреть. Это чумовой аппарат, в сочетании с Labview
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

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

Сообщение Blackman »

https://www.packtpub.com/sites/default/ ... Images.pdf

Возможно только сегодня. Programming Arduino with LabVIEW.
http://stg909.rusfolder.com/download/?4 ... 2FWiJEw%3D
WSLB60
beginner
beginner
Сообщения: 19
Зарегистрирован: 18 окт 2016, 11:18
Версия LabVIEW: 2015 SP1

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

Сообщение WSLB60 »

Спасибо большое за объяснения и за видео.
Собрал следующую схему:
Motor.png
Теперь возможна регулеровка скорости и изменение направления вращения.
Также на график вывводятся изменения сигналов с портов SA и SB, которые связаны с энкодерами.
Точность отображения сигналов далека от совершенства, но сопоставить их с тем, что есть в описании мотора можно.

Но как я не пытался динамически отображать скорость вращения двигателя, ничего не вышло.
Можете подсказать, каким образом можно решить эту задачу?

Я пытался это сделать через регистры. Получал количество моментов, когда сигнал был не нулевым и делил это количество на 19 (передаточное число двигателя). Но чтобы получить скорость, необходимо брать какой-то временной период. А как это сделать в динамике?
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

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

Сообщение Blackman »

Сделал попытку перерисовать BD. Железа нет, так что как работает не проверял.
Я рекомендую перейти с интерфейса LIFA на LINX, так как поддержка первого прекращена. Да и работать с LINX проще и возможностей больше.
Количество импульсов энкодера за 1 сек деленное на количество импульсов энкодера за один оборот вала двигателя (с учетом редуктора) даст скорость вращения вала в оборотах/сек.
Upd. Добавил вариант с системными контролами.
Вложения
LIFA_PmodHB Controller.png
LIFA_PmodHB Controller.vi
(1.43 МБ) 176 скачиваний
LIFA_PmodHB Controller (System Controls).vi
(38.81 КБ) 186 скачиваний
S@dkO
interested
interested
Сообщения: 4
Зарегистрирован: 31 окт 2016, 22:01
Версия LabVIEW: 2010
Контактная информация:

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

Сообщение S@dkO »

Извините, если криво задаю вопрос: может ли данный пакет (LINX) скомпилировать код написанный в Labview с тем, чтобы стандартными средствами Ардуино прописать его в микроконтроллер и использовать микроконтроллер отдельно от ПК?
Blackman

Activity
leader
leader
Сообщения: 932
Зарегистрирован: 17 янв 2016, 15:02
Награды: 1
Версия LabVIEW: 6.1,8.5,20

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

Сообщение Blackman »

Нет. Но платный компилятор для этого есть.
Arduino Compatible Compiler for LabVIEW Standard v1.0.0.21 by Aledyne-TSXperts
Description:
The Arduino Compatible Compiler for LabVIEW is a compiler that will take a LabVIEW Virtual Instrument (VI) and compile it for the ArduinoTM programming language and will download the code to an ArduinoTM board. The downloaded code will execute embedded and standalone on the Arduino target. This is a great way to use existing knowledge of LabVIEW to program simple standalone embedded systems on low-cost hardware. It is also a great educational tool to teach software programming to entry level students without the steep learning curve of text-based languages.
The compiler allows for a subset of LabVIEW functionality to be used. Please refer to the installed palette and help manual to see a list of supported features and APIs. Though the compiler handles memory management for the developer, please be aware of memory constraints. The Arduino targets have very limited memory so care should be taken to limit or restrict usage of large and dynamic datatypes like strings and arrays, especially on smaller targets like the Uno. Excessive memory usage can cause unexpected behavior at run-time.
This product requires the installation of the Arduino IDE which includes required hardware libraries and drivers. You must first download and install version 1.5.7 or higher from http://arduino.cc/en/main/software.

Есть триал период. Качнуть и установить можно через VIPM.
Alex Dem
assistant
assistant
Сообщения: 119
Зарегистрирован: 06 май 2015, 22:24
Версия LabVIEW: 2014, 2018
Благодарил (а): 1 раз
Поблагодарили: 1 раз
Контактная информация:

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

Сообщение Alex Dem »

S@dkO, если будете пробовать Arduino Compatible Compiler и с Arduino IDE 1.6.13 не будет заливаться скетч с плату, то установите 1.6.11, с этой версией работоспособность мной проверена.
WSLB60
beginner
beginner
Сообщения: 19
Зарегистрирован: 18 окт 2016, 11:18
Версия LabVIEW: 2015 SP1

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

Сообщение WSLB60 »

Спасибо за схемы. Не со всем пока разобрался, но продолжаю над этим работать. :) Подскажите, а как в LabView сделать такую вещь: за определённый период времени (например за 10 секунд) увеличить скорость вращения двигателя до максимума или определённого ненулевого значения (можно как в точных значениях так и в процентах), далее выдержать эту скорость 20 секунди и затем также равномерно снизить до нуля. На графике это будет похоже на равнобедренную трапецию. Такое возможно сделать в LabView? В LAbView обширная библиотека таймеров, но как их применить для решения такой задачи я пока так и не сообразил.
Аватара пользователя
IvanLis

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

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

Сообщение IvanLis »

WSLB60 писал(а):Спасибо за схемы. Не со всем пока разобрался, но продолжаю над этим работать. :) Подскажите, а как в LabView сделать такую вещь: за определённый период времени (например за 10 секунд) увеличить скорость вращения двигателя до максимума или определённого ненулевого значения (можно как в точных значениях так и в процентах), далее выдержать эту скорость 20 секунди и затем также равномерно снизить до нуля. На графике это будет похоже на равнобедренную трапецию. Такое возможно сделать в LabView? В LAbView обширная библиотека таймеров, но как их применить для решения такой задачи я пока так и не сообразил.
При управлении приводами используются следующие характеристики (помимо остальных): максимальная скорость, ускорение и торможение.

Например если вам нужно разогнать привод до 5 т. (меньше макси), а Вы знаете что его ускорение 1 т., то получается для разгона до заданной скорости необходимо 5 сек. При условии линейного изменения, но часто старт делают плавно, а разгоняют по нарастающей. В кинематике есть понятие "рывок" - третья производная.

Например переместить каретку на 10 см. В зависимости от шага винта ШВП вы должны рассчитать количество шагов (или оборотов) двигателя. Потом вы должны построить график изменения скорости вращения (с учетом ускорения, максимальной скорости и торможения). В дальнейшем управление двигателем осуществляется в соответствии с ранее рассчитанным планом.

В принципе все это реализовано (часть аппаратно, часть программно) в системе NI Motion Control http://www.ni.com/motion/
Но при необходимости можно и ручками просчитать.
WSLB60
beginner
beginner
Сообщения: 19
Зарегистрирован: 18 окт 2016, 11:18
Версия LabVIEW: 2015 SP1

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

Сообщение WSLB60 »

Спасибо. Про разную скорость разгона в моменты самого разгона я деже и не подмал. В принципе, в моём случае, это не принципиально. Я хотел учтонить, как с помощью существующих элементов программы добиться результата ускорения (равномерного или по нарастающей) до максимального значения (ссылаюсь на свою первую схему). Сейчас возможно управлять скоростью оборотов двигателя с помощью элемента PWM Arduino и датчика прикрученного к нему. Я не могу придумать, каким образом добиться, чтобы скорость двигателя росла автоматически за определённый промежуток времени.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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