USB-машинка для ЛУТа с Web-интерфейсом

Заюзать ламинатор для ЛУТа у меня было в списке запланированных дел очень и очень давно. К сожалению, ламинатора с ручной регулировкой температуры в продаже я так и не нашел, потому взял что было. И, разумеется, это “то что было” тонер даже расплавить не осилило, не то что перевести на медь.

Супер, время сделать этой машинке небольшой апгрейд

 

Вскрыв сие наукоемкое творчество узкоглазых я узрел вполне себе простую картину: Движок на 220 вольт, пара термореле врубленных последовательно и нихром который нагревает ролики. Когда температура доходит до предела – реле отщелкиваются. В этот раз описание без фотографий, так как когда я делал основной объем работ камеры под рукой не было.

Начал я с того, что запилил на валявшейся в хламе atmega48 платку управления, куда посадил механическое реле. 4KiBs флеша хватило как раз на vusb стек и тупой гистерезис, который будет держать температуру. Пока плата травилась, я закрепил термистор на алюминии красным герметиком для формирования прокладок в двигателях. Эта штука есть в любом автомагазине и держит до 375 градусов, нам хватит в общем.

Теперь юзерспейс. Я расчехлил свою утилиту ‘lunartool’, которую и использую для написания мелких скриптов для управления железяками. В этом случае мелкий апплет занялся еще и расчетом температуры. (Пихать лукап таблицы в мк я не хотел, красивая математика просит много места, потому с мк я тупо передаю данные с ADC).
Если Вы читаете периодически этот унылый инженерный бложек, то тулу эту помните, я о ней как-то писал уже. По сути это просто обертка над lualibusb (Кстати, теперь я использую свою патченую версию lualibusb. В апстрим версии поломаны control_msg и течет память!) Собственно смысл такой, что по простой конфигурации в сотню строчек мы сразу делаем готовую команд-лайн утилиту.

Теперь самое… веселое. У меня была мысль, а что если запилить веб интерфейс? с блэкджеком и шлюхами jquery и ajax. Я вооружился веб фреймворком lapis, библиотекой построения графиков flot, и каким-то халявным css темплейтом. (Если помните, я не веб дизайнер, и даже не веб-разработчик. И вообще на жизнь зарабатываю написанием драйверочков для линуксового ядра!). Дальше я подучил немного мунспика moonscript’а, и получил на выходе вот такую вот красоту:

s10

Я выбрал lapis и OpenResty по одной такой простой причине: Написаны на луа. Ляпис – так вообще на мунскрипте (А moonscript у нас компилируется в луа). На этом хозяйстве я сделал обертку для апплетов lunartool’а, которая берет эти же самые командлайн апплеты и выставляет на обозрение в виде простого в использовании веб-апи. Так что однажды написанный апплет это и командлайн утилита и сразу же веб-апи.

Теперь можно воткнуть в закрепленный на верстаке минипк (MK802), который у меня уже заправляет дюженой релешек и 3д принтером.

Тестирование: Как только сия вундервафля завелась пришло время подбора температуры. Температура не подберется сама! Начал я с 160 градусов, закончил на 178 C. Так как PID’а в этой конструкции нет, она дает овершуты около трех градусов. Во время нагрева лучше дождаться пока график температуры пару-тройку раз пересечет целевую, и можно начинать. Для нашей задачи это сойдет и допустимо. Теплоемкость меди у нас большая, так что прокатывать приходится два раза. Первый давать на разогрев меди, второй на непосредственно перевод изображения.

На больших платах еще предстоит этот процесс отладить, возможно температуры изменятся. Ну а пока, я нашел очень интересную тенденцию:

  • На 174 градусах переводится на ура, в персульфате слезает чулком
  • На 176 градусах все переводится отлично, держится отлично
  • На 179 градусах раздавливает тонкие дороги, качество падает

IMG_20140112_153956

Вот именно потому утюгом платы большие делать и сложно – попробуй выдержать это небольшое окошко в пару-тройку градусов для всей платы!

Заметка: Вполне возможно, что реальная температура в горячей части выше, чем я намерял из-за положения датчика.

Исходники: Выложу отдельным постом, так как их надо будет еще причесать немного, убрать костыли и добавить README.

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.