Схема управления с Arduino
Схема управления с Arduino
Добрый день.
Помоги пожалуйста начинающему в 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
Подскажите, действительно ли совместим и какой из этих контроллеров лучше выбрать для реализации поставленой задачи?
Небольшое пояснение: под задачей минимум подразумеваеться управление, например вкл/выкл светодиодов или
вкл/выкл того-же мотора.
Помоги пожалуйста начинающему в 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
Подскажите, действительно ли совместим и какой из этих контроллеров лучше выбрать для реализации поставленой задачи?
Небольшое пояснение: под задачей минимум подразумеваеться управление, например вкл/выкл светодиодов или
вкл/выкл того-же мотора.
Re: Схема управления с Arduino
Спасибо за видео. Разобрался.
Взял Arduino-Uno и собрал по примеру простую схему (вкл/выкл).
Возник вот какой вопрос: у моста Pmod HB5 есть такие выходы как SA и SB.
Соеденил SA c аналоговым портом ардуино и получил на графике изменение вольтажа от 0 до приблизительно 3.3.
Если я правильно всё понял, то период изменения это и есть оборт двигателя, которые мне нужны.
Подскажите, каким их подсчитать? Пробовал это сделать через элемент Bool to и сумму, но они совместно не работают.
Взял Arduino-Uno и собрал по примеру простую схему (вкл/выкл).
Возник вот какой вопрос: у моста Pmod HB5 есть такие выходы как SA и SB.
Соеденил SA c аналоговым портом ардуино и получил на графике изменение вольтажа от 0 до приблизительно 3.3.
Если я правильно всё понял, то период изменения это и есть оборт двигателя, которые мне нужны.
Подскажите, каким их подсчитать? Пробовал это сделать через элемент Bool to и сумму, но они совместно не работают.
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Схема управления с Arduino
Cхема моста
https://reference.digilentinc.com/_medi ... b5_sch.pdf
SA и SB две цифровые последовательности сигналов энкодера двигателя. Их параметры должны быть в спецификации на двигатель. По ним определяется угол поворота вала двигателя и все остальные производные параметры. Их надо подключать к цифровым входам согласно подпрограмме эндокодера для Вашего контроллера.
https://reference.digilentinc.com/_medi ... b5_sch.pdf
SA и SB две цифровые последовательности сигналов энкодера двигателя. Их параметры должны быть в спецификации на двигатель. По ним определяется угол поворота вала двигателя и все остальные производные параметры. Их надо подключать к цифровым входам согласно подпрограмме эндокодера для Вашего контроллера.
Re: Схема управления с Arduino
Спасибо. Со схемой моста разобрался.
Как оказалось, управлять направлением вращения через Arduino довольно просто.
Вот какой вопрос возник по ходу изучения LabView.
Есть ли где-нибудь подробное описание пакета Arduino?
Согласно описанию моста, который подсоеденён к Arduino, управлять оборотами двигателя нужно по средствам ШИМ.
Для этого в LabView в пакете Arduino есть элемент PWM Write Pin. По идее изменяя количество значений от 0 до 255 можно добиться изменения частоты подачи напряжения за период. Но собранная схема реагирует на изменение значений только как на вкл/выкл. До 127 - мотор выключен, с 128 до 255 мотор работает.
Возможно в элементе PWM Write Pin требуется выполнить какие-либо настройки в свойствах?
Как оказалось, управлять направлением вращения через Arduino довольно просто.
Вот какой вопрос возник по ходу изучения LabView.
Есть ли где-нибудь подробное описание пакета Arduino?
Согласно описанию моста, который подсоеденён к Arduino, управлять оборотами двигателя нужно по средствам ШИМ.
Для этого в LabView в пакете Arduino есть элемент PWM Write Pin. По идее изменяя количество значений от 0 до 255 можно добиться изменения частоты подачи напряжения за период. Но собранная схема реагирует на изменение значений только как на вкл/выкл. До 127 - мотор выключен, с 128 до 255 мотор работает.
Возможно в элементе PWM Write Pin требуется выполнить какие-либо настройки в свойствах?
-
- doctor
- Сообщения: 2259
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 33 раза
- Поблагодарили: 32 раза
Re: Схема управления с Arduino
Вообще-то поздновато, но я бы порекомендовал RasberryPi3 посмотреть. Это чумовой аппарат, в сочетании с Labview
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Схема управления с Arduino
https://www.packtpub.com/sites/default/ ... Images.pdf
Возможно только сегодня. Programming Arduino with LabVIEW.
http://stg909.rusfolder.com/download/?4 ... 2FWiJEw%3D
Возможно только сегодня. Programming Arduino with LabVIEW.
http://stg909.rusfolder.com/download/?4 ... 2FWiJEw%3D
Re: Схема управления с Arduino
Спасибо большое за объяснения и за видео.
Собрал следующую схему: Теперь возможна регулеровка скорости и изменение направления вращения.
Также на график вывводятся изменения сигналов с портов SA и SB, которые связаны с энкодерами.
Точность отображения сигналов далека от совершенства, но сопоставить их с тем, что есть в описании мотора можно.
Но как я не пытался динамически отображать скорость вращения двигателя, ничего не вышло.
Можете подсказать, каким образом можно решить эту задачу?
Я пытался это сделать через регистры. Получал количество моментов, когда сигнал был не нулевым и делил это количество на 19 (передаточное число двигателя). Но чтобы получить скорость, необходимо брать какой-то временной период. А как это сделать в динамике?
Собрал следующую схему: Теперь возможна регулеровка скорости и изменение направления вращения.
Также на график вывводятся изменения сигналов с портов SA и SB, которые связаны с энкодерами.
Точность отображения сигналов далека от совершенства, но сопоставить их с тем, что есть в описании мотора можно.
Но как я не пытался динамически отображать скорость вращения двигателя, ничего не вышло.
Можете подсказать, каким образом можно решить эту задачу?
Я пытался это сделать через регистры. Получал количество моментов, когда сигнал был не нулевым и делил это количество на 19 (передаточное число двигателя). Но чтобы получить скорость, необходимо брать какой-то временной период. А как это сделать в динамике?
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Схема управления с Arduino
Сделал попытку перерисовать BD. Железа нет, так что как работает не проверял.
Я рекомендую перейти с интерфейса LIFA на LINX, так как поддержка первого прекращена. Да и работать с LINX проще и возможностей больше.
Количество импульсов энкодера за 1 сек деленное на количество импульсов энкодера за один оборот вала двигателя (с учетом редуктора) даст скорость вращения вала в оборотах/сек.
Upd. Добавил вариант с системными контролами.
Я рекомендую перейти с интерфейса LIFA на LINX, так как поддержка первого прекращена. Да и работать с LINX проще и возможностей больше.
Количество импульсов энкодера за 1 сек деленное на количество импульсов энкодера за один оборот вала двигателя (с учетом редуктора) даст скорость вращения вала в оборотах/сек.
Upd. Добавил вариант с системными контролами.
- Вложения
-
- LIFA_PmodHB Controller.vi
- (1.43 МБ) 194 скачивания
-
- LIFA_PmodHB Controller (System Controls).vi
- (38.81 КБ) 208 скачиваний
-
- interested
- Сообщения: 4
- Зарегистрирован: 31 окт 2016, 22:01
- Версия LabVIEW: 2010
- Контактная информация:
Re: Схема управления с Arduino
Извините, если криво задаю вопрос: может ли данный пакет (LINX) скомпилировать код написанный в Labview с тем, чтобы стандартными средствами Ардуино прописать его в микроконтроллер и использовать микроконтроллер отдельно от ПК?
-
- leader
- Сообщения: 932
- Зарегистрирован: 17 янв 2016, 15:02
- Награды: 1
- Версия LabVIEW: 6.1,8.5,20
Re: Схема управления с Arduino
Нет. Но платный компилятор для этого есть.
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.
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.
-
- assistant
- Сообщения: 119
- Зарегистрирован: 06 май 2015, 22:24
- Версия LabVIEW: 2014, 2018
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Схема управления с Arduino
S@dkO, если будете пробовать Arduino Compatible Compiler и с Arduino IDE 1.6.13 не будет заливаться скетч с плату, то установите 1.6.11, с этой версией работоспособность мной проверена.
Re: Схема управления с Arduino
Спасибо за схемы. Не со всем пока разобрался, но продолжаю над этим работать. :) Подскажите, а как в LabView сделать такую вещь: за определённый период времени (например за 10 секунд) увеличить скорость вращения двигателя до максимума или определённого ненулевого значения (можно как в точных значениях так и в процентах), далее выдержать эту скорость 20 секунди и затем также равномерно снизить до нуля. На графике это будет похоже на равнобедренную трапецию. Такое возможно сделать в LabView? В LAbView обширная библиотека таймеров, но как их применить для решения такой задачи я пока так и не сообразил.
-
IvanLis
- guru
- Сообщения: 5561
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 32 раза
- Поблагодарили: 108 раз
Re: Схема управления с Arduino
При управлении приводами используются следующие характеристики (помимо остальных): максимальная скорость, ускорение и торможение.WSLB60 писал(а):Спасибо за схемы. Не со всем пока разобрался, но продолжаю над этим работать. :) Подскажите, а как в LabView сделать такую вещь: за определённый период времени (например за 10 секунд) увеличить скорость вращения двигателя до максимума или определённого ненулевого значения (можно как в точных значениях так и в процентах), далее выдержать эту скорость 20 секунди и затем также равномерно снизить до нуля. На графике это будет похоже на равнобедренную трапецию. Такое возможно сделать в LabView? В LAbView обширная библиотека таймеров, но как их применить для решения такой задачи я пока так и не сообразил.
Например если вам нужно разогнать привод до 5 т. (меньше макси), а Вы знаете что его ускорение 1 т., то получается для разгона до заданной скорости необходимо 5 сек. При условии линейного изменения, но часто старт делают плавно, а разгоняют по нарастающей. В кинематике есть понятие "рывок" - третья производная.
Например переместить каретку на 10 см. В зависимости от шага винта ШВП вы должны рассчитать количество шагов (или оборотов) двигателя. Потом вы должны построить график изменения скорости вращения (с учетом ускорения, максимальной скорости и торможения). В дальнейшем управление двигателем осуществляется в соответствии с ранее рассчитанным планом.
В принципе все это реализовано (часть аппаратно, часть программно) в системе NI Motion Control http://www.ni.com/motion/
Но при необходимости можно и ручками просчитать.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Re: Схема управления с Arduino
Спасибо. Про разную скорость разгона в моменты самого разгона я деже и не подмал. В принципе, в моём случае, это не принципиально. Я хотел учтонить, как с помощью существующих элементов программы добиться результата ускорения (равномерного или по нарастающей) до максимального значения (ссылаюсь на свою первую схему). Сейчас возможно управлять скоростью оборотов двигателя с помощью элемента PWM Arduino и датчика прикрученного к нему. Я не могу придумать, каким образом добиться, чтобы скорость двигателя росла автоматически за определённый промежуток времени.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
- 12 Ответы
- 15026 Просмотры
-
Последнее сообщение Sergey Puzanov