Оглавление:
Видео: Змея на макете: 3 шага (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:50
"У тебя есть игры на телефоне?"
"Не совсем."
Вступление:
Простой в управлении, простой в программировании и увековеченный в 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 очками на видео выше, вы можете установить условие выигрыша выше в моем коде.)
Что нужно расширить:
- Аккумулятор для портативности
- Более безопасные кнопки
- Еще меньшая игра со змеями
- Еще больше игр?
Рекомендуемые:
Цепь датчика темноты на макете + детектор света с LDR: 6 шагов
Схема датчика темноты на макетной плате + детектор света с LDR: В этом уроке я научу вас, как сделать простой свет и усилитель; Схема детектора темноты с транзистором & LDR. Эту схему можно использовать для автоматического включения-выключения света или приборов, добавив реле на выходе. Вы также можете
Робот-змея, напечатанный на 3D-принтере: 7 шагов (с изображениями)
Робот-змея, напечатанный на 3D-принтере: Когда я получил свой 3D-принтер, я начал думать, что я могу с ним сделать. Я много чего напечатал, но хотел сделать целую конструкцию с помощью 3D-печати. Затем я подумал о создании робота-животного. Первой моей идеей было сделать собаку или паука, но
Switch-Adapt Toys: Яйцо Змея с дистанционным управлением сделана доступным !: 7 шагов (с изображениями)
Switch-Adapt Toys: Egg Remote Controlled Snake Made Accessible !: Адаптация игрушки открывает новые возможности и индивидуальные решения, позволяющие детям с ограниченными двигательными способностями или нарушениями развития самостоятельно взаимодействовать с игрушками. Во многих случаях дети, которым требуются адаптированные игрушки, не могут
Биоинспирированная роботизированная змея: 16 шагов (с изображениями)
Bioinspired Robotic Snake: Я был вдохновлен начать этот проект после просмотра исследовательских видеороликов, в которых показаны как роботизированные змеи, лазящие по деревьям, так и роботизированные угри. Это моя первая попытка создания роботов, использующих змеевидное движение, но не последняя! Подпишитесь на YouTube, если вы
Светодиодная змея: 9 шагов
Светодиодная змея: в этой инструкции я покажу вам, как создать свое творение, состоящее из множества-множества светодиодов, имеющее форму змеи, светодиодную змею. Моя светодиодная змея имеет длину 1 метр, но вы решаете, какой длины будет ваша. Змея забавная и выглядит