Восстание машин: как заставить три сломанных принтера играть симфонию через G-code

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com
| Мнение | Своими руками (DIY)

У многих в углу гаража или на балконе пылятся старые принтеры: Epson, HP, Canon — те самые, что пережили тысячу распечаток школьных рефератов и курсовых. Вместо того чтобы сдавать их на металлолом, предлагаем устроить «апокалиптический концерт». Суть проекта: превратить шаговые двигатели и ремни сломанных принтеров в оркестр, играющий мелодии через G-code — язык, на котором принтеры понимают команды печати.

Что понадобится:

  • 3 нерабочих принтера (подойдут даже советские «Электроника МС 6312»).
  • Arduino Uno/Nano (или китайский аналог).
  • Драйверы шаговых двигателей (например, A4988).
  • Python-скрипты для конвертации MIDI в G-code.
  • Паяльник, терпение и чувство юмора.
Автор: Kandinsky Источник: fusionbrain.ai

Шаг 1: Разбираем принтеры и «добываем» двигатели

Лайфхак: Если у принтера сломана печатающая головка, это не проблема — нам нужны только шаговики и ремни.

Важно: Не забудьте отключить питание! Даже старые советские принтеры могут биться током.

Шаг 2: Подключаем двигатели к Arduino

Каждый принтер отвечает за свою «партию»:

  • Принтер 1 — бас (низкочастотные вибрации ремня).
  • Принтер 2 — мелодия (двигатель печатающей головки).
  • Принтер 3 — ударные (стук каретки).

Схема подключения:

Двигатель X-оси → драйвер A4988 → пины D8-D11 на Arduino.

Код для Arduino:

#include <Stepper.h>

Stepper motor(200, 8, 10, 9, 11); // шаги, пины IN1-IN4

void setup() { motor. setSpeed(60); }

void loop() { motor. step(100); delay(500); } // тестовый ритм

Шаг 3: Превращаем музыку в G-code

  • Берем MIDI-файл (например, гимн СССР или трек «Кино»).
  • Пишем Python-скрипт для конвертации нот в команды перемещения двигателей:

# Пример: нота C4 → движение на 50 шагов

if note == 'C4':

gcode = 'G0 X50 F300\n' # F300 = скорость

  • Совет: Для «Катюши» подойдет простой бит, а для Цоя — хаотичные вибрации.

Шаг 4: Синхронизация через Python

  • Загружаем G-code в Arduino через PyFirmata:

from pyfirmata import Arduino

board = Arduino('COM3')

board.send('G0 X100 F200') # двигаем ось X на 100 шагов

  • Проблема: Принтеры могут «драться» за тайминги. Решение — добавить задержки в код.

Шаг 5: Апокалиптический перформанс

Запускаем скрипт и наблюдаем, как принтеры исполняют:

  • Бас: Гудение ремня с частотой 20 Гц.
  • Мелодия: Резкие движения головки, имитирующие ноты.
  • Ударные: Стук каретки в ритме 120 BPM.
  • Фишка: Добавьте светодиоды, управляемые через GPIO, для визуальных эффектов.
Автор: freepik Источник: www.freepik.com

Что пошло не так?

  • Двигатели перегреваются → ставим кулеры от старого ПК.
  • Ремни рвутся → заменяем их распечатанными на 3D-принтере (если есть доступ в FabLab).
  • Соседи стучат по батарее → переносим концерт в гараж.

Зачем это нужно?

  • Для души: Хлам обретает вторую жизнь.
  • Для науки: Понимание шаговых двигателей и G-code пригодится в CNC-станках или 3D-печати.
  • Для хайпа: Видео с «принтерным рок-концертом» соберет просмотры в соцсетях.

Заключение

Этот проект — не просто забава, а способ понять, как «думают» машины. И кто знает: может, ваш сломанный принтер сыграет в симфонии, которая заставит задуматься даже самого консервативного соседа.

P.S. Если не хочется возиться с железом, попробуйте эмулировать звуки принтера через Python-библиотеку pygame — но это уже читерство!

Дисклеймер: Не пытайтесь повторить это с рабочими принтерами! Автор не несет ответственности за испорченную технику или испуганных котиков.

Изображение в превью:
Автор: freepik
Источник: www.freepik.com
Автор не входит в состав редакции iXBT.com (подробнее »)
Об авторе
Интересуюсь технологиями и рассказываю о них вам.

Сейчас на главной

Новости

Публикации

Обзор беспроводной механической клавиатуры YUNZII B75 PRO MAX с LCD дисплеем и энкодером

Очередная новинка от зарекомендовавшего себя производителя YUNZII на рынке механических клавиатур привлекает внимание своим качеством и продуманным дизайном. Корпус клавиатуры B75 PRO MAX выполнен...

Сбалансированные смартфоны с ценой меньше 10 тысяч рублей: подборка моделей из розницы и онлайн-магазинов

Наступила весна, а вместе с ней пришло время и для новых подборок смартфонов. Первая из них, как и всегда, затрагивает самый начальный ценовой сегмент «до 10 тысяч рублей», где, вопреки...

Обзор кофемашины Felfri FCM-007

В стремлении облегчить утренний ритуал моей жены, которая особенно ценит чашку ароматного кофе с нежной молочной пенкой, я принял решение преподнести ей в подарок кофемашину. Основными критериями...

Как платить в Китае? Как пополнить и пользоваться Алипей, Юнионпей и Вичат

В этом материале дам подробную инструкцию, как зарегистрировать и пополнить Алипей Alipay, Юнионпей Unionpay и Вичат Wechat, а также как и что с них оплачивать. Разумеется, вы можете привести с...

Инструкция по выживанию в XXI веке: 4 главных навыка, которые спасут вашу карьеру в мире будущего

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