LINUX.ORG.RU

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

 


1

7

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

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

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

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

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



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

Ответ на: комментарий от reprimand

Мне на «электрониксе» товарищ VladislavS доказал (с приведением листингов), что грамотный код на цепепе ничем не уступает коду на С! Никакого оверхеда.

Другое дело, что грамотных плюсовиков в наше время днем с огнем не сыщешь, быдлокодеры в основном вокруг…

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

лупить тебя нужно по голове.

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

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

Любителей совать во все щели ртось надо по рукам лупасить лопатой! Нет такой задачи, что нельзя решить на конечных автоматах.

Угу. Я видел множество любителей костыляторов костылей под всякие разные железки и разные забагованные и не очень способы всё это синхронизировать.

Эдик, если у тебя годы свободного времени то пожалуйста - костылируй себе на здоровье, ртос не нужен.

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

Я всё это веду к тому что разным задачам разное применение.

Ты вот не ограничен в времени (деньги = время), пожалуйста.
А у нас бывали случае когда это говно не успевал человек дебажить когда изменялись требования в проекте и всё это выбрасывалось на помойку и ставился нормальный ртос.

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

Я собрался писать либу. Просто собираю предложения чего не хватает в стандартной.

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

Мне на «электрониксе» товарищ VladislavS доказал (с приведением листингов), что грамотный код на цепепе ничем не уступает коду на С!

А мне один знакомый давным давно рассказывал что по гармоничности звучания пачка дисководов ничем не уступает полноценным музыкальным иструментам, и он таки доказал это! https://www.youtube.com/watch?v=Xk_XaJ7gE4Q

Ты прав. Цпп настолько ожиревший язык что время на то чтобы хотя-бы какую-то его часть изучить и потом грамотно применять соизмеримо десятилетиями. Красивых проектов на цпп единицы. Красивых проектов на новых стандартах цпп - 0.

Проще хорошо и грамотно писать на C цем искать и собеседовать раз в месяц псевдоплюсовиков.

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

Хотя есть фреймворки, которые сами «подметают» за собой.

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

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

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

Вообще эта тема про микроконтроллеры AVR.

Тема по C++ гораздо обширнее.

Создай отдельную тему со своими вопросами, там и поговорим.

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

посоветуй статью/книжку по С про то как грамотно выделять память собирать мусор

не могу посоветовать и не уверен что такие есть

это приходит с практикой и многократным наступанием на грабли

лучше подавай реальные примеры, будем разбирать

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

Какой, нафиг, мусор в микроконтроллерах? Ты что, собрался туда malloc совать? Вот делать нефиг...

Кстати, если кому вдруг понадобится работать со шрифтами на МК, я недавно вот что наколхозил: индексация, позволяющая сильно экономить место флеша (у меня хоть и 128кБ свободного флеша на МК, но 2кБ оттуда используется для сохранения настроек — эмуляция EEPROM — а все остальное хранит логи, и желательно, чтобы влезало логов побольше).

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

Какой, нафиг, мусор в микроконтроллерах?

человек пришел с другого мира (высокоуровнёвых языков?), он еще не называет вещи своими именами

Ты что, собрался туда malloc совать?

аллокаторов если тысячи в т.ч. для мк в т.ч. для разных случаев

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

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

человек пришел с другого мира (высокоуровнёвых языков?), он еще не называет вещи своими именами

Ну тут ты не прав.

Я реально уже написал нужную прогу для микроконтроллера. О чём писал выше.

Ты переоцениваешь себя и не дооцениваешь меня.

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

Ну тут ты не прав.

Аноним (Эдик) отвечал на сообщение от Int0l, который употребил термин «сборка мусора». Я говорил о Int0l а не о тебе.

Ты переоцениваешь себя и не дооцениваешь меня.

А ты невнимателен к деталям :)

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

Спасибо за замечание.

Я заметил что не прав. Не стал исправлять. Спасибо что поправил меня.

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

Да не нужен alloc ни в каком виде на МК!

Опять ты со своими дурацкими ртосями лезешь! Ну это ж как кувалдой по яйцам плохой вокал лечить! Не умеешь в КА - не суйся в МК!

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

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

Я как новичёк. Объясни что такое – ртось

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

Для идиотов.

Я очень не плохо разбираюсь в фотографии. Мою аватарку не всякий линуксоид сможет повторить.

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

Для чпу удобнее два двигателя. Можно конечно и один через переключатель на шестернях. Но ещё лучше три и того в норме 12 проводов и три стопора ещё 6 проводов ибо при самодельном ЧПУ и мощных шаговиках можно не соблюсти пределы чпу по перемещению и просто порвать ремни слизать шестерни и перекосить рамы. В случае маленького чпу из dvd приводов всего этого не надо конечно же.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от anonymous

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

И при компиляции не будет оверхеда.

Ну тут зависит от того кто писал. Всякие универсальные изобилуют проверками на проверках что для несведущего хорошо. А для выжимающего каждый такт приходится влезать и править.

Но это всё не важно, изначально разговор был про header-only от слов i-rinat и не более того.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

можно

Нельзя. У шаговиков не такие усилия, чтобы что-то сломать. Типичную сборку - Nema17 на 12v TB6560 - пальцами за вал можно застопорить.

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

Nema17 на 12v TB6560 - пальцами за вал можно застопорить

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

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

Чтобы ты «сказал» вращайся за минуту и 13 секунд столько-то оборотов, а дальше пусть оно там что-то ещё делает (например в шашки играет и переезжает от стола к столу со многими игроками ;) ) и не думает что и сколько там должно вращаться.

Держи наркомана

AUX ★★★
()
Ответ на: комментарий от LINUX-ORG-RU

Для чпу удобнее два двигателя.

Я предполагаю сделать управление множеством двигателей.

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

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

Я боюсь выпускать на свет свои знания.

Вот чуток рассказываю.

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

Другое дело, что грамотных плюсовиков в наше время днем с огнем не сыщешь, быдлокодеры в основном вокруг…

Просто ананистов (анонимусов) тут развелось… Сссаными тряпками не разгонишь!

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

Я вот задумался написать опен сорс либу нормальную для шаговых движков

на Абдурине

Кому нужна твоя либа на таеом медленном контролёре?!
Она уже мусор до момента своего написания.

Возми хотябы STM побыстрее, пусть он по RS/MODBUS получает задание, а потом паралельно крутит минимум четыре мотора, при том хорошо бы чтобы он и сигналы с энкодероа принимать и обрабатывать умел.

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

Это делается на абсолютно люди камне, кроме совсем мелких тинек и пикушек. И трудозатраты не то чтобы сильно различаются.

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

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

зашквар

Ну да, забыли у зеков спросить их авторитетного мнения…

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

у меня лапки

Иди помой свои лапки.

HIS
() автор топика
27 февраля 2020 г.
Ответ на: комментарий от torvn77

MODBUS

Вот нафига советовать это говно, устаревшее уже 20 с лишним лет назад? Его только быдланы-абдуринщики и используют, потому что им нравится устаревшее вонючее говно!

паралельно крутит минимум четыре мотора

Для этого нужны 4 таймера с выходами CC, в принципе, таких камней навалом.

хорошо бы чтобы он и сигналы с энкодера принимать и обрабатывать умел

А для этого нужно по таймеру с двумя (!!) CC входами, т.е. от силы ты 2 энкодера подцепишь к одному МК.

В общем, лучше не мечтать крутить больше 2 шаговиков с энкодерами одним микроконтроллером — либо ты не найдешь подобных МК, либо они будут жутко дорогими.

Проще вообще следовать принципу «1МК == 1ШД», объединить это дело в сеть по CAN или RS-485 и радоваться, что все офигенски работает.

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

Ты снова выходишь на связь, обдолбыш? Залогинься хотя бы.

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

Ты видимо о Xilynx FPGA не слышал, древнющий из которых обеспечивает 6 управляющих аналоговых сигнала и 6 abz энкодеров(т.е. 6 серво осей)

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

Так то ПЛИСина, а не микроконтроллер!

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

Сейчас много занят другими насущными вещами. Ещё не запилил. Хотя теорию проработал.

Да. У меня есть и жменя контроллеров и шаговик для экспериментов, и много ещё всяких игрушек под AVR, под которые стоит написать хорошие либы.

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