Создание пульта для 3д принтера с хардверными кнопками на базе ардуино.
- Войдите на сайт для отправки комментариев
Все кто когда-нибудь сталкивался с 3д принтерами знает как долго и неудобно находить и включать необходимые функции прогрева, перемещения и т.д. при помощи стандартного энкодера и экрана 12864, кучу времени тратится на преодоление всех пунктов меню и установки нужных значений. Китайцы выпускают для своих плат сенсорные экраны, но реализация и удобство функций там все равно хромает. Так вот возникла идея создания из Ардуины пульта с кнопками, каждая кнопка посылает принтеру свою предустановленную Gcode-команду. Допустим на примере платы моего принтера BTT SKR MIni E3 - она на основе контроллера STM32F103RCT6 , та же фирма BTT выпускает экраны к ней, которые как раз и являются тем же пультом для посылания Gcode команд, только сенсорным, связывается экран с платой только по 4 проводам VCC GND Rx Tx, значит мне нужно подключить ардуину к тем же ногам микроконтроллера RX и TX, они там у МК промаркированы как Pa2 (TX2) 16-я нога и Pa3 (RX2) 17-я нога. Я совершенно не силен в МК и ардуинах и без понятия по какому протоколу они общаются, это UART или нет? Ребяты, может кто-то показать пример скетча, чтобы я уже под себя назначил ноги ардуины на определенные кнопки и Gcode на каждую из них? Если получится сделать, то хочу разместить готовый проект для народа на форуме 3dtoday, думаю многим понравится моя идея. Я просто уже год занимаюсь 3д печатью и вот когда есть несколько принтеров на первое место встает экономия времени, а с таким пультом установленным на каждом принтере обслуживание занимало бы меньше времени и психической энергии.
Логический анализатор - 500р. Цепляетесь к RX/TX, перехватываете обмен, разбираете его, пишите эмулятор... А мы вашей работой поделимся со всеми у себя на форуме.
Да, имел дело с анализатором, когда-то надо было выкинуть из дорогого проектора балласт лампы, переделать на мощный светодиод. Получилось все считать и эмулировать работу балласта. Но разве никто не знает как посылаются gcode команды по UART? Ведь вообще принтеры раньше, да и сейчас, народ собирает из mega 2560+ плата расширения RAMPS и прошивка Марлин, там же точно такой же принцип. По сути две ардуины нужно между собой соединить по UART. у меня тот же стандартный Марлин, только контроллер STM.
ноги PA2 PA3 - это Serial2, протокол там UART, разобрать команды несложно, но нужен оригинальный пульт с сенсорным экраном.
Но, честно говоря, я что-то не очень понял вашу идею с кнопками. Вместо нескольких десятков вложенных меню вы хотите приделать панель с тем же диким количеством кнопок?
ИМХО, с точки зрения программиста более правильно - добавить возможность написания сценариев, чтобы наиболее употребительный набор настроек загружался нажатием одной кнопки. А более редко используемые опции - оставить через меню, как сейчас.
Чисто практически - если дадите такую сенсорную панель - готов составить список команд и написать нужную апликуху, но не бесплатно конечно...
Примерно так:
Но, честно говоря, я что-то не очень понял вашу идею с кнопками. Вместо нескольких десятков вложенных меню вы хотите приделать панель с тем же диким количеством кнопок?
Ну кнопок будет не так уж и много, десять хватит с головой и сценарии не нужны, так как весь сценарий заложен уже в gcode файле печатаемого объекта. Из всего обслуживания принтера надо только преднагрев стола, хотенда, перемещение головы по всем осям и загрузка\выгрузка пластика.
Дружище, а не могли бы Вы показать пример готового скетча с одной кнопокй для того, чтобы проверить понимает ли МК принтера этот сигнал от ардуины? А то я без понятия как скетчи строить. Могу только готовые уже настраивать под себя (типа копировать функции и новые кнопки назначать).
Ну кнопок будет не так уж и много, десять хватит с головой и сценарии не нужны, так как весь сценарий заложен уже в gcode файле печатаемого объекта. Из всего обслуживания принтера надо только преднагрев стола, хотенда, перемещение головы по всем осям и загрузка\выгрузка пластика.
ну тогда первое, что вам надо сделать, как уже выше сказано - взять фирменную панель, логанализатор (или даже обычную ардуину) и прочитать коды нужных кнопок меню. Или, как вариант - попытаться найти эти коды в сети, если их уже кто-то считывал. Без этого первого этапа двигаться дальше смысла не имеет.
Имея эти коды - остальное, как говориися, дело техники - скетч там несложный
Опять кашу из топора предлагает ТС нам сварить...
Имея эти коды - остальное, как говориися, дело техники - скетч там несложный
Вы имеете ввиду непосредственно сами Gcode команды? Так их знает большинство 3д-печатников. ну например команда M109 S200 - это команда нагрева хотенда до 200градусов и т.д. Это стандарт для 3д принтеров. Мне нужно просто написать скетч такой - нажал кнопку 1 - по UART пошла gcode команда M109 S200 , нажал кнопку 2 - команда M109 S60 и так далее.
ну что ж Вы за люди такие меркантильные, не все же деньгами меряется, я же делаю общественно полезный проект, да, я не знаю основ написания скетчей, но имея готовый пример на 1-2 кнопки я уже сам дальше все сделаю, пропишу необходимые gcode команды. Для Вас же набросать такой скетч секунд 5.
Все основы свободно доступны, все примеры есть. Бери да изучай. Не хочу изучать, хочу ныть на форуме.
я не знаю основ написания скетчей, но имея готовый пример на 1-2 кнопки я уже сам дальше все сделаю
вот куча примеров обработки кнопок, среди прочего там есть и скетч, где по кнопке программа пишет сообщение в Сериал
http://developer.alexanderklimov.ru/arduino/button.php
Все основы свободно доступны, все примеры есть. Бери да изучай. Не хочу изучать, хочу ныть на форуме.
Мне нет смысла это изучать, так как вряд ли скоро мне еще понадобится работать с ардуиной когда я сделаю себе пульт. Хорошо, если никто не хочет помочь общественно полезному проекту, тогда сколько вы хотите за такой скетч-пример на 2 кнопки, который посылает определенный gcode при нажатии на них?
ну что ж Вы за люди такие меркантильные, не все же деньгами меряется, я же делаю общественно полезный проект
ну если он "общественно полезный" - обьявите подписку, соберите средства заинтересованных граждан да и наймите программиста :) Краудфандинг это называется :)
сколько вы хотите за такой скетч-пример на 2 кнопки, который посылает определенный gcode при нажатии на них?
я меньше чем из 1500 не работаю :)
Расслабтесь.... я вам выше выложил ссылку.
ну что ж Вы за люди такие меркантильные, не все же деньгами меряется, я же делаю общественно полезный проект, да, я не знаю основ написания скетчей, но имея готовый пример на 1-2 кнопки я уже сам дальше все сделаю, пропишу необходимые gcode команды. Для Вас же набросать такой скетч секунд 5.
Вы не делаете общественно-полезный проект. Вы ищете того, кто сделает вашу жизнь легче, а может и доходней. При этом никаких усилий вкладывать не намереваетесь.
Ищите среди 3Дшников - им это интересно. Я, лично, никакого интереса и пользы от такого скетча для себя не вижу.
Я уже все сделал. Понятно, что это давно уже не "форум", а площадка поиска исполнителя за немалые $$$ даже за самую малейшую ерунду. Буду доделывать проект и готовить статью для людей, а Вы тут сидите и ждите клиентов, Печальный Вы Человек, "SAD MAN". Так бы хоть плюс в карму заработали бы (имеется ввиду настоящая КАРМА а не циферки в профиле форума), того гляди со временем и поменяли бы свой ник на более веселый.... Всего хорошего!
Лучше попересчитываю свои несметные $$$ , полученные за малейшую ерунду на этой площадке.
Вы не правы, это как раз "форум" - то есть площадка для общения и обмена идеями.
Написание кода для ленивых новичков - это по вашему что, общение?
Испокон веков форумы были не только для общения и обмена идеями, а и посильной небольшой помощи и подсказке другим. Вот мне когда-то на нашем украинском форуме arduino.ua человек помог написать код для эмулятора балласта проектора, так я ему сам навязывался отблагодарить, правда он не хотел ничего брать. я разработал схему подключения и потом моя тема помогла многим сделать себе такой же эмулятор, до этого в СНГ такой темы в общем доступе не было, я был первопроходцем. Вот для чего нужны профильные форумы - для взаимопомощи, это их главное достоинство... БЫЛО...
Может все же кто-то безвозмездно мне подскажет еще кое-что - я обнаружил, что у платы принтера логический уровень порта 3.3V , а Ардуина Уно 5v, то получается их никак нельзя соединить?
Может все же кто-то безвозмездно мне подскажет еще кое-что - я обнаружил, что у платы принтера логический уровень порта 3.3V , а Ардуина Уно 5v, то получается их никак нельзя соединить?
существуют так называемые "конверторы логического уровня", стоят копейки. Можно и самому собрать, в простейшем случае это делитель напряжения из двух резисторов.
Нашел у себя ардуинку китайскую pro mini, так вот непонятно на какой она вольтаж, как это проверить? чип mega328p U-KR 354A3P . не могу найти даташит на эту серию
Все основы свободно доступны, все примеры есть. Бери да изучай. Не хочу изучать, хочу ныть на форуме.
Мне нет смысла это изучать, так как вряд ли скоро мне еще понадобится работать с ардуиной когда я сделаю себе пульт. Хорошо, если никто не хочет помочь общественно полезному проекту, тогда сколько вы хотите за такой скетч-пример на 2 кнопки, который посылает определенный gcode при нажатии на них?
Тут каждое второе сообщение от халявщиков со ссылкой на "общественную полезность" именно того проекта, который этот халявщик хочет получить бесплатно. Если хотите сделать общественное благо, профинансируйте разработку проекта, а не надейтесь, что кто-то что-то сделает для Вас бесплатно.
Испокон веков форумы были не только для общения и обмена идеями, а и посильной небольшой помощи и подсказке другим. Вот мне когда-то на нашем украинском форуме arduino.ua человек помог написать код для эмулятора балласта проектора, так я ему сам навязывался отблагодарить, правда он не хотел ничего брать. я разработал схему подключения и потом моя тема помогла многим сделать себе такой же эмулятор, до этого в СНГ такой темы в общем доступе не было, я был первопроходцем. Вот для чего нужны профильные форумы - для взаимопомощи, это их главное достоинство... БЫЛО...
Может все же кто-то безвозмездно мне подскажет еще кое-что - я обнаружил, что у платы принтера логический уровень порта 3.3V , а Ардуина Уно 5v, то получается их никак нельзя соединить?
Короче решил проблему логических уровней - подал на 5-вольтовую ардуинку 3.3 и все работает, ну и ладно, принтер сигналы понимает отлично, идея моя получилась, осталось как-то это все физически оформить в удобный пульт. Еще один вопрос, ребяты - почему ардуина когда подключена к ПК не прошивается, IDE выдает ошибку, прошивается только если я одновременно втыкаю юсб в ардуину и в то же время нажимаю кнопку загрузки в IDE, довольно сложно словить этот момент. Это прикол всех китайских ардуин? Просто у меня все так прошиваются и уно и нано и микро. Или что-то с драйверами ПК не так?
Дак ты спроси там, где памогають, на родном arduino.ua.
А это плохо, что там помогают? Че вы тут такие все злые сидите, друзья? Реально, что я тут плохого такого сделал? Делаю реально полезную для тысяч 3д-печатников штуку, попросил, чтобы несчастных 2 строчки мне тут написали, помогли, а сделали врагом народа, пообзывали халявщиком. Нельзя так, ребята. Тем более говорить, что я палец о палец не хочу ничего сделать, это как? Для примера пару строчек это вы считаете весь проект сделан?
Не ребята мы тебе. И даже небратья.
О, начинается. При виде кода "UA" - у индивидуумов с прошивкой "RU" логический анализатор отключается и переводится в режим исполнения программы "PU". Не, я в такое не играю.
Не мы начали.
Котяра, как тебя твой дед Леопольд учил -"Ребята, давайте жить дружно", надо старших слушаться, они мудрее.
"Ребята, давайте жить дружно",
Давайте. Сделай, хотя бы для разнообразия, хоть что-то сам...
Так я сделал, код написал для общественно полезного устройства. Когда сделаю все, то буду готовить статью для форума 3dtoday, хотите у Вас размещу тоже. А вопрос про проблемы прошивки ардуино это что-то некультурное и выходящее за рамки приличия что мне тут начали указывать на мою страну проживания? Вы че, люди? Какая разница откуда человек, это пипец. Сегодня одна политика, завтра другая. Сегодня есть страна, завтра наxRен нет, все меняется, а человеческое в человеке должно оставаться что бы ни случилось.
Короче решил проблему логических уровней - подал на 5-вольтовую ардуинку 3.3 и все работает, ну и ладно, принтер сигналы понимает отлично, идея моя получилась, осталось как-то это все физически оформить в удобный пульт.
Еще один вопрос, ребяты - почему ардуина когда подключена к ПК не прошивается, IDE выдает ошибку,
прошивается только если я одновременно втыкаю юсб в ардуину и в то же время нажимаю кнопку загрузки в IDE, довольно сложно словить этот момент.
Это прикол всех китайских ардуин? Просто у меня все так прошиваются и уно и нано и микро. Или что-то с драйверами ПК не так?
Да, выход 3.3В напрямую сочетается с входом 5В.
Не, я так не рисковал, боялся плату принтера спалить. Я имел ввиду, что я подал на 5-вольтовую ардуино питание 3.3в и, соответственно, логический уровень стал 3.3 и стал сочетаться с принтеровским, возможно это и неправильно, но тем не менее ардуина работает нормально, а что мне еще надо.
А это плохо, что там помогают? Че вы тут такие все злые сидите, друзья? Реально, что я тут плохого такого сделал? Делаю реально полезную для тысяч 3д-печатников штуку, попросил, чтобы несчастных 2 строчки мне тут написали, помогли, а сделали врагом народа, пообзывали халявщиком. Нельзя так, ребята. Тем более говорить, что я палец о палец не хочу ничего сделать, это как? Для примера пару строчек это вы считаете весь проект сделан?
Дело усугубляется тем, что просящий (или "требующий"?) неизменно сообщает, что сам он с программированием не дружит (и дружить ему незачем, т.к. он заинтересован в одном единственном проекте), но почему-то берет на себя смелость оценивать трудоемкость проекта (как правило, она по мнению спрашивающего составляет 2-3 строки или 5 минут работы). Мне вот интересно, как человек, не разбирающийся в предмете, способен оценить трудоемкость работ?
PS. Написать пару строчек - да без проблем. Только будут ли они работать так, как хочется и не сломают ли работоспособность остального кода?
Для того, чтобы ответить на этот вопрос, нужно сперва тщательно разобраться со всем имеющимся кодом. А это далеко не 5 минут. И, зачастую, даже не пару недель.
Положите на карточку файлы gcode
в которых наберите нужные вам команды.
И запускайте их на печать.
Написать пару строчек - да без проблем. Только будут ли они работать так, как хочется и не сломают ли работоспособность остального кода?
Для того, чтобы ответить на этот вопрос, нужно сперва тщательно разобраться со всем имеющимся кодом. А это далеко не 5 минут. И, зачастую, даже не пару недель.
Дружище, ну давайте будем честны, именно В МОЕМ случае я просил реально простой код из пары строчек - 1 кнопка - нажатие - выдача в сериал код M190 S200. Ну надо же знать как это составить, а мне, человеку "с улицы" где это найти, кучу статей перерыл пока нашел. Знающему это написать все равно, что слово "мама" сказать, а никакие не "3 недели ковыряния с кодом". Просто я уже понял, у вас всех тут гиперболезненная реакция на халявщиков сформировалась и вы всех новичков под эту гребенку сразу записываете.
Так уже тогда проще в меню включить тот же прогрев стола и хотенда, прикалываетесь? Мне не нужно супер-необычных операций выполнять. Самые элементарные, просто пульт нужен, чтобы они были доступны в 1 клик, а не в 20 через Энкодер.
Да, прикалываюсь.
То есть у вас чтобы запустить печать нужно 20 кликов сделать?
У меня на дисплее пальцем "принт", выбор файла курсором и "ок'
Хорошо, посчитайте реально сколько кликов Вам нужно сделать, чтобы включить прогрев стола и хотенда, ну самое элементарное? Вот у меня уже можно сказать есть пульт, я подхожу к принтеру нажимаю одну кнопку и все, ушел обедать. А Вам сколько клацать? Можете сказать, что это ничего, сколько там времени тратится, секунды, а если принтеров ну 5 например? Ну с нагревом то ладно. А допустим, функция выгрузки \загрузки филамента. Вот я чето сомневаюсь, что она у вас удобно реализована. В Марлине она просто ужасная. А у меня будет требовать минимум времени и движений - подошел, нажал кнопку прогрев, видишь, что хотенд догрел до нужной температуры и не дожидаясь стабилизации температуры (что не маловажно), нажал кнопку "выгрузка", по заготовленному Gcode-у пруток сначала быстро проталкивается через сопло, потом резко вынимается и уже потом более медленно выгружается, это занимает около 4сек, нажимаю "стоп", забираю пальцами пруток и ставлю другой и нажимаю кнопку загрузка, экструдер крутит столько сколько мне нужно чтобы прогнать пластик, нажимаю "стоп". Всего 5 нажатий на кнопки, которые расположены прямо на панели. А теперь сравните со своим принтером или с Марлиновской функцией выгрузки, где кучу времени нужно ждать стабилизации температуры, плюс выгрузка там только заготовленной длины идет, короче это бред, я не смог ею пользоваться, лучше вручную вынимать и проталкивать.
Зачем домашнему мастеру 5 принтеров и экономия секунд - непонятно. Но вот мелким бизнесом попахивает - это да...
О, давайте я буду Вас называть "CheerfulMan40" (Веселый Человек, да еще и на год моложе)?
А что, у Вас с советского времени еще затаилась личная неприязнь к "спекулянтам", предпринимателям, к людям, которые не согласны жить на мизерную государственную зарплату медика и которые придумывают альтернативные и даже творческие источники заработка?
Дружище, ну давайте будем честны, именно В МОЕМ случае я просил реально простой код из пары строчек - 1 кнопка - нажатие - выдача в сериал код M190 S200.
А если это вызвало у Вас затруднения, значит (как и следовало ожидать) Вы не способны оценить трудоемкость работы в сфере, в которой ничего не смыслите (что, впрочем, не удивительно).
Но в любом случае, Вы дали все основания назвать Вас лжецом.
... и вы всех новичков под эту гребенку сразу записываете.
Дружище, ну давайте будем честны, именно В МОЕМ случае я просил реально простой код из пары строчек - 1 кнопка - нажатие - выдача в сериал код M190 S200.
Так и не понял в чем вы не ошиблись? Я РЕАЛЬНО хочу сделать этот проект пульта и разместить для всех с подробными инструкциями! Запомните, я дам Вам ссылку на статью, когда она будет готова и может Вам даже станет немножко стыдно (мои влажные мечты конечно...)
Evokit, давайте будете и Вы честны с нами и собой. Вы зарабатываете на 3Д печати, здесь люди зарабатывают на написании программного кода. Так почему же Вы лишаете заработка, зарабатывая сами (пресловутая халява)? :-)
Хорошо, посчитайте реально сколько кликов Вам нужно сделать, чтобы включить прогрев стола и хотенда, ну самое элементарное?
...а если принтеров ну 5 например? Ну с нагревом то ладно. А допустим, функция выгрузки \загрузки филамента. Вот я чето сомневаюсь, что она у вас удобно реализована. В Марлине она просто ужасная.
Но время, затраченное на эти мучения, по моим прикидкам, несоразмерно с временем, которое бы мне потребовалось для доработки прошивки.
Думаю, это потому, что я, в отличие от Вас, могу квалифицированно оценить объем работы.
А у меня будет требовать минимум времени и движений...
А что, у Вас с советского времени еще затаилась личная неприязнь к "спекулянтам", предпринимателям, к людям, которые не согласны жить на мизерную государственную зарплату медика и которые придумывают альтернативные и даже творческие источники заработка?
Мне абсолютно пофигу кто вы и как зарабатываете до тех пор, пока идет fair play. Но как только начинается "Сделайте мне забесплатно ..., а то бизнес утомляет однообразными операциями" - это сразу в топку. Хочешь зарабатывать - вкладывайся.
А таких прошаренных ферзей тут на раз вычисляют.
Evokit, давайте будете и Вы честны с нами и собой. Вы зарабатываете на 3Д печати, здесь люди зарабатывают на написании программного кода. Так почему же Вы лишаете заработка, зарабатывая сам? :-)
Не совсем прямо зарабатываю на печати. Просто подпечатываю некоторые детали к устройствам. которые сам делаю и продаю, а также например покупаю китайские, апгрейдю их своими деталями. Вот так точнее будет. Но тружусь прилично и заработки не миллионные. Те же программисты зарабатывают куда больше.
Я обычно вручную включаю прогрев,
а затем, нажав рычажок на экструдре,
второй рукой выдергиваю пруток.