53 дня до 2022 года: ZX-Spectrum из Arduino

Этим утром решил наконец проанализировать возможность создать аналог ZX-Spectrum из Arduino.

Почему?

Ну во-первых сам Спектрум. Это полноценный компьютер, умеющий работать с текстом, музыкой, графикой и играми. На счёт текста особых вопросов нет. Музыка там специфическая и задействовать её получится только при наличии музыкального сопроцессора. Графика — откровенно слабая. Игры… Вообще их полно, но при этом, Спектрум не является игровым компьютером.

Главное, чем подкупает эта машинка, возможность качать программы с аудиокассет, виниловых дисков и даже по радио. Плюс, огромное количество софта, который фанаты пишут до сих пор. И это при том, что машинка ну очень слаба по современным меркам.

Во-вторых, Ардуино. Это дешёвый и доступный микроконтроллер. Собрать из него полноценный, хоть и весьма устаревший комп, было бы весело.

Давай проанализируем техническую возможность.

Характеристики ZX-Spectrum

  • Процессор Z80B (3.5 / 7.0 MHz),
  • ОЗУ — 48 кБайт (до 256 кБайт),
  • ПЗУ 64 — 512 кБайт,
  • Музыкальный процессор AY8910/12 (не обязателен)

Плюс ряд аппаратных особенностей, но их пока не учитываем.

Характеристики Arduino Nano

  • Флэш- память 16 Кб или 32 Кб, в зависимости от чипа
  • ОЗУ 1 Кб или 2 Кб, в зависимости от чипа
  • EEPROM 512 байт или 1 Кб
  • Частота 16 МГц

Смотри как здорово! И частота выше, и ПЗУ (в нашем случае EEPROM и флэш-память) очень даже… И тем не менее, Илья Ильич (Обломов) грустно машет нам рукой в пункте ОЗУ. Памяти у Ардуино Нано меньше чем нужно примерно в 48-128 раз.

А если попробовать Arduino Mega? Да, она в разы дороже, но… нет. Тут всего 8 Кб.

Т.е. по факту, Arduino пролетает. Конечно есть микроконтроллеры с более крутыми характеристиками, но там и цена будет сопоставима с Рапсбери Пай. А нужно максимально дёшево.

Какие ещё варианты? Может ESP32?

Характеристики ESP32

  • Двух- или одноядерный 32-битный процессор Tensilica Xtensa LX6;
  • Тактовая частота – 160 или 240 МГц;
  • 520 Кб SRAM;
  • Стандарты беспроводной связи – Wi-Fi: 802.11 b / g / N, Bluetooth: v4.2 BR/EDR and BLE;

Обращаем внимание на частоту и объём памяти. Теоретически, сюда можно впихнуть эмуляцию Спектрума.

Ну а что? Эмулятор NES в неё уже умудрились засунуть. Кроме того, тут имеется Wi-Fi, что тоже довольно здорово.

Эмулятор, кстати, обнаружился на https://github.com/rpsubc8/ESP32TinyZXSpectrum/blob/main/readmeEnglish.md
Т.е. странные мысли приходят не только в эту голову.

Не знаю насколько это всё будет рабочим, но рассмотреть определённо можно.

Правда, там нужна не простая ESP32, а с VGA (TTGO VGA32 v1.2). Подобные на Али стоят почти 1300 руб. https://aliexpress.ru/item/4001066501355.html

Но, старые Спектрумы на барахолках идут от 4000 руб, а типовая цена сейчас 8500 руб. Дороговато, да и замаешься потом искать куда эту древность подключить. А тут всё-таки VGA и клавиатура PS/2.

Хм… А может вместо всего этого добра просто скачать эмулятор на компик и не париться?

Или лучше найти подходящий эмулятор для Orange Pi? Она у меня есть, а значит ничего докупать не нужно. Тут тебе ещё и линукс на борту, со всеми его плюшками. Останется только корпус напечатать и разъёмы нужные вывести. А если туда ещё и эмулятор Атари поставить, да найти ту самую игру, то сбудется давняя детская мечта. Ну почти сбудется.

Тогда хотел собрать Атари без клавиатуры (в максимально убогой комплектации), поставить на неё космическую стрелялку, приехать летом в деревню и сделать вид, что это у меня такой пульт управления от собственных космических войск. А чтобы было достоверно, к корпусу данного поделия крепилась бы антенна.
В те годы эта мысль казалась очень прикольной. Сейчас — сущий бред. Да и нет уже ТОЙ деревни. Она осталась в 90-х и вряд-ли когда-нибудь повторится.

В общем, здесь есть над чем поразмыслить, но внезапно стартовал рабочий день. Так что… ушёл трудиться на нивах кодинга и тестинга. Вернусь не скоро. Возможно к вечеру, но не факт.

PS А ведь к Оранж Пай у меня ещё и трёхдюймовый экран где-то лежит пылится. Это ж какую можно штуку из этого дела соорудить!

Обед. Каша. И реклама, куда ж без неё.

Ах да! Послезавтра 11.11, а значит начнутся «распродажи». Ну, такие, где на чуть-чуть снижают цену, либо снижают процентов на 40 (повысив вдвое за неделю до события). Разводилово, но народу нравится. Нравится настолько, что купленное после такой распродажи приезжает из Китая только в следующем году (в феврале-марте).

Разумеется, не всё и не всегда. Вещи подороже могут приехать и через неделю. Такое было. Но вот всякая мелочь — как повезёт.

Впрочем, и вне 11.11 такое тоже случается. Сегодня пришло сообщение, что мол доехало — можно забирать. А приехала посылка с одной деталькой, которую заказывал 3 сентября. Т.е. всего-то чуть больше двух месяцев добиралась.

Теперь считай.

  1. 11.11 будет много заказов, а значит сразу отправят не все. Плюс — будут искать возможность соединить несколько заказов в одну отправку.
  2. Если накинуть 2+ месяца, доставка выпадет аккурат на первые числа января. Но мы-то знаем, что в это время у всей страны выходной, а значит посылка задержится ещё на 1-3 недели дополнительно.
  3. Добавляем сюда общую загрузку почты в предрождественские дни по всему миру, а значит доставка задержится ещё больше и может выпасть уже на февраль. Ну а где февраль, там и март.

Вот потому, заказывать у китайцев на распродаже 11.11 подарки к Новому году — рискованно. Большой шанс, что не успеют. К весне, пожалуй,  нормально.

Ты смотри! Начальство пишет. Какой-то косяк с треканьем задачи. С понедельника пишут, между-прочим. На почту. А сейчас в скайп и лично.

Хорошо, что я веду записи по каждому спринту. Действительно имел место косяк. Судя по всему, подзадача не закрылась. А может это я её не закрыл. Дело было летом. Я тогда ещё плохо разбирался с этой бюрократией. Сейчас — чуть лучше.

В общем, одна задача затянулась на два дня. Следующая за ней — перенеслась в новый спринт. А две последующие — сделались за пятницу.

Исправил время/даты, чтобы цифры бились.

Ладно. Осталось время заварить чай, и можно работать дальше.


Металлические карманные расчёски, которые нашёл в продаже, стоят конски, смотрятся убого, а пользоваться ими я вообще не рискну. Куда делись обычные алюминиевые??!

Кстати, эксперимент со вставкой твита прямо в пост (средствами твиттера) показал, что не зря я подобным не занимался.

Едрить! Нет, можно конечно сказать более ёмко, но не люблю мат. Так что… Едриииииить!!!

Купленная розетка с реле времени оказалась розеткой… с просто реле. Нафига оно там, а главное, зачем — я представляю слабо. Вроде-бы для защиты от скачков напряжения. Но вашу ж так! Я-то хотел с реле времени! Какого лешего Озон выдал мне эту!??

Это как покупать машину времени, а в итоге заказать просто машину. Стиральную, ытить. Активаторного типа!

В общем, розетку нужно приспособить к делу, а для террариума заказать новую.

Пусть защищает 3D-принтер от перепадов напряжения!

Можно собрать самому. Благо, есть и детали и возможность сделать корпус. В принципе, вариант, но времени катастрофически не хватает.

Пока заваривался чай, достал коробку с электрикой.

Плохая новость в том, что выключатели у меня закончились. Значит, потолочную панель придётся и дальше включать/выключать выдёргиванием/вставкой шнура из/в розетки(-у).

Хорошая — я нашёл крупную термоусадку. Ну или кусок тонкого шланга. В любом случае ЭТО усадилось вокруг рукоятки лупы, которую печатал на днях.

Тут тебе сразу два в одном: и противоскольжение, и упрочнение конструкции.

Всё! Мир! Труд! Май… не скоро! Так что — работать.

Чем плохи автотесты на Java?

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

Но это плюсы, а бомбёж, как правило, происходит из за минусов.

Мне, вот, не нравится то, что в момент выполнения теста я не могу его поставить на паузу, вернуться на шаг или два назад, исправить там что-либо и продолжить выполнение. Т.е., нужен этакий режим отладки.

Однако — нет. Сначала ты пишешь код, потом он весь «типа компилируется» и только после запускается. Так что менять в коде во время запуска ты можешь что угодно, но вот на тесте это не отразится никак до следующего старта.

Так и живём.

А ведь плагин Селеноида для браузера, который давным-давно не поддерживается ни кем, включая разработчиков, это делать умел. Или нет?

Рабочий день истекает.

Принтер допечатал футляр для расчёски.

Надеюсь это предотвратит её поломку при ношении в заднем кармане брюк.

Всё! Рабочий день закончился. Задачки закрываются, новые на завтра — создаются. Итого, 1 новый автотест. Я рад.

Теперь немного нагружу мозг.

Вот видеоурок по взаимодействию с Ардуинкой через ComPort, плюс Питон, плюс интерфейс для управления с ПК. Алекс Гайвер жжот.

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

Нужно лишь слегка освоить Питон.

Залип в ReLIFE. Это аниме-сериал. Не понял нравится или нет, но интересно. Под это дело подкралась полночь. Я услышал её шаги только за 40 минут до броска, так что есть время почистить зубы и уложить бренную тушку в койку.

День закончился. Пора возвращаться в земли сумерек и хаоса. I’m OFF.

=== Заметки ===

Можно-ли научиться кодить под шум соседского перфоратора? Мне кажется, такие курсы могли бы пользоваться спросом.

Ночью надо спать. И почему так не просто следовать собственным советам?

Ещё...

Напишите комментарий

Введите имя

Введите адрес электронной почты

Введите адрес вашего сайта

Нажмите эту кнопку, чтобы отправить комментарий.

Введите текст комментария