Восстание машин: как заставить три сломанных принтера играть симфонию через G-code
У многих в углу гаража или на балконе пылятся старые принтеры: Epson, HP, Canon — те самые, что пережили тысячу распечаток школьных рефератов и курсовых. Вместо того чтобы сдавать их на металлолом, предлагаем устроить «апокалиптический концерт». Суть проекта: превратить шаговые двигатели и ремни сломанных принтеров в оркестр, играющий мелодии через G-code — язык, на котором принтеры понимают команды печати.
Что понадобится:
- 3 нерабочих принтера (подойдут даже советские «Электроника МС 6312»).
- Arduino Uno/Nano (или китайский аналог).
- Драйверы шаговых двигателей (например, A4988).
- Python-скрипты для конвертации MIDI в G-code.
- Паяльник, терпение и чувство юмора.
Шаг 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, для визуальных эффектов.
Что пошло не так?
- Двигатели перегреваются → ставим кулеры от старого ПК.
- Ремни рвутся → заменяем их распечатанными на 3D-принтере (если есть доступ в FabLab).
- Соседи стучат по батарее → переносим концерт в гараж.
Зачем это нужно?
- Для души: Хлам обретает вторую жизнь.
- Для науки: Понимание шаговых двигателей и G-code пригодится в CNC-станках или 3D-печати.
- Для хайпа: Видео с «принтерным рок-концертом» соберет просмотры в соцсетях.
Заключение
Этот проект — не просто забава, а способ понять, как «думают» машины. И кто знает: может, ваш сломанный принтер сыграет в симфонии, которая заставит задуматься даже самого консервативного соседа.
P.S. Если не хочется возиться с железом, попробуйте эмулировать звуки принтера через Python-библиотеку pygame — но это уже читерство!
Дисклеймер: Не пытайтесь повторить это с рабочими принтерами! Автор не несет ответственности за испорченную технику или испуганных котиков.
Источник: www.freepik.com





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