Понитроника ИМП-013

Игра микропроцессорная пиксельная. А именно виртуальный питомец с некоторыми особенностями.

Хотите верьте, хотите нет, но изначально была написана программа питомца, которая была прикручена к определенному блоку земли в майнкрафте, который по задумке надо было найти, вырастить и из него получить некое случайное животное… Да я любитель Sky-Land, а с животными там всегда беда и их приходится чуть ли не через всю карту приносить себе на базу.

История создания

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

Если не пару факторов, то этот проект и не существовал бы:
1 — я уже больше года хочу что либо собрать, на базе STM32. Собирать какие либо проекты с 3-мя светодиодами или банально какую либо ненужную вещь, вроде робота, который движется по линии, я не хочу;

2 — исходя из ситуации в квартире, то все какие либо нужные детали, находятся в шкафах ,которые завалены вещами снаружи и доступа к ним нет. Т.е. я не могу чинить электронику, делать что либо из журналов Радио времен СССР, да и просто пытаться изобрести опять что либо на базе деталей, которые старше меня.

3 — пожалуй самый главный фактор это НБК и поездка моего товарища со своим стендом. Кстати большая благодарность Александру за эту возможность.

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

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

С матрицей же вышла забавная история. Банально в магазине не было матрицы 16х16 желтого цвета. Зато были в наличии 256 светодиодов. В общем я купил светодиоды, развел плату, просверлил отверстия ~1024 шт т.е. на светодиоды 512 и на перемычки 512, запаял все светодиоды, развел, вытравил плату дешифратора, все запаял, проверил и собрал в корпус. Аппаратная часть была сделана за 1 день, на корпус ушли 2 недели, потому, что некоторые места были пролиты пластиком, растворенным в дихлорэтане.

В общем хватит лирики, перейдем же к самому устройству.

Описание устройства

Устройство состоит из светодиодной матрицы 16х16, платы дешифратора и отладочной платы с микроконтроллером STM32F103C8T6. Как выше и говорил, все сделано из деталей, которые буквально «валялись у меня под ногами». Не переживайте я по ним не ходил, просто гора плат, лежащая уже не первый год на полу, как бы намекает что пора её пустить в дело или наконец уже выкинуть.

Та самая куча хлама (Кликабельно)

Главный «спонсор» радиодеталей, начиная с 2018 года:

Во время создания устройства меня ожидал целый ряд проблем. Сначала у меня не получилось разобраться с рандомайзером в C. Но проблема решилось банально с помощью «include <stdlib.h>». Потом проблемы были с динамической индикацией, засветка элементов меня долго мучала, но как оказалось надо сначала занести данные в регистр сдвига(ир8) а уж только потом зажечь нужную строку. Если сделать наоборот, то весь процесс сдвига будет виден на матрице. Отладка самой программы заняла больше времени, целая куча проблем была в коде который не работал как надо. Некоторые функции пришлось переписывать с 0, опираясь на логику которую я познал во время дебага…

Рисование состояний лошади и пунктов меню тоже заняло не 1 день, некоторые моменты были нарисованы 1м движением руки. Например лошадь в обычном состоянии.

В общем ниже можно пролистать галерею с фотографиями, на котором изображен процесс работы.

WP_20210416_10_44_16_Pro

Изображение 1 из 34

Здесь же несколько фотографий с первыми попытками запуска устройства:

WP_20210411_21_01_21_Pro

Изображение 1 из 6

Различные тесты и эксперименты с матрицей (Кликабельно)

Самая первая попытка запустить динамическую индикацию. Корпуса еще нет, а пластик до сих пор в гараже. Рандом из C еще не изучен.

Попытка в осмысленную работу. Запуск игры «жизнь». С рандомом я еще не разобрался и по этому у нас постоянно один результат симуляции. А еще есть проблема в паразитной засветке светодиодов.

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

Начало логического управления положено. Кнопки установлены, корпус зашкурен и отмыт. Первое что я попробовал, это игра Пинг-Понг.

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

Демонстративное видео с описанием работы. Под спойлером т.к. снято быстро и не было время на нормальный сценарий и пр.

Дополнительная информация

Конвертер png2matrixGitHub
Инструкция в формате PDFСкачать