Оглавление:
Видео: Судоку Arduino Sorta: 3 шага (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:48
Многим людям нравится играть в судоку, а внуки - в угадайку, поэтому я решил сделать портативную игру «Сорта судоку». В моей версии игра представляет собой сетку 4х4, но указано только одно число. Идея состоит в том, чтобы угадать остальные числа за наименьшее количество попыток. Это простая игра, но она может вызывать привыкание, если вы стремитесь набрать 15 очков. Игра требует как элемента удачи, так и логики, и лучший результат, который я видел до сих пор, - 16. Взгляните, потому что даже если вы не заинтересованы в создании игры, возможно, есть некоторые элементы программного обеспечения, которые вы можете использовать в одном из ваших собственных проектов.
Шаг 1. Аппаратное обеспечение
Аппаратное обеспечение может быть основано практически на любой версии Arduino. Я сделал прототип с помощью Nano, а затем записал код в чип ATMega328. Это тот же самый чип, который используется в Nano, но его использование само по себе позволяет получить более компактную конструкцию и меньшее энергопотребление. Как видите, я построил схему на небольшой макетной плате, которая устанавливается на ЖК-модуль. Другой аспект, который отличается, заключается в том, что Nano работает на частоте 16 МГц с использованием внешнего кристалла, но я решил использовать встроенный осциллятор на 8 МГц для чипа ATMega328. Это экономит детали и энергию.
ЖК-дисплей 2004 года подключается к Arduino так же, как ЖК-дисплей 1602. Интересное отличие заключается в адресации расположения дисплеев. Очевидно, есть разница, потому что здесь четыре строки вместо двух, но в 2004 году третья строка является продолжением первой строки, а четвертая строка является продолжением второй строки. Другими словами, если у вас была тестовая программа, которая просто отправляла строку символов на ЖК-дисплей, 21-й символ отображался бы в начале третьей строки, а 41-й символ переносился бы обратно в начало первой строки. Программное обеспечение обрабатывает эту разницу с помощью таблицы поиска адресов ЖК-дисплея.
Вход для игры - самодельная матрица переключателей 4х4. Каждый переключатель непосредственно соответствует эквивалентному месту на дисплее. Также есть переключатель питания и переключатель сброса. Переключатель сброса очищает старую игру и создает новую.
Я решил сделать свою версию с питанием от батареи, поэтому я использовал обычную литий-ионную батарею 18650, 3,6 вольта. Для этого мне потребовалось добавить небольшую плату для подзарядки через USB и еще одну небольшую плату для повышения напряжения батареи до 5 вольт для ЖК-дисплея и микросхемы ATMega. На рисунках показаны модули, которые я использовал, но есть также универсальные модули, которые выполняют обе функции.
Шаг 2: Программное обеспечение
Программное обеспечение одинаково для чипа Nano и ATMega328. Единственная разница в способе программирования. Я использую свою собственную версию программного обеспечения для ЖК-дисплеев и программное обеспечение для декодирования матриц клавиатуры. Это отдельные «включаемые» файлы для проекта.
Команды random и randomSeed используются для создания игры. Я добавил сохранение в EEPROM «начального числа», чтобы гарантировать, что при каждом включении питания генерируется другая последовательность. Строки для головоломки получены из поискового массива из 24 элементов. Первые три строки выбираются из таблицы случайным образом с проверками, чтобы убедиться, что выбранная строка не конфликтует с предыдущей. Последняя строка заполняется вручную, потому что в этой точке будет только один возможный узор. После этого остается просто сканировать матрицу клавиатуры и преобразовывать нажатия клавиш в числа.
Чтобы угадать число, несколько раз нажмите соответствующий переключатель. Каждое нажатие увеличивает отображаемое число. Если вы превысите желаемое значение, просто продолжайте нажимать. Если вы отпустите переключатель на секунду, он зафиксирует последнее отображаемое число. Если номер неправильный, он будет очищен, и вы сможете повторить попытку. Каждое предположение увеличивает отображаемый счетчик, и как только число угадано правильно, этот матричный переключатель фактически отключается.
Шаг 3: дисплеи
Вот несколько изображений различных дисплеев.
Рекомендуемые:
Игра в рулетку DIY 37 Leds Arduino: 3 шага (с изображениями)
DIY 37 Leds Arduino Roulette Game: Roulette - это игра в казино, названная в честь французского слова, означающего маленькое колесо
Тыква на Хэллоуин в стиле Интернета вещей - Управление светодиодами с помощью Arduino MKR1000 и приложения Blynk ???: 4 шага (с изображениями)
Тыква на Хэллоуин в стиле Интернета вещей | Управление светодиодами с помощью Arduino MKR1000 и приложения Blynk ???: Всем привет! Несколько недель назад был Хэллоуин, и, следуя традиции, я вырезал красивую тыкву для своего балкона. Но, имея свою тыкву на открытом воздухе, я понял, что было довольно неприятно каждый вечер выходить на улицу, чтобы зажечь свечу. И я
Рождественские часы DIY Arduino: 4 шага (с изображениями)
Рождественские часы DIY Arduino: с Рождеством! Недавно компания Elegoo обратилась ко мне с просьбой создать тематический рождественский проект с их Самым полным стартовым комплектом Arduino R3. С помощью компонентов, включенных в их комплект, я смог создать эти тематические рождественские часы, на которых отображается
Arduino Psychic: 3 шага (с изображениями)
Arduino Psychic: это волшебный трюк, выполняемый с использованием двух Arduino. Одна Arduino представляет собой генератор случайных #, а другая Arduino определяет случайный #, выбранный аудиторией. Пожалуйста, посмотрите видео. Это легче показать, чем объяснить. :-(
Управление светодиодной матричной матрицей с помощью Arduino Uno (лицо робота с питанием от Arduino): 4 шага (с изображениями)
Управление массивом светодиодных матриц с помощью Arduino Uno (лицо робота с питанием от Arduino): в этом руководстве показано, как управлять массивом светодиодных матриц 8x8 с помощью Arduino Uno. Это руководство можно использовать для создания простого (и относительно дешевого) дисплея для ваших собственных проектов. Таким образом вы можете отображать буквы, цифры или настраиваемые анимации