Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле

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


Недавно я случайно наткнулся на новые выпуски программы "Форт Боярд" и увидел там на одном из испытаний такое устройство:

Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост

Задача устройства включать случайным образом 3 цвета (красный, синий, белый) на 12 светодиодах, а задача игроков запомнить эту последовательность за 10 секунд и повторить на своих табло при помощи тумблеров:

Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост

Затем устройство сравнивает то, что набрали игроки, с правильной последовательностью и сообщает об ошибках.


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


Сразу спойлер - у меня получилось :)

Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост

Сперва нарисовал макет в векторном редакторе для дальнейшей лазерной резки, пазы коробочек при этом помог нарисовать open-source генератор макетов boxes.py.

Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост

Затем вырезал все это на лазерном станке LaserPro Mercury III ME-25

Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост

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


Файлы для скачивания материалов проекта будут в конце этого поста.


Далее проверил, что все собирается, и стал думать над электронной начинкой. У меня была не нужная плата Arduino UNO R3 и мне хотелось уместиться по количеству пинов в её 14 цифровых и 6 аналоговых ножек.


Но здесь возникла проблема - только 36 RGB-светодиодов в игре потребуют 108 ножек для подключения, плюс еще 25 кнопок для управления - где взять столько пинов? Расширители портов или сдвиговые регистры я брать не хотел, и вдруг вспомнил о хорошей замене RGB-светодиодам - адресной светодиодной ленте на чипах WS2812.


Эта лента хороша тем, что ей достаточно одной цифровой ножки (на которой генерируются пачки с кодами для чипов) для управления целой кучей светодиодов, а вот, собственно, и схема подключения, найденная на просторах интернета:

Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост

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


Остается решить вопрос с кнопками.

Я начинаю искать в сети способы подключения множества кнопок на одну ножку платы и тут же нахожу решение - подключение кнопок через резисторы к АЦП (аналого-цифровой преобразователь) Arduino и считывание уровня напряжения. Думаю, здесь всё пояснит эта картинка (отдельная благодарность автору этой статьи):

Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост

При нажатии разных кнопок, в цепь подключается разное количество резисторов, образующих между собой делитель напряжения. В примере выше при нажатии первой кнопки на А0 появится напряжение в 2,5 В, при нажатии второй - 3В и так далее.


В итоге общая схема проекта приняла следующий вид:

Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост

Решил сделать колбочки-рассеиватели света на светодиодную ленту как в оригинальной игре:

Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост

Сперва пробовал резать трубку клея от клеевого пистолета, но получалось не очень ровно и не привлекательно. Плюнул на это дело и решил распечатать 36 колбочек на 3D-принтере, зашел в простейший онлайн 3D-редактор Tinkercad и нарисовал модель:

Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост

Распечатал на 3D-принтере Picaso Designer X

Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост

И мне оставалось только спаять все это дело и написать программу

Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост
Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост
Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост

Ну и, кажется, все готово для того, чтобы показать сие изделие моим самым строгим экспертам :)

Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост
Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле Проект, Лазерный станок, 3D печать, Реверс-инжиниринг, Arduino, Видео, Длиннопост

На удивление, дети с большим удовольствием приняли игру - спрашивали, можно ли купить ее за деньги или бонусы, которые они у нас копят, и даже звали родителей и бабушек поиграть :)


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


За этим у меня все, обещанные материалы (код и макет для резки в форматах CDR, PDF, SVG) можно скачать здесь.

Arduino & Pi

1.4K постов20.6K подписчика

Добавить пост

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу

Вы смотрите срез комментариев. Показать все
Автор поста оценил этот комментарий

А что в "Форт Боярде" на второй фотке сверху делает Сергей Шнур?)

раскрыть ветку (2)
Автор поста оценил этот комментарий
Он внезапно ведущий в последнем сезоне..
Автор поста оценил этот комментарий

новый клип снимает

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку