Оглавление:

Загадки Arduino: 4 шага (с изображениями)
Загадки Arduino: 4 шага (с изображениями)

Видео: Загадки Arduino: 4 шага (с изображениями)

Видео: Загадки Arduino: 4 шага (с изображениями)
Видео: 🖥️Играю в Cyberpunk на Ардуино! 2024, Сентябрь
Anonim
Загадки Arduino
Загадки Arduino

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

Как только 5V подается на USB-кабель, Arduino включается, и на ЖК-дисплее отображается короткое руководство, а затем последовательность из десяти загадок, которые необходимо решить, чтобы открыть отсек с сервоприводом, в котором может находиться подарок или подарок.

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

Я использовал то, что смог найти в местном хозяйственном магазине, а остальное распечатал на 3D-принтере. Очевидно, что вы можете настроить Riddlebox, добавив больше датчиков или исключив некоторые части. Дайте волю своему творчеству.

Тебе понадобится:

  • Arduino Mega (также может хватить Uno)
  • Гибкие перемычки
  • Ключ зажигания
  • Клавиатура 4x4
  • ЖК-дисплей I2C 20x04
  • 2 серводвигателя SG90
  • Алюминиевый корпус
  • Петля металлическая
  • Алюминиевый лист
  • Копировальная пила или вращающийся инструмент с отрезным кругом
  • Пистолет для горячего клея
  • Клей с высокой адгезией
  • флешка
  • Металлический напильник

Шаг 1: Настройка оборудования

Настройка оборудования
Настройка оборудования

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

Большинство клавиатур имеют булавки для каждой строки и каждого столбца. Узнайте, какие контакты являются контактами ряда, проверив целостность цепи между разными контактами, нажимая кнопки, чтобы замкнуть цепь (см. Примерную диаграмму). Остальные 4 булавки должны быть булавками колонки. (Примечание: иногда два самых внешних контакта подключаются к медной заливке на печатной плате, и на них можно не обращать внимания)

Подключите контакты клавиатуры COL0 - COL3 к контактам 12-9 Arduino и ROW0-ROW3 к контактам 8-5 Arduino.

ЖК-дисплей подключен через I2C, поэтому необходимо всего четыре контакта: SDA, SCL, 5V и GND.

Переключатель с ключом имеет три положения и шесть контактов: оба контакта C (общие) подключаются к земле, а два контакта с маркировкой NO (нормально разомкнутые) идут к контактам 22 и 23 Arduino соответственно. (Примечание: входы Arduino подтянуты высоко, поэтому нам нужно только подключить землю к общим контактам переключателя)

Два сервопривода используются для физического открытия двери отсека и блокировки ее с помощью защелки.

Подключите 5V и GND сервоприводов к Arduino и подключите сигнальные линии следующим образом: сервопривод замка = контакт 44, сервопривод двери = контакт 45.

Шаг 2: код и загадки Arduino

Код и загадки Arduino
Код и загадки Arduino
Код и загадки Arduino
Код и загадки Arduino

Код для Arduino состоит из нескольких файлов. Основной скетч инициирует все оборудование, библиотеки и глобальные переменные. Все загадки и блоки меню хранятся в функциях в отдельных файлах для облегчения управления. Состояние выполнения, которое сохраняется в EEPROM (т.е. безопасно даже после powercylce), определяет, какие функции загадки вызываются в функции переключения основного файла.

Я удалил любую личную информацию из кода и заменил некоторые решения на общие сообщения (1234…). Не стесняйтесь изменять код по своему усмотрению и добавлять индивидуальные решения.

Загадки и меню:

  1. Дополнительно: меню расширенных настроек со сбросом хода выполнения и элементами управления отсеком.
  2. Вступление: Вступительное меню с текстом приветствия и учебником.
  3. Элементарно: загадка атомного номера йода.
  4. Аутсорсинг: игроку необходимо связаться с адресом электронной почты, который автоматически отвечает на загадку чисел. (Загадка в форме звезды в изображениях)
  5. Шестнадцать: игроку нужно преобразовать шестнадцатеричное число в десятичное.
  6. Выбор: игроку необходимо пройти текстовое приключение, расположенное на флешке, пароль для следующего уровня скрыт в истории. (см. Amnesia.rtf)
  7. Автономный режим: игрок должен получить ключ для активации переключателя (например, по почте, найти способ замедлить его, если они слишком быстрые).
  8. Невидимый: пароль для следующего уровня написан на листе бумаги невидимыми чернилами.
  9. Исчисление: простая задача исчисления. (Больше заполнителя, который так и не был заполнен, так как у меня не хватило времени)
  10. Изменение: Короткая загадка о банкнотах евро, может быть адаптирована к любой валюте с банкнотами разного цвета.
  11. Терпение: игрок не должен поворачивать ключ в течение 5 минут, иначе таймер сбрасывается и удваивается. (Примечание: достаточно частое поворачивание ключа приводит к переполнению переменной и сбросу на ноль из-за ее ограниченного размера.)
  12. Ответ: «ЧТО ТАКОЕ ответ?». Решение очевидно 42.
  13. Конечный экран: Поздравления и инструкции по открытию отсека. (через клавишный переключатель)

Я включил дополнительную документацию в виде комментариев в файлы кода.

К вашему сведению: удерживание «A» во время заставки открывает меню настроек. Пароль: 2582

Шаг 3: Создание лицевой панели

Создание лицевой панели
Создание лицевой панели
Создание лицевой панели
Создание лицевой панели
Создание лицевой панели
Создание лицевой панели

Я купил корпус в местном хозяйственном магазине вместе с алюминиевым листом. В нем были перегородки, которые я позже использовал для создания стенок отсека.

Лист алюминия был слишком широким, поэтому я стал сокращать его с помощью копировальной пилы. Однако лучше подошла бы пила, вращающийся инструмент или даже шлифовальный станок с отрезным кругом, поскольку на это у меня ушло много времени, и я при этом щелкнул двумя лезвиями. Зазор в передней части корпуса сделан намеренно. В нем есть место для размещения внешнего аккумулятора и карты памяти.

После разметки, где я хотел, чтобы все было, я просверлил отверстия в углах отмеченных участков и снова вырезал их, используя копировальную пилу. Для отсека я попробовал отрезной круг на болгарке, и он работал фантастически. Я использовал металлический напильник, чтобы обрезать отверстия по размеру компонентов и удалить заусенцы. Быстрый проход с помощью орбитальной шлифовальной машинки придал всей поверхности матовый оттенок. Это, конечно, совершенно необязательно, я сильно потёр алюминиевую пластину, поэтому шлифование казалось хорошим способом скрыть их и удалить следы от маркеров.

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

Я прикрепил петлю к двери и металлической пластине с помощью клея высокой прочности. Наносится на обе поверхности, выдерживается 10-20 мин. а затем обе стороны прижимаются друг к другу. Связь происходит мгновенно, и впоследствии невозможно отрегулировать две детали.

Клавиатура и ЖК-дисплей держатся на месте с помощью горячего клея по бокам. (Примечание: обязательно изолируйте контакты компонентов от алюминиевого листа. Нанесение горячего клея помогает)

У клавишного переключателя есть резьба и гайка, поэтому я просверлил отверстие нужного размера и вставил переключатель в него.

Чтобы отсек открывался автоматически, я прикрепил дверцу и зафиксировал сервоприводы к нижней стороне алюминиевого листа горячим клеем. Фиксирующий крючок и открывающий рычаг, а также защелка замка я изогнулся в форме некоторых скоб (аналогично ленте для плумберов). Оглядываясь назад, я мог бы и, вероятно, должен был бы напечатать эти компоненты на 3D-принтере, так как они в этом смысле непрочные и, вероятно, первое, что выйдет из строя. Я прикрепил эти части с помощью горячего клея и клея с высокой адгезией соответственно (см. Рисунки).

Так как лицевая сторона выглядела не очень красиво, я решил напечатать несколько рамок, чтобы обвести различные компоненты, и также прикрепил их горячим клеем.

Шаг 4: Завершение корпуса

Завершение дела
Завершение дела
Завершение дела
Завершение дела

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

После подключения всех компонентов к Arduino Mega и горячего приклеивания его к корпусу я пропустил USB-кабель через небольшое отверстие между разделителями, чтобы он был доступен с внешней стороны.

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

Последнее, что оставалось сделать, - это нанести последние штрихи. Я разработал несколько простых наклеек в MS Publisher, которые распечатал, вырезал и прикрепил к передней панели с помощью простого клея.

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

В любом случае, я надеюсь, вам понравилась эта сборка Riddlebox. Если у вас есть какие-либо вопросы или идеи по улучшению, оставьте мне комментарий ниже, и я постараюсь ответить вам как можно скорее.

Рекомендуемые: