Сам!
Вот, полюбуйтесь. Эту полочку я сделал сам. И прикрутил к стене тоже сам. Я уже почти взрослый. Мне 39, если что.
Вот, полюбуйтесь. Эту полочку я сделал сам. И прикрутил к стене тоже сам. Я уже почти взрослый. Мне 39, если что.
Про плоттер рассказывал в предыдущей публикации. А сегодня хотел бы поделиться мнением о том, чего делать не нужно! =)
К публикации по сборке плоттера мне написали комментарий о том, что нужно надеть шарик на вал и все будет работать отлично. Что я и сделал.
Но результат получился вот такой.
Следующее, что я решил сделать это резинки для плетения.
Результат получше, но все же хуже чем с наждачной бумагой на подающем валу.
Планирую скомбинировать 2 самых удачных варианта. Что у меня получится расскажу в следующей публикации.
Описание тут.
Надеюсь моя информация будет полезной.
Спасибо! Всем добра!
Я расскажу о том как я сделал ЧПУ плоттер своими руками.
Он работает на Arduino.
Надеюсь моя информация будет полезной.
Спасибо! Всем добра!
Всем привет, мы с коллегой расскажем вам как мы мучились 4 месяца сделали своими руками принтер, который печатает то что вы от него хотите, без лишних проводов (только питание)
Небольшая предыстория (и зачем это вообще нужно)
После переезда в новый офис мы были рады наличию столовой на первом этаже здания, но места в ней было немного, и все желающие отобедать там не умещались. Андрей предложил свою кандидатуру на роль курьера.
Как это работало:
- Ребята пишут заказ на бумажке с подписью
- Андрей собирает бумажки и относит их в столовую с деньгами
- Через 30 минут возвращается и забирает заказ
- Ребята располагаются на кухне в офисе и дружно обедают
Итого 4 итерации, 2 из которых - поход в столовую.
Андрей, как прирожденный программист, решил это дело оптимизировать - сделал сайт где можно оформить заказ обеда, который он в дальнейшем распечатает и отнесет в столовую. Система оплаты была заменена на депозиты, баланс можно посмотреть в личном кабинете также на сайте.
(единственный обед который я могу себе позволить)
Позднее Олегом было предложено сделать «штуку которая будет печатать заказ в столовой», Андрей поделился со мной этой идеей, в дальнейшем мы пришли к выводу что нужна нам все-таки не штука, а принтер, желательно с мобильным интернетом, т.к. в столовой не было wifi (безумие).
Непосредственно сам процесс начался с прототипирования, все необходимое было закуплено за один раз на али, а именно:
- Принтер JP-QR701-TTL
- Arduino uno 328
- GSM/GPRS модуль sim800l + дополнительная антенна для него
И мое скромное вложение:
- Блок питания от монитора (14в 2а)
- Понижающие DC-DC модули
- Конденсаторы и прочая мелочь
Немного поясню по выбору железа:
- Выбрали именно этот принтер т.к. у него в описании значилась поддержка русской кодировки CP866, что показалось нам убедительным
- Миллионы раз в процессе разработки мы пожалели о том что выбрали Arduino, но в последствии лично для меня это превратилось в челлендж "впихнуть не впихуемое", ибо памяти очень не хватало
- GSM модуль взяли самый дешевый и распространенный — чем востребованнее железка, тем больше топиков и готовых проектов с ней
Примеров реализации sim800 + принтер + Arduino в сети не оказалось, но не смотря на это - руками мы написали лишь ~20% кода для проекта, в остальном - использовали библиотеки где все уже было сделано за нас.
Общение с модулем sim800l происходит с помощью AT-команд через Serial-port, в ответ, если все в порядке - отвечает OK, если нет - ERROR, использовали мы документацию которая гуглится по названию SIM800HL_Hardware_Design_V2.01 (есть много разных, но эта на мой взгляд самая полная)
Модуль крайне привередлив к питанию, ему необходимо 3.5 - 4.4в, иначе работать будет не стабильно, или может вообще выключится, предварительно написав предупреждение.
(картинка с сайта codius.ru)
Для получения данных из всемирной, пока еще не заблокированной сети - есть несколько способов:
- HTTP соединение
- TCP соедниение
Мы будем использовать второй вариант, т.к. библиотека которую мы используем работает именно по этому принципу (ее пришлось немного доработать, об этом в части про спаривание принтера и модуля)
С модулем можно общаться напрямую через Serial-порт компьютера, используя программатор, но у нас есть ардуино, и мы использовали скетч для отладки что бы немного с ним пообщаться (идет в комплекте с библиотекой, появляется в Examples Arduino IDE).
Шаг первый: получить данные с api.
С момента подключения питания до успешного получения данных прошло 2 часа (но потом мы потерли скетч и примерно 2 дня пытались повторить то что мы сделали).
Сложности с sim800l которыми мы столкнулись, перед тем как у нас это получилось:
- Недостаточное питание: подавали 3.3в вместо 3.5, модуль обманчиво мигал, но сеть не находил
- Пришлось настраивать прокси, т.к. модуль не может в ssl (или может, уже позже мы нашли документацию SIM800 Series_SSL_Application Note_V1.00), и большинство адресов вообще не открывалось
- Мегафон ни в какую не хотел открывать адрес api, даже через прокси, сменили оператора - все заработало
Принтер JP-QR701-TTL - самая распространенная модель, цифры/буквы в названии могут быть другие, главное что бы был TTL а не RS232, иначе придется подключать схему MAX3232 для конвертирования RS232 -> TTL. когда мы распечатали тестовую страницу (нужно зажать на нем кнопку и подать питание) то в начале мы получили половину страницы, где нет кириллицы.
Дело как и в случае с GSM-модулем было в питании, подавали мы меньше 5в, ему же требуется 5-9в, увеличили напряжение - все заработало, но кириллицы не появилось.
Потратив несколько часов на поиски "как печатать на русском" мы наткнулись на статью 2013 года (не могу вставить ссылку из-за рекламы на сайте), где человечище с ником zhevak выложил ссылки на файл для прошивки принтера другими кодировками. Ссылки оказались не рабочими, но мы поняли куда рыть, и нашли свежую версию программы которой я делюсь с вами. Просто выбираем нужную - CP866, нажимаем ОК, и ждем ОК от программы, печатаем тестовую страницу - и все, вы восхитительны.
Для общения с принтером использовали библиотеку Adafruit
Шаг второй: отправить полученные данные на печать
Итак, самая интересная часть, имеем:
- Полностью рабочий принтер, печатает то что мы хотим
- Полностью рабочий gprs модуль
Нам нужно их спарить между собой.
Создаем 2 Software Serial для прокидывания команд примерно по такой схеме:
Принтер <= Arduino <=> sim800l
Действуем по этим шагам:
- Получаем данные уже с переносами строк
- Конвертируем данные из UTF-8 в CP866
- Отдаем данные на принтер
И тут мы сталкиваемся с несколькими проблемами:
- Памяти у Arduino не хватит что бы сохранить список заказов который мы получаем с сервера, как вариант - получать и отправлять данные частями, но это приводит нас к следующему:
- Модуль sim800 передает данные не пакетами, мы имеем поток который нужно успеть прочитать, перекодировать и отправить на печать прежде чем он пришлет нам новые данные, и последняя проблема:
- Мы понимаем что количество ненумерованных списков в этой статье почти переваливает за десяток
Решение (второй проблемы) оказалось гениальным и простым - уменьшаем скорость потока данных при инициализации до 300 (хотя в документации сказано что ниже 900 нельзя) и все работает. Пожалуйста не спрашивайте меня как и почему, главное что оно работает.
Несколько вещей которые обязательно нужно сделать для библиотеки GSM-модуля:
- В файле sim800.h который лежит в библиотеке для GSM-модуля смотрим на значения пинов (например SIM800_TX_PIN), тут 2 варианта - меняем их на те что нам нужны, либо просто подключаемся к тем что указаны
- Рядом, в файле gprs.h меняем baudRate = 9600 на baudRate = 300 не могу вспомнить сколько дней у нас ушло на то, что бы понять что данные передаются потоком, и что принтер просто не успевает их напечатать на более высокой скорости
Перед печатью данных с сервера мы вновь забыли проверить напряжение, результат нас одновременно обрадовал и удивил, т.к. мы получили печать страницы на башкирском языке (по крайней мере очень похоже)
Вот так выглядит печать в нормальном виде
Шаг третий: монтаж и сборка
С получением данных и печатью все, далее печать платы для повышающих модулей и подключение блока питания. БП кстати должен выдавать минимум 1.5 - 1.7а, из-за высокого потребления принтера в момент печати.
(шутка про фронтенд и бэкенд)
Изначально корпус решили напечатать на 3d принтере, но около месяца это все оставалось на уровне "надо-бы сделать", тогда я решил сделать корпус из пвх пластика, за идею спасибо @OgnennoeTV, а за пластик - Юре.
Предварительно был сделан корпус из картона - что в дальнейшем очень помогло, указало на косяки при высчитывании размеров.
Далее были вырезаны детали из пластика и после подгонки - покрашены, хотели предварительно выровнять неровности но мы понимали что тогда это затянется еще на несколько дней (а мы уже очень хотели закончить)
Крепления были куплены в строительном магазине и с боков посажены на клей (потом все-таки поменяли на болты)
В момент сборки, на фото ниже - я представлял себя Робертом Фордом из мира дикого запада, который кряхтит над своим творением.
Предварительно согласовали с девушками из столовой формат печати, получили ОК и окончательно собрали принтер.
С момента выпуска принтера в "продакшн" прошло около месяца, в начале девушки в столовой были крайне удивлены черной коробке которая печатает им заказы, но потом привыкли, и даже выделили ей место.
Весь процесс занял примерно 4 месяца, но мы выделяли время только в выходные, и изредка - после работы.
По стоимости проект вышел примерно в 2.5к, с учетом наличия расходников, паяльника и прочего, и без учета человеко-часов.
Спасибо всем кто как-либо помог в разработке принтера, словом и делом, и вам что дочитали, надеюсь вдохновить кого-нибудь собрать что-то свое.
Ссылка на скетч который использовали для Arduino: https://github.com/andrew72ru/remote_print
Здравствуйте, уважаемые пикабушники! Четко по делу. Рассказываю лайфхак. Выбрал именно эту модель принтера, так как она самая популярная сейчас для печати фоток дома и у ИПшников в небольших салонах.
Гугл говорит, что картинка с сайта IXBT.
Честные ремонтники меня поймут, а нечистые на руку идут лесом.
К сути - Ваш принтер начал выдавать какую то дичь, типа замены цветов местами или при тесте дюз (лесенка) пропечатываются не все дюзы. Не торопитесь тащить его в сервис. Первым делом качаем программу PrinHelp (бесплатная версия) и делаем тест дюз. Если на лесенке какие то дюзы не пропечатываются, не нужно делать сразу прочистку. Для начала смотрим, что у нас так называемым памперсом (Кнопка "Прочитать счетчики отработки")(абсорбер для впитывания отработанных чернил), не переполнен ли он. Далее если проценты заполнения памперса не зашкаливают, уже можно запускать прочистку.
Не помогло?
Подходим к тому ради чего пост.
Открываем крышку принтера. Включаем его или выключаем (в зависимости включен ли) и во время движения каретки вырубаем шнур питания, чтобы каретка осталась в свободном положении. Вот так:
Далее откручиваем один винт который держит верхнюю крышку закрывающую демпферы (это то, что вместо картриджей в моделях серии L). Убираем крышку в сторону и нам откроются сами демпферы. Чтобы их выщелкнуть, нужно подцепить их чем-нибудь загнутым сверху сзади (относительно положения принтера):
Далее, вытаскиваем демпфер и смотри полностью ли он заполнен чернилами.
В нашем случае, демпфер почти полный, но есть пузырек воздуха, который нужно откачать. Делаем так, берем обычны шприц без иглы и вставляем в нижнее отверстие демпфера (другого нет)) и откачиваем воздух, пока демпфер полностью не заполнится чернилами.
NB! Проверьте перед этим, чтобы краник на бункерах с чернилами был открыт (положение вверх). На модели L805 его нет.
Проходим процедуру откачки по всем шести демпферам и ставим на место. Смотрите чтобы серые чернильные шлейфы легли ровно.
Собираем все, что открутили. Ставим руками каретку в крайнее правое положение (на парковку), закрываем крышку. Включаем принтер и в принтхелпе делаем прочистку, я делаю технологическую прокачку вообще, но мне чернил не жалко, ибо во время нее принтер сливает до 10 мл чернил в общем со всех цветов. Далее даем принтеру постоять минут 5. И пробуем печатать тест дюз. В большинстве случаев это помогает избежать трат на сервис и промывку печатающей головки за 1500-2000 рублей, а то и больше.
P.S. Не делайте подряд больше 2 прочисток - получите быстрое переполнение абсорбера, отработанными чернилами либо перегрев печатающей головки.
Очень надеюсь, что статья хоть кому-то пригодится. Всем добра!
Просто продолжаем пилить музыку на том, что для музыки не предназначено.