Восстановление Электроники ИМ-22
Здравствуйте Хабравчане! Я студент 2 курса ТУСУРа хотел бы рассказать, как занимался восстановлением культовой игры электроника ИМ.
В свое время я не застал такие устройства как электроника ИМ, 8 битные компьютеры и то время когда все собирали свои компьютеры на рассыпухе. Поэтому мне хотелось заполучить устройство тех времен. Цены на сайтах продаж меня не вдохновили и нужно было придумывать что-нибудь другое.
Как — то давно мне попала в руки «Электроника ИМ-22» (веселые футболисты), когда в устройство были вставлены батарейки к моему огорчению изображения не было, был только звук. Поломка заключалась в высохших токопроводящих резинках, а так как тогда мои знания в электронике были не велики, игрушка была благополучно разобрана, а все детали растеряны.
найденная оригинальная токопроводящая резинка
А год назад нашел у себя в коробках целый дисплей (ИЖМ1-42) с поляризаторами (применялись мной в детстве как неведомая штука, которая становилась темной при определенном повороте), кнопки выбора режима игры и вроде родная пьезопищалка.
Фотографии дисплея
Немного погуглив, нашёл руководство по эксплуатации, но схема в нём была плохо отсканирована. Пришлось искать дальше; и лишь после длительного поиска удалось откопать сервисную схему с осциллограммами в хорошем качестве. На сайте чипдип найдено сердце устройства: КБ1013ВК1-2, немедленно заказав, стал разводить плату на скорую руку.
схема из оригинального документа
Сначала думал развести свой вариант, но быстро передумал в пользу простого копирования оригинальной платы. Найдя фотографии начал копирование. Самый сложное было в подгонке размеров футпринтов к реальных размерам микросхемы и дисплея. Кнопки выбора режима игры решил оставить оригинальным, а кнопки выбора направления сделать на основе тактовых SMD кнопок. Схема питания изначально была тоже оригинальной. Когда плата была разведена (получилась она не самая лучшая, но для предварительного варианта пойдет) она пошла превращаться в настоящую с помощью ЛУТа. Ничего особенно, переходные отверстия с помощью проволочек. Пожалел, что сделал маленькие контактные площадки, так как после сверления они частично разрушились.
Печатная плата. вид спереди
Печатная плата. вид сзади
Плата оригинальной игры
После припаивания всех компонентов сразу же все было включено, и мной были услышаны звуки из пищалки. Потом был прижат с помощью новых резинок (токопроводящие резинки применил от сломанного символьного индикатора HD44770) дисплей и даже появилось какое-то изображение!
из-за слабого и не равномерного прижатия изображение не полное
токопроводящие резинки из символьного дисплея
Настало время придумать как прикрепить дисплей к плате. Был выбран способ прижать с помощью рамки из стеклотекстолита. Сказано – сделано, получилось немного криво. Сделаны необходимые отверстия, для крепежного толстого провода. Самое сложное было точно соотнести контакты на дисплее и на плате (в случае не точного соединения горели не те сегменты и очень тускло).
прижимающая рамка
Приклеены кнопки на термоклей.
Одна из модификация была в переработке питания. Было очень неудобно применять две 1,5 вольтовых таблетки, так как нормального держателя не было. Решил использовать резисторный делитель (2 резистора на 100кОм, ток 0,000015А) и батарейку на 3 вольта. На текущий момент работает прекрасно.
Старая версия
Финальный вариант. Вид сзади
Финальный вариант. Вид спереди
Есть одна проблема: на схеме со всеми элементами при нажатии кнопки «часы» игры отключалась. На данный момент никакие действия не предпринимались. А также заметил, что устройство очень чувствительно к случайным замыканиям дорожек пальцами.
Травку платы и установку элементов производил в общежитии университета, обработку (выпиливание, сверление) производил в лаборатории.
Результатом доволен, особенно удивлен сохранившемуся после стольких лет дисплею (не потерявшему четкости) и тому, что до сих пор без проблем можно найти такие древние микросхемы, которые к тому же еще и работают.
ps: возможно будет кому — нибудь интересна схема, надеюсь не нарушу авторские права, так как не помню где нашел ее.
Оригинал на дропбоксе
немного сжатый вариант
спасибо lightman за синтаксические исправления.
UPD: дропбокс загнулся, надеюсь временно. Добавил сжатый вариант схемы на хабру
- старое железо
- электроника ИМ
Доступ ограничен: проблема с IP
Иногда такое случается — подождите немного и обновите страницу. Если проблема не уходит, вот что можно сделать:
- Отключить VPN.
- Включить и выключить режим «В самолёте».
- Подключиться к другой сети.
- Перезагрузить роутер.
Если и это не сработает, напишите в поддержку. В письме укажите город, провайдера и (его можно посмотреть на yandex.ru/internet). Постараемся разобраться как можно скорее.
Ну, погоди! — игра 80-ых
Лирическое отступление Мой знакомый, увидев старую добрую игру «Ну, погоди!» (электроника им-02) в интернете начал ностальгировать по тем временам и решил ее купить. Но шло время, а маленькая мечта оставалась мечтой. Тут мне в руки попал «наглухо» умерший телефон Samsung GT-S5230. Данный телефон имеет TFT дисплей 3.0′ размером 400х240 пикселей, 8-ми битной шиной и шлейфом “шириной” 31 пин. Дисплей оказался жив и мне пришла идея накидать программку для микроконтроллера (далее МК) а-ля «эхо 80-х – волк ловит яйца». Как вы уже догадались речь пойдет о разработке собрата игры «Ну, погоди!» и никакой пользы человечеству не несет кроме «фо фан». Об оригинале . Электроника им-02 «Ну, погоди!» начала выпускаться в 1984 г. (по началу не имела порядкового номера 02) и являлась точной копией Nintendo “ Game&watch EG-26 EGG” 1981 года (Только там волк со шляпой). «Начинкой» игры являлись: пьезокерамический звонок ЗП, часовой кварц, однокристальная 4-х разрядная ЭВМ КБ1013ВК1-2, дисплей ИЖМ2-71 и немного «рассыпухи». Однокристальная ЭВМ КБ1013ВК1-2 представляет собой законченное устройство с контроллером жидкокристаллических дисплеев, центральным процессором и т.д.. Программа для него была написана на ассемблере длинной около 2000 строк. Контроллер не особо был трудягой, т к дисплей ИЖМ2-71 представлял из себя жидкокристаллический мнемонический индикатор (с уже нанесенным рисунком) работающим при освещении. Т. е. прорисовки каждого пикселя от него не требовалось. Да и частота в 32кГц не способствовала этому (часы важнее:)). Поехали. В нашей схеме используется PIC18F2455 производительностью 12 MIPS. Чтобы «прорисовать» картинку 400х240 пикселей с глубиной цвета 16 бит (к слову сказать дисплей от S5230 на пару сантиметров по более дисплея ИЖМ2-71), требуется объем памяти 192000 байт, что для нашего МК непозволительная роскошь, а усложнять устройство добавлением внешней памяти нам не нужно. PIC18F2455 имеет 24 кБ памяти программ и 2 кБ данных. Для того, чтоб вся картинка поместилась в память МК – она была разбита на блоки. Блок представляет собой массив, где каждый пиксель описан не двумя байтами цвета, а одним битом. Массив ссылается на свою палитру цветности (2 цвета.) Чтоб прорисовка динамических объектов была менее заметна глазу, в особенности больших объектов типа волка, создана функция вывода с «зацикливанием» байта (не бита).
void Draw_highS(unsigned char Bt) < RS = 1; // data masw=0x80; // mask if (Bt&masw) < PORTB = Font_RG; WR = 0; //clock WR = 1; PORTB = Font_GB; WR = 0; //clock WR = 1; >else < . else < PORTB = Color_rg; WR = 0; //clock WR = 1; PORTB = Color_gb; WR = 0; //clock WR = 1; >>
Код этой части программы получился более объемный, чем с побитным «зацикливанием», но и «выигрыш» в скорости прорисовки получается около десяток тактов МК на каждый цикл, коих несколько тысяч. Данный код можно было организовать ассемблерной вставкой, но дизасм показывает нам четкое выполнение команд без лишней шелухи за исключением NOP:
MOVFF Font_RG, PORTB NOP BCF LATA, 1, ACCESS BSF LATA, 1, ACCESS
Как отмечалось ранее – картинка разбита на блоки, в том числе и динамические объекты на ней. Так волк, оставаясь на месте, меняя только положение корзины, прорисовывается только частично. Так же из-за специфики алгоритма корзина тоже разделена на части. Так же для вывода изображения используются функции:
LCD_Draw_Line()
для рисования линий, основанной на алгоритме Брезенхема и:
для вывода массивов с двухбайтными значениями. Общий алгоритм игры «завязан» на прерывании от таймера. Максимальное время между двумя ближайшими событиями на экране (движением яиц) около 0,7 сек. В нашем МК данную длительность обеспечивает 16-ти битный таймер TMR0 с делителем 128. Дальнейшее снижение тайминга (увеличение скорости движения яиц) достигается предварительной записью в старший TMR0H и младший TMR0L байты таймера определенных констант. Время присутствия/отсутствия зайца на экране (порядка 5 с.) тоже складывается из суммы временных отрезков TMR0. Константы привязаны к общеизвестным контрольным точкам — набранным очкам (5..100…200…500…999 и тд.), при достижении которых происходит смена скорости/сброс разбитых яиц/увеличение кол-ва катящихся яиц и т.д.. Вообще все временные и очковые значения по возможности, приближенные к оригиналу.
Выбор лотка, на котором появится очередное яйцо осуществляется генератором псевдослучайных чисел:
запись «%3» ограничивает случайное число максимальным значением 2. Т. е. результат операции – это остаток от деления на 3, а как известно из математики остаток не может быть больше делителя или равен ему. Таким образом, можно получить значения 0,1,2, что соответствует порядковому номеру лотка. Если лоток №0 (левый нижний, далее по «часовой стрелке») в данный момент не может быть задействован (что видно при старте оригинальной игры), то он автоматически заменяется на лоток №3 (правый нижний). В оригинальной игре кол-во яиц одновременно находящихся на экране не превышает 5 шт. Для хранения информации о яйцах на экране создан массив размером 5х2. (Data_b[5][2]). Каждая строчка массива содержит номер лотка (0,1,2 или 3), по которому катится яйцо и позиция самого яйца до попадания в корзину (от курицы до корзины 5 позиций). Каждое вновь появившееся яйцо записывается в предыдущую свободную ячейку массива (т. к. в очереди оно будет последним). Указатель на массив позволяет отслеживать очередность движения каждого яйца. Исключение составляет случай, когда на одном лотке несколько яиц: они, если обратить внимание на оригинал игры, двигаются синхронно. В итоге весь код занял практически всю память программ, хотя при желании можно еще «ужать» Биты конфигурации МК так же прописаны программно. Звук с RC2/CCP1 выводится на старый добрый звонок пьезокерамический (ЗП-3) примененный все в той же серии игр «электроника». ШИМ – режим формирования звука позволяет освободить дополнительное время МК для выполнения других задач, но не так гибок в подборе «звукового оформления». Информация на дисплей, как уже отмечалось, выводится по 8-ми битной шине. При инициализации применен альбомный режим. Ниже приведена электрическая схема девайса: Даташит на PIC18F2455 говорит нам, что «…Standard devices with Enhanced Flash memory, designated with an “F” in the part number (such as PIC18F2550), accommodate an operating VDD range of 4.2V to 5.5V. Low-voltage parts, designated by “LF” (such as PIC18LF2550), function over an extended VDD range of 2.0V to 5.5V.», а вот питание дисплея S5230 2.8 — 3.3В. Но практика показывает что F-ки и при снижении питания до 3В отлично «трудятся» даже в режиме PLL. Устройство тестировалось на батарейках и аккумуляторах (в том числе от мобил) в диапазоне 2.9-3.8В. Проблем не возникло (разве что яркость экрана чуть меняется). При 3В устройство потребляет около 70мА. Львиную долю конечно «съедает» дисплей, т. к. дисплеи от сотовых очень прожорливы.
Список радиоэлементов
PIC18F2455
Прикрепленные файлы:
- Wo.rar (134 Кб)
Электроника им 02 как выключить
Группа: Пользователи
Сообщений: 10
Регистрация: 01 окт. 2005
Пользователь №: 13 862
В стародавние времена Nintendo выпускала карманные игровые системы Game&Watch, которые были скопированы нашей промышленностью и выпущенные под серией ЭЛЕКТРОНИКА. Это простые (по современным меркам) электронные устройства с заранее нарисованным фоном и LCD дисплеем с отрисованными героями. Игры были простые, но забавные. Ныне выпускаются всякие дешевые китайские (азиатские) клоны типа Аполло, с ужасными неуклюжими корпусами и в ужасном исполнении.
Хотелось бы узнать существуют ли солидные современные аналоги подобные Game&Watch? Выпущенные в стильных корпусах с возможно цветным дисплеем и удобными кнопками?
Суббота, 18 марта 2006, 23:39
Отправлено #2
Арулько. Пальма 29.
Группа: Пользователи
Сообщений: 419
Регистрация: 29 янв. 2004
Из: Москва
Пользователь №: 7 069
О новых подобных хэндхэлдах не слышал.
Но старые,даже DS можно достать.
Вот как этот Nintendo DS Old
Присоединённые эскизы