Серия «Ну, Пикабу! - видеоигра»

Делаем клон игры "Ну, погоди!". Часть 4. Программируем игру 1

Часть 3

Делаем клон игры "Ну, погоди!". Часть 4. Программируем игру 1 Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост, Программирование, Видео

Давайте попробуем написать исходный код игры. Будет использоваться полностью процедурное программирование.

По структуре игра имеет:

- Область данных
- Проверка нажатых клавиш (keyListener)
- Рендерер
- Обработчик игровых событий

С точки зрения программирования, суть задач игры следующая:

- Резервируется область данных (у нас это 25 бит, но т.к. минимальный размер данных в C - это char (255), то это будет массив из 40 бит. В нём будет храниться игровое поле. 4 char'а для "жердочек", и 1 для "корзины".

- Каждый такт игры (раз в секунду) элементы массива побитно сдвигаются (<<) в  сторону.

- Если было определено, что сдвинутый бит совпадает или не совпадает с определенной маской (которая задаётся корзиной), осуществляется ветвление: либо яйцо поймано, либо не поймано с дальнейшим переходом в соответствующие процедуры.

Давайте попробуем реализовать эти задачи.

1. Резервируем область памяти. Заполним произвольными значениями:

Делаем клон игры "Ну, погоди!". Часть 4. Программируем игру 1 Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост, Программирование, Видео


Напоминаю нумерацию массива: 0-3 для "жердочек", 4 - для "волка". Всё просто.

2. Определимся с таймингами и таймерами
В нашей игре (если не считать звука) должно быть два независимых таймера - один отсчитывает игровые такты, второй - для рендеринга. Поэтому сразу же инициализируем их:

Делаем клон игры "Ну, погоди!". Часть 4. Программируем игру 1 Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост, Программирование, Видео


3. Определимся с портами ввода/вывода

Делаем клон игры "Ну, погоди!". Часть 4. Программируем игру 1 Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост, Программирование, Видео

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

- Так как порт B имеет лишь 8 бит, а нам нужно 9 для игры, то девятый бит перенесём на PD6
- Оказалось, что при сборке дисплея была допущена ошибка. А именно: светодиоды проводят ток в обе стороны. Изначально я не предполагал, что так будет, но выяснилось, что при включении одних светодиодов загораются другие. Придется задействовать троичную логику, чтобы разорвать цепь, для этого манипулируем не только PORT, но и DDR регистром.

Исходя из этого, напишем дальнейшие функции.

4. Напишем функцию рендеринга построчно

Делаем клон игры "Ну, погоди!". Часть 4. Программируем игру 1 Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост, Программирование, Видео

С учётом вышесказанных костылей, он будет выглядеть следующим образом:

От 1 до 4 - жёрдочки, выставляются аноды и катоды согласно содержимому char'а data (наш массив cArr 0-3).
Если 5 - тогда зажигаем другой порт.

Таким образом, мы можем развернуть картинку на матрицу 4x5.

Рендеринг осуществляется по словам, так как содержимое одной жердочки и есть слово. Мы можем присвоить его порту непосредственно, лишь сравнив с маской портов (аноды и катоды) и сдвинув на нужное количество единиц.

Если рендеринг осуществлять покоординатно (x, y, d), то метод будет выглядеть по-другому, я бы его объяснил, но это займёт очень много страниц. Возможно, в другой раз.

5. Напишем функцию рендеринга всего игрового поля

Делаем клон игры "Ну, погоди!". Часть 4. Программируем игру 1 Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост, Программирование, Видео

Очень просто: перебор массива от 1 до 5 для построчного отображения. Эта функция будет вызываться постоянно с максимально возможной скоростью.

6. Напишем функцию принятия внешних данных (обработка нажатий кнопок):

Делаем клон игры "Ну, погоди!". Часть 4. Программируем игру 1 Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост, Программирование, Видео

Функция элегантна и проста, подобно осеннему вальсу.
Если на инвертированном значении PIND, который сравнивается с битовой маской 0x0F что-то произошло, т.е. его мгновенное значение стало больше нуля, значит в элемент массива 4 заносится это самое значение.

Говоря по-простому, у нас все кнопки представляют собой как бы RS триггеры, поэтому даже фильтровать дребезг и помехи на них нет смысла - они попросту невозможны. Как только выяснилось, что напряжение начинает шевелиться на ножке, значит, нужно переключить регистр (переменную), заменив данные.

Таким образом, мы управляем корзиной.

7. Напишем игровое событие.

Делаем клон игры "Ну, погоди!". Часть 4. Программируем игру 1 Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост, Программирование, Видео

moveEgg - сдвиг яйца. Т.е. cArr[i] << 1 - тот самый сдвиг, который и приводит к изменению картинки на экране.

Дальнейшая часть функции будет переписана, но для демонстрации пока оставим её. Т.е. если в результате сдвига, сравненного с маской 0b00010000 что-то произошло, то есть яйцо укатилось за пределы "жердочки", то мы возвращаем его обратно в начальное положение.

В дальнейшем именно в этом месте будет сравнение с битовой маской cArr[4], то есть с введёнными нами с клавиатуры (кнопок) данными.

8. Подключим таймеры

Делаем клон игры "Ну, погоди!". Часть 4. Программируем игру 1 Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост, Программирование, Видео

Таймер 1, срабатывающий раз в секунду. Обрабатывает событие, то есть, в нашем случае, сдвигает яйца.

Делаем клон игры "Ну, погоди!". Часть 4. Программируем игру 1 Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост, Программирование, Видео

В главном цикле непрерывно осуществляется рендеринг и проверка того, была ли нажата кнопка.

Есть ещё быстрый 8-битный таймер 0, пока не инициализированный, на нём будет целесообразно в дальнейшем реализовать звук.

Выполнив все эти шаги, получим следующую картину:


Нам осталось сделать, в общем то, немного:

- Сравнение с введённой битовой маской
- Наглядно изобразить процедуры ветвления, то есть, что произойдёт, если сделать то или иное действие. Например, быстро мигнуть корзиной, если яйцо поймано. Показать исчезающую корзину, если яйцо утеряно. То есть, тут уже вступают художественные и гейм-дизайнерские элементы, а не простое программирование.
- Распределение яиц в "псевдослучайном" порядке, чтобы игра была интереснее

Опционально:
- Ускорение яиц со временем, выдача более 1 яйца подряд на корзину (усложнение игры).

Попробуем реализовать всё это в следующей (5) части поста.

А пока всем спасибо, с вами был Kekovsky, писал специально для pikabu.ru, до новых встреч.

Показать полностью 9 1

Делаем клон игры "Ну, погоди!". Часть 3. Подключаем электронику

Делаем клон игры "Ну, погоди!". Часть 3. Подключаем электронику Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост

Часть 2

Всем привет. Продолжаем разработку и изготовление "портативной игровой консоли" электронной игрушки своими руками.

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

Следующая задача заключается в том, чтобы разработать интерфейс подключения. Так как нет оборудования для травления плат, придётся прототип выполнить на макетной плате при помощи проводников.

Конструктивно схема состоит из:

- Микроконтроллера. Я взял Attiny2313, так как оставался от предыдущих проектов. Конечно, это перебор - ведь в приборе не нужны ни таймеры, ни АЦП, ни аппаратные шины. Можно взять любой другой контроллер, более того, я уверен что игра запустится даже на Attiny13 (который я ставил в утюг из предыдущих постов), просто ему понадобятся сдвиговые регистры HC164 для развёртки дисплея. Мы имеем 9 выводов дисплея (4x5) и 4 кнопки, соответственно, потребуется задействовать 13 I/O портов.

- Элемент кнопки. Конструктивно очень прост - состоит из кнопки и двух резисторов. Позволяет устанавливать логические уровни при нажатии на кнопку. Так как игра работает по принципу flip-flap, событие происходит при изменении уровня, то гашение помех не требутся, RC цепочка не нужна. Нам нужно 4 таких элемента:

Делаем клон игры "Ну, погоди!". Часть 3. Подключаем электронику Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост

- LED матрица. Ничем не отличается от обычного семисегментного индикатора, но имеет организацию 5x4. 5 анодов, 4 катода. Будет организована динамическая LED-индикация по такому принципу:

Делаем клон игры "Ну, погоди!". Часть 3. Подключаем электронику Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост

То есть, поочередно будут сканироваться аноды и катоды, подобно тому, как это было на кинескопном (ЭЛТ) мониторе.

Кстати говоря, при использовании такой матрицы в данной игре, есть особенность, что резистор R3 можно установить на аноды (либо катоды), так как одновременно больше одного катода за одну строчку у нас задействовано не будет. В результате этого не будет просадки яркости.

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

Данную конструкцию мы повторяем 5 раз. Для удобства отладки выводим всё на DuPont пины. Один пин (белый) зарезервируем для звука. Разводим все линии и раздаём питание элементам:

Делаем клон игры "Ну, погоди!". Часть 3. Подключаем электронику Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост

Готовая макетная плата:

Делаем клон игры "Ну, погоди!". Часть 3. Подключаем электронику Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост

Далее подключим всё штырьками к MCU (есть самодельная ардуина отладочная плата под 2313):

Делаем клон игры "Ну, погоди!". Часть 3. Подключаем электронику Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост

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

Делаем клон игры "Ну, погоди!". Часть 3. Подключаем электронику Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост

Зажигаем все аноды и по одному катоду. Видно, что все светодиоды линии работают (только на белом надо будет чуть ток ограничить):

Делаем клон игры "Ну, погоди!". Часть 3. Подключаем электронику Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост

Далее, дело остаётся за малым: написать основную программу игры.
Программировать её будем в следующем посте. Игра включает:

- Рендерер (развёртка матрицы) - подпрограмма для демонстрации содержимого регистров на LED-дисплее. Зарезервируем 5 байт, цикл for разворачивает картинку в 2D плоскость.

Игровая часть:
- Считывание содержимого кнопок (keyListener)

- Сдвиг переменных, логическое сравнение
- Подпрограммы "начало игры, конец игры, потеря жизни у волка"
- Звуковая подпрограмма на таймере (будет реализована в отдельном посте)

А на сегодня всё, с вами был Kekovsky, писал не знаю зачем для pikabu.ru

Показать полностью 7

Делаем клон игры "Ну, погоди!". Часть 2. Изготавливаем игровой контроллер

Делаем клон игры "Ну, погоди!". Часть 2. Изготавливаем игровой контроллер Самоделки, Электроника, Техника, Игры, Ну погоди!, Пятничный тег моё, Разработка, Длиннопост

Часть 1

Всем доброй пятницы! Продолжаем изготовление игровой консоли своими руками. Для того, чтобы приступить к следующему этапу изготовления приставки, понадобятся следующие предметы:

Делаем клон игры "Ну, погоди!". Часть 2. Изготавливаем игровой контроллер Самоделки, Электроника, Техника, Игры, Ну погоди!, Пятничный тег моё, Разработка, Длиннопост

А именно:
- Наш самодельный LED-дисплей из первой части
- Макетная плата (такой длинной у меня не нашлось, пришлось составлять из двух кусочков, итоговый размер 115x50 мм)
- 4 кнопки для управления
- 5 транзисторов BC557
- Китайская книга

Первым делом, нужно припаять дисплей к макетной плате. Вообще, при промышленном производстве, плата блока управления может быть совмещена с дисплеем (светодиоды припаяются на ней же). Либо может быть просто вытравлена. В моём случае некоторые этапы изготовления пришлось упростить, поэтому будет использоваться макетная плата и перемычки.

Как я уже и говорил в предыдущей части, выводы лучше делать из одножильного провода.

Далее, понадобится сделать дизайн лицевой панели. Так как производство автоматическое лишь наполовину, то ручная пайка в макетную плату вносит хаос в чертёж - некоторые детали сдвинуты. Незначительно, но при изготовлении подобных предметов даже разница в 0,1мм ощутимо влияет на процесс. Детали просто не сойдутся. Поэтому для изготовления панели пришлось вводить уже готовый хаос в компьютер - я просто отсканировал спаянную плату:

Делаем клон игры "Ну, погоди!". Часть 2. Изготавливаем игровой контроллер Самоделки, Электроника, Техника, Игры, Ну погоди!, Пятничный тег моё, Разработка, Длиннопост

Далее обрисовал в векторном редакторе её контур:

Делаем клон игры "Ну, погоди!". Часть 2. Изготавливаем игровой контроллер Самоделки, Электроника, Техника, Игры, Ну погоди!, Пятничный тег моё, Разработка, Длиннопост

Затем уже в трёхмерном редакторе расширил Z-координату до 2мм, превратив это в модель:

Делаем клон игры "Ну, погоди!". Часть 2. Изготавливаем игровой контроллер Самоделки, Электроника, Техника, Игры, Ну погоди!, Пятничный тег моё, Разработка, Длиннопост

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

Делаем клон игры "Ну, погоди!". Часть 2. Изготавливаем игровой контроллер Самоделки, Электроника, Техника, Игры, Ну погоди!, Пятничный тег моё, Разработка, Длиннопост

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

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

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

Далее необходим ещё один слой, который опять же я нарисовал в графическом редакторе. К сожалению, я не дизайнер, но креативная кость имеет место:

Делаем клон игры "Ну, погоди!". Часть 2. Изготавливаем игровой контроллер Самоделки, Электроника, Техника, Игры, Ну погоди!, Пятничный тег моё, Разработка, Длиннопост

Вместо "Ну, погоди!" у нас будет "Ну, пикабу!". Дескать, мы ещё вам покажем, что есть порох в пороховницах.

Остается лишь собрать очередной "бутерброд" из слоёв:

Делаем клон игры "Ну, погоди!". Часть 2. Изготавливаем игровой контроллер Самоделки, Электроника, Техника, Игры, Ну погоди!, Пятничный тег моё, Разработка, Длиннопост

Конечно, панель завершена не на 100%. Ещё я планировал установить на кнопки красные колпачки, однако, эту задачу перенёс на потом.

В данном случае нам бы снова очень помог CNC-лазер: я попытался вырезать отверстия для кнопок скальпелем, но плёнка очень толстая и получилось это некачественно. Сверление бы также не дало эффекта.

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

В общем и целом, технологическая карта на эту панель получилась следующая:

ДИСПЛЕЙ:
- Подложка (текстолит) - 2D векторное изображение: разведённая печатная плата
- Сетка из скотча: 2D векторное изображение: эскиз сетки
- Накладка дисплея: 2D векторное изображение: рисунок накладки

ИГРОВОЙ МОДУЛЬ:
- Основная плата (может быть совмещена с дисплеем) - 2D векторное изображение: разведённая печатная плата
- Передняя панель - 3D модель
- Рисунок передней панели - 2D векторное изображение.

Таким образом, для изготовления данной панели нам понадобилось 5 технологических электронных изображений и одна трёхмерная модель. Вообще, такие игрушки фабричного производства сейчас стоят недорого. Однако, все эти чертежи и эскизы всё равно нужно разрабатывать, для каждого изделия. Поэтапно - собирается сначала опытный образец, далее отправляется на тестирование и доработку, затем происходит упрощение и оптимизация (удешевление) техпроцесса.

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

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

Собственно говоря, размышления на тему закончены. А мы с вами в следующей части поста выполним такие этапы:

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

Скорее всего, постов будет чуть больше, а не три, как заявлено изначально. Отдельным постом пойдёт программирование игрового движка и реализация звука (который является практически неотъемлемой частью данной игры). Будильник, счетчик очков и мультик реализован не будет - так как это уже дополнительные "навороты", не являющиеся обязательными для работы данной игры.

Писал Kekovsky специально для pikabu.ru
При копировании статьи ссылка на автора обязательна (хотя, как я уже заметил, в основном, копируют их только грабберы).

Показать полностью 7

Делаем клон игры "Ну, погоди!". Часть 1. Дисплей своими руками

Делаем клон игры "Ну, погоди!". Часть 1. Дисплей своими руками Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост

Всем привет! Помните такую игру "Ну, погоди" от фирмы Электроника, где ехидный волк ловит яйца в корзину? У многих такая в детстве была. А те, у кого не было, по-черному завидовали везучим ребятам. Возникла идея сделать копию данной игры, и, конечно же, рассказать об этом вам. Обо всём по порядку.

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

Первым делом, для того, чтобы изготовить данную игру, нам понадобится дисплей. Заглянув на известные интернет-барахолки я определил, что такая игра в рабочем виде стоит весьма дорого (3-4 тысячи рублей), а ЗИП в виде дисплея - от 1000 рублей. Помните, как пел Стинг? "But that's not the shape of my heart". Поэтому было решено дисплей изготовить также своими руками.

Конечно, LCD (ЖК) дисплей, как в оригинальной игре, изготовить своими руками без специального оборудования достаточно затруднительно. Нам нужны будут стеклянные пластины со специальным напылением, нематические кристаллы, травилка, герметик - в общем, дело весьма затратное. Но мы спокойно можем изготовить светодиодный (LED) дисплей для нашей игры. Для этого особо хитрых приспособлений не понадобится - только лишь время (у меня ушёл день) и немного недорогих материалов. Само собой, дисплей я немного упрощу, но так, чтобы сохранилась суть игры. Аналогичным образом можно изготовить дисплеи для других устройств.

Итак, первым делом нарисуем на первом попавшемся клочке бумаги "концепт-арт" будущей игры. Использовать CAD'ы для такой мелочи я даже не стал, набросал от руки как есть:

Делаем клон игры "Ну, погоди!". Часть 1. Дисплей своими руками Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост

Примерно выяснены углы и габариты. Нам понадобятся заготовки размером 70x30 мм. Следующих материалов:

- Стеклотекстолит фольгированный односторонний 1мм
- Плёнка рассеивающая белая (находится в разбитых ЖК экранах телефонов или телевизоров)
- Плёнка прозрачная LOMOND.
- Скотч двухсторонний 3M 2мм

Дисплей будет состоять из различных слоёв (подложка, сетка, рассеиватель, трафарет).

Возьмём заготовку из стеклотекстолита:

Делаем клон игры "Ну, погоди!". Часть 1. Дисплей своими руками Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост

Далее, распечатаем наш "концепт-арт" в виде более-менее вменяемого макета, и перенесём центры будущих светодиодов на заготовку:

Делаем клон игры "Ну, погоди!". Часть 1. Дисплей своими руками Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост

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

Делаем клон игры "Ну, погоди!". Часть 1. Дисплей своими руками Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост

Далее, следует взять обыкновенный паяльник, припой, спиртовой флюс ФПБ - залудить плату, смонтировать светодиоды и выводы дисплея:

Делаем клон игры "Ну, погоди!". Часть 1. Дисплей своими руками Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост

В данном случае вышла небольшая накладка - видите маленькие светодиоды: я взял их 20 штук, так как думал, что мне этого хватит, но не учёл следующий фактор: так как габариты данных светодиодов не превышают 1,5х1,5мм, получилось так, что при пайке некоторые из них я просто сдул со стола в процессе дыхания. Поэтому для центра пришлось взять 4 больших светодиода, хотя они в данном случае не очень подходят по размеру, и имеют другой цвет. С другой стороны, будет дифференциация по цветам.

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

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

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

Теперь наносим следующий слой - решетку:

Делаем клон игры "Ну, погоди!". Часть 1. Дисплей своими руками Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост

В идеале, по аналогии с печатной платой, которая должна выполняться фотолитографией, данная решетка вырезается из заготовки при помощи CNC-лазера. Это позволит качественно расположить элементы сетки, чтобы избежать засветов/смещений. В данном случае таким лазером я не обладаю, поэтому пришлось нарезать скотч на фрагменты, используя маникюрные ножницы и, затем, расположить кусочки скотча. Это вносит некоторый хаос и отклонения в оригинальный макет. После того, как скотч нанесён, можно наклеить белую рассеивающую плёнку и загнуть выводы:

Делаем клон игры "Ну, погоди!". Часть 1. Дисплей своими руками Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост

Качество изображения зависит от толщины этой плёнки. При её возрастании и отдалении плёнки от светодиодов свет будет рассеиваться равномернее. С другой стороны, будут возникать потери света. Моя плёнка имеет толщину где-то в 0.1мм, конечно, для качественного рассеивания этого маловато. Зато есть выигрыш по толщине.

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

Делаем клон игры "Ну, погоди!". Часть 1. Дисплей своими руками Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост

Теперь дело остаётся за малым - на основании предыдущего макета и получившейся сетки (желательно её отсканировать перед наклейкой плёнки) размещаются фигуры и знаки дисплея, несущие информацию. Используется клей B7000, плёнка LOMOND для струйной печати. Трафарет необходимо инвертировать. Результат:

Делаем клон игры "Ну, погоди!". Часть 1. Дисплей своими руками Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост

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

Делаем клон игры "Ну, погоди!". Часть 1. Дисплей своими руками Самоделки, Электроника, Техника, Игры, Ну погоди!, Разработка, Длиннопост

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

Кстати говоря, оригинальная "Ну, погоди" от Электроники уже является копией японских разработок. Более того, есть версия, что в СССР даже не успевали изготовить копию контроллера игры, поэтому маркировку японских микросхем затирали или замазывали смолой.

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

Всем спасибо! С вами был Kekovsky. Писал и изготавливал специально для pikabu.ru
При копировании материалов ссылка на автора (меня) обязательна.

Показать полностью 10
Отличная работа, все прочитано!