Восстание машин: как заставить три сломанных принтера играть симфонию через 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 (подробнее »)
Об авторе
Интересуюсь технологиями и рассказываю о них вам.

0 комментариев

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

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

Новости

Публикации

Почему в России между столицами, Москвой и Санкт-Петербургом, такая низкая плотность населения

Вопрос о неравномерном распределении населения в России — всегда одна из актуальных тем, вызывающих дискуссии и споры. Особенно заметно (без учета влияния климата) это на примере...

От LUCA до человека: как механизм выживания первых клеток Земли управляет метаболизмом сегодня

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

Почему нельзя держать рыб в круглом аквариуме? 5 причин выбрать другую форму

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

В Музее Времени и Часов открылась «секретная» выставка: здесь показывают опытные образцы легендарного НИИ Часпром

Несмотря на то, что фактически НИИ Часпром существует и в наши дни, аббревиатура для многих даже часовых любителей - загадка. Мало кто знает или помнит, что научно исследовали...

Если магнитный щит Земли снова упадет до 5%: как повторение магнитной аномалии Лашамп повысит облучение экипажей самолетов в 75 раз

На высотах от 10 до 12 километров, где пролегают маршруты современных коммерческих авиалайнеров, плотность атмосферы значительно ниже, чем на уровне моря. Из-за этого самолеты и их пассажиры...