Оглавление:

Судоку Arduino Sorta: 3 шага (с изображениями)
Судоку Arduino Sorta: 3 шага (с изображениями)

Видео: Судоку Arduino Sorta: 3 шага (с изображениями)

Видео: Судоку Arduino Sorta: 3 шага (с изображениями)
Видео: 💪10 лайфхаков для ума! 2024, Ноябрь
Anonim
Ардуино Сорта Судоку Игра
Ардуино Сорта Судоку Игра

Многим людям нравится играть в судоку, а внуки - в угадайку, поэтому я решил сделать портативную игру «Сорта судоку». В моей версии игра представляет собой сетку 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: дисплеи

Дисплеи
Дисплеи
Дисплеи
Дисплеи
Дисплеи
Дисплеи

Вот несколько изображений различных дисплеев.

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