Просмотр полной версии : Цифровой магнитофон TZXDuino. Неторопливая сборка конструктора.
Не так давно наткнулся в сети на красивую фотографию некого девайса в акриловом прозрачном корпусе с двуцветным индикатором. Оказалось, что это TZXDuino - цифровой магнитофон для воспроизведения файлов формата TZX и TAP для ZX-Spectrum.
https://i.postimg.cc/pXpDy1MJ/case-2.jpg (https://postimg.cc/JGCy2xns)
Кроме этого, этот магнитофон воспроизводит файлы TSX, CAS для платформы MSX.
Т.к. сборка MSX у меня в планах, то было принято решение собрать TZXDuino.
Прозрачный акриловый корпус очень удачно вписывается в мою концепцию прозрачной ретро-техники (уже есть Пентагон и Скорпион 256 в прозрачных корпусах, кроме этого недавно сделал 9.7" монитор тоже в прозрачном оформлении).
На плате установлен отдельный разъем для управления магнитофоном. Скорее всего - это функция ПУСК-СТОП. На Спектруме не используется, наверно, это фишки MSX или Амстрада.
Этот магнитофон - не совсем магнитофон. Он только воспроизводит файлы, функции записи у него нет. Впрочем, мне это не нужно.
TZXDuino собран на базе модуля Arduino NANO. Кроме самого модуля используется минимальное количество элементов: ОЛЕД-дисплей (128х64 или 128х32), картридер для microSD карты, пять кнопок, две микросхемы, разъем для наушников и несколько резисторов/конденсаторов.
Есть две версии прошивки. Первая - официальная https://github.com/arananet/TzxDuino-Reloaded
Вторая - MaxDuino альтернативная прошивка, в которой больше настроек и всяких "бантиков".
https://github.com/rcmolina/MaxDuino
Принципиальной схемы я не нашел. Есть только реверс от старой версии, которую собирали на Arduino ProMini.
https://i.postimg.cc/152DFc9h/Tzx-Duino-Reloaded-1-4-Reversed.png (https://postimg.cc/8jdFQvJt)
На первый взгляд плата кажется неудачной. Однако, по задумке авторов плата не должна лежать горизонтально. Рабочее положение девайса - кнопками вверх. СД-карта будет снизу, а кабель питания и аудио-кабель расположены на правой стенке корпуса.
Готового конструктора я не нашел, пришлось собирать его самостоятельно.
Плату заказал на Elecrow. Они пока еще работают с РБ. Прислали достаточно быстро - примерно через три недели.
Дополнительно закупил:
- панельки для установки модуля Ардуино Нано
- светодиоды 0805 красного и зеленого цветов
- дисплей ОЛЕД 128х64 двухцветный (желто-синий)
- ридер SD-карты
- кнопки
Разъем аудио у меня уже был от других проектов. Микросхемы мне подарил товарищ из своего архива.
https://i.postimg.cc/25FWgsnr/TZXDUINO-1.jpg (https://postimg.cc/d73DySWx)
Жду еще ОЛЕД -экран и картридер. После чего можно начинать сборку.
Забыл написать. В схему включен усилитель. Будет полезен, если устройство требует повышенный уровень сигнала. При необходимости, усилитель можно отключать и подавать сигнал напрямую с выхода Ардуино НАНО. Выключатель есть на фото - планарный на два положения.
Ссылка на статью по TZXDuino https://theretrohacker.com/2022/03/02/lets-build-retro-edition-the-tzxduino-reloaded/
Ну и самый главный вопрос, где акриловый-то корпус брать? ;)
Ну и самый главный вопрос, где акриловый-то корпус брать? ;)
Если речь идет о корпусе как на фото, то ссылка https://www.thingiverse.com/thing:2535743
Но я буду проектировать свой корпус. Еще у меня была идея встроить в корпус отсек для батареек или АКБ 18650 с платой зарядки. С другой стороны, пользоваться этим девайсом я буду не часто. Только увеличу размеры и вес ненужной функцией.
У этой платы есть один недостаток - нет крепежных отверстий.
По хорошему, ее бы переразвести. В сети есть слим версия. Она без модуля, Атмега328 паяется прямо на плату.
Но без точной схемы я не рискнул. Опыта еще не очень много.
https://i.postimg.cc/Tw86WPwJ/1617006145270.jpg (https://postimages.org/)
Я не стал париться и собрал на макетке в два этажа (на ProMini, MaxDuino тогда ещё и не было).
https://amiga.nsk.ru/nisht/tzxd1.jpeg (https://amiga.nsk.ru/nisht/tzxd1.jpg) https://amiga.nsk.ru/nisht/tzxd2.jpeg (https://amiga.nsk.ru/nisht/tzxd2.jpg) https://amiga.nsk.ru/nisht/tzxd3.jpeg (https://amiga.nsk.ru/nisht/tzxd3.jpg) https://amiga.nsk.ru/nisht/tzxd4.jpeg (https://amiga.nsk.ru/nisht/tzxd4.jpg)
Я не стал париться и собрал на макетке в два этажа (на ProMini, MaxDuino тогда ещё и не было).
Не, смысл именно запариться. Для этого и делаю прозрачные корпуса чтобы обозревать красивые внутренности.
Вижу у вас на фото пьезодинамик. Это чтобы слышать волшебный звук загрузки? Как он подключен? Громкость регулируется? Тоже про такой динамик думал.
Ставлю похожие на СМУК для эмуляции звука работы HDD.
https://i.postimg.cc/gkJmQjxN/SMUK-buzzer-3.jpg (https://postimg.cc/pygwn2YF)
Вижу у вас на фото пьезодинамик. Это чтобы слышать волшебный звук загрузки? Как он подключен? Громкость регулируется? Тоже про такой динамик думал.
Да, именно пьезодинамик, благодаря большому сопротивлению он не влияет на звуковой тракт, подключен тупо на выход, без регулятора громкости. Тихонько пищит, для контроля загрузки вполне хватает.
ОЛЕД-экран и ридер SD-карты застряли где-то по дороге. Решил не ждать и запаял, все что можно на плату. Усилитель и обвязку пока не устанавливал.
https://i.postimg.cc/W1LBQm3D/tzx-5.jpg (https://postimg.cc/VdgZtCX1)
Экран подключил 2.42". Разрешение 128х68 - как раз подходящее и контроллер там совместим с 1366.
Теперь настала пора прошить контроллер Ардуино НАНО. Решил сразу использовать прошивку MaxDuino.
Для начала надо скачать Ардиуно IDE версии 1.8.19 и настроить ее для работы с Ардуино НАНО.
Описывать тут не буду - в сети полно уроков как это сделать.
Далее надо установить дополнительные библиотеки.
SDFat (1.1.4 и SoftI2CMaster (2.1.7). Версии надо выбирать именно такие.
Идем на гитхаб https://github.com/rcmolina/MaxDuino и скачиваем проект.
https://i.postimg.cc/Ghy07gcw/tzx-8.jpg (https://postimages.org/)
Распаковываем его.
Запускаем Ардуино IDE, открываем проект Файл - Открыть - выбираем файл проекта MaxDuino.ino
Во вкладке userconfig.h можно настроить конфигурацию платы Ардуино и ОЛЕД-экрана. Мне подошло значение по умолчанию.
Все, можно проверять и загружать скетч в Ардуино NANO.
https://i.postimg.cc/44Mk1RRQ/tzx-4.jpg (https://postimages.org/)
Для проверки подключаем USB-кабель к Ардиино NANO. На экране появилось сообщение "NO SD CARD".
https://i.postimg.cc/QdQ2sB9f/tzx-7.jpg (https://postimg.cc/TKP7J3cb)
Промежуточный результат достигнут.
Жду ридер SD-карты и буду завершать сборку. Пока хочу узнать как поменять шрифт. Мультяшный мне что-то не очень нравится.
Принципиальной схемы я не нашел.
Спасибо большое, за то что нашли хоть что то.
Вот ответ автора по поводу схемы.
Edu Arana <info@arananet.net>
Привет,
Не то чтобы я был против поделиться схемой, но другие люди также работали над этим, и мне нужны их разрешения, чтобы распространить схему кому-либо.
Плата свободно лежит, все открыто кроме схемы. Дичь какая то. :biggrin:
- - - Добавлено - - -
Жду ридер SD-карты и буду завершать сборку.
Ждем :rolleyes_std:
Freiwind
13.12.2024, 10:00
В свое время делал корпус для платы версии 1.5.
https://iimg.su/s/13/th_Um4nmD6OEPEw7HqkHyFjd7WQbc71zUycUguH3Egl.jpg (https://iimg.su/i/brSZW)
В свое время делал корпус для платы версии 1.5.
А как крепили плату внутри корпуса?
Эта плата неудобна тем, что нет монтажных отверстий по углам.
Картридер microSD-карты и индикатор до сих пор в пути. Пошел третий месяц...
Заказал еще один индикатор, но отправили опять этой медленной почтой.
Решил не ждать, попросил коллегу и он мне нашел паянный картридер microSD-карты. Его и впаял.
Идикатор временно поставил 0.91" 128х32.
На microSD карту записал несколько .tap файлов.
Магнитофон успешно запустился и увидел карту.
https://i.postimg.cc/BZwswfWb/TZXDUINO-3.jpg (https://postimg.cc/CdDWztxp)
Подключил наушники на выход магнитофона. Звук очень громкий. И это я еще не паял усилитель.
Подключил магнитофон к Скорпиону 256. Загрузка работает отлично. Позагружал разные версии Диззи. Ни одного сбоя. Даже холодильник не выключал ;)
https://i.postimg.cc/ZKBmGsZc/TZXDUINO-4.jpg (https://postimg.cc/3dTzpBk4)
Есть пока один вопрос. Не всегда корректно отображает процент воспроизведения. Бывает файл загружен, а индикатор показывает - 87%... Странно. Буду изучать.
По поводу шрифта.
В прошивке встроено много шрифтов. Стандартный мне не нравится поменял на обычный Bold.
Для этого идем во вкладку userconfig7.h
В конце есть секция FONTS
Убираем // с нужного шрифта. Перезаписываем скетч и смотрим результат.
https://i.postimg.cc/Fz1vsDSh/TZXDUINO-6.jpg (https://postimages.org/)
https://i.postimg.cc/90Sh4ZPZ/TZXDUINO-5.jpg (https://postimg.cc/hQ9w6J5t)
И еще одна мелочь. Резистор на зеленый светодиод лучше поставить на 1К (можно даже 2 ком). При 330 Ом он очень ярко светит.
Немного потестировал девайс.
Tap - файлы загружает без проблем. Только бывает несовпадение процента загрузки.
С TZX-файлами не все так радужно.
Часть файлов загружается, но игра не запускается. Еще часть файлов загружается, но в конце дает Tape loading error.
Процент загрузки в большинстве случаев отрабатывает корректно. Но не во всех.
Пытался загрузить Exolon.tzx. Он интересен нестандартным загрузчиком. Загружается, но не запускается.
Не поленился, достал с шуфлядки Пентагон. С ним ситуация аналогичная.
TAP - файл Exolon'а грузится и запускается нормально, но в нем обычный загрузчик.
https://i.postimg.cc/4xrDq6NK/TZXDUINO-7.jpg (https://postimg.cc/pmJcnnjx)
Кстати, через ZX Tape Player со смартфона Exolon с нестандартным загрузчиком грузится и запускается нормально.
Freiwind
21.12.2024, 18:23
А как крепили плату внутри корпуса?
Эта плата неудобна тем, что нет монтажных отверстий по углам.
Лежит в пазах нижней части корпуса и прижимается элементами верхней части.
Нашел дома такой Power Bank. Один элемент 18650 и повышайка для 5 вольт.
https://i.postimg.cc/8PwtRKDN/TZXDUINO-8.jpg (https://postimg.cc/svQYyJvN)
По идее, можно в TZXDuino встроить. Тогда не нужен шнурок питания подключать. Надо только выключатель питания предусмотреть.
Вместо элемента 18650 можно подпаять плоскую банку 1S любой подходящей емкости. Чтобы размеры уменьшить.
https://i.postimg.cc/63DLjv4C/tzx-9.jpg (https://postimg.cc/k6vbDDc5)
Были опасения, что TZXDuino не будет корректно работать с новыми картами.
Купил на алиэкспрессе карту SanDisk. Специально подобрал 10 класса.
Проверил - работает штатно.
Сегодня с третьей! попытки приехали индикаторы 128х64.
Все заработало нормально. Только не разобрался, как выводить загрузочное лого.
Вроде, в настройках, все включено, но при загрузке просто одноцветная заливка. Может кто подскажет куда копнуть?
https://i.postimg.cc/y6kG3qRG/tzx-10.jpg (https://postimg.cc/hhRsN5p8)
Еще впаял усилитель и его обвязку. Проверил - работает. Звук становится громче.
Все. Можно работать над корпусом.
Проект корпуса с гитхаба не смог корректно открыть в кореле. Буду рисовать самостоятельно.
Жаль в плате нет монтажных отверстий. Надо продумать крепление платы.
Интересно было бы этот девайс еще и магнитофоном сделать (то есть пишущим), а не просто еще одним плеером. :rolleyes_std:
У него есть на борту второй разъем, для управления механикой магнитофона (2,5 mm), который можно переделать во вход.
Интересно было бы этот девайс еще и магнитофоном сделать (то есть пишущим), а не просто еще одним плеером.
Проект пишущего магнитофона есть. На индикаторе от Нокии. Просто функции записи редко нужны.
Что касается этого девайса, то у меня нет скилов для программирования. Готовую прошивку не могу толком настроить...
Проект пишущего магнитофона есть. На индикаторе от Нокии.
У него есть критический недостаток, это закрытый исходник. А тут у нас ардуино.
у меня нет скилов для программирования
Это скорее мысли вслух. )
Разобрался, как заливать лого.
Надо просто выполнить инструкции, которые прописаны в коде вкладки конфигурации userconfig7.h:
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// EEPROM LOGO. How to move to EEPROM, saving memory:
// Phase 1: Uncomment RECORD_EEPROM_LOGO define , this copies logo from memory to EEPROM. Compile the sketch.
// Phase 2: Comment RECORD_EEPROM define, uncomment LOAD_EEPROM define. Complile the sketch again
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Also it's posible to select record and load both for better testing new logo activation, pressing MENU simulates a reset.
// And both can be deactivated also showing a black screen.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//#define COMPRESS_REPEAT_ROW
//#define EEPROM_LOGO_COMPRESS
//#define LOAD_MEM_LOGO // legacy, logo is not in EEPROM then wasting memory.
//#define RECORD_EEPROM_LOGO // Uncommenting RECORD_EEPROM deactivates #define Use_MENU
#define LOAD_EEPROM_LOGO
#if defined(OLED1306_128_64) || defined(video64text32)
#define msxlogo64
//#define EmptyLogo // to erase
//#define Maxduino2Alf // new Maxduino2 logo 128x64 by Alfredo Retrocant
//#define CosmicCruiser // Dragon32 CosmicCruiser by rcmolina
Рисунок лого выбираем в секции:
#if defined(OLED1306_128_64) || defined(video64text32)
https://i.postimg.cc/50VnWnk5/tzx-11.jpg (https://postimg.cc/ns3vvYxM)
Сегодня получил OLED-экранчики на 1.3". Для их подключения надо изменить распиновку питания. Подробнее тут https://zx-pk.ru/threads/36130-zx-fdd-emulator-emulyator-diskovoda-na-atmega328-konstruktsiya-vykhodnogo-dnya.html?p=1213314&viewfull=1#post1213314
Для корректной работы такого дисплея надо раскомментировать строчку:
#define OLED1106_1_3 // Use this line as well if you have a 1.3" OLED screen
Результат:
https://i.postimg.cc/NFGD5Lt5/tzx-12.jpg (https://postimg.cc/ZBgpQbCS)
https://i.postimg.cc/BbhgDsZN/tzx-13.jpg (https://postimg.cc/N2Hmq3Hr)
Жаль нет двухцветных экранов на 1.3". Смотрятся более эффектно.
Продолжение будет...
Проект двигается к завершению.
Нарисовал корпус для лазерной резки из прозрачного акрила.
Сегодня забрал заказ. Ошибок нет. Корпус собрался нормально.
Продумываю как зафиксировать плату внутри корпуса. И как закрывать сам корпус, чтобы он случайно не открылся при эксплуатации.
https://i.postimg.cc/4dW6yXRL/tzx-14.jpg (https://postimg.cc/zbRbPZBK)
https://i.postimg.cc/XqXwytVV/tzx-15.jpg (https://postimg.cc/JHVyf6Dg)
Продолжение следует.
Никогда не делайте платы без монтажных отверстий!
Пол дня убил пытаясь закрепить плату в корпусе. Это с учетом "разборности" конструкции.
Ничего не получилось о чем я подозревал еще в начале проекта.
Пришлось высверлить в печатной плате два отверстия по диагонали.
Вклеил в заднюю стенку корпуса две круглых закладных с нарезанной резьбой М2. И без лишних мучений закрепил плату.
https://i.postimg.cc/J0mNyzpZ/tzx-16.jpg (https://postimg.cc/xJxJhnD1)
https://i.postimg.cc/D0gq13ND/tzx-17.jpg (https://postimg.cc/7J5GydwM)
https://i.postimg.cc/Kcr76tYN/tzx-18.jpg (https://postimg.cc/V5vbMrnr)
https://i.postimg.cc/c4FRHZwt/tzx-20.jpg (https://postimg.cc/RNn6skPv)
https://i.postimg.cc/vHY7bDgd/tzx-19.jpg (https://postimg.cc/pyS5BWJ0)
Не обращайте внимания на мутный акрил - еще не снял защитные пленки.
Пришла пора завершить проект.
Спаял еще одну плату, без использования панелек. Слим-вариант.
https://i.postimg.cc/WbVVqMGx/tzx-21.jpg (https://postimg.cc/Lhxwrg0V)
https://i.postimg.cc/rwn2H3BL/tzx-22.jpg (https://postimg.cc/18qdnCRW)
Пайку обратной стороны платы делал модными нынче "шариками".
https://i.postimg.cc/HLr113m8/tzx-23.jpg (https://postimg.cc/XZ6zwfpn)
Корпус у меня разборный. Снимается верхняя панель и торцевая заглушка. Для крепления торцевой заглушки сделал специальные закладные с резьбой М2.
https://i.postimg.cc/t4CH2pm5/tzx-24.jpg (https://postimg.cc/VdTTNQwr)
https://i.postimg.cc/kXymQBwG/tzx-25.jpg (https://postimg.cc/BXtksZrf)
Наконец, склеил четыре части корпуса, закрепил плату, установил верхнюю панель и торцевую заглушку. Снял защитную пленку с акрила.
Корпус смотрится отлично. Я доволен результатом.
https://i.postimg.cc/CK9ThDMP/tzx-26.jpg (https://postimg.cc/XZKDxrCd)
https://i.postimg.cc/50vc606x/tzx-27.jpg (https://postimg.cc/njHSWn45)
https://i.postimg.cc/gjPCRWZ3/tzx-28.jpg (https://postimg.cc/gXNtF140)
Отличный проект. Получил удовольствие как от результата, так и от процесса изготовления.
SoftLight
27.04.2025, 21:42
Очень аккуратно! Спасио за Ваши статьи! А как делается пайка с обратной стороны 'шариками'?
Нарисовал корпус для лазерной резки из прозрачного акрила.
Поделитесь своей красотой?
Очень аккуратно! Спасио за Ваши статьи! А как делается пайка с обратной стороны 'шариками'?
Спасибо.
Для пайки "шариками" все контакты элементов подрезаются по уровню платы, ну или могут чуток выступать.
Потом я добавляю жидкого флюса и паяю не жалея припоя. Если резко убирать паяльник, то образуется сфера из припоя. Его и называют "шариком". При этом плата становится гладкой и не "царапается". Хотя, думаю, это для эстетики делают.
Поделитесь своей красотой?
Я попытался. Но архив слишком большой - не удалось прикрепить к посту.
Поделитесь своей красотой?
Оказывается, если не импортировать шрифты, то файл получается на порядок меньше.
https://i.postimg.cc/3JPMdWfZ/case-corel.jpg (https://postimages.org/)
Проект корпуса для Corel Draw:
82270
отличная штука, а мне вот больше нравится в формате кассеты
https://www.reddit.com/r/cassettefuturism/comments/u11n8u/zx_spectrum_virtual_cassette_arduino_tzxduino_by/
отличная штука, а мне вот больше нравится в формате кассеты
Да, очень аутентично.
Как я понял, для использования этого девайса надо иметь кассетный магнитофон? Можно даже без пассиков?
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot