Найти тему
RahostStudio

Эмулятор магнитофона на Ардуино

После сборки эмулятора дисковода для своего компьютера Дельта-С, решил так же собрать и эмулятор магнитофона. Как то и не думал, что на Ардуино есть такой эмулятор, но их оказалось очень даже большое разнообразие!

Изначально наткнулся на вот эту статью на хабре и решил повторить проект по данной статье. Всё собрал на макетке и эмуль на первый взгляд заработал, но обнаружилась вот такая критическая проблема с выходным звуком. Известно, что при загрузке сначала идёт пилотный тон-сигнал в конце которого должен идти короткий блок с данными (заголовок), так вот, у меня данный блок после пилота не проигрывается. Ну и соответственно дальнейшая загрузка не происходит. Хоть автор статьи пишет, что не делал никаких изменений в коде в плане обработки звука, но вот у меня такая проблема была.

Далее вышел вот на этот проект TZXDuino версии 1.16 и попробовал его. Правда здесь нет схемы, плюсом ещё и для управления используется специальный LCD keypad shield, поэтому пришлось совместить схему с хабра и схему keypad shield'а. Получилось как то так:

Схему рисовал самостоятельно в KiCad
Схему рисовал самостоятельно в KiCad

А на столе это выглядело так:

Тестовая сборка на Ардуино Уно.
Тестовая сборка на Ардуино Уно.

Самое главное, что всё заработало! Только Ардуину нужно питать отдельно, питание через её USB порт не подходит, мал уровень сигнала и если рассматривать оригинальный проект по ссылке выше, то автор даже транзистор добавляет для усиления звука. Если питать схему по нормальному, то усиление не нужно и всё работает хорошо. Сразу встал вопрос по дублированию звука на мини пищалку. Простое присоединение к пину Ардуины не даёт положительного эффекта, через транзистор тоже у меня не получилось. Звук на пищалку идёт, но вот комп сигнал воспринимает не стабильно. Посмотрел коды других проектов, там везде есть дублирование на второй пин Ардуино, а в версии 1.16 такого нет! Поэтому пришлось ковырять код и искать возможность дублирования сигнала. Как ни странно, но у меня получилось, хоть я и не ардуинщик. Задействовал пин D8, а схему применил такую:

У себя в схеме использовал транзистор КТ315.
У себя в схеме использовал транзистор КТ315.

Далее пересобрал на постоянную плату с применением Ардуино нано. Использовал, как и в других проектах, макетную двухстороннюю плату 5х7 см, а LCD дисплей заменил на OLED (благо такая возможность уже была предусмотрена в проекте).

Собранный эмулятор.
Собранный эмулятор.

Теперь стал думать над корпусом. Решил стилизовать эмулятор под мини магнитофон. Модель создавал в Tinkercad, в других редакторах я работать не умею.. Вот такой корпус получился:

3D модель корпуса
3D модель корпуса

Немного топорно, но всё же лучше, чем совсем без корпуса. Внутрь встроил аккумулятор с повышайкой и платой заряда, чтобы эмулятор был автономным. Только оставалось подумать над тем, как сигнализировать о низком заряде батареи. Решил вывести вольтаж батареи на экран, но не особо получилось. Цифровое значение вольтажа никак не получалось вывести в режиме реального времени, поэтому сначала просто создал условие, если напряжение больше 3,5 вольта, то выводится «OK», иначе «LOW». Но потом переписал код, сделал промежуточные условия и сейчас показывается примерный вольтаж. Ещё раз повторю, я не ардуинщик, не особо понимаю как сделать правильно, так что делаю как получается ). Информацию о вольтаже засунул в старт эмулятора, убрав стартовое лого. Так же задействовал ещё один пин Ардуины, для сигнального светодиода. То есть он срабатывает когда напряжение батареи меньше 3,5 вольта.

Внешний вид получившегося эмулятора. На экране при старте отображается информация с версией эмулятора и вольтаж аккумулятора. Так же в верхнем левом углу корпуса расположил светодиод сигнализации низкого заряда, настроен на 3,5 вольта.
Внешний вид получившегося эмулятора. На экране при старте отображается информация с версией эмулятора и вольтаж аккумулятора. Так же в верхнем левом углу корпуса расположил светодиод сигнализации низкого заряда, настроен на 3,5 вольта.

Так же смотрите видеообзор данной поделки:

Скачать код для эмулятора можно по ссылке ниже, в конце статьи:

Эмулятор магнитофона на Ардуино > Rahost Studio

Важное дополнение по работе выходного сигнала эмулятора: