Автоматизация на 3D принтер с Raspberry Pi
Следвайки нашите предишен пост, ние продължаваме нашата серия от надстройки на 3D принтер с най-популярната модификация за дистанционно управление – OctoPrint!
Какво е OctoPrint и защо ви е необходим?
OctoPrint е безплатен софтуер с отворен код, който позволява на потребителите да наблюдават и управляват принтери чрез уеб базиран GUI. Въпреки че ти бих могъл инсталирайте го под Windows , обикновено работи на компютър Raspberry Pi с операционна система Octopi. Като се има предвид, че основният софтуер включва много полезни инструменти и общността на OctoPrint е разработила редица страхотни плъгини, ние сме сигурни, че това надграждане значително ще подобри изживяването ви при 3D печат.
OctoPrint ви предоставя:
- отдалечен достъп – С основния OctoPrint можете например да задавате температури, да качвате G-код и да стартирате/спирате всеки свързан принтер във вашия местен мрежа. Представете си, че можете да стартирате задание за печат с няколко щраквания на мишката от удобството на бюрото си (или леглото, що се отнася до това).
- наблюдение – Ако решите да инвестирате в камера за вашия OctoPrint, ще можете да гледате своя 3D принтер в реално време. Това е доста полезно, ако сте в друга стая и искате да се уверите, че принтерът работи добре. Никой не обича съсипан печат, но магазинът ви да бъде подпален, защото сте оставили принтера без надзор, е много по-голям проблем. Заедно с допълнителната безопасност, камерата ви позволява да правите видеоклипове с изтичане на времето на всички ваши разпечатки – чудесно за показване на вашите приятели (или клиенти!).
- допълнителна функционалност – Има някои добавки OctoPrint, които ви позволяват да контролирате GPIO (вход / изход с общо предназначение) щифтове на Raspberry Pi. Това означава, че бихте могли да разширите обхвата на софтуера извън самия принтер, като добавите сензори или контролирате светлини/вентилатори, включите/изключете основното захранване и т.н.
- добавки – Тъй като е с отворен код, OctoPrint има голям брой безплатни добавки. Някои от тях променят съществуващите функции на OctoPrint (плъгинът TheSpaghettiDetective ви позволява да управлявате принтера си от навсякъде чрез вашия смартфон), а някои добавят нова функционалност (PrintJobHistory ви позволява да съхранявате подробна информация и изображение на минали задания за печат). Без значение какво искате да постигнете, има вероятност някой вече да го е направил вместо вас!
Ръководство за инсталиране и настройка
Стъпка 1: Купете хардуер
Има само няколко хардуерни части, от които се нуждаете, за да стартирате OctoPrint:
- Raspberry Pi – Официалният уебсайт на OctoPrint препоръчва Raspberry Pi 3B, 3B+ или 4. Ако имате Raspberry 2 наоколо, можете да следвате това ръководство. От друга страна, ако купувате нов, чисто новият, (до) 8 GB RAM Raspberry Pi 4 може да се окаже пресилен за задачата. Използваме версията 3B и (с изключение на някои дълги пропуски) всичко работи добре, включително потока на живо и плъгините, които сме инсталирали.
- Raspberry Pi камера – Камерата Raspberry Pi не е изискване, но значително подобрява изживяването при дистанционно управление. Един, който ще работи извън кутията, е официална камера от Raspberry Store но можете да използвате и USB камера. Ако вземете модула на камерата Raspberry Pi, уверете се, че свързващата лента е достатъчно дълга за вашия проект. Дължината по подразбиране е около 20 см, така че трябваше да поръчаме по-дълъг замяна за да свържете камерата на печатащото легло към Raspberry извън кутията.
- SD карта – Самият Raspberry Pi няма памет за съхранение (като твърдия диск на вашия компютър). Той използва micro SD карта, за да съхранява както операционната система, така и всички други файлове, които използвате. Препоръчваме да използвате 16 или 32 GB карта. Можете да прочетете повече тук.
- USB кабел – Имате нужда от USB кабел, за да свържете Raspberry Pi към вашия принтер. За Ендър 3 това е USB A (мъжки) към USB B mini (мъжки). Проверете дали вашият принтер се доставя с кабел и ако не, погледнете USB порта на принтера, за да определите какъв точно размер ви е необходим.
- Захранване – Raspberry Pi може да се захранва от USB порт на компютър / лаптоп, но ако искате да работи самостоятелно, имате нужда от захранващ адаптер. Можеш Вземи един от официалния уебсайт или проверете подробностите на техния уеб страница и купете такъв в местния магазин (потърсете опцията USB micro). Използваме захранване 5 V / 3 A.
Стъпка 2: Изтеглете софтуера и запишете SD картата
След като имате самия компютър, ще трябва да инсталирате операционната система – в нашия случай Octopi. За да направите това, изтеглете Octopi OS изображение, както и Етчър – инструмент за запис на ОС на SD картата. Отворете местоположението за изтегляне на Octopi и разархивирайте архива. Трябва да видите файл с разширение „.img“. Поставете SD картата във вашия компютър и отворете Etcher. Изберете „Flash from file“ и .img файла, който току-що сте извлекли. След това изберете подходящото устройство, където е SD картата, и щракнете върху Flash!
Стъпка 3: Подгответе Octopi OS
След като Etcher приключи, може да се появи изскачащ прозорец, който ви подканва да форматирате вашата SD карта. Ти трябва не направете това, но вместо това щракнете върху Отказ и вместо това отворете папката на SD картата (ако щракнете формат диск картата ще бъде почистена и ще трябва да започнете отначало).
Веднъж в папката „boot“, намерете файла „octopi-wpa-supplicant.txt“ и го отворете с помощта на текстов редактор (като Notepad).
Това, което правим тук, е настройка на автоматична wifi връзка за нашия компютър Raspberry PI. За да направите това, трябва да откоментирате (премахнете знаците #) четирите реда в блока WPA/WPA 2 и да замените текста между кавичките, за да съответства на вашите мрежови идентификационни данни. Можете да копирате и поставите блока няколко пъти, ако искате да дадете на Raspberry достъп до повече от една мрежа (не забравяйте скобата } в края).
Също така се уверете, че сте избрали правилния код на държавата в края на файла (можете да замените текущо активния „GB“ с двубуквения код на държавата за вашето местоположение).
Запазете файла и затворете редактора.
Едно последно нещо: за да разрешите отдалечен достъп през защитената обвивка (ssh), трябва да създадете празен файл, наречен 'ssh' в директорията за зареждане. За да направите това, поставете отметка в квадратчето „разширения на името на файла“ от менюто с опции на Windows Explorer. След това създайте нов текстов файл и изтрийте разширенията .txt. Потвърдете промяната и сте готови. Вече можете да извадите SD картата.
Стъпка 4: Свързване и настройка
Поставете SD картата в Raspberry Pi, включете принтера и свържете захранването. Няма бутон „Включване/изключване“, така че веднага щом включите захранващия USB, вашият Pi ще се включи със сървъра OctoPrint след това – дайте му минута да се зареди.
За достъп до GUI трябва да отворите браузър и да отидете на http://octopi.local . Като алтернатива можете директно да въведете IP адреса на Raspberry Pi (нещо като 192.168.1.5). Ако не знаете този IP адрес, можете да използвате един от многото софтуерни инструменти за сканиране на мрежата (we препоръчвам Ядосан IP скенер) или се свържете с вашия рутер и проверете там.
При първото ви влизане ще трябва да преминете през съветника за настройка, като изберете име и парола, както и някои други опции. Крис Райли е страхотен видео относно инсталирането на OctoPrint, в случай че предпочитате да гледате, отколкото да четете.
И така, ето ви – OctoPrint е готов за работа!
Отляво имате Панел за свързване където ще изберете USB порта, в който е включен вашият принтер. Под него е панелът State, който ви показва дали принтерът работи в момента, оставащото време за печат и т.н. Следващото е Панел с файлове където можете да качвате файлове с G код и да избирате задание за печат.
Секцията вдясно се състои от раздели, където можете, наред с други неща, да задавате и наблюдавате температурата на инструмента и леглото или да контролирате осите на принтера и да предавате поточно видео на живо, ако имате инсталирана камера.
Стъпка 4: Инсталиране на добавки
Приставките на OctoPrint могат да бъдат лесно достъпни чрез Настройки (икона на гаечен ключ) / Мениджър на плъгини. За да добавите нови, щракнете върху бутона „Вземете повече“ в долната част.
Тук изброяваме някои от плъгините, които използваме, за да оптимизираме нашата работа:
- Navbar Temp – Пренася температурите на инструмента и леглото от раздела Температура в лентата за навигация, където можете лесно да ги видите по всяко време. Нещо повече, Navbar Temp ви позволява да стартирате персонализирана Linux команда и да покажете резултата в Navbar. Вижте раздела за бонуси в края, за да видите как добавихме персонализиран сензор към корпуса на принтера!
- Достъп навсякъде / Детективът Спагети – Страхотен инструмент, който ви позволява да разширите обхвата си и да контролирате принтера от всяка точка на света! Налични са също видеоклипове с интервал от време, качване на G код и откриване на грешки с AI!
- История на задачите за печат – Много полезен инструмент за следене на минали разпечатки. Ако съберете информация за настройките на принтера, времето и материалите, можете лесно да отстраните грешки и да видите какви промени водят до добри или лоши резултати.
- Уеб камера на цял екран – Този плъгин е прост, но прави наблюдението на принтера много по-удобно!
- GPIO контрол – Този плъгин ви позволява да създадете персонализиран бутон за GUI, който контролира конкретен GPIO щифт. Чудесно за управление на захранващо реле за LED лампа или захранването на принтера (проверете раздела за бонуси в тази публикация, за да видите как е направено).
В зависимост от вашите специфични изисквания и настройка, може да намерите други добавки на OctoPrint за полезни. Препоръчваме ви да разгледате Хранилище на плъгини Octoprint и изберете тези, които харесвате.
Бонус 1: Сензор за температура и влажност
В предишната ни публикация изградихме кутия за 3D принтер, за да поддържаме висока вътрешна температура и да подобрим качеството на ABS печат. За да проверим дали дизайнът наистина работи, добавихме температурен сензор и го свързахме към OctoPrint. По този начин винаги можем да проверяваме условията вътре в заграждението директно от основния контролен прозорец.
Избрахме Adafruit HTS221 – ниско напрежение (3 ~ 5 V), висок диапазон (-40 ~ 120 градуса C), точен и евтин сензор за температура / влажност, който лесно ще се свърже с Raspberry чрез I2C протокола. Има много други сензори, от които можете да избирате в зависимост от вашите цели и изисквания за измерване (проверете DHT11 / DHT22).
Ако изберете HTS221, проверете ръководството по-долу за това как да го накарате да работи на Raspberry Pi. Ако използвате различен сензор, можете да преминете направо към това как да свържете данните към OctoPrint.
За да накараме HTS да работи чрез I2C протокола, трябва да инсталираме няколко софтуерни пакета. Опитахме се да обобщим статиите*, изброени в долната част, за да можете бързо и лесно да настроите системата. Ако приемем, че вече сте инсталирали Octopi, изпълнете следното в директорията на вашия проект:
sudo apt актуализация
sudo apt-get -y инсталирайте python-pip3
sudo apt-get актуализация
sudo apt-get надграждане
sudo pip3 install –upgrade setuptools
pip3 инсталирайте RPI.GPIO
pip3 инсталирайте adafruit-blinka
pip3 инсталирайте adafruit-io
git клонинг https://github.com/adafruit/io-client-python.gitsudo apt-get install -y python-smbus
sudo apt-get install -y i2c-toolssudo pip3 инсталирайте adafruit-circuitpython-hts221
Накрая бягай
sudo raspi-config
изберете Опции на интерфейса и Активирайте I2C протокол.
Рестартирайте Raspberry Pi.
*
https://learn.adafruit.com/adafruit-io-basics-digital-output/python-setup
https://learn.adafruit.com/adafruit-hts221-temperature-humidity-sensor/python-circuitpython
Ето примерния код на Python (i2c_test-single.py) използвахме за четене на данни от сензора:
време за импортиране
дъска за внос
импортиране на бизнес
импортирайте adafruit_hts221i2c = busio.I2C(board.SCL, board.SDA)
hts = adafruit_hts221.HTS221(i2c)print(round(hts.relative_humidity,2),' %')
print(round(hts.temperature,2),' C —')
time.sleep(1)
Забележка: библиотеката 'board' е част от пакета Adafruit. Ако получите грешка „няма модулна платка“, трябва не инсталирайте го с команда като 'pip install board', защото има различна самостоятелна библиотека, наречена по същия начин и проблемът ви няма да бъде решен. Вместо това опитайте да инсталирате всички необходими пакети Adafruit.
Свържете сензора към OctoPrint
За да получите достъп до вашите сензорни данни, ще трябва да инсталирате приставката Navbar Temp (проверете Стъпка 4 по-горе). Другото нещо, от което ще се нуждаем, е python скрипт, който ще печат () данните, които искате да покажете на конзолата (отпечатайте ги само веднъж; Navbar Temp има вътрешен цикъл, който проверява вашия скрипт на всеки няколко секунди, за да актуализира данните). След като имате тези, при които отивате OctoPrint / Настройки / Плъгин за температура на навигационната лента / персонализирана команда и добавете командата, която бихте използвали, за да стартирате скрипта на Python за сензора, сякаш пишете в терминала Raspberry. В нашия случай искаме да стартираме a python3 файл, наречен i2c_test-single.py намира се в /home/pi/io-client-python3/ (това е същият файл, който показахме в секцията „Инсталиране на софтуер за HTS221“.). Получените данни са показани в червения правоъгълник.
Единственият проблем, който имахме, беше, че времето за актуализиране на персонализираната команда беше толкова дълго, че в началото си помислихме, че изобщо не се актуализира. След като прочетохме (безплатния и отворен, можете да го изтеглите от github) изходния код на Navbar Temp, открихме, че времето за актуализиране е 30 секунди. За да поправим това, трябваше ръчно да редактираме началния файл на Navbar Temp. Ето стъпките:
- свържете се с Raspberry чрез ssh (или чрез Windows 10 Power shell или чрез Замазка)
- намерете папката Navbar Temp, като въведете следното:
cd /
sudo find -path '*navbartemp'
- с cd отидете в директорията navbartemp, която току-що намерихте
- отвори __init_.py файл с нано и променете интервала при_след_стартиране функция до 2 секунди
ако self.cmd_name:
интервал = 5.0 ако self.debugMode else 2.0
- направете същото в on_settings_save функция
- Натиснете Cnrt+X, за да излезете и да запазите със същото име
- Рестартирайте OctoPrint. Много по-добре!
Бонус 2: Превключвател за ВКЛ./ИЗКЛ
Друга удобна функция, която добавихме към нашия „команден център“ на OctoPrint, беше бутон за включване и изключване на главното захранване на принтера. Все още трябва да стартирате Raspberry през цялото време, за да поддържате сървъра OctoPrint.
Ние използваме a 5V релеен модул който е свързан с Raspberry Pi и GPIO контрол плъгин, който споменахме по-горе.
Забележка !!!
Тъй като този раздел се занимава с електроника с висока мощност, в случай че имате съмнения какво трябва да направите, моля, намерете професионалист, който може да ви помогне.
От страна на хардуера трябва да свържете релето към Raspberry Pi по следния начин (можете да изберете различни GPIO, стига да промените номера в приставката):
VCC (реле) -> 3,3 V (малина)
GND (реле) -> GND (малина)
IN (реле) -> GPIO14 (малина)
Тогава, изключете захранващия кабел от вашия 3D принтер и главното захранване. Трябва да премахнете най-външния защитен слой и да намерите живия проводник (обикновено червено или кафяво) и го отрежете, така че да можете да поставите релето във веригата (ако отрежете всички проводници, просто ги свържете отново). На релето използвайте общия извод (COM) и нормално отворения извод (НЕ; с „нормално отворен“ релето ще държи веригата изключена, докато не изпратите сигнал към входния извод) – поставете проводниците и завъртете винтовете. Уверете се, че са добре свързани и свържете отново захранващия кабел към принтера.
След това отворете OctoPrint / Настройки / GPIO контрол и щракнете върху синята икона плюс вдясно, за да създадете нов бутон. Изберете икона, етикет и подходящия GPIO щифт (същия, към който сте свързали релето; в нашия случай GPIO14). Направете активното състояние НИСКО – поне в нашия случай релето е ВКЛЮЧЕНО, когато GPIO е НИСКО (няма напрежение). Щракнете върху запазване.
От лявата страна на главния екран трябва да видите a GPIO контрол панел с вашия бутон. Когато го включите, трябва да чуете "щракване" от релето, дори ако принтерът не е свързан към основното захранване. Ако това работи, включете захранването и вижте дали магията ще се случи.
Така че това е всичко за сега. Надяваме се, че това ръководство ще ви помогне да оптимизирате работния си процес. В комбинация с корпуса на 3D принтера процесът на печат става по-забавен и по-малко труден.
Ще се видим в следващата ни публикация в блога!
Честит печат!
Ресурси
Добавянето на Raspberry Pi към кутията на корпуса изисква хубава кутия, в която да го поставите. Можете да намерите нашия персонализиран дизайн за модел 3B в GrabCad – https://grabcad.com/library/raspberry-3b-enclosure-1
Проектирахме и монтажна система за камерата – видеозаписите с изтичане на времето са много по-приятни за гледане, ако отпечатъкът, който гледате, не се движи. С Ender 3 това означава, че камерата трябва да бъде прикрепена към печатното легло. Дизайнът, който можете да видите по-долу, има четири различни оси, които можете да променяте. Той е прикрепен към металната рамка под печатащото легло (трябваше да пробием дупка, за да работи). Друг вариант е да го монтирате на едно от копчетата за нивелиране на леглото. Поръчахме алуминиеви части от цеха за лазерно рязане, тъй като 3D отпечатаните се топят и се огъват при нагряване. 3D модели и DXF чертежи можете да намерите тук – https://grabcad.com/library/raspberry-camera-holder-for-3d-printer-1