Noiseplug: джек RCA, играющий chiptune-трек Печать
Добавил(а) microsin   

Это миниатюрное устройство может играть олдскульную музыку из эпохи 8-битных компьютеров (так называемую chiptune). Далее перевод статьи [1].

Помните первые 8-разрядные компьютеры и игровые консоли? Commodore, Amiga, Dendy, ZX-Spectrum? Помните, какую замечательную музыку они могли играть? Есть повод вспомнить еще раз: в этом бесполезном маленьком устройстве сошлась комбинация современных технологий и шарма развития компьютерной техники 90-х годов.

noiseplug external view

Оригинальное видео автора:

Это Noiseplug [1, 2]. Выглядит устройство как банановый джек (RCA, или его еще называют "тюльпан"), заглушенный с той стороны, откуда обычно торчит провод. В корпусе "джека" скрывается миниатюрный микроконтроллер ATtiny10 и 2 литиевые батарейки. Noiseplug может проиграть Chiptune-трек [4], если его подключить ко входу усилителя.

Здесь можно хорошо увидеть, насколько технологии ушли вперед. Чтобы проиграть подобный звук 25 лет назад, необходимо было бы построить устройство размером в полноразмерный компьютер. Теперь нужен только маленький чип в корпусе 1,5 x 3 мм. На борту чипа есть 1 килобайт памяти FLASH и 32 байта RAM – автору проекта этого оказалось достаточно, чтобы генерировать звук с помощью ШИМ на порте PWM микроконтроллера, и уместить в памяти всю мелодию. Изначально код программы был создан и протестирован на языке C, но потом этот код автор портировал на ассемблер, так что в программе не осталось ни одной строки кода на C.

[Принципиальная схема Noiseplug]

Устройство настолько простое, что у него фактически нет никакой принципиальной схемы - только микроконтроллер и батарейка, которая его питает. С выхода порта PB0 микроконтроллера снимается звук. Схема сразу начнет проигрывать мелодию после подключения источника питания, и будет использовать для этого вывод 1 (PB0) корпуса микросхемы чипа. Эта ножка порта может быть напрямую подключена ко входу усилителя, или ко входу звуковой карты компьютера, потому что такого рода устройства всегда имеют на входе разделительные конденсаторы, чтобы избавиться от постоянной составляющей, которая присутствует в сигнале ШИМ. Вывод 2 корпуса микросхемы будет землей (GND, её нужно подключить к общему проводу входа усилителя или общему проводу звуковой карты компьютера), а вывод 5 служит для подключения питания (VCC) – вот и вся схема.

noiseplug SCH

Очень простая печатная плата размерами 5 x 8 мм была сделана методом выцарапывания медной фольги (кронциркуль с острыми губками или заточенный обломок ножовочного полотна идеально подходят для этой задачи). Плата может быть изготовлена буквально за 5 минут без всякой печати, рисования и травления, и результат вы можете увидеть на фотографиях.

noiseplug PCB noiseplug soldered ATtiny10 noiseplug in RCA noiseplug parts

Вся собранная конструкция помещается внутри внутри металлического корпуса джека RCA. Две "пуговичные" батарейки, соединенные последовательно (что дает 3V напряжения питания) размещены с обратного конца джека (где обычно выходит провод шнура). После сборки корпуса джека положительный электрод батареи получает контакт с цепью VCC, и микроконтроллер получает питание. Напряжение питания может быть в диапазоне 1.8V .. 5V, однако лучше всего использовать 2.5 .. 3V.;

[Как запрограммировать микроконтроллер]

Микроконтроллеры AVR серий ATtiny4, ATtiny5, ATtiny9, ATtiny10 используют интерфейс программирования TPI (аббревиатура TPI расшифровывается как Tiny Protocol Interface). Это не составит проблемы, потому что популярный программатор usbasp версии 2011-05-28 официально поддерживает этот протокол. Можно также использовать программатор USBTiny-MkII SLIM [5] (клон официального программатора AVRISP-mkII компании Atmel), он также имеет интерфейс программирования TPI.

noiseplug programming

Просто загрузите hex-файл [6], и прошейте его в память кристалла ATtiny10. Код был написан для ATtiny9, который отличается от ATtiny10 только отсутствием ADC, так что можно использовать оба чипа. Если Вам нужно компилировать исходный код, то используйте Atmel Studio 6, и в его проекте задействуйте подключаемый makefile.

[Ссылки]

1. Noiseplug – rca plug that plays chiptunes site:mdiy.pl.
2. Исходный код на Gitub: dop3j0e/noiseplug site:github.com.
3. Chiptune site:wikipedia.org.
4. Chiptune site:chiptune.com.
5. AVR-USB162MU: макетирование и изготовление программатора AVRISP-MKII в домашних условиях.
6. 150516noiseplug.zip – прошивка (HEX), исходный код на ассемблере, текст лицензии, видео.
7. Простой SD/microSD звуковой плеер на 8-выводном микроконтроллере ATtiny85.