Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Это неблагоприятное время для восстания. Хотя Звезда Смерти была уничтожена, имперские войска используют бесплатное оборудование и Ардуино в качестве секретного оружия.
В этом преимущество бесплатных технологий, их может использовать любой человек (хороший или плохой).
На скрытой базе, расположенной на планете Аноат, они строят 3D-принтер, способный копировать Imperial Destroyer.
Единственное решение победить Империю - это то, что группа повстанцев под командованием Люка Скайкуартиэльеса и Оби-Ван Банзи победит имперские войска и получит ключ, который даст доступ к планам по уничтожению секретного оружия.
Этот ключ состоит из 4 цветов, и у вас есть 10 попыток его расшифровки. Есть всего четыре правила:
- Цвета могут повторяться
- Белый свет указывает на то, что вы выбрали правильный цвет и положение.
- Фиолетовый свет указывает на то, что вы попали в цвет, но не в позицию.
- Если нет света, значит, вы не угадали ни цвет, ни положение.
Вы должны поторопиться, поскольку с другой стороны, злой Дарт Баллмер попытается заполучить ключ перед вами. В этом случае вы не сможете узнать, что это такое, и у вас не будет доступа к планам секретного оружия. Ваша миссия потерпит неудачу.
Маленький падаван, пусть сила сопутствует тебе, чтобы расшифровать ключ и таким образом спасти Галактику.
Шаг 1: Материал
Материал, необходимый для создания Mastermind Star Wars с Arduino, разделен на три части.
- Плотницкие и канцелярские товары для реализации жилья.
- Компоненты, кабели и Arduino для всей электроники
- Инструменты
Начнем с столярных работ. Необходим следующий материал:
- 2 плиты МДФ от 90х60
- 1 лист овощной бумаги
В электронной части понадобится следующий материал:
- 1 х NeoPixel Strip 5 метров
- 1 х Arduino MEGA
- 1 х конденсатор 100 мкФ
- 4 x сопротивление 470 Ом
- 5 х черная кнопка
- 5 х белая кнопка
- 1 х мощность 5В-5А
- 1 х мощность 5В-2А
Наконец, в части инструмента мы использовали следующее:
- Силиконовый пистолет Горячий
- Лазерный станок с ЧПУ de MxN
- Электросварщик
- Сварщик олово
Шаг 2: Дизайн
Одна из важнейших частей этого проекта - дизайн корпуса. Он состоит из 3 частей, вырезанных лазерным резаком.
Основание взято из части 90x60 в МДФ. Учитывайте размеры материала, так как вам понадобится достаточно большой лазерный резак.
Вы можете найти файл SVG в конце этого шага.
Верхняя крышка содержит тематические рисунки «Звездных войн», а также отверстия для кнопок и пикселей.
Он имеет такую же форму, что и основание.
Боковые стенки изготовлены с помощью лазерной резки, называемой пропилом. Это позволяет материалу быть гибким. Чтобы разместить стены, некоторые детали были разработаны в качестве ориентира.
Наконец, каждая матрица NeoPixel имеет сетку, где с одной стороны закреплены NeoPixel, а с другой стороны закреплена растительная бумага для рассеивания света NeoPixel. Здесь у вас есть все файлы SVG, которые вы можете вырезать и изготовить самостоятельно.
Шаг 3: Электронная сборка
Первым этапом сборки электроники было разрезание 5-метровой полосы NeoPixel на 8 полос по 10 пикселей и 4 отдельных пикселя для каждого игрока, всего 84 пикселя на игрока. С одной стороны, 10 полосок собираются одна за другой, оставляя достаточно кабеля, чтобы каждая полоска располагалась параллельно на несколько миллиметров. Эта матрица пикселей будет служить для отображения каждой игры и результата. 4 пикселя показывают четыре цвета клавиши, а остальные четыре пикселя показывают результат. Напоминаю, что в результате мы должны:
- Если пиксель белый, то его положение и цвет были удачными.
- Если пиксель фиолетовый, цвет правильный, но не положение.
- Если пиксель выключен, ни цвет, ни положение не правильные.
Одна из допущенных нами ошибок - это проводка питания и GND. Это могло быть проще, но мы поняли позже. Кабель передачи данных должен следовать определенному порядку, поскольку нумерация пикселей идет снизу вверх.
С другой стороны, у нас есть 4 отдельных пикселя, которые необходимо соединить между собой. Эти пиксели покажут нам цвет, который мы выбираем с помощью кнопок.
К каждой полоске последовательно подключен резистор 470 Ом для защиты данных. Кабель передачи данных каждой полосы пикселей подключен к цифровому выводу. В Arduino MEGA выбраны контакты 6, 7, 8 и 9.
Например, 6 и 7 предназначены для игрока 1, а 8 и 9 - для игрока 2.
Кнопки, которые мы использовали, являются типичными кнопками игровых автоматов. Мы думали, что они будут хорошо смотреться, и так оно и было.
Могут использоваться и другие кнопки, но следует учитывать, что если они меньше или больше, файл DXF должен быть изменен перед резкой с помощью лазерного ЧПУ.
Чтобы различать игроков, некоторые кнопки белые, а другие черные.
У каждого игрока есть 4 кнопки вверх и 1 кнопка вниз. 4 верхние кнопки служат для выбора цвета каждой позиции клавиши.
Нижняя кнопка используется для проверки, то есть она отправляет ключ для отображения в матрице пикселей с соответствующей проверкой того, были ли цвет и положение удачными.
Перед тем, как все собрать, мы спаяли все кабели. Так что вам понадобится много кабеля. Это будет зависеть от размера игры. В нашем случае он был довольно большим.
Например, вы можете использовать кабель Ethernet, чтобы открыть его и взять внутренние кабели. Хорошее решение. Постарайтесь сделать их как можно более упорядоченными, потому что тогда потребуется выполнить соединения с Arduino MEGA, как вы видите на электрической схеме.
Как только вы все станете солдатом, перед тем как сесть на него, вы должны попробовать. Он проверен, потому что, когда он установлен в корпус, он будет заклеен горячим силиконом, и если он выйдет из строя, это будет сложно, тогда снимите его. Для размещения пиксельных матриц была разработана сетка с теми же размерами, что и сетка крышки, где с одной стороны прикреплены пиксели, а с другой стороны - растительная бумага.
Эта бумага рассеивает свет каждого пикселя, создавая гораздо более красивый эффект. Затем эта структура приклеивается к верхней части внутри. Это немного сложно, но при осторожности достигается хороший результат.
Кормление было несколько сложным. В принципе, глядя на схему, мы собирались использовать только одно зарядное устройство. Однако после первых тестов и потребления NeoPixel мы увидели, что потребуется два зарядных устройства.
Каждый пиксель может потреблять максимум 60 мА. Если умножить на 168 пикселей, вы получите потребление около 10 А.
Хотя это будет в худшем случае. При программировании мы уже учли не максимизировать интенсивность NeoPixel.
Мы даже не достигли 50%, поэтому с зарядным устройством на 5В и 5А более чем достаточно.
С другой стороны, Arduino MEGA имеет отдельное зарядное устройство, которое можно подключить через разъем jack или через порт USB. Одним из возможных улучшений было бы наличие одного зарядного устройства для всей системы.
Шаг 4: программирование игры
Программирование было выполнено с использованием двух библиотек: OneButton и Adafruit_NeoPixel.
Библиотека OneButton позволяет легко управлять кнопками с прерываниями.
Библиотека Adafruit_NeoPixel позволила нам очень просто управлять полосой NeoPixel.
Программирование основано на различных состояниях, в которых программа может находиться:
Запускаем игру. Состояние = 0
В этом состоянии игра запускается, и у обоих игроков есть последовательность огней, указывающая на то, что игра начнется. В этом состоянии кнопки не реагируют.
Начальное состояние. Состояние = 1
В исходном состоянии подождите, пока один из двух игроков дважды щелкнет по кнопке подтверждения (пятая кнопка). Это действие позволит начать игру.
Готовим игру. Состояние = 2
В состоянии подготовки игры все переменные сбрасываются и запускается случайный выбор цветов для ключа.
Состояние воспроизведения = 3
В состоянии 3 игра начинается. Каждый игрок выбирает ключ с помощью кнопок и подтверждает его, нажимая кнопку подтверждения. Это состояние может закончиться двумя способами: когда игрок обнаруживает ключ или когда два игрока используют 10 попыток, которые у них есть.
Одно государство-победитель = 4
Если игрок выигрывает, на его доске отображается зеленая галочка, а на проигравшей - выигрышная комбинация и красный крест.
Завязанная игра. Состояние = 5
В случае ничьей ничего не отображается ни на одной доске, а выигрышная комбинация - на досках обоих игроков.
Независимо от того, есть ли в игре победитель или ничья, следующее состояние будет начальным, ожидающим двойного щелчка.
Вы можете найти весь код ниже. Единственное, что на испанском:)
Шаг 5: Тестирование и улучшения
Игра проверена игрой. На видео выше вы можете увидеть полную игру.
Отсюда мы можем подумать о нескольких улучшениях, которые можно добавить в Mastermind Star Wars с Arduino.
Далее я их перечисляю.
- Уметь играть по очереди с 10 попытками для двух игроков. Когда игрок пробует ключ, другой игрок видит игру.
- Индивидуальный режим игры, в котором может играть только один человек.
- Режим каждый со своим ключом.
- Включите OLED-экран.
- Используйте одно зарядное устройство для всего.
- Подключитесь к NodeMCU ESP8266
Я уверен, что многие люди предложат множество улучшений. Жду комментариев ниже.
И да пребудет с вами сила.