Делаем электронную игру для тренировки памяти | Лазерный станок и 3D-принтер в деле
Ещё давно ко мне пришла мысль сделать что-то интересное для детей нашего учебного центра, которые приходят заранее на занятия и не знают чем себя завлечь.
Недавно я случайно наткнулся на новые выпуски программы "Форт Боярд" и увидел там на одном из испытаний такое устройство:
Задача устройства включать случайным образом 3 цвета (красный, синий, белый) на 12 светодиодах, а задача игроков запомнить эту последовательность за 10 секунд и повторить на своих табло при помощи тумблеров:
Затем устройство сравнивает то, что набрали игроки, с правильной последовательностью и сообщает об ошибках.
Мне показалось это отличным полезным развлечением для наших ребят и я принялся размышлять над сборкой подобного устройства.
Сразу спойлер - у меня получилось :)
Сперва нарисовал макет в векторном редакторе для дальнейшей лазерной резки, пазы коробочек при этом помог нарисовать open-source генератор макетов boxes.py.
Затем вырезал все это на лазерном станке LaserPro Mercury III ME-25
Если у вас нет возможности заказать подобную резку у себя в городе, можно пойти немного другим, более трудоёмким путем - наклеить на любой подходящий материал толщиной 3мм распечатку данного макета (например, картонную коробку) и вырезать её канцелярским ножом.
Файлы для скачивания материалов проекта будут в конце этого поста.
Далее проверил, что все собирается, и стал думать над электронной начинкой. У меня была не нужная плата Arduino UNO R3 и мне хотелось уместиться по количеству пинов в её 14 цифровых и 6 аналоговых ножек.
Но здесь возникла проблема - только 36 RGB-светодиодов в игре потребуют 108 ножек для подключения, плюс еще 25 кнопок для управления - где взять столько пинов? Расширители портов или сдвиговые регистры я брать не хотел, и вдруг вспомнил о хорошей замене RGB-светодиодам - адресной светодиодной ленте на чипах WS2812.
Эта лента хороша тем, что ей достаточно одной цифровой ножки (на которой генерируются пачки с кодами для чипов) для управления целой кучей светодиодов, а вот, собственно, и схема подключения, найденная на просторах интернета:
Вопрос со светодиодами решен - если взять ленту с 30 светодиодами на 1 метр, то выйдет 3,3 см между соседними светодиодами, что как раз подходит для нашего проекта.
Остается решить вопрос с кнопками.
Я начинаю искать в сети способы подключения множества кнопок на одну ножку платы и тут же нахожу решение - подключение кнопок через резисторы к АЦП (аналого-цифровой преобразователь) Arduino и считывание уровня напряжения. Думаю, здесь всё пояснит эта картинка (отдельная благодарность автору этой статьи):
При нажатии разных кнопок, в цепь подключается разное количество резисторов, образующих между собой делитель напряжения. В примере выше при нажатии первой кнопки на А0 появится напряжение в 2,5 В, при нажатии второй - 3В и так далее.
В итоге общая схема проекта приняла следующий вид:
Решил сделать колбочки-рассеиватели света на светодиодную ленту как в оригинальной игре:
Сперва пробовал резать трубку клея от клеевого пистолета, но получалось не очень ровно и не привлекательно. Плюнул на это дело и решил распечатать 36 колбочек на 3D-принтере, зашел в простейший онлайн 3D-редактор Tinkercad и нарисовал модель:
Распечатал на 3D-принтере Picaso Designer X
И мне оставалось только спаять все это дело и написать программу
Ну и, кажется, все готово для того, чтобы показать сие изделие моим самым строгим экспертам :)
На удивление, дети с большим удовольствием приняли игру - спрашивали, можно ли купить ее за деньги или бонусы, которые они у нас копят, и даже звали родителей и бабушек поиграть :)
Думаю, это не последний мой эксперимент в рамках небольшого реверс-инжиниринга и готов выслушать ваши предложения и идеи других интересных проектов, которые вам попадались.
За этим у меня все, обещанные материалы (код и макет для резки в форматах CDR, PDF, SVG) можно скачать здесь.
Arduino & Pi
1.4K поста20.6K подписчиков
Правила сообщества
В нашем сообществе запрещается:
• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)
• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском
• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)
• Рассуждать на темы политики
• Нарушать установленные правила Пикабу