Хабрахабр

Электронная игра XO

Приветствую, Хабр!

Я буду делать игру крестики-нолики… Кому интересно – прошу под кат ->
Идея, как всегда, родилась спонтанно. Как Вы уже догадались по фотографии, речь сегодня пойдет не о классификации коньяка. Сыграв несколько раз, я увидел, что есть неподдельный интерес … и тут Остапа понесло. Как-то тихим осенним вечером я нарисовал на листике девять клеточек и предложил дочке сыграть в новую для нее игру.

Нет! Казалось бы, что проще продолжать рисовать клеточки на листке или скачать программу на телефон, но разве это интересно?

Что хотелось получить:

  1. Компактный девайс на батарейке (всякие емкостные тачи и MIPI дисплеи отпадают сразу).
  2. Соответственно, зарядка от USB (желательно с индикацией).
  3. Минимум затрат по времени на плату и ПО (ну как обычно, в общем).
  4. Сенсорные кнопки.
  5. Интеллектуальный девайс с возможностью играть с контроллером (без второго игрока). Переключение на одного и двух игроков.
  6. Включение/выключение одной кнопкой и желательно не сенсорной, чтобы не происходило случайных включений.
  7. Корпус напечатать на 3D принтере + матовое стекло чтобы закрыть светодиоды.

Обо всем по порядку.

Итак, было решено взять контроллер STM32F100. 1. На корпусе с 48 ногами получились занятыми все GPIO (без использования мультиплексоров и расширителей). На нем я вполне смогу реализовать простую логику игры для начала. Для каждого крестика и нолика используется по 8 светодиодов (соединенные параллельно), которые коммутируются полевиками (IRLML6401).

Соединяются разъемами с шагом 2мм, между платами стоит аккумулятор 1250мА. Девайс состоит из двух плат, одна со светодиодами и тачкнопками, вторая с контроллером, зарядкой, аккумом и т.д.

1.
Рис. Плата контроллера

2.
Рис. Плата светодиодов

Меня не покидало чувство, что игра получится неудобной из-за размеров или тачкнопок. Через несколько дней платы наконец пришли с производства. Кнопки отлично срабатывают через оргстекло 1,5-2мм. Забегая вперед скажу, что играть очень прикольно!

3.
Рис. Сторона TOP платы контроллера и светодиодов

4.
Рис. Сторона BOTTOM платы контроллера и светодиодов

Схема зарядки самая простая, которую я тыкаю в подобные устройства. 2.

5.
Рис. Схема контроллера заряда.

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

6.
Рис. Плата контроллера с компонентами

7.
Рис. Плата светодиодов с компонентами

8.
Рис. Плата светодиодов с компонентами со стороны тачкнопок.

Просто и работает без багов. Первый, и пока единственный, вариант софта я сделал на if’ах и в одном бесконечном цикле. При выигрыше гаснет все поле и дважды моргает выигравшая комбинация.

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

9.
Рис. Схема включения тачкнопки.

Их у меня было больше 9шт и поэтому я решил не использовать мультиплексор и повесить каждую кнопку на свой GPIO контроллера.

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

Долго думал как по простому реализовать включение/выключение одной кнопкой. 6. Поэтому поставил микросхему CD4013BM. Самый быстрый и правильный вариант, на мой взгляд – это на транзисторах и используя два GPIO контроллера, которых у меня нет. Работает отлично. Включение производится нажатием около 1с, выключение – быстрым нажатием.

10.
Рис. Схема включения CD4013BM.

Таким образом потребление минимально. Пин «OUT_KEY» идет на ногу включения (EN) DC/DC AP3418 (он делает 3V3).

11.
Рис. Плата с микроконтроллером и аккумулятором.

Корпус пока находится на стадии проектирования. 7. Планируется просто аккуратненькая коробочка с матовым оргстеклом 1,5мм сверху.

Нет, просвечивает отлично, а вот разлиновки поля не видно. Когда я положил сверху несколько листов бумаги, чтобы посмотреть, как идет просвечивание, я понял, что это фиаско. 2.» видны установленные еще 4 дополнительных светодиода по углам центрального квадрата (их нет на моей спаянной плате). Поэтому на «Рис. Если лучей не получится, то в любом случае будет видно фрезеровку. Если все получится как это выглядит у меня в голове, то если сделать фрезеровку с обратной стороне на оргстекле, то эти 4 синих светодиода дадут 4 тонких луча, которые образуют разметку поля, которая будет включаться при включении девайса.

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

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

До новых встреч!

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть