LINUX.ORG.RU

Arduino. Библиотека для шаговых двигателей.

 


1

7

Вот пол года ковыряюсь на уровне хобби с Arduino. Позавчера решил разобраться с шаговыми двигателями.

На удивление не нашёл ни одной библиотеки удовлетворяющей хотябы двум критериям.

  1. Чтобы работала не через Delay. Это не правильно описал конечно. Чтобы работало не останавливая процесс других вычислений.

  2. Чтобы работало точно. «Вот сказал один оборот точно» - и точно один оборот (первый пункт здесь причём).

«Железную багиню» для поржать приглашу позже.



Последнее исправление: HIS (всего исправлений: 1)

Ну вот самая первая библиотека, Stepper - там же просто step() можно по таймеру с любым разрешением вызывать?

mv ★★★★★
()

Библиотека для Arduino

ты же понимаешь, что это зашквар примерно уровня Visual Basic?

anonymous
()
Ответ на: комментарий от anonymous

ты же понимаешь, что это зашквар примерно уровня Visual Basic?

Но нормальная библиотека для шаговых двигателей таки должна быть!

HIS
() автор топика
Ответ на: комментарий от mv

Ну вот самая первая библиотека

И когда мотор крутит вся система ждёт.

Топик читал? Пятизвёздочнег жеж мать перемать! Какого ты пятизвёздочнеГ, если читать не умеешь.

HIS
() автор топика
Последнее исправление: HIS (всего исправлений: 1)
Ответ на: комментарий от HIS

Да нет никакого «там». «Скетчи» и «библиотеки» ардуино - тупо классы С++, которые компилируются древней версией avr-g++. Вся ардуйня - это не более чем бренд, блевотная среда разработки и околонулевого качества набор хелперов для неосиляторов почитать ДШ.

Бросай это говно и пиши сам. Шаговики - очень простая вещь, даже «правильно» сделать их на таймерах - задача не сильно сложнее hello world'a.

anonymous
()
Ответ на: комментарий от Partisan

Да тут и пятизвёздочники пишут фигню.

HIS
() автор топика
Ответ на: комментарий от HIS

И когда мотор крутит вся система ждёт. Топик читал? Пятизвёздочнег жеж мать перемать! Какого ты пятизвёздочнеГ, если читать не умеешь.

Я и код почитал, пятезвёздочнеГ же! Там кроме пучка if’ов и digitalWrite’ов ничего нет.

mv ★★★★★
()
Ответ на: комментарий от mv

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

anonymous
()
Ответ на: комментарий от anonymous

Упорышь ты - потому что анонимус.

HIS
() автор топика
Ответ на: комментарий от anonymous

добавь туда переход в спящий режим и ожидание прерывания, будет экономия ресурса энергопотребления %)

Harald ★★★★★
()
Ответ на: комментарий от anonymous

Слава б-гу, что не через delay, от ардуйнёвых поделках и не такого насмотришься

Ты сам то понял что написал?

Ога! Там что-то более упоротое что делается поверх дилей?

HIS
() автор топика
Последнее исправление: HIS (всего исправлений: 1)
Ответ на: комментарий от Harald

Хотя бы потому, что я могу написать работоспособную библиотеку.

А ты чего выпячиваешься?

HIS
() автор топика
Ответ на: комментарий от anonymous

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

Он дольше топик из пальца высасывал и потом срался в нём, чем это на таймер перевести.

Меня больше расстраивает, что между разными аппаратными платформами библиотеки, например, работы с таймерами и CAN-шиной разные. Ну, то есть, всё легко делается, но надо делать. То есть, раздробленность экосистемы таки присутствует.

В целом, что в ардуине нравится - это минимальный общий рантайм. Я свою поделку для Вольво с AVR перевёл на ARM, а потом на ESP32, без особого геморроя. Гнуть за тру хардкор могут только те, кто этого эмбедного амна ещё не наелся. Мне давно уже без разницы, что там под капотом, если оно моего времени не требует. Главное, что легко поднимается, и не только мною, т.е. количество вовлечённых повторяльщиков непрограммисткого толка гораздо выше.

mv ★★★★★
()
Ответ на: комментарий от HIS

Хотя бы потому, что я могу написать работоспособную библиотеку.

Только её не существует. Вот когда напишешь, тогда и приходи

Harald ★★★★★
()

Поздравляю! Ты понял, что абдурина - говно.

Теперь купи blue pill и st-link на алиэкспрессе, а пока они идут, читай даташит и RM на STM32F103.

anonymous
()

[url=https://github.com/eddyem/scorpio/tree/master/avr/platform_deprecated]Держи/url

Я это говно временно написал, когда нужно было в сгоревшем приборы за 1 день МК в порядок привести, а исходников не было. Благо, был МК. Потом я вместо аврского говна поставил туда STM8 и все было хорошо.

По-нормальному управлять шаговиками в аврке невозможно, т.к. там таймеров с гулькин нос. А нужно по одному таймеру на каждый шаговик + 1 таймер как systick + еще таймеры обычно нужны бывают на ШИМ и т.п.

anonymous
()
Ответ на: комментарий от anonymous

БлиН, как же раздражает то, что какой-то мудак сделал по умолчанию markdown…

anonymous
()
Ответ на: комментарий от anonymous

невозможно Даже в древней 8 меге 3 таймера, для наивной реализации управления тремя движками - за глаза.

anonymous
()
Ответ на: комментарий от anonymous

Ты не сможешь управлять тремя движками, имея всего лишь три таймера, т.к. еще один таймер нужен для системных нужд!

anonymous
()
Ответ на: комментарий от Harald

this.

Если вы в 2k20 делаете кастомное управление шаговиками, значит, у вас лоукост-самоделка, и небольшие неточности в таймингах погоды не сделают.

anonymous
()
Ответ на: комментарий от anonymous

один таймер нужен для системных нужд!

Каких таких нужд? Для обслуживания кишок ардуино что ли? Мне казалось, мы уже закрыли эту тему?

anonymous
()
Ответ на: комментарий от Harald

Вот я и предложил говнокод, где одного таймера за глаза на все хватило.

anonymous
()
Ответ на: комментарий от anonymous

а чего сразу неточности, можно хоть с точностью до такта запилить на одном таймере

Harald ★★★★★
()
Ответ на: комментарий от HIS

Ты вообще забудь сочетание «ответственность» и «абдурина»!!! Абдурина рассчитана на 3-6-классников, которые не знают еще ни программирования, ни радиоэлектроники, но им хочется чего-нибудь эдакого сделать. А потом они вырастают и вместо абдурины используют уже подходящие микроконтроллеры. А некоторые не вырастают, и в 50 лет продолжают вместо микроконтроллеров абдурины использовать и «погромировать» в абдурино-стиле: методом тыка.

anonymous
()
Ответ на: комментарий от anonymous

Я так понял ты просто тролль.

Уверен что я за день изучения AVR контроллеров получил больше знаний чем ты за всю свою жизнь :)

HIS
() автор топика
Ответ на: комментарий от anonymous

Ну, скажем, нужно тебе с 1-wire работать. У нее начальный цикл - какие-то адские миллисекунды. ОК, в КА периодически проверяешь, что там натикал системный счетчик, и не пора ли следующую стадию запускать. Как натикал - запускаешь уже передачу при помощи таймера (или уарта) и прерываний (на нормальных МК это делается посредством DMA, т.к. ядро почти полностью расслабляется).

Другой вариант - медленное управление шаговиками. Ты в КА каждого шаговика проверяешь, сколько мс прошло с последнего микрошага, и если пора сделать следующий, пинаешь соответствующую ногу CLK (заодно считая микрошаги и инкрементируя по мере необходимости счетчик шагов).

Ну и т.д.

anonymous
()
Ответ на: комментарий от HIS

Плохо ты разбираешься в троллях.

Уверен что я за день изучения AVR контроллеров получил больше знаний чем ты за всю свою жизнь :)

Ну-ну.

anonymous
()
Ответ на: комментарий от anonymous

Отчего такой хейт? Для простых проектов «быстро накидать и пару раз запустить» ардуина подходит лучше всего. Потом можно разобрать и положить на полку, в чем проблема-то?

kravzo ★★
()
Ответ на: комментарий от kravzo

Вот только для этого абдурина и годится - быстренько проверить, работает ли купленная на алиэкспрессе железяка… И то, не факт, что под данную железяку на абдурине точно найдется «скетч».

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.