Небольшой проект на Arduino, который печатает приходящие вам на телефон уведомления: сообщения из разнообразных мессенджеров, новости из Твиттера и всё остальное. Такой «телеграфный аппарат» задумывался как интересная игрушка без серьёзного применения, но, как оказалось, получать сообщения в виде бумажных телеграмм крайне приятно. Под катом — описание работы аппарата и подробный туториал.
Коротко о том, как это все работает
Собственно говоря, весь процесс печати сводится к трем простым операциям: Движение по оси X (протягивание ленты), движение по оси Y (движение ручки), и процесс оставления следа на бумаге.
Движение по оси Y производится с помощью лямбда-механизма П. Л. Чебышёва, преобразующего вращательное движение в приближённо прямолинейное.
Протягивание ленты осуществляется с помощью силиконового вкладыша от наушников, вращаемого шаговым двигателем. В идеале ленту нужно протягивать через два прижимающихся друг к другу ролика, но такое решениие существенно усложнило бы конструкцию, поэтому выбор пал на наиболее простой из рабочих вариантов.
В похожих проектах(самодельных плоттерах, принтерах и т. д...) процесс рисования осуществляется посредством поступательного(или близкого к поступательному) движения ручки вверх-вниз. Такая система слишком громоздкая для размещения на лямбда-механизме, поэтому я пошел несколько другим путём. В корпусе установлен соленоид, к которому прикреплена небольшая площадка, приподнимающая бумажную ленту. Такое решение малоприменимо в других проектах, но сюда оно вписалось как нельзя лучше. Все элементы расположены в фанерном корпусе размером 64?64 мм.
Сам аппарат печатает буквально всё, что ему приходит на последовательный порт. В скетч зашит шрифт на 128 символов:
Для этого была написана программка на Java, которая преобразует картинку в описание массива байтов на языке С, при желании, шрифт можно переделать под себя.
Также я разработал небольшое android-приложение, задача которого — ловить все отображаемые на телефоне push-уведомления, а затем отправлять их в фоновом режиме на arduino через bluetooth.
Что нам понадобится
- Arduino Mini. Это миниатюрная модификация Arduino Uno с весьма компактными габаритами. Не обязательно использовать именно её. Если у Вас нет желания запихивать всю управляющую электронику в корпус устройства, тогда подойдёт любая другая плата, например, Arduino Uno или Leonardo. Ещё можно посмотреть в сторону Iskra Mini — полного аналога Arduino Mini.
- Сервопривод SG-90. Самые маленькие и дешёвые сервоприводы из ныне существующих.
- Шаговый двигатель 28BYJ-48. Очень дешёвый шаговый двигатель, имеющий высокую точность позиционирования — 4096 шагов на оборот. Обычно, продается уже вместе с драйвером ULN2003.
- Соленоид 5В. Данные девайсы не так часто применяются в самоделках, как, например, сервоприводы. Их суть заключается в следующем: это небольшие электромагниты, которые при подаче на них тока проталкивают находящийся в них шток. Они могут осуществлять весьма быстрые поступательные движения, которыми можно управлять.
- Bluetooth-модуль HC-06. Нужен для общения с внешним миром. Также можно подумать о подключении к wifi через esp8266 вместо использования bluetooth-модуля
- Резиновые амбушюры(вставки) для наушников. Нужно для изготовления механизма, протягивающего бумагу. Чем больше размер амбушюра, тем лучше.
- Оси 3мм. Выбор материала широк: можно использовать деревянные шпажки диаметром 3мм или винты с отпиленными шляпками.
- Клей. Для большей аккуратности лучше использовать 3 вида клея: ПВА для склеивания деревянных деталей, термический клей и супер-клей для крепления остальных элементов.
- Наждачная бумага. Даже при очень точном изготовлении деталей им потребуется подгонка, поэтому без шлифовки — никуда.
- Фанера 4 мм. Можно найти в строительном или хобби-магазине. Возможно, подойдут и другие варианты, например, оргстекло.
- Чертежи. Их можно взять здесь.
А в формате DXF — здесь - Много мелочи...
- Капиллярная ручка или фломастер. Шариковые и гелевые ручки, а также карандаши подходят значительно хуже, так как след, оставляемый ими на бумаге, значительно менее отчетлив.
- Маленькие шурупы. Диаметром не более 2 мм. Часто такие применяются в разного рода китайских игрушках.
- Термоусадочная трубка. Нужна, чтобы удлинить вал шагового двигателя. Внутренний диаметр до нагрева — в районе 6 мм.
- Выключатель. Любой, который вам понравится. Можно посмотреть в сторону небольших кнопок с фиксацией.
- Разъём питания. 2.1 mm Barrel Jack.
- Диод. Номинал и характеристики большой роли играть не будут, можно выпаять из какого-нибудь старого радиоприемника.
- Транзисторный ключ или реле. Про них подробнее будет написано ниже.
Изготовление деталей
Этот этап зависит от Вашего желания и от ваших возможностей. Можете вырезать на станке или выпиливать все детали вручную. Кстати, вовсе не обязательно повторять проект точь-в-точь. Например, можно не пытаться запихнуть всю управляющую электронику в корпус аппарата. Или, поняв принцип работы, сделать что-то похожее буквально «на коленке», и всё равно всё будет работать.
Алгоритм здесь такой. Распечатываете чертежи, наклеиваете их на фанеру. Затем сверлите все необходимые отверстия в местах внутренних контуров. Контуры пазов следует выпиливать, отступая немного места (~0.2-0.5 мм) внутрь, чтобы потом шипы (после небольшой обработка надфилем) вошли в них внатяг. После этого выпиливаем внутренние контуры, отрываем/сошкуриваем бумагу, которую наклеили, и шлифуем. Ничего сложного в этом нет, главное — работать аккуратно и не торопиться.
Собираем корпус
Пока нет ничего сложного: просто берете детали и склеиваете их. Следите за тем, чтобы на деталях не оставалось лишнего клея.
Устанавливаем держатель катушки
При склеивании этого элемента рекомендую использовать сверло, чтобы соблюсти соосность. Сначала к корпусу приклеиваются боковые стенки, а затем на них устанавливается крышка. Следите за перпендикулярностью — от положения отверстия на крышке этого держателя зависит работа лямбда-механизма.
Собираем лямбда-механизм
Вот мы и добрались до первого ответственного этапа — сборки лямбда-механизма. Для начала нужно изготовить плечо для сервопривода. В комплекте с каждым серво идет несколько пластиковых качелек. Надо взять одну из них и обрезать-обточить так, как показано на рисунке ниже. А затем вклеить её в заготовку для плеча.
Далее изготавливаем плечо с «ручкодержателем». Отверстие под пишущий инструмент лучше выверить заранее. Скорее всего, оно будет в районе 8-9 мм. Приклеиваем сверху и снизу два кольца. Чтобы они не съехали, в отверстие можно вставить ручку или сверло подходящего диаметра. После высыхания клея шлифуем внутреннюю и наружную поверхности кольца, пока ее поверхность не станет достаточно ровной. Сбоку сверлим отверстие под поджимной винт.
Теперь можно переходить к сборке лямбда-механизма. Для начала нужно приклеить на термоклей сервопривод так, чтобы расстояние от его оси до отверстия на держателе катушки было ровно 20 мм. Далее поворачиваем сервопривод против часовой стрелки до упора, после чего собираем всю конструкцию согласно фото:
Проверить работоспособность этого механизма можно, если подключить сервопривод к Arduino и загрузить скетч из образцов: Servo > Sweep(По умолчанию серво подключается к 9 пину). Код скетча я, на всякий случай, привожу ниже.
#include <Servo.h>
#define MIN_ANGLE 150
#define MAX_ANGLE 180
Servo servo;
void setup() {
servo.attach(9);
}
void loop() {
for(int i=MIN_ANGLE; i<=MAX_ANGLE; ++i) {
servo.write(i);
delay(15);
}
for(int i=MAX_ANGLE; i>=MIN_ANGLE; --i) {
servo.write(i);
delay(15);
}
}
На этом этапе можно подобрать рабочий диапазон углов для сервопривода, выставляя значения MIN_ANGLE и MAX_ANGLE (диапазон этот примерно 150°...180°), это понадобится в дальнейшем. Если механизм работает не гладко, попробуйте ослабить винты или проложить шайбочки.
Устанавливаем салазки для бумаги
Сейчас нам предстоит почти ювелирная работа: сделать салазки, вдоль которых будет двигаться бумажная лента, а также площадку, которая будет крепиться на соленоид. Длинные реечки нужно приклеить к основанию так, чтобы их торцы упирались в стойку для катушки, а расстояния между ними должно быть 13 мм.
Далее на эти реечки приклеивается верхняя короткая палочка. Сборку этого узла проще производить на супер-клей. Старайтесь не оставлять лишнего клея, это может очень сильно помешать протягиванию бумаги.
Площадочку необходимо сошкурить до минимально возможной толщины (?1.5мм), а один край сделать клинообразным, чтобы по нему легче заезжала бумага. Можно сразу взять и сделать эту площадку из относительно тонкой деревянной линейки или ненужной пластиковой карты. Далее к ней по центру приклеивается круглая стойка. Далее внутрь корпуса вклеивается соленоид таким образом, чтобы чтобы его стержень расположился по центру отверстия. После этого на супер-клей аккуратно приклейте площадочку к штоку соленоида. Должно получиться примерно так:
В начале проверки попробуйте просто подать напряжение 5В на соленоид. Если площадочка поднялась — значит все хорошо. Если этого не произошло, то попробуйте поменять полярность. Если и это не помогло, то попробуйте собственноручно потыкать шток соленоида. В случае, если он двигается или двигается при большом усилии — значит, туда попал лишний клей.
Подключение соленоида к управляющей плате осуществляется не напрямую: для этого нужно использовать электромагнитное реле или транзисторный ключ. Можно посмотреть в сторону готовых решений, например, сюда. Также будет полезно почитать эту статью. Я использовал советские реле РЭС49. Ниже приведена схема подключения соленоида через транзистор TIP120.
Использование диода в схеме обязательно. Он здесь выполняет запирающую функцию, без него плата Arduino будет постоянно перезагружаться. Характеристики диода большой роли не играют, его можно найти и выпаять из любой старой платы.
Протягивающий механизм
Для того чтобы протяжный механизм работал, нужно обеспечить минимальное трение бумажной ленты о поверхность корпуса. Снизить трение можно, если обильно натереть дорожку парафином или, на худой конец, наклеить на неё полоску прозрачного скотча.
Переходим к процедуре изготовления. Отрезаем вал нужной длины (28 мм), после чего намечаем то место, где будет располагаться амбушюр от наушников, наматываем на вал несколько витков изоленты — так, чтобы на нее плотно входил наш «ролик».
Далее, предварительно откусив от шагового двигателя «уши» для крепления на резьбу, просовываем его в нишу. Затем с помощью термоусадочной трубки крепим ось к валу мотора. Если всё получилось, закрепляем мотор при помощи термоклея. Старайтесь сделать так, чтобы вал располагался перпендикулярно дорожке и параллельно горизонтальной плоскости. Амбушюр и вал мотора лучше сразу аккуратно приклеить к оси супер-клеем.
Для проверки подключаем шаговый двигатель через драйвер к управляющей плате и загружаем в нее скетч из образцов: Stepper > stepper_oneStepAtATime. Только нужно поменять значение переменной stepsPerRevolution с 200 на 4096 и убрать delay(500).
Код с исправлениями я, на всякий случай, привожу ниже.
#include <Stepper.h>
const int stepsPerRevolution = 4096;
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);
void setup() {
}
void loop() {
myStepper.step(1);
delay(5);
}
После загрузки скетча шаговый двигатель должен начать плавное и медленное вращение. Можете попробовать подсунуть под ролик кусочек бумажной ленты. Она так же должна начать плавное и медленное движение. Если этого не произошло, то дело, возможно, в высокой шероховатости поверхности, что исправляется наждачной бумагой с мелким зерном.
Ось для катушки
Это, пожалуй самый простой этап среди прочих. Берем ось длиной ~25мм, одну оставшуюся неиспользованной деталь и склеиваем их вместе. Возможно, придется проложить шайбочку между стойкой для катушки и той деталью, для которой я не придумал название.
Теперь пару слов о бумажной ленте. Её оптимальная ширина — 11мм. Можно придумать несколько технологий её изготовления. Например, взять рулон чековой ленты(рулон кальки, миллиметровой бумаги и т. д...) и просто нарезать его. Мне больше понравился вариант нарезания листа A4 на полоски, которые потом аккуратно склеиваются в ленту нужной длины.
Собираем все воедино
Если все механизмы уже работают, то теперь пора приступать к самому сложному этапу — заставить их работать вместе. Для начала нужно собрать/спаять схему, приведенную ниже.
Я разместил всю электронику в корпусе устройства следующим образом (когда-нибудь я научусь нормально паять, но уже не в этот раз):
Также устанавливаем выключатель и разъём питания. В качестве выключателя я использовал советский МТ-1. Я рекомендую взять что-нибудь поменьше, потому что использовать столь большой тумблер в таком маленьком корпусе — непозволительная роскошь, это место лучше занять чем-то более полезным.
Переходим к отладке программы. Для этого берем скетч ЗДЕСЬ и загружаем в плату.
Я постарался максимально подробно его закомментировать, поэтому, надеюсь, он будет максимально понятным. При запуске программы аппарат печатает слово «HELLO», а затем печатает буквально всё, что приходит на Bluetooth-модуль. Ваша задача на этапе отладки — подобрать значения DOT_UP_DELAY, DOT_DOWN_DELAY, SERVO_MAX, SERVO_STEPS, SERVO_DELAY и LINE_TAB в скетче такими, чтобы надпись «HELLO» при старте программы выходила максимально красивой.
После того как желаемое качество печати достигнуто, можно попробовать отправить какое-нибудь сообщение через bluetooth. Для этого можно скачать себе на телефон любое приложение, в названии которого фигурирует словосочетание «Bluetooth terminal», подключиться к аппарату(скорее всего, он будет отображаться под именем hc-06) и начать отправлять на него сообщения. Следует учитывать, что размер буфера последовательного порта на Arduino — 64 байта. Это значит, что при отправке слишком длинного сообщения, будет напечатано не совсем то, что вы хотите.
Также я написал небольшое android-приложение, которое ловит push-уведомления, отображаемые у Вас в телефоне, и отправляет их на печать. Его также можно использовать как простой bluetooth-терминал. Поддерживаются версии android от 4.3.0. Нужно не забыть разрешить приложению доступ к уведомлениям системы, иначе ничего не будет работать.
Это бета-версия приложения, при необходимости буду его дорабатывать и расширять функционал.
Декоративная часть
Этот этап совсем не обязательный, а в некоторых случаях он, скорее, навредит. Здесь всё на ваш вкус. В моём случае, например, я состарил все деревянные детали патиной и покрыл тонким слоем лака, а также сделал небольшие таблички «Mini Telegraph», «ON/OFF» и табличку с подписью.
Подводя итоги
На этом всё. Надеюсь, вам понравился этот небольшой проект. Возможно, Вам показались интересными какие-то идеи или решения. С большой долей вероятности буду дорабатывать
этот проект. Буду рад любым вопросам, советам и пожеланиям в комментариях. Если у Вас получиться сделать что-нибудь похожее, мне будет очень интересно на это посмотреть, если у вас будут возникать какие-либо вопросы, можете писать сюда.
Список статей, которые могут пригодиться
(Некоторые статьи на английском, но зато с красивыми цветными картинками)
- Про сервоприводы
- Про шаговый двигатель 28BYJ-48
- Про подключение соленоидов
- О том, как прошить Arduino mini
- Про Bluetooth-модуль
Комментарии (53)
alexhott
01.10.2017 20:56+4Очень приятная вещь. Вот только на телефон валится столько хлама что все печатать бумаги не нарежешься. нужно какой то фильтр уведомлений придумать. И стандартный драйвер для этого шагового движка содержит семь пар дарлингтона три из которых не используются и можно через них запитать соленоид.
Lungo
02.10.2017 13:08Вот только на телефон валится столько хлама что все печатать бумаги не нарежешься. нужно какой то фильтр уведомлений придумать.
Как вариант, можно еще скрестить с IFTTT, там можно много интересного придумать
vbifkol
02.10.2017 06:24+3Прям божественно. Если еще весь аппарат поставить на колеса и заставить ездить по листу бумаги — будет планшетный плоттер.
Dioxin
02.10.2017 07:45Ух ты, в понедельник и такое порно.
Спасибо, подр… насладился зрелищем и творчеством.
DEM_dwg
02.10.2017 08:42Самое главное 26.5 руб не придется платить за доставку «Ростелекомом» :)
И стоимость слова лишь будет уменьшаться в процессе эксплуатации.
hanes99
02.10.2017 08:59+1Отличная статья! Спасибо! Было бы не плохо отрисовать корпус и детали для печати на 3D принтере.
MiGr
02.10.2017 10:16+2Лампово, читал с большим удовольствием. Спасибо! Давно не было таких душевных статей на gt.
Helium4
02.10.2017 12:17+1Спасибо, замечательная статья и отличный агрегат. Не поверите, но термопринтер к лабораторным весам стоит от 15т.р. :)
AllexIn
02.10.2017 12:22А на али за 1500 почему нельзя купить?
Вообще не надо сравнивать кастомную игрушку с рабочим инструментом. Здесь и ручка может высохнуть, и детальки отвалиться и скорость печати низкая.
Это классная, красивая игрушка. А термопринтер — рабочий инструмент.
dyatel98
02.10.2017 18:42Небольшое дополнение, у модуля HC-06 можно менять имя и пин при помощи AT команд AT+NAME<имя> и AT+PIN<пароль> соответственно. Это может упростить использование нескольких таких телеграфов в одной квартире. В остальном я в восторге!
Paradoxalniy
02.10.2017 18:42+1Уматовый аппарат, в качестве подарка ребенку — любителю техники, да и вообще как необычный сувенир в домашнем интерьере — самое то!
bcmob
02.10.2017 18:42В статье есть предложение об использовании ESP8266 для передачи по WiFi. Как по мне так в таком случае вообще не нужна ардуинка. ESP самодостаточна, мощнее ардуинки и программируется также через Arduino IDE.
Проект очень понравился, стал искать место на столе для размещения ). Только вот ленту нужно подобрать готовую от чего-то.sim-dev
03.10.2017 10:19Как по мне, так интереснее было бы встроить что-то типа SIM900 внутрь и распечатывать СМС-ки, особенно если штуковина кому-то в подарок. А если в знакогенератор добавить «сердечки-смайлики», то будет вообще восторг.
hzs
02.10.2017 19:38+1Устройство выглядит офигенно красиво. Ещё бы живых теплых лампочек добавить для индикации работы, было бы вообще супер!
Видео очень залипательное, оформление старыми книгами в тему. Саундтек здоровский.
Когда ролик закончился и я вышел из транса, первая мысль была «Где я?».
sim2q
03.10.2017 00:56О! напомнило когда делал АОН на 155-ой серии, закладывался печатать на такую же ленту, печатающая только голова уже с цифрами (выбор по кол-ву импульсов). Мучался наводками от контакта управления мощного электромагнита машинки. По размерам кстати чуть-чуть совсем больше.
Markscheider
03.10.2017 10:58+2Пара советов, если позволите…
1. Финишную шлифовку дерева (после шкурки-нулевки) удобно делать осколком обычного оконного стекла. Разбить аккуратно и вдоль волокон дерева двигать острой плоской кромкой.
2. Для того, чтобы сделать ленточку (ленточки) для печати можно применить немудреный станок. Берется ластик (канцелярский, лучше гладкий). В него на нужной ширине втыкаются бритвенные лезвия. Потом берется катушка бумажной ленты, допустим от банковского принтера и протягивается сквозь резак. Если бумага рвется — подбирать угол наклона лезвия.
Если надо дополнить советы эскизами — пишите, накарябаю что-нибудь :)Eppy Автор
03.10.2017 14:20Про шлифовку дерева стеклом не знал — очень интересно. Результаты обработки, как показал Гугл, весьма впечатляющие
Про нарезание ленты — когда я только начал обдумывать этот проект, у меня была идея сделать целую установку для нарезания ленты похожим образом, но как-то это по ходу дела вылетело из головы. От эскизов, конечно, не откажусь, если не сложно)Markscheider
04.10.2017 12:07+1От эскизов, конечно, не откажусь, если не сложно
Рисовальщик из меня тот еще, если честно…
ЭскизZenitchik
04.10.2017 13:43А лезвия взять от канцелярского ножа. Может быть — кусочки лезвия.
Markscheider
04.10.2017 13:47+1лезвия взять от канцелярского ножа
Пробовал всякое. Сильно зависит от бумаги, которую резать. Если лезвие недостаточно тонкое/острое — может начать рвать. А бритвы — самое острое, что доступно в домашних условиях.
В любом случае, надо пробоватьAndreyHenneberg
04.10.2017 14:23Можно просто взять чековую ленту и попробовать её резать прямо в рулоне. Правда, корпус потребует переделки или выноса катушки наружу. Если только не отматывать кусочки нужной длины. Но даже так стоит соорудить резак с упорной стенкой, чтобы лезвие не гуляло.
Markscheider
04.10.2017 14:29+1стоит соорудить резак с упорной стенкой
Бинго! Угадали!
Изначальная конструкция, подсмотренная мной, была как раз с упорной стенкой. Поскольку использовалась она для отрезания кромки от широкого рулона с одной стороны. Т.е. там было одно режущее лезвие, а на нужной ширине от него стояла просто пластина, которая задавала ширину.
philipko
03.10.2017 13:35А подскажите, какой именно соленоид тут использовался? ссылку на али было бы здорово.
vbifkol
04.10.2017 06:52+11. А почему соленоидом бумажку а не ручку дергаете? Вроде бы логичней же?
2. Скорость низкая концептуально или на бОльшей скорости сбоит?
3. Продавать не думали? Или лицензировать?Eppy Автор
04.10.2017 10:22Если бы рисование происходило на обычном листе бумаги, а не на узкой ленте, то дергать ручку — вполне логично. Но для того, чтобы поднять участок бумажной ленты нужно всего два элемента: соленоид и небольшая площадка. Механизм опускания ручки несколько сложнее, и, к тому же располагается не в корпусе, а снаружи, то есть до него нужно дотянуть провода. Такое решение локальное, вряд ли оно применимо где-то еще
На видео скорость низкая, чтобы зритель мог наблюдать за эстетикой печати. Максимальная скорость раза в 2-2.5 выше.
По поводу продажи были мысли, но это накладывает большую ответственность за качество изделия (а механика вообще любит ломаться). Может, в разовых случаях могу изготовить на заказ. А так, кто хочет — тот делает.AndreyHenneberg
04.10.2017 14:19Где-то мне подобный механизм попадался — не только у Вас система с тяжёлым инструментом и лёгким обрабатываемым материалом. Например, у некоторых 3D-принтеров столик двигается по одной, а то и по двум координатам, а голова только по вертикали ездит.
vbifkol
04.10.2017 17:47Соленоид может располагаться в корпусе и поднимать (а лучше не поднимать, а поворачивать по горизонтальной оси) не ручку, а весь лямбда-механизм. Как я понимаю, мощи у него должно хватить.
У подергушек своя эстетика. Помню, на выставке в Шеньжене в свое время минут 5 не мог отлипнуть от стенда, где дельтаробот в какое-то подобие наперстка игрался, постепенно наращивая скорость до неразличимой. Текущая скорость правда что не очень функциональна — народ нонче нетерпеливый.
К качеству требовательны прикладные изделия. Если позиционировать как сувенир или конструктор для детей, запросы будут гораздо ниже, сувенир все равно включается только по приколу изредка, а дети портят и качественное и некачественное одинаково. Правда и цена должна быть соответствующая. Но в общем я понял, если решусь — какое-нибудь роялти сам придумаю. Принтер который на ютюбе — на тех же условиях?Zenitchik
04.10.2017 17:59не ручку, а весь лямбда-механизм
Придётся делать механизм более стойким к сотрясениям.
Eppy Автор
04.10.2017 18:29Мощности пятивольтового соленоида едва ли хватает на то, чтобы поднять фрагмент ленты. Чтобы тягать лямбда-механизм (или хотя бы ручку), нужно брать соленоиды помощнее, на 12 вольт.
Для принтера, что на Ютюбе, есть статья. Его на заказ я бы делать не стал, так как делать его без лазерной резки (которой я сейчас не располагаю) — боль.vbifkol
04.10.2017 19:35Про мощность — принял. Хотя, наверное, можно поиграться с балансирами, может что и получится.
Про принтер я статью уже прочитал, вопрос был скорее не «можете ли сделать», а «разрешаете ли другим делать в том числе на продажу». У меня, благо, лазерной резки в избытке.Zenitchik
04.10.2017 19:51Я бы купил в виде набора для сборки. Потому как с одной стороны — охота собрать, с другой — лень выпиливать.
menotal
04.10.2017 18:13+1В качестве улучшения программы прямо-таки напрашиваются две простых вещи:
- Не опускать бумагу, если следом идет еще одна точка
- Сделать двупроходную печать. То есть чётные строки рисовать на обратном ходу «каретки»
О, термины из эпохи матричных принтеров пошли в ход ;)Eppy Автор
04.10.2017 18:21У меня есть модификация алгоритма, в котором реализуются эти предложения. Они действительно эффективны. Неопускание бумаги снижает время печати одной буквы на ~600 мс, а двухпроходная печать, соответственно, увеличивает скорость печати в два раза. То есть вместо двух секунд печати на одну букву тратится около 700 мс.
Но, как показала практика, намного эстетичнее выглядит такая «медленная»печать, по своему звучанию напоминающая работу печатной машинки.
roginvs
04.10.2017 12:29О, немного изменить схему и можно делать дырки для musicbox-а! Конструкция автора выглядит элегантней и надёжней чем www.youtube.com/watch?v=W41uh2bS2Yc
Супер!
vbifkol
04.10.2017 18:13+2Блин, я вспомнил!!!
И нет демона превыше этого Демона, ибо он — Второго Рода.
Трурль посадил малютку верхом на бочонок возле отверстия, установил сверху большую катушку с бумажной лентой, провел ленту под алмазное перышко, уже подрагивавшее от нетерпения, и началось тут выстукивание — стук-тут-тук, стук-тук-тук — словно в телеграфной конторе, только в миллион раз быстрее. Крохотное перышко с бриллиантиком на конце только билось и подрагивало, а лента с информацией, исписанная, начала медленно сползать на очень грязный и на редкость замусоренный пол подземелья.
sim-dev
Очень интересная идея! И реализация не подкачала.