Как починить тетрис если не работает экран

Играем в Тетрис на электромеханическом экране

Однажды, просматривая объявления на Avito, я наткнулся на очень любопытную вещь — блинкерное табло или flip-dot display по-английски. Такие табло используются для отображения информации в аэропортах, вокзалах, стадионах или маршрутоуказателях на общественном транспорте.

Я подумал, что с дисплеем такого типа можно сделать много всего интересного.

Где был установлен мой экран, можно только догадываться по остатку надписи (“АГАЗИН”). Возможно, это был информационный стенд на вокзале или остановке ОТ — пишите ваши идеи в комментариях.

Экран представлял собой матрицу ячеек размером 7 строк на 30 столбцов. Каждая ячейка содержала круглую, вращающуюся двухцветную пластину и светодиод зеленого свечения. На плате имелось некоторое количество логических элементов серии 74HCххx и других микросхем, которых, как выяснилось позже, было почти достаточно для управления экраном через нехитрый последовательный интерфейс.

После покупки я потратил немного времени на поиски информации о том, как работать с такими экранами, учитывая, что в моем распоряжении была только часть, непосредственно выводящая изображение, а обычно присутствует еще и контроллер, которым можно управлять клавиатурой либо через порт UART софтом с PC.

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

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

Как же работают электромеханические экраны


Устройство ячейки, источник: Eldi datasheet

Как происходит поворот диска, источник: Flip-Disc Display

Для удобства управления катушки через два диода объединены в матрицу строк и столбцов. Для переключения любой точки экрана нужно активировать источник тока (current source) на строке и сток тока (current sink) на ряду, на пересечении которых находится катушка электромагнита или, наоборот, для переключения в другую сторону. По сути, это аналогично управлению двигателями постоянного тока через Н-мост, только в импульсном режиме.

С тем, как управлять флажками в теории, мы разобрались. Пора переходить к практический реализации.

Реверс-инжиниринг экрана

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

Схема модуля состоит из матрицы светодиодов, катоды которых подключены к LED драйверам Toshiba TB62705. С точки зрения логики управления это обычные 8-битные сдвиговые регистры, соединенные в цепочку. Аноды светодиодов в каждой строке соединены и подключены к стокам MOSFET транзисторов. Истоки подключены к выходу DC-DC преобразователя, а затворы всех 7 транзисторов соединены с выходами дешифратора 3:8 74HC238.

Таким образом, для управления светодиодами нужно выбрать строку экрана, подав ее номер на вход дешифратора, потом загрузить 32 бита данных через SERIAL и CLOCK входы первого LED-драйвера. Затем подать лог. “1” на вход LATCH, и соответствующие светодиоды загорятся на время удержания LATCH в “1”.

Чтобы поморгать светодиодами, я использовал лежащую под рукой arduino-совместимую плату Teensy 3.5. Пример кода управления светодиодами можно найти на GitHub

Вторая часть схемы, ответственная за управление блинкерами, немного сложнее.

Силовая часть управления колонками состоит из пары микросхем источника/стока тока (current source/sink), выходы которых соединены через защитные диоды с первым выводом каждой катушки в колонке. В качестве источника тока использована микросхема Toshiba TBD62783, а в качестве стока — любимая многими ULN2803 от TI. Вторые выводы катушек объединены в строки и подключены к разъему на плате экрана. По всей видимости, это было сделано для того, чтобы вынести управление строками в отдельный модуль, так как несколько экранов могут объединяться в один длинный экран. Однако немного непонятно, почему для управления светодиодами разработчики разместили все необходимые компоненты на каждой плате экрана.

Читайте также:  Как настроить друзей против себя

Логика состоит из восьми 3:8 дешифраторов 74HC238, управляющие входы которых соединены параллельно. Выходы четных дешифраторов подключены к управляющим входам источников тока, а нечетных — к входам стоков. Разрешающие входы 74HC238 подключены к еще одному 3:8 дешифратору, что позволяет полностью исключить ситуацию, когда одновременно активны микросхемы источника и стока тока. Вход разрешения общего дешифратора подключен к микросхеме компаратора и активируется только при совпадении значений на его входе. Эта часть схемы, скорее всего, также отвечает за объединение нескольких модулей в один большой экран.

Таким образом, для выбора конкретной колонки нужно подать ее номер (0-7) в группе на шину COL_A0-A2, а затем активировать выходы конкретной 74HC238 путем подачи ее номера на входы COL_EN_A0-A2 общего дешифратора. Причем вход A0 можно использовать как признак источник/сток, а оставшиеся 2 бита — как номер группы (0-3).

Входы управляющей логики и питания выведены на два 50-контактных IDC разъема. Распайка одного из них показана на схеме.

После анализа схемы я понял, что поморгать флажками без помощи Kicad и паяльника, не получится и приступил к созданию модуля выбора строк и сопряжения.

Модуль адаптера и управление строками

Для упрощения конструкции я решил повторить реализацию выбора колонки и поместил на схему TBD62783 и ULN2803 в паре с дешифраторами 74HC238 для выбора нужной строки, а также одну микросхему логики 74HC00 (4хNAND) для четкого разделения режимов SET, RESET и входа PULSE, непосредственно активирующего подачу напряжения на выбранный электромагнит. Для экономии выводов микроконтроллера было решено подключить сигналы выбора строк и столбцов к выходам одного сдвигового регистра.

В итоге для управления флажком нужно:

  1. послать и зафиксировать его координаты в последовательном коде через SERIAL/CLOCK/LATCH
  2. выбрать желаемое состояние SET/RESET
  3. на короткое время активировать PULSE

Расшифровка байта координат:

Первая версия схемы без сдвигового регистра была собрана на беспаечной макетной плате. После проверки и небольшого волнения, что все сгорит, я включил питание и подал вручную импульс PULSE быстрым нажатием на кнопку. Ток, протекающий через катушку электромагнита, был на всякий случай ограничен на лабораторном источнике питания. Флажок переключился успешно, и при изменении уровня SET/RESET, переключился обратно. “Это успех”, ‒ подумал я и начал переносить схему на обычную макетную плату, используя любимый МГТФ-0.07 и одножильный kynar-wire для шин питания/земли.

Для подключения к экрану через 50-контактный разъем на плате нужно было задействовать 22 контакта + питание, поэтому возиться с отдельными проводками не хотелось. Напрашивалось использование плоского шлейфа, как для IDE или, скорее, старых SCSI устройств.

Немного гугления навело меня на специальный инструмент для обжима IDC коннекторов, который было решено незамедлительно купить: Кримпер ProsKit 6PK-214 для IDC коннекторов. Потренировавшись на небольших коннекторах, я с первого раза сделал себе 20-сантиметровый шлейф с IDC-50F разъемами на концах.

Пишем управляющую программу

Как я упоминал выше, в качестве управляющего контроллера использовался TEENSY 3.5, средой разработки для которого является Arduino IDE, поэтому программа была написана на arduino диалекте C.

Я провел несколько экспериментов, чтобы определить оптимальное напряжение источника питания и время подачи импульса. Получилось, что 12В и 1мс достаточно для стабильной фиксации флажка в одном из положений.

После тестовых заливок одним цветом я заметил, что один «пиксель» битый и не переворачивается. Замер мультиметром сопротивления катушки показал несколько мегаом, а детальный осмотр выявил, что один вывод оторвался. Очень повезло, что нерабочий «пиксель» был с краю экрана, поэтому мне удалось припаять провод. Проблема была решена.

Тетрис

Написать реализацию Тетриса на C оказалось проще, чем я думал. Спасибо Javier López и его руководству Tetris tutorial in C++ for beginners. Я переписал основные функции так, как я их понял, и адаптировал код к особенностям моего экрана (отсутствие границ и низкое разрешение). Не буду утомлять подробностями работы, в руководстве все подробно описано.

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

Читайте также:  Как настроить компьютер дополнительные параметры

Поиграв минут 10, я понял, что мне скучно, потому что скорость падения фигур не меняется и счет никак не отображается. Отсутствует элемент соревнования.

Выводить счет флажками было некрасиво из-за нехватки места на экране, так что было решено задействовать светодиоды для создания альтернативной плоскости вывода информации. Я нашел в интернете битовое представление шрифта 3×5 для цифр от 0 до 9 и написал функцию отображения счета по количеству убранных линий. Для пущей красоты решил добавить моргание заполненной строки при ее исчезновении.

Динамический характер отображения подтолкнул к идее вызывать функцию обновления LED-части экрана в таймерном прерывании. Частота прерывания и время удержания строки светодиодов в активном состоянии определяют яркость свечения.

Еще я сделал так, что скорость падения фигурок тетрамино увеличивается по мере очищения линий. В первой версии фигурки смещались на одну строку вниз каждые 200 мсек. Если отнимать от этого числа 40 мсек каждые 10 удаленных линий, то темп игры сильно ускоряется, и появляется интерес. Мой рекорд 38 линий!

Тот редкий случай, когда вертикальное видео подходит как нельзя лучше.

Если у вас есть идей, что еще можно сделать с таким экраном, пишите, пожалуйста, в комментарии.

Источник

Как починить тетрис если не работает экран

Вот фотки самой платы:

Сразу скажу — если вы не рождены в СССР и не пережили перестройку в разумном возрасте (хотя бы в возрасте малолетнего отморозка) вы не поймёте зачем оно мне надо в эпоху смартфонов, кпк и пико АйТиИкс , так чтоне надо флеймить=)

1) Как видно на питании стоит конд 100х16в, при работе тетрика замечалось что играет он слишком тихо. Нужно ли ставить такой конд при питании в 3 вольта? Может имеет смысл заменить на другой? К примеру 150х6в, 100х10в, 10х16в ? и снова — не надо флеймить — другой тетрик мне не нужен, в этом тетрике установлена ностальгическая мелодия — ламбада , в современности таких не встречал)

2) С каких контактов можно снять питание 3в ? Нужно для запитки параллельно подключенных светодиодов. Включаться должно синхронно с включением самой игрушки (то меж при нажатии кнопки он/офф, оные контакты обозначенны. Там именно кнопка, а не выключатель — кратковременное замыкание контакта) . Обозначьте + и — на приложенном рисунке если не затруднит=)

3) Там установлен бескорпусный микроконтроллер и как видно на каждой его ноге (дорожке) есть место для припайки провода.
Если есть микроконтроллер пусть даже бескорпусный — значит есть и возможность его перепрограммировать (как не крути, а аналоговой микросхемы там быть не может.). Вопрос: каким программатором (желательно самопальным), через какую программу, на каком языке, через какие ноги?

Реклама
Шурики
Вымогатель припоя

Карма: 3
Рейтинг сообщений: 48
Зарегистрирован: Пн авг 31, 2009 22:10:50
Сообщений: 506
Откуда: СК
Рейтинг сообщения: 0

Реклама

JLCPCB, всего $2 за прототип печатной платы! Цвет — любой!

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/cwc

GeparD
Вымогатель припоя

Карма: 1
Рейтинг сообщений: 6
Зарегистрирован: Сб июн 27, 2009 23:34:18
Сообщений: 538
Откуда: Украина
Рейтинг сообщения: 0

1) конденсатор менять не нужно, он на громкость не влияет, если очень хочется то поставить на меньшее напряжение, например на 6 вольт

2) а питание будет от батареек? сколько будет светодиодов? и это самое. нужно пройтись с мультиметром по плате и посмотреть где при включении появляется плюс или минус, только запитывать от него светодиоды напрямую да еще несколько параллельно подключенных не получится

3) насколько я знаю, тетрисы не перепрограммируются

хмм, а второго поста не видно было когда на страницу первый раз зашел

Реклама

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

REB
Сверлит текстолит когтями

Карма: 4
Рейтинг сообщений: 20
Зарегистрирован: Вс сен 20, 2009 00:23:17
Сообщений: 1264
Откуда: Жидостан
Рейтинг сообщения: 0

GeparD: питание от батареек, пока не поборю лень матушку и не куплю банки . Питание от 3 вольт (в последствии от 2.4в, но значения это как я уже успел понять методом тыка не имеет. Напряжение слабее, но сила тока выше). Кстати питание указано было на фотке платы=)
Диодов 4 шт., 3мм, зелёные, яркие, но опять таки — значения не имеет. Уже не однократно подсвечивал ЛСД на которых подсветка не предусмотрена — с питанием всё в норме. (часы, калькуляторы, записные книжки, электронные словари и тд) Одно «но» — батарейки садятся быстрее, по сему планирую использование банок.
Вопрос — а почему не должно получиться? 2.4 вольт вроде достаточно (пробовал, даже от 2.0 загораются)

А вот тестером прозванивать это есть «метод тыка» — долговато=)

Шурики: как сфотографировать чтоб было понятно?
От динамика диоды мигать будут, мне этого не надо. Не дисплей подсветить надо.

Реклама

Компэл 28 октября приглашает всех желающих принять участие в вебинаре, где будет рассмотрена новая и перспективная продукция компании Traco. Мы подробно рассмотрим сильные стороны и преимущества продукции Traco, а также коснемся практических вопросов, связанных с измерением уровня шумов, промывкой изделий после пайки и отдельно разберем, как отличить поддельный ИП Traco от оригинала.

Шурики
Вымогатель припоя

Карма: 3
Рейтинг сообщений: 48
Зарегистрирован: Пн авг 31, 2009 22:10:50
Сообщений: 506
Откуда: СК
Рейтинг сообщения: 0

Я не предлагаю включать светодиоды параллельно динамику.
Там не совсем понятно к чему транзистор.
Тут вопрос вот в чем: транзистор включен скорее всего в ключевом режиме. Скорее всего транзистор обратный. Тогда выход микроконтоллера через резистор подключен на базу; эмиттер на общий минус; а между коллектором транзистора и +3В включен высокоомный динамик (скорее всего пьезо). Я к чему: вот эти +3В, которые будут на динамике, могут отключаться при нажатии on/off. Можно проверить тестером. (Хотя при высоком сопротивлении динамика его, конечно, можно и не отключать)

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

Реклама
Реклама

Замена традиционных реле и предохранителей в автомобильных системах распределения питания и управления нагрузками, а также в промышленных системах электропитания постоянного тока на интеллектуальные силовые ключи – массово идущий процесс. Ведущую роль в нем играют силовые ключи PROFET производства Infineon. Специалисты компании отвечают на основные вопросы, возникающие при этом у разработчиков.

REB
Сверлит текстолит когтями

Карма: 4
Рейтинг сообщений: 20
Зарегистрирован: Вс сен 20, 2009 00:23:17
Сообщений: 1264
Откуда: Жидостан
Рейтинг сообщения: 0

Шурики — динамик 8ом 0.1вт (планирую заменить на 4ом динамик), Маркировка транзистора — 9014С ,

Динамик висит на красных проводах, питание по черным проводам. К + питания подключен один контакт динамика, а второй к ноге транзистора.

Следовательно смею предположить — транзистор выдаёт уже не постоянное напряжение, а звуковой сигнал (если одна фаза уже подключена к питанию, то что же идёт по второй фазе?)

Остаётся найти минус.










Реклама

REB
Сверлит текстолит когтями

Карма: 4
Рейтинг сообщений: 20
Зарегистрирован: Вс сен 20, 2009 00:23:17
Сообщений: 1264
Откуда: Жидостан
Рейтинг сообщения: 0

Реклама

Шурики
Вымогатель припоя

Карма: 3
Рейтинг сообщений: 48
Зарегистрирован: Пн авг 31, 2009 22:10:50
Сообщений: 506
Откуда: СК
Рейтинг сообщения: 0

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

В общем, отрисую — отпишусь.

Реклама

REB
Сверлит текстолит когтями

Карма: 4
Рейтинг сообщений: 20
Зарегистрирован: Вс сен 20, 2009 00:23:17
Сообщений: 1264
Откуда: Жидостан
Рейтинг сообщения: 0

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

REB
Сверлит текстолит когтями

Карма: 4
Рейтинг сообщений: 20
Зарегистрирован: Вс сен 20, 2009 00:23:17
Сообщений: 1264
Откуда: Жидостан
Рейтинг сообщения: 0

kira
Родился

Зарегистрирован: Сб окт 10, 2009 16:32:27
Сообщений: 4
Рейтинг сообщения: 0

dark_reader
Родился

Зарегистрирован: Ср май 19, 2010 19:52:05
Сообщений: 4
Рейтинг сообщения: 0

>TEHb

Карма: 3
Рейтинг сообщений: 2
Зарегистрирован: Ср ноя 11, 2009 17:19:30
Сообщений: 1286
Рейтинг сообщения: 0

_________________
Помогу с приобретением мощных, действительно хороших диодов от CREE.

dark_reader
Родился

Зарегистрирован: Ср май 19, 2010 19:52:05
Сообщений: 4
Рейтинг сообщения: 0

Страница 1 из 1 [ Сообщений: 14 ]

Часовой пояс: UTC + 3 часа

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23

Источник

Оцените статью