Современный тулчейн на arduino для управления 1-2 ШД

Контроллеры, драйверы, датчики, управляющие устройства.
SVP
Мастер
Сообщения: 6140
Зарегистрирован: 19 дек 2012, 15:49
Репутация: 884
Откуда: Москва
Контактная информация:

Современный тулчейн на arduino для управления 1-2 ШД

Сообщение SVP »

Тут родилось несколько задач, где надо что-то двигать. Не слишком точно, но иногда по странной логике.
И автономно. Т.е. скажем нажал одну кнопку, ШД сделал 3 оборота вперед, нажал вторую, три назад,
нажал обе - что-то еще.

Хочу попробовать собрать 2-3 "платформы" состоящих из какого-нибудь дешевого и простого МК,
шагового двигателя, драйвера и БП. Шаговиков давно не использовал, но полагаю в пределах 2А подобрать
можно легко, они где-то даже валяются в дому.

Хочется чего-то готового в плане железа и компактного.
Свою печатку разводить ради 2-3 агрегатов смысла не вижу.

Посмотрел, для arduino вроде бы понаворотили дофига шилдов, сходу пожалуй и не разобраться.
Есть у кого-нибудь положительный опыт ?
Бывают ли для arduino nano шилды для работы с ШД с готовыми и сколь-нибудь рабочими библиотеками ?
Хочется "проект выходного дня", а не "2 недели разбирательств где тут налажали до меня".

Или лучше брать что-нибудь более древнее, с бОльшим кол-вом выводой и здоровыми шилдами итп ?

ЗЫ. Хотя подумал... там поди в среднем для драйверов этих мелких по 3-4 ножки используется,
в шилде как таковом смысл есть только в плане того, что его так проще внутрь устройства закрепить :).
Вопрос в сторону мелких драйверов для попсовых ШД смещается
Morroc
Мастер
Сообщения: 202
Зарегистрирован: 22 ноя 2015, 03:17
Репутация: 22
Настоящее имя: Александр
Контактная информация:

Re: Современный тулчейн на arduino для управления 1-2 ШД

Сообщение Morroc »

Готовых шилдов именно для nano и на 2А не видел. На L293 и подобных видел. Библиотеки есть (AccelStepper например).
Компактней будет nano + какой нибудь компактный драйвер на подходящий ток, но закреплять будет не так удобно - это да :)
SVP
Мастер
Сообщения: 6140
Зарегистрирован: 19 дек 2012, 15:49
Репутация: 884
Откуда: Москва
Контактная информация:

Re: Современный тулчейн на arduino для управления 1-2 ШД

Сообщение SVP »

Вот подобрать бы "какой нибудь компактный драйвер на подходящий ток"... нормальный.
Сходу нашлись какие-то от репрапов, типа StepStick DRV8825, но опыта с ними нету.
Ставить серьезный промышленный вроде тоже смысла никакого.
Аватара пользователя
yurayerz
Опытный
Сообщения: 132
Зарегистрирован: 04 янв 2015, 02:46
Репутация: 33
Настоящее имя: Юрий
Откуда: Ярославль
Контактная информация:

Re: Современный тулчейн на arduino для управления 1-2 ШД

Сообщение yurayerz »

Я себе запилил контроллер на Ардуине, но не Нано, а Про Мини, с драйверами на DRV8825. Тащемта, достаточно компактно получилось.
Нестандартную логику работы не пробовал (ниахото :hehehe: ), проще залить в него grbl (как интерпретатор Г-кода), а второй ардуиной уже сделать нестандартную логику генерацией г-кода при нажатии на кнопки. На фотке, где красная рамочка - место для ардуины (вверху в середине сама ардуина про мини). Кстате, драйвера DRV8825вполне себе до 2.5А в обмотке и до 45В тащат!
Вложения
DSCN2774.JPG (2344 просмотра) <a class='original' href='./download/file.php?id=72567&mode=view' target=_blank>Загрузить оригинал (457.51 КБ)</a>
SVP
Мастер
Сообщения: 6140
Зарегистрирован: 19 дек 2012, 15:49
Репутация: 884
Откуда: Москва
Контактная информация:

Re: Современный тулчейн на arduino для управления 1-2 ШД

Сообщение SVP »

yurayerz писал(а):проще залить в него grbl (как интерпретатор Г-кода), а второй ардуиной уже сделать нестандартную логику генерацией г-кода при нажатии на кнопки
А к grbl своего поведения не дописать ?
2 штуки - это перебор. Логика простейшая.
Аватара пользователя
yurayerz
Опытный
Сообщения: 132
Зарегистрирован: 04 янв 2015, 02:46
Репутация: 33
Настоящее имя: Юрий
Откуда: Ярославль
Контактная информация:

Re: Современный тулчейн на arduino для управления 1-2 ШД

Сообщение yurayerz »

Не, грбл тупо принимает по последовательному интерфейсу г-коды, и выдает степ/диры. Унутрь лезть, разбираться - дело пропащее, времени жалко. При копеешной стоимости ~100-150р ардуин и стиков - чо их экономить?
Размер этой платы - 75х130мм, стандартный гайнтовский корпус.

Просто мой путь в ЧПУ начался с того, что я хотел всего лишь прикрутить автоподачу к проксоновскому координатному столику. :thinking: Оказалось, проще прикрутить полноценный грбл-контроллер! :hehehe:
Последний раз редактировалось yurayerz 18 фев 2016, 18:41, всего редактировалось 1 раз.
SVP
Мастер
Сообщения: 6140
Зарегистрирован: 19 дек 2012, 15:49
Репутация: 884
Откуда: Москва
Контактная информация:

Re: Современный тулчейн на arduino для управления 1-2 ШД

Сообщение SVP »

yurayerz писал(а):Не, грбл тупо принимает по последовательному интерфейсу г-коды, и выдает степ/диры. Унутрь лезть, разбираться - дело пропащее, времени жалко. При копеешной стоимости ~100-150р ардуин и стиков - чо их экономить?
Проводами лишними не хочется всё опутывать...
Но мысль ясна в целом.
А исходники на "грбл" есть в принципе ?
Аватара пользователя
yurayerz
Опытный
Сообщения: 132
Зарегистрирован: 04 янв 2015, 02:46
Репутация: 33
Настоящее имя: Юрий
Откуда: Ярославль
Контактная информация:

Re: Современный тулчейн на arduino для управления 1-2 ШД

Сообщение yurayerz »

да, исходники есть - https://github.com/grbl/grbl

Кстати, китайцы подобные контроллеры клепают к своим микролазерным станкам - http://ru.aliexpress.com/item/arduino-U ... 86082f80d4

Только цена ИМХО неадекватная. И напряжение до 12В (видимо, кондеры на низкое напряжение). Свой-то блок я 24В питаю.
Последний раз редактировалось yurayerz 18 фев 2016, 18:49, всего редактировалось 1 раз.
Аватара пользователя
AndyBig
Мастер
Сообщения: 3971
Зарегистрирован: 07 мар 2014, 04:01
Репутация: 1121
Откуда: юг России
Контактная информация:

Re: Современный тулчейн на arduino для управления 1-2 ШД

Сообщение AndyBig »

Бл...ин! Я все правильно понимаю? Для того, чтобы сгенерировать 400 (или сколько требуется) импульсов на одном выходе (STEP) и выставить единицу или ноль на другом (DIR) - надо подключать вторую ардуину и извращаться с G-кодом???? Вы меня простите, но это как покупать киловаттный ветряк для того, чтобы брать его с собой на пикники и питать там от него карманный радиоприемник :)
Ну или другое расхожее выражение - "Забивать микроскопом гвозди" :)
Аватара пользователя
yurayerz
Опытный
Сообщения: 132
Зарегистрирован: 04 янв 2015, 02:46
Репутация: 33
Настоящее имя: Юрий
Откуда: Ярославль
Контактная информация:

Re: Современный тулчейн на arduino для управления 1-2 ШД

Сообщение yurayerz »

Не-не-не! Это щас кажется, что вот она - простая логика! А потом захочется еще кнопочек, еще возможностей! И пилить заново?
А тут поставил универсальное решение - и развивай его до посинения!
Нужен же результат, а не процесс?

И да, если одновременно только одной осью управлять - можно на ардуине и акселстеппере скетчик по-быстрому слепить. А если двумя-тремя осями - тут уже совсем другая математика (алгоритм Брезенхема, прерывания и прочая...)
Аватара пользователя
AndyBig
Мастер
Сообщения: 3971
Зарегистрирован: 07 мар 2014, 04:01
Репутация: 1121
Откуда: юг России
Контактная информация:

Re: Современный тулчейн на arduino для управления 1-2 ШД

Сообщение AndyBig »

Это не универсальное решение, это очень громоздкое, медленнодействующее и неоправданно сложное решение :) Проект выходного дня? Да генерацию заданного количества импульсов по нажатию кнопки можно написать за один вечер, в перерыве между ужином и любимым фильмом :) Даже без ардуины, на голом Си.
Аватара пользователя
yurayerz
Опытный
Сообщения: 132
Зарегистрирован: 04 янв 2015, 02:46
Репутация: 33
Настоящее имя: Юрий
Откуда: Ярославль
Контактная информация:

Re: Современный тулчейн на arduino для управления 1-2 ШД

Сообщение yurayerz »

Да я ж не возражаю! Каждый точит, как он хочет! ТС просил совета - я предложил свое решение.
Вы можете предложить своё!
А критиковать художника каждый может... :tongue: :hehehe:
Аватара пользователя
AndyBig
Мастер
Сообщения: 3971
Зарегистрирован: 07 мар 2014, 04:01
Репутация: 1121
Откуда: юг России
Контактная информация:

Re: Современный тулчейн на arduino для управления 1-2 ШД

Сообщение AndyBig »

Тут только одно решение - любая плата ардуины. И все :) Даже библиотек никаких не нужно.
Morroc
Мастер
Сообщения: 202
Зарегистрирован: 22 ноя 2015, 03:17
Репутация: 22
Настоящее имя: Александр
Контактная информация:

Re: Современный тулчейн на arduino для управления 1-2 ШД

Сообщение Morroc »

А мне кажется нормальный подход если нужно не с кодом и своими багами подолбаться, а запустить >1 шд параллельно. Ну не получится быстрее сесть и написать свое (разве что всю жизнь именно этим и занимаешься).
pup
Мастер
Сообщения: 679
Зарегистрирован: 12 фев 2015, 10:12
Репутация: 11
Контактная информация:

Re: Современный тулчейн на arduino для управления 1-2 ШД

Сообщение pup »

всё зависит от квалификации вопрошающего. ну и вообще разобраться в этом самом grbl может оказаться посложнее, чем написать скрипт для ардуины.
по теме я бы взял какую-нибудь нану за 200 рублей и тот самый драйвер, что упомянали выше. имхо проще спаять проводками и закрепить на сопли в каком-нибудь простеньком корпусе. примеров использования этих драйверо - пруд пруди, выбирай любой. но вот если надо рулить одноременно кучей - у меня есть сомнения, что ардуина будет исправно работать. не попробуешь - не поймешь.
Аватара пользователя
AndyBig
Мастер
Сообщения: 3971
Зарегистрирован: 07 мар 2014, 04:01
Репутация: 1121
Откуда: юг России
Контактная информация:

Re: Современный тулчейн на arduino для управления 1-2 ШД

Сообщение AndyBig »

Morroc писал(а):Ну не получится быстрее сесть и написать свое (разве что всю жизнь именно этим и занимаешься).
Свое что? Вывод на ножку попеременно нуля и единицы с заданными задержками? Ну да, для этого надо всю жизнь изучать программирование и электронику :))
Вот Вам простейший вариант, написанный тут же в форме ответа за ужасающее время (минут 5-7):

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

// кнопка "Влево" на 0 выводе порта B, при нажатии на нее ШД делает 1000 шагов в одну сторону
// кнопка "Вправо" на 1 выводе порта B, при нажатии на нее ШД делает 768 шагов в другую сторону
// выход DIR на 2 выводе порта B
// выход STEP на 3 выводе порта B

#define DELAY_COUNT 800

volatile unsigned int delay_val = 1;

// настраиваем порты
PORTB = 0;
DDRB = (1<<3 | 1<<4);

int main()
{
	while(1)
	{
		if (PINB0 == 1) // нажата "Влево"
		{
			PORTB2 = 0;
			for (int j = 1000; j > 0; j--)
			{
				PORTB3 = 1;
				for (int i = DELAY_COUNT; i > 0; i--)
					delay_val = i * 1123;
				PORTB3 = 0;
				for (int i = DELAY_COUNT; i > 0; i--)
					delay_val = i * 1123;
			}
		}
		if (PINB1 == 1) // нажата "Вправо"
		{
			PORTB2 = 1;
			for (int j = 768; j > 0; j--)
			{
				PORTB3 = 1;
				for (int i = DELAY_COUNT; i > 0; i--)
					delay_val = i * 1123;
				PORTB3 = 0;
				for (int i = DELAY_COUNT; i > 0; i--)
					delay_val = i * 1123;
			}
		}
	}
}
Блин, ну для чего тут два микроконтроллера, генерация G-кода, а потом его интерпретация и разбор?
Еще час-полтора нужно для того, чтобы сделать простую фильтрацию дребезга контактов кнопок и линейные разгон/торможение ШД. Ну еще час-полтора, чтобы причесать код, сделать нормальные задержки через прерывания от таймера и добавить еще десяток кнопок с хитровыделанными движениями ШД (типа "оборот вперед, останов, пол-оборота назад, останов и пять с четвертью оборотов вперед").
Аватара пользователя
Maxekb77
Мастер
Сообщения: 1658
Зарегистрирован: 05 окт 2013, 00:04
Репутация: 285
Настоящее имя: Максим
Откуда: Екатеринбург
Контактная информация:

Re: Современный тулчейн на arduino для управления 1-2 ШД

Сообщение Maxekb77 »

Из драйверов готовых ну те же репраповские а4988 drv8825 таскают нема17 нормально , шилды к ним вроде на ебее есть и на 2 и на 3 оси.
Дисплей с кнопочками вроде в продаже есть.
Код уже выше приведен примерный, с тз занятие на вечер ничего там сложного нет.
Надоест можно будет и грбл прошить с ним поигратся
Morroc
Мастер
Сообщения: 202
Зарегистрирован: 22 ноя 2015, 03:17
Репутация: 22
Настоящее имя: Александр
Контактная информация:

Re: Современный тулчейн на arduino для управления 1-2 ШД

Сообщение Morroc »

AndyBig писал(а): Свое что? Вывод на ножку попеременно нуля и единицы с заданными задержками? Ну да, для этого надо всю жизнь изучать программирование и электронику :))
Такой код не проблема, а как захочется несколькими шд шевелить одновременно, да еще и дисплей прилепить - становится уже заметно сложнее (недавно ведь была тема про дергающийся шд). Черный ящик, принимающий G код, проблему решает - генератор G кода можно тяп ляп написать и все равно шд будут бегать нормально :) Мк копеечные, жалко что ли ?
Аватара пользователя
AndyBig
Мастер
Сообщения: 3971
Зарегистрирован: 07 мар 2014, 04:01
Репутация: 1121
Откуда: юг России
Контактная информация:

Re: Современный тулчейн на arduino для управления 1-2 ШД

Сообщение AndyBig »

Morroc писал(а):а как захочется несколькими шд шевелить одновременно, да еще и дисплей прилепить
А уже хочется? В описании задачи этого нет :)
И зачем придумывать себе трудности, чтобы потом мужественно их преодолевать? Захочется чего-то, на чем ардуина перенапрягается - взять что-то постарше ардуины, а не пыжиться, выдавливая из нее последние соки.
Morroc писал(а):Черный ящик, принимающий G код, проблему решает - генератор G кода можно тяп ляп написать и все равно шд будут бегать нормально
Так ведь на ардуине как раз и "(недавно ведь была тема про дергающийся шд)" :)) Просто не стоит пихать ардуину всюду, невзирая на трудности, создаваемые ее ограниченностью (как ресурсов, так и раздутых библиотек, тратящих половину ресурсов на свои внутренние проблемы).
Есть задача шевелить шаговиком по нажатию кнопок - любая ардуина с простейшей программой. Есть задача шевелить синхронно несколькими ШД с выводом на экран и прочими плюшками - берем что-то более приспособленное для этого. И не будет тем "ШД затыкается когда я вывожу две циферки на экран".
Это как раз яркий пример ардуизма мозга - для простейшей задачи, с которой справится почти любая тинька, взять ДВЕ меги и геморроиться с огромными библиотеками и отладкой взаимодействия между контролерами. Просто потому что так привыкли...
Не, автор, конечно, пусть делает как знает. Но такого :idiot: я еще не встречал - нажатия кнопок транслировать в совершенно чуждый контроллерам текстовый код, чтобы потом вторым контроллером этот код интерпретировать и исполнять :) Не думал, что ардуинщики еще могут меня чем-то удивить после увиденного многомесячного проекта, пытающегося заставить веб-сервер на ардуине работать хоть с какой-то приемлимой скоростью, но тут переплюнули :)
SVP
Мастер
Сообщения: 6140
Зарегистрирован: 19 дек 2012, 15:49
Репутация: 884
Откуда: Москва
Контактная информация:

Re: Современный тулчейн на arduino для управления 1-2 ШД

Сообщение SVP »

По итогам планируется купить штук пять драйверов "типа StepStick DRV8825" и штук пять-десять дуин, вероятно нано, либо 5 нано, 5 pro, там посмотрим.

И действительно, пользоваться готовым гбрл, вместо создания своего кривого с блекджеком и ...
Возможно дописав к нему нужную функциональность, возможно подав снаружи только команды, посмотрим.

ЗЫ. Я уже слишком стар, чтобы не думать о расширяемости, даже если её не в первоначальном ТЗ.
Ответить

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