# 🪵  Буратина

Disclaimer: this page is in active development!

TBD: 

* Схема стойки станка
* Пошаговая инструкция для печатных плат с fabmodules + Candle
* Пошаговая инструкция для Fusion360 и CAM там

## Немного скучных подробностей

Трёхосевой ЧПУ-станок (3-axis CNC) собран на механике 3D-принтера с фанерным несущим корпусом (см [Booratina#Some legacy](https://lore.hackem.cc/s/main/doc/buratina-Vp3MomQa0n#Some_legacy)) и управляется FluidNC как ПО стойки (контроллера) станка. Шпиндель имеет одну степень свободы и перемещается по оси Z. Стол имеет две стороны свободы; ось Y перемещается на каретке по оси X. Шпиндель с косвенным приводом, привод ременной от коллекторного (DC) мотора, с повышающим числом около 4.

## Как пользоваться

После включения станок запускается FluidNC на ESP32 на основной плате, выполняющей роль стойки (контроллера) станка:

* микроконтроллер с управляющим ПО и ОЗУ для хранения состояния станка и части программы (файла с G-кодами)
* драйвера моторов, перемещающих шпиндель
* подсистема питания контроллера (DC-DC преобразователь на 5V), драйверов и моторов осей, и шпинделя на 12V
* #WIP контроллер оборотов шпинделя с обратной связью на отдельном модуле ESP32-C6 с OLED-экраном для индикации состояния шпинделя

ПО FluidNC подключается по Wi-Fi к публичной сети хакспейса (MOWMOW) и доступно по IP-адресу в ней, а также по анонсированному через mDNS имени <http://fluidnc.local>

## Всё-таки как пользоваться

Общий путь выглядит так:

* подготовка дизайна в CAD-программе
  * 3D-модель в CAD (FreeCAD, Fusion360, OnShape, SolidWorks, Blender)
  * схема и чертежи печатной платы в Gerber (KiCAD, Eagle, Fusion на выбор)
* подготовка управляющей программы в G-Codes в CAM-системе
  * СAM для обработки бруска материала (MasterCAM, Fusion)
  * FlatCAM для обработки заготовки для печатной платы
    * фрезерование дорожек мелкой фрезой (0.2-0.6 мм)
    * фрезерование/сверление отверстий сверлом или фрезой соответствующего или чуть меньшего диаметра (0.8-1 мм)
    * фрезерование контура печатной платы
  * [fabmodules-html5](https://github.com/FabModules/fabmodules-html5) для произвольной задачи, для которой целевая карта высот представляет собой grayscale PNG-файл или набор файлов
* отправка управляющей программы (файла в формате .nc) на станок

[FlatCAM](https://github.com/hackerembassy/FlatCAM) (пропатчен в Hacker Embassy для работы с Qt5) и [Candle](https://github.com/Denvi/Candle) установлены на компьютер newgaming на втором этаже. Можно установить их на личную машину (проверено на Debian-like Linux новее 2022 года).

#### Запуск программы через FluidNC

В веб-интерфейсе в разделе Local filesystem есть возможность загрузить файл с помощью кнопки Upload. После этого файл `*.nc` доступен для запуcка из интерфейса; постоянное подключение к станку с компьютера не обязательно.

#### Запуск программы через Candle

Для обеспечения возможности измерения фактической неровности поверхности стола есть возможность измерения поверхности контактным способом. Стол должен быть подключён к массе (минусу) станка. На шпиндель по жёлтому проводу при отключенном шпинделе подаётся напряжение, и при касании концом инструмента (фрезы) стола контроллер может это обнаружить.

Измерение поверхности может быть выполнено при загруженном g-code файле, по которому определяется рабочая область для данной задачи. После измерения по X на Y точкам производится интерполяция, и координаты по оси Z корректируются с учётом обнаруженной кривизны заготовки. Для запуска задачи всё время обработки компьютер с Candle должен быть постоянно доступен в сети хакерспейса, поскольку программа стримится в реальном времени.

### Пайплайн работы на ЧПУ-станке

Станок выполняет файлы с G-codes, описывающие атомарные действия (перемещение, homing, включение-выключение шпинделя и т.п.) станка. Станок имеет внутреннее состояние:

* фактическое положение шпинделя относительно нуля рабочего стола
* флаг is homed (выполнен цикл привязки к нулю; на мелких ЧПУ нередко цикл не выполняется, и ноль выставляется руками)
* состояние координат в памяти стойки станка

## Some legacy

Дано: \~\~голая женщина лезет в окно\~\~ бывший прынтер.

 ![Вид спереди до пер(е)делки](https://lore.hackem.cc/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2NmMGUwYWVhLWFmMWItNGI1Ni1iNWY2LWI0OGQzOTc1MDA4NS84NGE5Y2E3My0xZjVkLTRiNWQtYTY3ZC03YjA1NjljOTIxNzIvMjAyNTA5MThfMTI1MjM2LkpQRyIsInR5cGUiOiJhdHRhY2htZW50IiwiaWF0IjoxNzkxMTE3MDAwLCJleHAiOjE3OTEyMDM0MDB9.VARv_tjh720HYYXvCYpe8RnvMA9kBsTFrgnoZH19WG4 "left-50 =342x456")

 ![Вид сбоку до пер(е)делки](https://lore.hackem.cc/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2NmMGUwYWVhLWFmMWItNGI1Ni1iNWY2LWI0OGQzOTc1MDA4NS9lMzg1MzdjZS1lMDAxLTRjZTYtODYyOS01NTQ4ODZiYmZjMGQvMjAyNTA5MThfMTI1MjQyLkpQRyIsInR5cGUiOiJhdHRhY2htZW50IiwiaWF0IjoxNzkxMTE3MDAwLCJleHAiOjE3OTEyMDM0MDB9.W0M_yhScdQexWeffFmlKdtt6aPuFOvFk2jXlcbeJy84 "right-50 =304x405")

 ![Вид на спинку до переделки](https://lore.hackem.cc/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2NmMGUwYWVhLWFmMWItNGI1Ni1iNWY2LWI0OGQzOTc1MDA4NS9lYzNiYTJkMy1lYzQ1LTRkMTItYjA3MS0wYWNmY2FiMDFhZTgvMjAyNTA5MThfMTI1MjUyLkpQRyIsInR5cGUiOiJhdHRhY2htZW50IiwiaWF0IjoxNzkxMTE3MDAwLCJleHAiOjE3OTEyMDM0MDB9.0Pz6Heh34TBjTn_q_0K-lp2HXo5TPEeWNhFxU80BVx4 " =228x304")


Модель ведра: TiN Turbo A

[Схемки](https://github.com/ReprapologyInfo/ReprapologyElectronics) на шитхабе (mainboard/v1.3)

Питается от БП на 12V 29A (350W)

[Архив ссайта производителя](https://web.archive.org/web/20200813205141/https://reprapology.info/#footnote_1_1773)

[Исходники](https://github.com/ReprapologyInfo/Marlin) родной паршивки (пока не проверены; upd: собрались, пока не заработал экран)


 ![](https://lore.hackem.cc/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2NmMGUwYWVhLWFmMWItNGI1Ni1iNWY2LWI0OGQzOTc1MDA4NS9iMWQ1NzA4NS00MTQzLTRiZWYtODVhMC05NjQ0MjdiYmUyMDgvaW1hZ2UucG5nIiwidHlwZSI6ImF0dGFjaG1lbnQiLCJpYXQiOjE3OTExMTcwMDAsImV4cCI6MTc5MTIwMzQwMH0.9DcAAGGG7N7n682FDXL9v21yZxK7lpWhUQCD4Uy6s6c " =975x542")


 ![](https://lore.hackem.cc/api/files.get?sig=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJrZXkiOiJ1cGxvYWRzL2NmMGUwYWVhLWFmMWItNGI1Ni1iNWY2LWI0OGQzOTc1MDA4NS81ZjM2NGY1YS1jNzg1LTRhYTItOGRiOC0zZWYyZTA2NTM2ODUvc2NoZW1hdGljcy5wbmciLCJ0eXBlIjoiYXR0YWNobWVudCIsImlhdCI6MTc5MTExNzAwMCwiZXhwIjoxNzkxMjAzNDAwfQ.WDtoUg4ZqJjuizcsrT8yRteaMPUGqwIYRWmVMkg4Y24 " =993.5x942.5")

---

**Documents**

- [О нас](https://lore.hackem.cc/s/main/doc/o-nas-QY4JnnQznQ)
- [Проекты](https://lore.hackem.cc/s/main/doc/proekty-Dui8Tsngs3)
- [Donate](https://lore.hackem.cc/s/main/doc/donate-F24cOiaMOW)
- [Оборудование спейса](https://lore.hackem.cc/s/main/doc/oborudovanie-spejsa-anMybBFat1)
- [Интернет-провайдеры Еревана](https://lore.hackem.cc/s/main/doc/internet-provajdery-erevana-bOQ36Lkh5q)
- [Всякое разное](https://lore.hackem.cc/s/main/doc/vsyakoe-raznoe-2nLdUtbhBz)
- [Поваренная Книга](https://lore.hackem.cc/s/main/doc/povarennaya-kniga-WJ9G0aZNzz)