Оглавление:

Тематическая песня PUBG + анимация с Arduino !: 13 шагов (с изображениями)
Тематическая песня PUBG + анимация с Arduino !: 13 шагов (с изображениями)

Видео: Тематическая песня PUBG + анимация с Arduino !: 13 шагов (с изображениями)

Видео: Тематическая песня PUBG + анимация с Arduino !: 13 шагов (с изображениями)
Видео: Песня .То, кто тебя спасет.Battleground 2024, Июль
Anonim
Image
Image
Собираем все детали
Собираем все детали

Привет и добро пожаловать в эту поучительную забаву! Я надеюсь, что все вы здоровы и здоровы. Этот небольшой, но удивительный проект посвящен воспроизведению музыкальной темы PUBG и даже созданию некоторых игровых анимаций с помощью Arduino.

Используемые компоненты очень легко доступны и их очень легко собрать на куске макета. Я расскажу обо всем процессе сборки и кодирования в этом руководстве, оставайтесь до конца!

Я настоятельно рекомендую вам посмотреть видео, чтобы получить представление о проекте:) Если он вам нравится, поставьте лайк и поделитесь видео. Если вам нравится моя сборка, подпишитесь на мой канал. Спасибо!

Итак, без промедления, приступим!

Шаг 1. Собираем все детали

Собираем все детали
Собираем все детали

Сборка в основном состоит из Arduino Nano, который является основным ядром этого проекта. Вы можете использовать любые другие варианты Arduino, такие как популярные Arduino Uno, Arduino Pro Mini, Arduino Mega и т. Д. Для отображения анимации и изображений я решил использовать 0,96-дюймовый OLED-дисплей с разрешением 128 на 64 пикселей. Этот дисплей может взаимодействовать с Arduino по протоколу I2C, для которого требуется всего два провода для данных и часов, что сокращает количество подключений и делает проект более компактным. Для воспроизведения мелодии темы PUBG я использовал зуммер на 5 В, положительный вывод которого я подключил к цифровому выводу 6 Arduino, а земля идет к земле Arduino.

Это список частей, необходимых для проекта:

  1. Arduino Nano (или любая другая плата Arduino по вашему выбору)
  2. 0,96-дюймовый OLED-дисплей
  3. Зуммер 5В
  4. Провода перемычки
  5. Макетная плата
  6. Кабель для программирования Arduino

Шаг 2: Подключение OLED-дисплея

Подключение OLED-дисплея
Подключение OLED-дисплея
Подключение OLED-дисплея
Подключение OLED-дисплея
Подключение OLED-дисплея
Подключение OLED-дисплея

Для подключения OLED-дисплея от Arduino необходимо 4 соединения:

Vcc 5V Arduino

Gnd Gnd Ардуино

SDA A4 Arduino

SCK A5 Arduino

Контакты A4 и A5 Arduino служат многоцелевым аналоговым входам, а также контактам для связи I2C. Здесь мы использовали контакты для протокола I2C для взаимодействия с модулем дисплея.

Ссылка на библиотеку Adafruit, используемую в этом проекте:

Шаг 3: Подключение зуммера

Подключение зуммера
Подключение зуммера
Подключение зуммера
Подключение зуммера

Зуммер 5 В имеет положительную и отрицательную клеммы питания.

Положительный вывод D6 Arduino (цифровой вывод 6) (вы можете использовать любой цифровой вывод Arduino)

Отрицательный вывод Gnd Arduino

Мы собираемся создать желаемый тон на цифровом выводе D6, которому зуммер будет воспроизводить мелодию.

Шаг 4. Все аппаратные подключения завершены

Все аппаратные подключения завершены
Все аппаратные подключения завершены
Все аппаратные подключения завершены
Все аппаратные подключения завершены

Все необходимые подключения OLED-дисплея и зуммера выполнены. Теперь давайте разберемся с программным аспектом проекта.

Шаг 5: Включение библиотеки и инициализация протоколов отображения

Включение библиотеки и инициализация протоколов отображения
Включение библиотеки и инициализация протоколов отображения

Вся программа разделена на 3 компонента:

  1. Основная программа, состоящая из инициализации и последовательности отображения изображения и мелодии.
  2. Файл "pitches.h", состоящий из списка музыкальных нот и соответствующей частоты.
  3. Файл "pictures.h", состоящий из растровых изображений отображаемых изображений.

Процесс преобразования изображения в массив растровых изображений для OLED-дисплея обсуждается на следующих этапах.

Я также прикреплю весь код вместе с инструкциями, которые вы можете использовать:)

Шаг 6. Мелодия музыкальной темы

Мелодия музыкальной темы
Мелодия музыкальной темы
Мелодия музыкальной темы
Мелодия музыкальной темы

Я поискал в Интернете основные ноты, из которых состоит тема PUBG, а затем добавил их в массив мелодий.

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

Шаг 7: Воспроизведение песни во время запуска

Воспроизведение песни во время запуска
Воспроизведение песни во время запуска

Всего я использовал 63 ноты, которые я использовал для создания мелодической последовательности. Используя цикл for и перебирая массив нот и длительности с заданной паузой между каждой нотой, вся последовательность проигрывается один раз, поскольку этот фрагмент кода лежит в настройке void (). Интересно, что ни один из кодов этого проекта не использует цикл void () кода Arduino, поскольку я намереваюсь воспроизводить и отображать изображения только один раз. Конечно, если вам нужна повторяющаяся последовательность, ее нужно поместить в функцию void loop ().

Шаг 8: преобразование изображений в растровые изображения

Преобразование изображений в растровые
Преобразование изображений в растровые

Теперь интересной частью проекта является процесс преобразования изображения в массив растровых изображений для OLED-дисплея в соответствии с его плотностью пикселей. Для этого я нашел превосходный онлайн-инструмент, который позволяет нам создавать собственные растровые изображения.

Ссылка на это онлайн-приложение:

Благодаря замечательным создателям этого приложения, это значительно облегчает мою работу.

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

Шаг 9: Регулировка разрешения в соответствии с вашим дисплеем

Регулировка разрешения в соответствии с вашим дисплеем
Регулировка разрешения в соответствии с вашим дисплеем

На следующем этапе мы должны изменить размер изображения в соответствии с разрешением экрана. Для нашего OLED-дисплея он имеет ширину 28 пикселей и высоту 64 пикселя, которые я настроил, как показано на изображении. Отрегулируйте порог яркости, чтобы изображение было достаточно четким (здесь проявляется преимущество использования изображений со сплошными цветами, чем больше цветовых градиентов, тем хуже качество изображения на монохромном дисплее, поскольку оно не соответствует пороговому значению яркости.).

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

Шаг 10: Создание массива растровых изображений

Создание массива растровых изображений
Создание массива растровых изображений

После настройки параметров изображения на следующем шаге просто выберите код Arduino в качестве формата вывода и нажмите «Создать», чтобы получить желаемый массив растровых изображений!

Там! вы успешно преобразовали свое изображение в желаемый массив растровых изображений. Я проделал этот процесс для 7 изображений и сохранил их.

Шаг 11: отображение изображений в виде последовательности

Отображение изображений в виде последовательности
Отображение изображений в виде последовательности
Отображение изображений в виде последовательности
Отображение изображений в виде последовательности
Отображение изображений в виде последовательности
Отображение изображений в виде последовательности

Для отображения изображений я использовал функцию Arduino millis () для вызова функции draw (), которая в основном представляет собой набор команд для очистки дисплея, построения массива растровых изображений на OLED и инициализации дисплея. Основная логика заключается в том, что через каждые 3,5 секунды изображение изменяется и отображается следующее изображение. Что ж, 3,5 секунды - это не уникальное число, я просто понял, что если я разделю всю длительность мелодии на 7 изображений, у меня будет примерно 3,5 секунды для каждого дисплея. Вы можете добавить к нему больше изображений и уменьшить время отображения каждого изображения, если хотите.

Отрывки кода объясняют, как функции вызываются на основе функции millis ().

Полные массивы растровых изображений хранятся в файле «pictures.h».

Шаг 12: Весь код:

Здесь я делюсь всем кодом, чтобы вы могли поиграть и поэкспериментировать!

Как только все станет хорошо, пора загрузить его на доску:)

Шаг 13: Результаты:

Результаты, достижения
Результаты, достижения
Результаты, достижения
Результаты, достижения
Результаты, достижения
Результаты, достижения
Результаты, достижения
Результаты, достижения

Как видите, изображения получились отличными! И мелодия тоже! Надеюсь, вы смотрели видео, в котором присутствует вся демонстрация.

Я надеюсь, что эта версия PUBG для Arduino - захватывающий проект для всех любителей игр и электроники.

Не стесняйтесь делиться своими отзывами в комментариях и любыми предложениями. Также рассмотрите возможность подписки на мой канал для получения большего количества такого контента, поскольку это часть серии OLED, над которой я работаю. Дайте мне знать, если вы создадите этот забавный проект:)

До скорого.

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