Удалённое управление 3D-принтером без участия куклы Вуду
Материал традиционно представлен в форме “от любителя к любителям”Прежде чем мы приступим к очередному апгрейду бессмертного (буквально, он у меня пережил дождь, снег, рваные провода, кота и племянника) “Гефеста”, поднимем актуальный вопрос:
ЗАЧЕМ?Кстати, ТОП-1 среди вопросов, которые мне задавали знакомые, когда я рассказывал им о покупке принтера. Очевидно, что однозначного вопроса быть не может. Очевидно, что нужно это для удалённой печати. Особенно актуально это было для меня: в силу личных причин по весне-лету я большую часть времени провожу в художественной мастерской. Пыли - океан, стружек - легион! С учётом того, что я остаюсь там чаще всего с ночёвкой, мой верный друг “путешествует” со мной. Естественно встал вопрос как от всего этого великолепия его защитить. Для этого была сделана особая коробка из оргстекла. В неё помещается принтер, всё это дело отправляется на высокий шкаф - сказка.Но с оговоркой - после запуска печати очень неудобно тащить принтер наверх, да ещё и после этого накрывать его коробом. Было решено найти уже готовое решение для удалённого доступа к принтеру. К счастью, оно было.
Часть материальная.
Итак, вы решили подключить bluetooth-модуль к своему принтеру. Что для этого нужно:
- В первую очередь, сам принтер. Лично я использовал Prusa i3 Hephestos. Но фактически подойдёт любой принтер с RAMPS 1.4 платой (да, включая Witbox), т.е. практически любой RepRap или принтер с открытыми исходниками;
- Bluetooth-модуль. Я использовал HC06, его же использовал разработчик софта, с которым мы ознакомимся ниже. HC05 ко мне ещё не приехала, поэтому относительно неё ничего сказать не могу;
- Провода. Нужны, что логично, для физической близости модуля и принтера. Сам я паять не хотел, поэтому позаимствовал готовые провода с симпатичными “гнёздами” из набора bq Kit de Robotica.
- Компьютер. Без небольшого arduino-вмешательства чуда не случится.
- Планшет/мобильный, который выдержит бесконечную мощь приложения (здесь могла быть дежурная шутка про “сборщик мусора” в java);
- Arduino - ваш путеводный фонарь на дорогах апгрейда принтера. Если вы впервые пользуетесь этой программой, озаботьтесь также установкой FDTI-драйверов;
- Cura/другой слайсер с возможностью прошивки принтера и прошивка для вашего принтера. Нужны будут в ходе работы;
- Мобильное приложение GcodePrintr для Android. Плохие новости - приложение платное (в районе 150-200 рублей). Хорошие новости - есть бесплатная версия-симулятор, включающая в себя некоторый функционал. Средней хорошести новость - не новую, но ещё актуальную версию можно спиратить.
Немного о приложении.
Приложение, без лишних слов, клёвое! Оно включает в себя полный цикл симуляции печать, расчёт времени, длины требуемого количества филамента и даже стоимость. Объективно серьёзных минусов лично я пока не заметил (за исключением долгого начала печати, но это скорее из-за не совсем верно настроенного bluetooth). Разработчики постарались на славу. Немного устаревший скриншот приложения:Скриншот последней версии:Ход работы.Первым делом, подключите свой bluetooth-модуль к плате по следующей схеме:
VCC -> 5V
GND -> GND
RX -> AUX2 D65 (просто чтобы сменить скорость передачи данных)
TX -> AUX2 D66 (просто чтобы сменить скорость передачи данных)
Схема платы RAMPS 1.4:Нашей задачей является настройка скорости передачи данных bluetooth, поэтому мы подключили RX/TX порты к AUX2 D65/D66. Небольшой arduino-скетч поможет нам в настройке.
ВАЖНО: дальше будет представлено два решения - разработчика и моё. Связано это с тем, что бытие большим молодцом не мешает этому самому разработчику принадлежать семейству оленевыхДля загрузки скетча вы должны подключить принтер к компьютеру и зайти в Arduino. Классическим копипастом введите:
#includeПосле этого нажмите кнопку Upload (“Вгрузить”). Вероятнее всего, код без проблем загрузится. Если же нет, то в пункте Serviсе проверьте плату и последовательный порт. Высока вероятность, что в программе у вас выставлены не те, которые вас интересуют.
SoftwareSerial mySerial(65, 66); // RX, TX
void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
Serial.println('Goodnight moon!';);
// set the data rate for the SoftwareSerial port mySerial.begin(9600);
Serial.println('Hello, world?';);
}
// void loop() // run over and over
{
if (mySerial.available()){
Serial.write(mySerial.read());
}
if (Serial.available()){
mySerial.write(Serial.read());
}
}
После того как код успешно ввдён, откройте монитор последовательного порта. Время пообщаться с bluetooth-модулем! Т.к. техника иной раз хуже женщины, рискну расписать сценарий вашего диалога:
AT
>Answer: ОК
AT+BAUD8
>Answer: OK115200
AT+NAMEprusa
>Answer: Oksetname
Первая команда - красная тряпка для программного быка. Полученный ответ говорит о том, что bluetooth вас услышал и готов общаться. Вторая - задает скорость передачи данных. А вот третья позволяет задать имя вашему модулю. Я назвал принтер по паспорту, “prusa”, но никто не запрещает вам гордо назвать свой принтер “MyLittleUltimaker”.
Мой метод загрузки кода.
Блютуз-модули - товарищи нервные и часто могут отказываться отвечать на ваши АТ-команды. Что делать в этом случае? Заставить их, конечно же!
#includeТеперь модуль работает с нужной нам скоростью передачи данных. Отключаем его от принтера. После подобных издевательств принтер начинает немного страдать кризисом личности на фоне того, что им воспользовались как просто платой-проводником. Чтобы он вновь обрёл себя, вам нужно загрузить в него прошивку через Cura или другой слайсер.
SoftwareSerial mySerial(3, 4); // RX, TX
void setup()
{
//Serial.begin(9600);
//Serial.begin(57600);
Serial.begin(115200);
Serial.println('Goodnight moon!';);
mySerial.begin(9600);
//mySerial.begin(57600);
//mySerial.begin(115200);
delay(1000);
mySerial.print('AT';);
delay(1000);
mySerial.print('AT+NAMEprusa';);
delay(1000);
mySerial.print('AT+BAUD8';);
delay(1000);
}
void loop() // run over and over
{
if (mySerial.available())
Serial.write(mySerial.read());
if (Serial.available())
mySerial.write(Serial.read());
}
Переподключите модуль следующим образом:
RX -> AUX1 D1
TX -> AUX1 D0Перезагрузите плату на принтере (или просто выключите-включите). Ваш bluetooth готов.
Вдоволь насладившись результатами своей работы, запустите приложение. Первым делом перейдите в настройки и укажите в Communication, что связываться с принтером вы будете по bluetooth. Теперь попробуйте подсоединиться к принтеру. если вы растеряетесь от обилия внезапных кнопок без единой надписи, сверху по тексту выложен скриншот с описанием каждой кнопки. Подключились к принтеру? Пришло время запустить свою первую печать со смартфона/планшета!
Вместо послесловия.
DIY - это для меня чудеса на виражах. буквально каждый день узнаю что-нибудь новое. Подключив к принтеру bluetooth-модуль, я некоторое время игрался с новыми функциями. И поставив печать, ушёл полностью распаковывать bq-шный кит робототехники. Осознание того, что ты изучаешь что-то новое и получаешь нешуточную награду за новые знания здесь и сейчас - это что-то с чем-то. Казалось бы, такая мелочь - залить в плату кусок кода, воткнуть модуль и дело с концом. Но для людей гуманитарных наклонностей, как я, это почти как чудо. И, что важно, чудо рукотворное.
Всем спасибо за внимание!
Еще больше интересных статей
Мой 3д-путь длиною в 5 лет
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Cura profile для принтера Creality K1
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
1) выбираем "Добавить принтер" - "специальный FFF принтер...
Дефекты 3D печати - Попробуем ввести классификацию
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Сегодня я решил уходить не в художестве...
Комментарии и вопросы
Приветствую. Есть модель самой...
Принтер у них уже был, и это н...
Бамбук оч хороший принтер, со....
Посоветуйте хотенд с гладким т...
Здравствуйте, столкнулся с про...
Всем привет! Прошу, не кидайте...
Собственно и вопрос: Как в Ком...