Оглавление:

Змея на макете: 3 шага (с изображениями)
Змея на макете: 3 шага (с изображениями)

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

Видео: Змея на макете: 3 шага (с изображениями)
Видео: 👽Он хочет выглядеть как пришелец. Black Alien Project 2024, Июль
Anonim
Змея на макете
Змея на макете
Змея на макете
Змея на макете
Змея на макете
Змея на макете

"У тебя есть игры на телефоне?"

"Не совсем."

Вступление:

Простой в управлении, простой в программировании и увековеченный в Nokia 6110, Snake стал любимым проектом среди инженеров. Он реализован во всем: от светодиодных матриц, ЖК-дисплеев, освещения книжных полок и даже окон целых зданий. Мы будем реализовывать Snake на крошечной макетной плате и OLED-экране. Люди, конечно, делали более крохотные проигрыватели-змейки, но для этого специально используется макетная плата, устраняющая необходимость проектирования печатных плат или пайки.

(Вы можете просто создать приложение на своем телефоне, но мы не делаем этого, потому что это легко.)

Предпосылки:

Базовое понимание схем, макетирования и твердое понимание программирования на Arduino.

Запасы

  • Ардуино Нано
  • 2 достаточно высоких резистора (1кОм)
  • Крошечный макет
  • 2 кнопки
  • Провод с твердым сердечником 22 AWG
  • 128 x 64 OLED

Это партнерские ссылки Amazon, поэтому я зарабатываю небольшую комиссию с каждой продажи. Если у вас еще нет этих материалов и вы хотите поддержать мои будущие проекты, перейдите по этим ссылкам!:)

Шаг 1: Макетная плата

Макетная плата
Макетная плата
Макетная плата
Макетная плата
Макетная плата
Макетная плата

Очевидно, что для создания конечного продукта нам необходимо собрать оборудование для программирования и тестирования нашего проекта. Системная схема для этого проекта довольно проста, так как она включает всего 4 компонента.

1. Разложите:

Возьмите свои компоненты и разложите их на доске, убедившись, что все подходит. Визуализируйте, какие провода и контакты вы будете использовать и для каких целей. Убедитесь, что ваши ожидаемые провода не пересекаются, потому что это делает макетную плату более грязной. Запишите, какие точки вам понадобятся для подключения! Хотя это простой макет, он значительно упростит вам жизнь во время процесса подключения и в целом. Из-за того, что наше рабочее пространство невелико, это невероятно важный шаг.

Примечания:

Поскольку OLED использует шину I2C, необходимо использовать контакты A4 и A5. Размер макета не позволяет использовать шину питания и заземления, поэтому я использовал несколько уловок, чтобы все заработало. Положительное напряжение на кнопки подается на контакты D13 и A2. Я обнаружил, что контакты Arduino могут не только подавать ток, но и принимать ток, поэтому я использовал A3 в качестве заземления для правой кнопки. Чтобы максимизировать пространство на макетной плате, я повесил половину Nano на плату и поддержал штыри с левой стороны куском поролона.

2. Подключите его:

С помощью пары приспособлений для зачистки проводов и приличного количества одножильного провода 22 AWG аккуратно соедините ваши компоненты вместе. Использование твердого сердечника для изготовления полупостоянных макетов является ключевым моментом, потому что вы можете обрезать их по длине, в отличие от перемычек. Убедитесь, что вы не оставляете слишком много лишней длины на ваших проводах, это приведет к беспорядку на плате. Обрежьте выводы понижающих резисторов так, чтобы они плотно прилегали к плате.

(Вы также можете просто следовать тому, что я сделал выше.)

Шаг 2: программа и тестирование

Программа и тест
Программа и тест

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

1. План, план, план:

Просто прыгать прямо в код - не самая лучшая практика. Поверьте, я пробовал! Вот почему вы должны обрисовать, как ваша программа будет работать. Блок-схема программы - это довольно надежный способ спланировать, что нужно делать вашему коду, и она определенно будет держать вас в курсе. Возьмем, к примеру, мой (см. Выше)

2. Код, код, код:

Откровенно говоря, этот проект - более серьезное упражнение по программированию, чем аппаратное. Единственной библиотекой, которую я использовал, была OLED-библиотека Adafruit, не считая поддерживающих библиотек GFX и Wire.

Заставьте вас установить OLED-библиотеку Adafruit через диспетчер библиотек Arduino IDE.

Я не могу задокументировать каждую строчку написанного мной кода, но вот несколько советов:

Подсказки:

Комментарии:

- Прежде всего, пишите аккуратные и полезные комментарии во время написания кода. В будущем вы и другие, кто читает ваш код, обязательно будете вам благодарны.

Объем памяти:

- В более сложных проектах, подобных этим, SRAM становится весьма востребованным товаром. В библиотеке Adafruit OLED-буфер 128 x 64 занимает только 1 КБ, что составляет примерно половину памяти ATMega328p. Поэтому умное управление памятью сейчас как никогда важно.

- При больших структурах данных хранимые данные будут накапливаться и занимать много места. Чтобы уменьшить объем памяти, занимаемый моими переменными, я по возможности использовал меньшие типы данных (например, короткие и байтовые).

- Строки обычно хранятся в SRAM, но использование функции F () вместо этого помещает их в PROGMEM, экономя драгоценную память.

Миллис:

- Чтобы добиться более точного отсчета игровых циклов, используйте функцию millis (). В Интернете есть множество хороших руководств и примеров.

Предварительно определите:

- Используйте директиву препроцессора #define как простой способ установить постоянные значения в коде.

Тестовое задание:

- Проверяйте свой код на ходу. Устранять ошибки будет намного проще.

Шаг 3: Наслаждайтесь

Получайте удовольствие от своей новой игры про змей!

(Я знаю, что выиграл с 20 очками на видео выше, вы можете установить условие выигрыша выше в моем коде.)

Что нужно расширить:

  • Аккумулятор для портативности
  • Более безопасные кнопки
  • Еще меньшая игра со змеями
  • Еще больше игр?

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