DIY-проект: аудиокассета на базе Arduino для хранения и загрузки программ и игр в ZX Spectrum


    20-30 лет назад кассеты были самым популярным средством хранения аудиозаписей. Их применяли и для хранения данных, в частности, программ для 8-битных компьютеров. Именно кассеты использовались для загрузки и сохранения программ для ZX Spectrum. Тем не менее, кассет становится все меньше, несмотря на то, что поклонников ZX Spectrum и других подобных ПК довольно много. Конечно, можно использовать эмулятор ZX Spectrum под Windows или Linux. Но это все же менее лампово, чем реальный компьютер. Есть еще один выход — найти замену кассете.

    Пользователь с ником JamHamster решил пойти по этому пути. Его решение — устройство, которое внешне походит на привычную аудиокассету, работает с кассетным магнитофоном, но вместо магнитной ленты в нем используется SD-карта. По замыслу энтузиаста, такая «кассета» должна вставляться в магнитофон для передачи сигналов в ZX Spectrum или подключаться через аудиовыход. Кстати, решения для загрузки программ с кассет есть — например, TZXDuino для работы с ZX Spectrum, ZX81 и Amstrad CPC, но оно показалось разработчику слишком громоздким.


    Подготовка к сборке


    JamHamster выбрал для сборки плату Arduino Nano (размер платы всего 7 мм), на которой разместил устройство чтения карт памяти, усилитель и небольшой дисплей. В качестве софта для взаимодействия с ZX Spectrum — программное обеспечение, которое ранее разработали Эдрю Бир и Дункан Эдвардс.



    Энтузиаст пояснил, что форм-фактор кассеты был выбран для сохранения аутентичности. «Мне кажется, что загрузочные SD-устройства в виде кассет — правильное решение. Они выглядят прикольно и хранятся в стандартном подкассетнике, дизайн которого мне очень нравится», — пояснил JamHamster.

    Проблемой для размещения всех компонентов стали физические размеры корпуса кассеты. Поэтому JamHamster провел ряд модификаций. Например, дисплей и устройство для чтения SD-карт были физически уменьшены. Некоторые модули, в частности, USB-порт, пришлось «повесить» на провода, чтобы уместить конструкцию в корпус. А аудиовыход разработчик сделал самостоятельно.



    Дополнительно JamHamster дал несколько советов тем, кто захочет повторить его эксперимент:
    • Не припаивайте компоненты внутри корпуса, так как он хрупкий и быстро повреждается.
    • Проверяйте работоспособность компонентов перед установкой.
    • Паять провода нужно поверх контактных площадок, а не насквозь.
    • Не пересекайте провода, чтобы не увеличивать толщину конструкции.


    Собираем кассету на Arduino своими руками




    JamHamster подготовил инструкцию для тех, кто захочет повторить его эксперимент. В ней можно найти форму, по которой нужно обрезать печатную плату, чтобы влезли все компоненты. На нее сначала устанавливается регулятор громкости так, чтобы колесико свободно вращалось и торчало из корпуса кассеты.



    Для создания аудиовыхода (его придется делать вручную) понадобится стальная пружина диаметром 3,5 мм. Если ее нет, то этот элемент можно без проблем создать, используя сверло соответствующего диаметра. Далее при помощи джека наушников выверяется длина, и все это припаивается к плате. Аудиовыход используется в том случае, если нет кассетного магнитофона. Через него гаджет подключается напрямую к компьютеру и передает сигнал.

    Что касается работы «кассеты» с магнитофоном, то для реализации этой возможности в устройство встроена магнитная пишущая головка, сигнал которой считывается уже другой головкой, но в кассетнике. К сожалению, выходной мощности микроконтроллера недостаточно, поэтому разработчик добавил миниатюрный усилитель PAM8403 (2 x 3Вт). Он достаточно портативный, так что общие габариты конструкции увеличились ненамного.
    Подвод питания во время работы не требуется, поскольку в «кассете» есть собственный аккумулятор.













    Также в корпус устанавливаются пять кнопочных переключателей для управления устройством чтения SD-карт.



    Кстати, хранение данных реализовано не в виде .exe или .txt файлов. Вместо этого используются аудиодорожки, которые содержат в себе код программ. Именно так хранились данные на аудиокассетах с магнитной пленкой.

    Основная сложность — поместить плату в корпус кассеты. Над решением этого вопроса автору пришлось поломать голову, но в итоге он нашел решение. Ниже показано, как нужно правильно обрезать платы дисплея, SD-ридера и перепаять USB-порт для экономии пространства на плате. Для крепления компонентов к плате можно использовать горячий клей.



    Экран помещается между колесиками кассеты — так его будет лучше видно. Кстати, в коде ПО придется внести изменение, чтобы перевернуть изображение на мониторе. Это несложно. Достаточно заменить кусок кода:

    #define ROTATE180 1
    //#define UNROTATE 1


    на:
    //#define ROTATE180 1
    #define UNROTATE 1


    Теперь остается установить элемент питания, развести проводку, как указано в оригинальной инструкции, и проверить работу всех компонентов. После чего можно тестировать на ZX Spectrum.



    На реализацию проекта разработчик потратил немало времени, но результат стоил того. JamHamster и повторившие его работу энтузиасты остались очень довольны тем, что вышло в итоге.
    Selectel
    IT-инфраструктура для бизнеса

    Комментарии 29

      +1
      Вот ещё б её в магнитофон вставлять можно было.
        0

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

          0
          Ага, точно, пропустил.
            0

            Только на итоговой поделке нету (на последней фотографии видно пустоту в этом месте), и предлагается вставлять 3.5мм джек в самодельный штекер, навитый из проволоки (слева по центру кассеты, на последней фотографии).

          +1
            0
            О! Спасибо тебе, добрый человек!
            А существуют такие, чтоб записывать можно было?
            +1
            В чем профит? Тут же не будет необходимости в теплой ламповой настройке головки магнитофона… Тогда уже сразу на дискеты…
              +2
              Вместо этого используются аудиодорожки, которые содержат в себе код программ.

              Странно. Я бы хранил данные в цифре и конвертировал на лету. Так надежнее. Меньше ошибок.
                0
                  +2
                  В 2013. :) Это в 2017 я разместил тут. А в 2013 на радиокоте.
                  0
                  были разные методы кодирования, один — в прошивке пзу — общий для всех и куча своих «турбо» загрузчиков, под которые и бывало приходилось подстраиваться. т.к. различимость кодирования было на пределе аппаратно-программного обеспечения спектрума.
                    0

                    Судя по расширению tzx на экране, именно так оно и хранится

                    0
                    Надо было внутри кассеты добавить закольцованную магнитную ленту, стирающую и записывающую головки. Магнитофон крутит ленту, ардуина стирает её и на ходу записывает данные с флэшки на ленту, магнитофон своей головкой считывает… Ну и по кругу.
                      0
                      В адаптерах стоит еще одна магнитная головка, которая состыковывается с головкой магнитофона и никакой ненадежной механики.
                        0
                        А как-же ламповость?
                          +1
                          Ну её. Когда надо получить результат — не до излишеств.

                          И не хотелось, а получается стимпанк — почти год назад цифровал кассеты Спектрума «на том, что нашел». Первым делом спалил Line-In :)

                          В конечном виде работало так:
                          image
                            +1
                            Сурово. У меня где-то до сих пор «Весна-309-1» живая для таких дел где-то лежит.
                              0
                              Удивительно, что советские резинки живые.
                                0
                                Вот странно. На магнитофоне живые (точнее там одна на привод, плоская и широкая, а на счётчик — круглая), а вот на проигрывателе — задубела, но везде целые.
                                  0
                                  Вроде резинки наоборот растекались от времени.
                              0
                              А что там за трансформаторы в левом-верхнем?
                                0
                                Звуковые трансформаторы. Сопротивление обмоток около 20+ Ом, что хорошо совпало с сопротивлением наушников, на которые рассчитана схема плеера.

                                Получился неожиданный бонус — большой запас по усилению, который оказался полезен для кассет с низким уровнем записи.
                        +1
                        Для полной аутентичности нужно чтобы работало в магнитофоне, генерировало звук на катушку возле головки магнитофона. Еще поставить датчики вращения обоих роликов. Чтобы воспроизведение запускалось когда магнитофон крутит ролик подмотки. А навигация по виртуальной ленте осуществлялась при перемотке магнитофоном.
                          0

                          Правильно, чтоб можно было карандашом перемотать, а то никакой романтики. :)

                          0
                          Воистину ардуино-вэй.
                          Сделать нормальную плату и запаять комплектуху никак нельзя…
                            +1
                            Следующий шаг: вместо питания по USB сделать генерацию энергии от вращения роликов
                              0
                              Если кому интересно, tzx и tap образы для подобным девайсов с играми для ZX-Spectrum можно смело брать отсюда: vk.com/tapeversion, в группе выкладываются версии игр переведенных на русский язык, cheat-меню, релизы от известных хакеров таких как Bill Gilbert, Николай Родионов и другие.
                                0

                                А как же автостоп без закольцованной ленты?

                                  0
                                  Видел на днях в ТикТоке ролик с подобным девайсом, думал собрать себе такой же…
                                  А тут полное описание! Круто!

                                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                  Самое читаемое