Понитроника ИМП-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м движением руки. Например лошадь в обычном состоянии.

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

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

Финальная сборка

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

Вид сверху.

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

Самое первое включение матрицы

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

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

Спойлер

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

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

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

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

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

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

[свернуть]

Обновление к Майскому конвенту

Итак работы была запланировано много, но из-за некоторых, независящих от меня обстоятельств, проделано было далеко не все, что хотелось.

Первым делом представлю я вам фотографии нашей «Понигочи» до всех изминений.

WP_20220122_23_13_30_Pro

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

Как видно все сделано в лучших традициях самоделок. У нас есть и присерансы в виде макетных плат, и контроллер заряда в изоленте, кстати старую версию можно было зарядить только разобрав её. Очень некачественные боксы для аккумуляторов типа 18650, благодаря которым у нас всегда работал лишь 1 АКБ. Кстати приклеены они на цианакрилатный клей, изначально я думал, что полиэтилен и поливинилхлорид крайне неактивно будут сцепляться и даже сделал сетку насечек, чтобы все хорошо держалось. Но как оказалось, это все было зря. Цианакрилатный клей прекрасно приклеил полиэтилен к поливинилхлориду, в отличие от дихлорэтана. Так что оторвать это было очень проблематично, с помощью отвертки поддевать и оставлять вмятины на корпусе понигочи, которые потом выпирали сверху. Пришлось эти места прогреть и заново все зашлифовать.

Интересные факты

Так для обработки корпуса был изготовлен «станок»:

Спойлер

[свернуть]

Так же была написана программа на JAVA для преобразования PNG в двумерный массив.

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

С кнопками тоже беда была. Одна кнопка недожималась. пришлось покупать еще одну.

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

Надо добавить больше игр и больше интерактива с лошадью. Может быть даже сделать матрицу 32*32. Но все равно этот проект будет завершен.

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

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