Установка Octoprint. Делаем UltiSteel умнее и функциональнее.
Всем привет! Новый Год уже прошел, пора браться за дело и поделиться с Вами новой полезной статьей. Ни для кого не секрет, что в 3Д принтере Ulti Steel предусмотрено место для установки Raspberry Pi. Долгое время я откладывал этот апгрейд, т.к. не видел в нем особого смыла. Почему? Все просто – устраивало как есть. Устраивало, устраивало и перестало. Об этом и пойдет речь в данной статье.
В преддверии нового года захотелось распечатать сувениры друзьям и родственникам. Была выбрана фигурка коровки. Решено использовать пластик PLA Red copper от U3 Print. Cкачал модель. Загрузил в слайсер. Настроил параметры печати, поставил слой 0,15, чтобы моделька не до пенсии печаталась и ушел заниматься другими делами.
Где-то через час, мое внимание привлекли странные пикающие звуки. Зайдя в комнату с принтером я обнаружил на экране сообщение “SD card Error”. Не смотря на жалобы принтер продолжал печатать. Но не долго. Через несколько минут появилось следующее сообщение “SD карта вставлена”. Принтер остановился и печать модельки пошла по… Пропала в общем моделька.
– Наверное, карта памяти устала и готовится уйти в мир иной, – подумал я.
Взял из запасов новую карту, записал на нее модель и снова запустил печать.
Через некоторое время история повторилась. Карточка отвалилась и принтер остановился.
– Значит дело не в карточке. Может с разъемом проблемы? А запущу-ка я печать через TFT экран. Там-то картридер почти новый.
Результат очередной попытки оказался почти таким же – через некоторое время принтер затих. Причиной этой тишины стало то, что дисплей натурально завис. Просто завис и потянул за собой принтер.
Очередная попытка окончилась провалом и потерей дорогого пластика, которого и так оставалось очень мало.
Анализ ситуации натолкнул на неутешительную мысль. У модели высокая детализация, в купе с тем, как кура слайсит модели – это могло привести к банальной перегрузке процессора SKR 1.3. И к перегрузке процессора дисплея. Что в первом случае вызвало временный отвал карты памяти, а во втором зависание дисплея.
Естественно, проблему можно решать несколькими путями, но времени было мало и я решил пойти по самому простому пути – если не хватает вычислительных ресурсов, то надо их добавить. Печатать с компа – не вариант. Принтер стоит далеко, кабелем не дотянуться.
На свободную raspberry pi из готового образа я установил octoprint, настроил, подключил к принтеру.
Запустил печать. И о чудо! Фигурка распечаталась!
Теория подтвердилась практикой. В данном случае не хватало вычислительных мощностей ни SKR 1.3, ни дисплею для обработки файла с gcode, что и приводило к зависаниям.
По идее, можно было бы как-то оптимизировать gcode для того чтобы таки напечатать фигурку в стоковой конфигурации, но не буду же я это делать каждый раз как принтеру будет не хорошо? Тратить не дешевый пластик на такие эксперименты не хотелось. И было решено встроить Raspberry Pi в ulti steel, тем более что под рукой есть все необходимое, а разработчики 3Д принтера заложили в конструкцию UltiSteel возможность установки Raspberry Pi.
Казалось бы, на этом статью можно и закончить, но нет! Это только предыстория.
Дело в том, что образ OctoPrint, который я скачал с сайта разработчика оказался… каким-то не таким. Он был собран на старой версии raspbian, в нем установлена старая версия octoprint и в этой сборке плагины не хотят устанавливаться. На первый взгляд ничего страшного – можно все обновить и порядок. А нет. Даже после обновлений плагины для octoprint устанавливаться категорически не хотели!
Потратив пару часов на пустые попытки починить установку плагинов, я принял решение собрать octoprint c нуля. Желание собрать осьминога под себя было еще и потому, что я очень недолюбливаю образы, которые неизвестно кто собирал и неизвестно чего туда напихал. Именно процесс ручной установки Octoprint с нуля я и буду описывать далее.
Для реализации задуманного нам понадобится:
- Raspberry Pi 3 Model B+ более мощную брать не стоит, т.к. греется 4я малина как сатана и будут проблемы с охлаждением.
- Карта памяти Micro SD на 32 ГБ. Покупаем хорошую быструю карточку в проверенном магазине
- Камера для rasbperry pi
- Длинный шлейф для камеры
- Хороший кабель MicroUSB
- Блок питания, в моем случае это MeanWell RS-25-5. У меня такой был, но вы можете приспособить и свой блок питания. Главное чтобы он стабильно выдавал 5 вольт и ток не менее 3 А.
- Различные провода.
- Нейловоновые проставки (иногда их называют бонки).
Установка Raspbian.
Для начала скачаем и установим программу BalenaEtcher. Можно воспользоваться и другими вариантами, например руфусом. Балена у меня уже стоит, поэтому буду пользоваться ей.
Кроме этого, нам понадобится образ операционной системы. Ранее он назывался Raspbian, но на момент написания статьи он называется Raspberry Pi OS Lite. Переходим по ссылке https://www.raspberrypi.org/software/operating-systems/
Скачиваем архив и распаковываем в удобное место.
Вставляем microSD карту в картридер и подключаем ее к ПК
Запускаем BalenaEtcher
Выбираем файл с образом операционной системы, которую мы скачивали и распаковывали
Выбираем куда будем записывать файл. Т.е. нашу карту памяти
Т.е. выбираем флешку, а после этого нажимаем кнопку SELECT
Нажимаем кнопку FLASH
И дожидаемся окончания записи образа операционной системы на карту памяти.
Закрываем BalenaEtcher.
Вынимаем карту памяти из картридера из снова вставляем обратно.
После подключения компьютер может пожаловаться, что есть диск, который не отформатирован.
Не обращаем на это сообщение внимания. Нажимаем ОТМЕНА. Ни в коем случае ничего не надо форматировать.
В проводнике появится диск с меткой BOOT
В корне этого диска любым удобным способом создаем пустой файл с именем SSH и без каких-либо расширений.
Вставляем в Raspberry Pi карту памяти
Подключаем Raspberry Pi кабелем к локальной сети или напрямую к маршрутизатору.
Подключаем кабель питания и включаем систему.
В консоли вашего маршрутизатора смотрим какой IP адрес получила наша Raspberry PI. В виду того, что маршрутизаторов (роутеров) великое множество, то рекомендую выяснить этот вопрос самостоятельно.
Далее нам понадобится SSH клиент Putty. (приведена ссылка на скачивание актуальной версии). Вы можете использовать любой удобный Вам SSH клиент. Если у вас его нет. Скачайте версию Putty которая не требует установки.
И запустите скачанный файл (putty.exe).
В поле HostName (or IP Adress) введите IP адрес который получила наша Raspberry Pi.
В поле Port должно быть указано 22
В разделе Connection type должен быть выбран пункт SSH
Теперь, когда все поля заполнены, то можно нажать кнопку Open
Если все было сделано верно, то появится вот такое вот уведомление:
Нажимаем ДА.
Теперь в окне Putty отобразится консоль входа.
Вводим имя пользователя pi
Нажимаем Enter
Вводим пароль raspberry
Нажимаем Enter
И попадаем в операционную систему нашего одноплатного компьютера.
Теперь обновляем список пакетов командой
1 | sudo apt-get update |
Дожидаемся окончания процедуры.
Обновляем установленные пакеты командой
1 | sudo apt-get upgrade |
Готово.
Теперь командой
1 | sudo rpi-update |
обновим прошивку Raspberry Pi
После установки обновлений прошивки необходимо перезагрузить одноплатник командой
1 | sudo reboot |
После ввода команды сессия с одноплатником разорвется. Необходимо подождать несколько минут и подключиться снова.
После перезагрузки снова подключаемся к малинке и выполняем команду
1 | sudo apt install rpi-eeprom |
В моем случае стоят все последние обновления.
Иначе вам необходимо будет их установить.
Итак обновления системы установлены. Перейдем к настройкам одноплатника.
Настройка операционной системы
Первым делом командой:
1 | passwd |
необходимо сменить пароль пользователя pi на свой
Вводим текущий пароль raspberry нажимаем ENTER и дважды вводим новый пароль. После каждого раза нажимаем ENTER
Если Вам удобнее и комфортнее работать под своей учетной записью, можете ее самостоятельно создать. А можете работать под стандартной учетной записью pi.
Добавим нового пользователя командой (добавлять пользователя не обязательно).
1 | sudo adduser имя_пользователя |
Назначаем пользователю пароль и заполняем или не заполняем дополнительные поля. Так сказать по вкусу.
Добавляем нового пользователя в группу sudo (для тех кто не в теме, даем права админа) командой
1 | sudo usermod -aG sudo имя_пользователя |
Теперь командой
1 | su имя_пользователя |
можно приключаться между пользователями.
Теперь установим файловый менеджер mc
Делается это командой
1 | sudo apt-get install mc |
Кому-то это может не понравится, но мне так работать удобнее.
Займемся настройкой сети.
Откроем конфигурационный файл командой
1 | sudo mcedit /etc/network/interfaces |
И добавим в файл следующие строки
1 2 3 4 5 6 7 8 9 10 11 12 | auto lo iface lo inet loopback #iface eth0 inet manual allow-hotplug eth0 iface eth0 inet static address 192.168.0.100 #меняем на адрес своей малинки netmask 255.255.255.0 gateway 192.168.0.1 #меняем на адрес своего роутера |
Еще раз на всякий случай напоминаю, что вместо 192.168.0.100 пишем адрес, который вы хотите присвоить своей малине, а вместо 192.168.0.1 пишем адрес своего роутера. Иначе сеть перестанет работать.
Изменения в файле сохраняем клавишей F2, закрываем текстовый редактор клавишей F10.
Выполним команду
1 | sudo raspi-config |
И через пункт 8 Update Update this tool to the latest version проверяем обновления
Переходим в пункт 5 Localisation Options Configure language and regional settings
Потом в пункт L1 Locale Configure language and regional settings
Выбираем локаль [*] ru_RU.UTF-8 UTF-8
Выбираем пункт <OK>
На следующем окне снова выбираем ru_RU.UTF-8
Выбираем пункт <OK>
Переходим в пункт 5 Localisation Options Configure language and regional settings
Выбираем пункт L2 Timezone Configure time zone
И выбираем свой часовой пояс. Вот так выбирается часовой пояс города Минск.
Ну и в заключение настройки ОС командой
1 | sudo reboot |
Перезагружаем малину.
Ждем пока она загрузится и снова подключаемся к ней через putty.
Установка Octoprint
Для начала командой
1 | python3 --version |
Убедимся, что установлен python версии не ниже 3.6
В моем случае, это версия 3.7.3. Все хорошо, установку можно продолжать.
Внимание! Для правильной и корректной работы дальнейшие действия необходимо осуществлять только под учетной записью pi
Для исключения конфликтов с другими приложениями, дальнейшая инсталляция будет осуществлена в виртуальном окружении python.
Подготовим среду для установки Octoprint
Вводим следующие команды:
1 2 3 4 5 6 7 8 9 10 11 | cd ~ sudo apt update sudo apt install python3-pip python3-dev python3-setuptools python3-venv git libyaml-dev build-essential mkdir OctoPrint && cd OctoPrint python3 -m venv venv source venv/bin/activate |
Среда подготовлена. Теперь, с помощью следующих команд установим Octoprint
1 2 3 | pip install pip --upgrade pip install octoprint |
Следующими командами предоставим пользователю pi доступ к различным портам. По сути добавляем его в соответствующие группы. Это может понадобиться для корректного взаимодействия с 3Д принтером и периферийными устройствами. Выполняем следующие команды:
1 2 3 | sudo usermod -a -G tty pi sudo usermod -a -G dialout pi |
Ну а теперь командой
~/OctoPrint/venv/bin/octoprint serve
Осуществляем первый запуск Octoprint
Ждем пару минут и переходим по адресу http://IP_raspberry:5000
Если все было сделано верно, но по указанной ссылке откроется страница мастера первичной настройки
Нажимаем Next
Нажимаем Next
Нажимаем Next
Вводим желаемое имя пользователя, пароль и подтверждение пароля. После чего жмем кнопку Create Account
Нажимаем Next
Разрешаем или запрещаем сбор анонимных данных. Лично я не люблю когда за мной следят, так что я отказываюсь от такого удовольствия.
Нажимаем Next
Отказываемся от теста проверки соединения с интернетом.
Нажимаем Next
Включаем черный список для плагинов. Это необходимо, чтобы защитить систему от установки плохих плагинов.
Нажимаем Next
Переходим к настройке принтера по умолчанию. Сейчас это делать не обязательно и к этому пункту я предлагаю вернуться потом.
Нажимаем Next
Команды управления системой тоже можно прописать позднее
Нажимаем Next
К настройкам WEB-камеры тоже вернемся позднее.
Нажимаем Next
Все. Первичная настройка системы произведена
Нажимаем Finish
Если все было сделано верно, то перед нами появится главная страница Octoprint
Нажимаем на значок гаечного ключа и попадаем на страницу настроек.
Переходим в пункт Software Update и обновляемся до последней актуальной версии
По идее это не понадобится, но на всякий случая рекомендую это сделать.
Русификация Octoprint
Для установки русификатора понадобился
2) Распаковать архив
3) Зайти в настройки
4) Выбрать пункт Appearance
5) Нажать кнопку Manage
6) Выбрать из архива подходящую версию языкового пакета и установить ее.
После этого стоит перезапустить Octoprint и интерфейс станет русифицированным
Автоматический запуск Octoprint при старте системы
Для настройки автоматического запуска Octoprint необходимо выполнить следующие действия
Выполнить команду:
1 | wget https://github.com/OctoPrint/OctoPrint/raw/master/scripts/octoprint.service && sudo mv octoprint.service /etc/systemd/system/octoprint.service |
Проверить чтобы в файле /etc/systemd/system/octoprint.service путь для запуска Octoprint имел следующий вид:
1 | ExecStart=/home/pi/OctoPrint/venv/bin/octoprint |
После чего выполните команду:
1 | sudo systemctl enable octoprint.service |
После указанных действий перезагружаем Raspberry pi и через несколько минут заходим на веб интерфейс.
Это свидетельствует о автоматическом запуске octoprint при старте системы.
Перевешиваем octoprint на 80 порт
Согласитесь, не удобно ходить по адресу http://192.168.1.100:5000 , гораздо удобнее использовать адрес http://192.168.1.100/
Для этого нужно сделать следующее:
С помощью putty логинимся на малину под пользователем pi
Вводим команду:
1 | sudo apt install haproxy |
Приводим файл /etc/haproxy/haproxy.cfg к виду:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | global maxconn 4096 user haproxy group haproxy daemon log 127.0.0.1 local0 debug defaults log global mode http option httplog option dontlognull retries 3 option redispatch option http-server-close option forwardfor maxconn 2000 timeout connect 5s timeout client 15min timeout server 15min frontend public bind :::80 v4v6 use_backend webcam if { path_beg /webcam/ } default_backend octoprint backend octoprint reqrep ^([^\ :]*)\ /(.*) \1\ /\2 option forwardfor server octoprint1 127.0.0.1:5000 backend webcam reqrep ^([^\ :]*)\ /webcam/(.*) \1\ /\2 server webcam1 127.0.0.1:8080 |
Открыть файл для редактирования можно командой
1 | sudo mcedit /etc/haproxy/haproxy.cfg |
теперь отредактируем файл /etc/default/haproxy
для этого вводим команду
1 | sudo mcedit /etc/default/haproxy |
и в открывшемся файле добавляем строку:
1 | ENABLE=1 |
Сохраняем изменения и закрываем файл.
Выполняем команду:
1 | sudo service haproxy start |
Проверяем, что веб интерфейс octprint работает по адресу без указания порта.
Если все работает нормально, то редактируем файл расположенный по пути ~/.octoprint/config.yaml
Открываем его командой:
1 | sudo mcedit ~/.octoprint/config.yaml |
И после строки server пишем
1 | host: 127.0.0.1 |
Внимание! Отступы нужно сохранять как на скрине. Если что, форматируйте пробелами.
После указанных действий перезагрузите малину и octoprint будет работать только на 80 порту.
Настройка команд перезапуска через меню octoprint
Вызовите меню настроек (нажмите на пиктограмму гаечного ключа)
Перейдите в раздел Сервер
И заполните поля как показано на скриншоте:
Вот команды:
1 2 3 4 5 6 7 8 | Перезагрузить OctoPrint: sudo service octoprint restart Перезагрузить систему: sudo shutdown -r now Выключить систему sudo shutdown -h now |
После этого нажмите кнопку Сохранить.
Настройка работы с камерой
В качестве камеры я буду использовать модуль камеры для raspberry pi. на его примере я и расскажу как и что настраивать.
Выполняем команду:
1 | sudo raspi-config |
Выбираем пункт 3 Interface Options
Выбираем пункт P1 Camera
Выбираем пункт ДА
Все. Поддержка камеры включена. Нажимаем OK
Перезагружаем малину и после перезагрузки заходим на нее с помощью putty. Все так же используем учетку pi.
Теперь выполняем следующие команды:
1 2 3 4 5 6 7 8 9 10 11 | cd ~ sudo apt install subversion libjpeg62-turbo-dev imagemagick ffmpeg libv4l-dev cmake git clone https://github.com/jacksonliam/mjpg-streamer.git cd mjpg-streamer/mjpg-streamer-experimental export LD_LIBRARY_PATH=. make |
Если компиляция прошла без ошибок
Сервер работы с веб камерой можно запустить командой:
1 | ./mjpg_streamer -i "./input_raspicam.so -fps 5" -o "./output_http.so" |
Результат выполнения этой команды должен выглядеть следующим образом:
После этого переходим в настройки octoprint и заходим в раздел Веб камера и интервальная съемка
В после URL-адрес трансляции вписываем следующее значение:
1 | /webcam/?action=streamИ жмем кнопку |
И жмем кнопку ТЕСТ
Если все прошло удачно, но вы увидите изображение с Вашей камеры
Остальные параметры настраиваем следующим образом:
1 2 3 4 5 6 7 | URL-адрес снимка http://127.0.0.1:8080/?action=snapshot Путь к FFMPEG /usr/bin/ffmpeg |
Перезапустите Octoprint и очистите кеш вашего браузера.
После этого на вкладе будет отображаться картинка с вашей веб камеры
Если вы хотите запускать и останавливать видео из octoprint и не лазить каждый раз в putty, необходимо сделать следующее.
Выполняем команды:
1 2 3 4 5 6 | cd /home/pi/ mkdir scripts mcedit /home/pi/scripts/webcam |
И в открывшийся файл копируем следующий текст:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #!/bin/bash # Start / stop streamer daemon case "$1" in start) /home/pi/scripts/webcamDaemon >/dev/null 2>&1 & echo "$0: started" ;; stop) pkill -x webcamDaemon pkill -x mjpg_streamer echo "$0: stopped" ;; *) echo "Usage: $0 {start|stop}" >&2 ;; esac |
Сохраняем изменения и закрываем файл.
Выполняем команду:
1 | mcedit /home/pi/scripts/webcamDaemon |
В открывшийся файл копируем следующий текст:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | #!/bin/bash MJPGSTREAMER_HOME=/home/pi/mjpg-streamer/mjpg-streamer-experimental MJPGSTREAMER_INPUT_USB="input_uvc.so" MJPGSTREAMER_INPUT_RASPICAM="input_raspicam.so" # init configuration camera="auto" camera_usb_options="-r 640x480 -f 10" camera_raspi_options="-fps 10" if [ -e "/boot/octopi.txt" ]; then source "/boot/octopi.txt" fi # runs MJPG Streamer, using the provided input plugin + configuration function runMjpgStreamer { input=$1 pushd $MJPGSTREAMER_HOME echo Running ./mjpg_streamer -o "output_http.so -w ./www" -i "$input" LD_LIBRARY_PATH=. ./mjpg_streamer -o "output_http.so -w ./www" -i "$input" popd } # starts up the RasPiCam function startRaspi { logger "Starting Raspberry Pi camera" runMjpgStreamer "$MJPGSTREAMER_INPUT_RASPICAM $camera_raspi_options" } # starts up the USB webcam function startUsb { logger "Starting USB webcam" runMjpgStreamer "$MJPGSTREAMER_INPUT_USB $camera_usb_options" } # we need this to prevent the later calls to vcgencmd from blocking # I have no idea why, but that's how it is... vcgencmd version # echo configuration echo camera: $camera echo usb options: $camera_usb_options echo raspi options: $camera_raspi_options # keep mjpg streamer running if some camera is attached while true; do if [ -e "/dev/video0" ] && { [ "$camera" = "auto" ] || [ "$camera" = "usb" ] ; }; then startUsb elif [ "`vcgencmd get_camera`" = "supported=1 detected=1" ] && { [ "$camera" = "auto" ] || [ "$camera" = "raspi" ] ; }; then startRaspi fi sleep 120 done |
Сохраняем изменения и закрываем файл.
Выполняем следующие команды:
1 2 3 | chmod +x /home/pi/scripts/webcam chmod +x /home/pi/scripts/webcamDaemon |
Если вы хотите, чтобы камера автоматически включалась при запуске raspberry pi, выполните команду:
1 | sudo mcedit /etc/rc.local |
И в строке перед текстом
1 | exit 0 |
вставьте следующий текст:
1 | /home/pi/scripts/webcam start |
Если вы хотите включать и выключать камеру через меню octoprint, сделайте следующее:
Откройте файл config.yaml командой:
1 | mcedit ~/.octoprint/config.yaml |
и добавьте в конец файла следующий текст:
1 2 3 4 5 6 7 8 9 10 | system: actions: - action: streamon command: /home/pi/scripts/webcam start confirm: false name: Start video stream - action: streamoff command: sudo /home/pi/scripts/webcam stop confirm: false name: Stop video stream |
Сохраните изменения и закройте файл.
Перезапустите Octoprint
После этого в меню появятся пункты, позволяющие включать и выключать камеру
Информация по настройке камеры касается только родной камеры Raspberry. Для других камер настройки могут отличаться.
Подключаемся к Octоprint по имени а не по IP
Итак, самые важные настройки мы сделали. при желании можно добавить немного красивостей. Давайте сделаем так, чтобы к Octoprint можно было подключаться по имени.
Как всегда подключаемся с помощью Putty и выполняем команду:
1 | sudo apt update && sudo apt install avahi-daemon |
Теперь командой
1 | sudo mcedit /etc/hostname |
открываем для редактирования файл
и вместо имени raspberrypi пишем то, которое нравится вам. В моем случае это octo01
Перезагружаем raspberry pi командой
1 | sudo reboot |
Ждем пару минут пока все перезапустится и проверяем.
В моем случае Octoprint стал доступен по ссылке
http://octo01.local/ и http://octo01/
На этом с настройками Octoprint пока остановимся займемся подготовкой к подключению
Подключение Raspberry Pi к плате управления 3д Принтером SKR 1.3
Есть два способа взаимодействия octoprint с SKR 1.3
- Ограниченный
- Расширенный
Ограниченный режим работает если подключить Raspberry Pi через штатный USB разъем платы управления. При этом доступна будет только возможность печати. Никакие параметры печати, такие как скорость, поток, температура и т.д. регулировать не получится.
Расширенный режим – работает если подключить raspberry pi к skr 1.3 по UART. В этом случае в процессе печати можно вносить корректировки через Octoprint.
Само собой ограничивать себя не хочется, поэтому далее будет описан способ подключения Raspberry Pi к SKR 1.3 по UART.
Полагаю, что данный способ подключения подойдет и для других плат управления, таких как SKR 1.4, SKR 1.4 turbo и т.д.
Вот что по этому поводу нам говорит инструкция по SRK 1.3
На raspberry pi на понадобятся пины 6 (GND) 8 (TXD0) 10 (RXD0)
На SKR 1.3 нам понадобятся пины разъема подключения дисплея (AUX-1). А именно: GND, TXD, RXD
Т.е нам необходимо соединить пины по следующей схеме:
Т.е.
GND Raspberry соединяем с GND SKR 1.3
RXD0 Raspberry соединяем с TX0 SKR 1.3
TXD0 Raspberry соединяем с RX0 SKR 1.3
для этих целей я сделал из подручных средств переходник:
Вот так этот переходник подключается к Raspberry Pi
А вот так данный переходник подключается к SKR 1.3
Короче, соединяем плату управления и Raspberry Pi как показано на фото и снова лезем в консоль через Putty
Вводим команду:
1 | sudo mcedit /boot/config.txt |
Ищем параметр dtoverlay и приводим его к виду
1 | dtoverlay=pi3-miniuart-bt |
Ищем параметр enable_uart и приводим его к виду
1 | enable_uart=1 |
если данные строки отсутствуют, то дописываем их как показано ниже:
Выполняем команду:
1 | sudo mcedit /boot/cmdline.txt |
И проверяем, чтобы в файле отсутствовал текс:
1 | console=serial0,115200 |
Если данный текст присутствует, то удаляем его. Должно получиться вот так:
Перезагружаем малину командой
1 | sudo reboot |
Дожидаемся загрузки малины и octoprint. Идем в настройки octoprint. Открываем раздел Последовательное соединение
Приводим настройки к виду, как показано на картинке:
В поле
1 | /dev/ttyAMA0 |
Нажимаем кнопку “Сохранить” и перезапускаем Octoprint.
После перезапуска Octoprint на главном экране нажимаем кнопку “Подключить”
Если все было сделано верно, то через некоторое время octoprint сам определит параметры подключения к принтеру и соединится с ним. Об это будут свидетельствовать полученные данные о температуре стола и экструдера.
Все. Соединение принтера и raspberry pi настроено.
Собираем и запихуеваем в корпус
Основные трудности позади, приступаем к сборке и установке всего в корпус 3д принтера. Само собой я буду показывать на примере ulti steel. Но в общем случае эта инструкция применима и к другим 3Д принтерам.
Для начала установим на raspberry pi нейлоновые стойки.
И через них устанавливаем малинку в корпус 3д принтера с помощью комплектных винтиков M3 крепим малинку в корпус.
Теперь сделаем еще пару проверок и настроек.
Для начала проверим, устанавливаются ли плагины.
Идем в Настройки – Менеджер плагинов – Получить больше
Выбираем понравившийся плагин и жмем “Установить“.
Прошло немного времени и плагин успешно установился!
Ну а теперь самое время пойти в Настройки – Профили принтера
Нажимаем Добавить профиль
В разделе Команды пишем имя профиля и модель
Чтобы не крутить настройки каждый раз я создаю для каждого сопла свой профиль принтера и при слайсинге и печати просто выбираю необходимый.
В разделе Размер стола и объем печати заполняем параметры своего 3Д принтера. На скриншоте параметры для UltiSteel
Раздел Оси можно не трогать. либо настроить под себя. Параметры этого раздела нужны только для ручного перемещения стола и печатающей головы. Непосредственно в процессе печати они не участвуют.
Но для тех, кому интересны параметры по умолчанию, я прилагаю скриншот
Ну и последний раздел Хотэнд и экструдер. Тут необходимо указать диаметр сопла и количество экструдеров. Я настраиваю профиль под сопло 0,6. Так что у меня будет вписано именно значение 0,6. Если у вас штатное сопло, то оставляйте значение 0,4.
После указания всех необходимых настроек жмем кнопку Принять
Ну вот по большому счету и все.
Octoprint настроен и готов к работе. Запустим-ка мы на печать ту коварную модель.
Спустя несколько часов я получил отличный результат и повторил опыт с другой фигуркой.
Фигурки печатались из пластика U3 ART PLA RED COPPER / МЕДНЫЙ от компании U3PRINT пластик специфический и любит большие сопла. Но и результат от печати этим материалом мне очень нравится.
Результаты меня полностью устроили.
Единственное, что меня расстроило – расширенный режим так и не заработал. Ладно, с этим еще предстоит разобраться. Думаю, что это решаемый вопрос. В прошивке принтера ничего не менялось, мы всего лишь заменили дисплей BIGTREETECH TFT35 V3.0 на Raspberry Pi. На дисплее управление скоростями, потоком и т.д. работало. Так что и на малинке должно заработать.
Вот такая вот объемная и содержательная получилась статья.
Надеюсь, она оказалась Вам полезной.
Данную статью вы можете обсудить в нашей группе в контакте https://vk.com/ionline_by
А если хотите больше красивых фоток, добро пожаловать в наш инстаграмм https://www.instagram.com/ionline.by/
До новых встреч.