Полвека назад аудиокассеты были широко распространены, пока их не заменили более современные накопители. Один инженер решил вспомнить прошлое и собрал интерфейс, позволяющий передавать данные с кассеты на компьютер — правда, на современных компонентах. Рассказываем, каким образом он это сделал.
Суть проекта
Ретроинтерфейс собрал инженер Зак Нельсон, который ведет блог, посвященный электронным DIY-инструментам. В первую очередь ему пришлось решать задачу, связанную с кодированием данных. Дело в том, что аудиосигнал должен оставаться в диапазоне, доступном для воспроизведения на магнитной ленте — не ниже 400 Гц. Однако передача длинной последовательности нулей может привести к тому, что он выйдет за пороговое значение и информация будет потеряна.
Чтобы решить проблему, энтузиаст использовал манчестерское кодирование, где нули и единицы кодируются перепадами напряжения. Для реализации этого алгоритма инженер написал скрипт на Python. Также Зак разработал аппаратный интерфейс для обмена данными между компьютером и кассетным проигрывателем. Кстати, в роли последнего выступил микрокассетный диктофон Olympus Pearlcorder L400. Сам интерфейс построен на базе триггера Шмитта. Он трансформирует аналоговый сигнал в цифровой, сравнивая уровни напряжения — высокий (2,6 В) для единицы и низкий (1,5 В) для нуля. Сигнал, оказавшийся между двумя порогами, не влияет на выходное значение, что защищает систему от случайного шума.
Наконец, для декодирования сигнала (из манчестерской кодировки) инженер использовал Arduino Nano. Устройство считывает поток данных со скоростью 3000 бод [~2400 бит/с]. По словам автора, его система позволяет записать один мегабайт на 60-минутную магнитную ленту. Весь проект энтузиаст передал в open source. В репозитории на GitHub лежит исходный код, файлы системы проектирования Eagle CAD для аппаратного интерфейса, а также изображения схемы и платы.
Волна ностальгии
На ресурсе Hackaday, где изначально появилась информация о проекте, не все оценили попытку энтузиаста вернуть технологию из 80-х, посчитав это тратой времени. Однако большинство посчитало проект очень интересным — как минимум с обучающей точки зрения. В то же время проект привлёк внимание резидентов на Hacker News. Участники тематического треда стали рассказывать о запоминающих устройствах на магнитной ленте, которыми пользовались десятки лет назад.
Один участник дискуссии вспомнил свой кассетный блок для домашнего компьютера Amstrad CPC 464. Он рассказал, что работа с магнитной лентой была связана с определенными сложностями. Например, нельзя было писать программы, которые бы запускали другие программы или работали с базами данных. Поэтому все его проекты были достаточно скромными, в основном простенькие видеоигры.
Другой комментатор вспомнил, что в конце 70-х подключал кассетный накопитель к компьютеру Commodore PET 2001. Ему приходилось мириться с низкой скоростью чтения данных. Хотя в большинстве случаев это не было проблемой, так как инженер писал программы, размер которых редко превышал сотню строк.
Кто еще
Не только Зак Нельсон возвращает технологии к жизни. Несколько лет назад инженер Майкл Кон сделал свой ленточный накопитель. Основу составили магнитофон TRS-80 CCR-81 и плата микроконтроллера W65C265SXB. Она преобразует данные с ПК в аудиосигнал и записывает его на аудиокассету. Сохраненный аудиосигнал можно воспроизвести и тем самым «скопировать» данные обратно на компьютер.
В следующих материалах нашего хабраблога мы продолжим рассказывать об истории аудиотехнологий, новых исследованиях и разработках в этой области.
Рассказываем о других DIY-проектах в нашем «Мире Hi-Fi»:
Больше материалов о магнитных лентах: