Съдържание:

Тематична песен на PUBG+анимация с Arduino !: 13 стъпки (със снимки)
Тематична песен на PUBG+анимация с Arduino !: 13 стъпки (със снимки)

Видео: Тематична песен на PUBG+анимация с Arduino !: 13 стъпки (със снимки)

Видео: Тематична песен на PUBG+анимация с Arduino !: 13 стъпки (със снимки)
Видео: Batwheels - компилация | Представяне на колите на Батман | Музикални видеа | Анимация за деца 2024, Ноември
Anonim
Image
Image
Събиране на всички части
Събиране на всички части

Здравейте и добре дошли в тази забавна инструкция! Надявам се всички да сте добре и да сте здрави. Този малък, но невероятен проект е за възпроизвеждане на тематичната песен на PUBG и дори за създаване на някои анимации на играта с помощта на arduino.

Използваните компоненти са много лесно достъпни и много лесни за сглобяване върху парче макет. Ще споделя целия процес на изграждане и кодиране в тази инструкция, останете до края!

Силно бих ви препоръчал да гледате видеото, за да добиете представа за проекта:) Ако ви харесва, харесайте и споделете видеото. Помислете за абониране за канала ми, ако ви харесва моята версия. Благодаря!

Така че, без допълнително забавяне, нека започнем!

Стъпка 1: Събиране на всички части

Събиране на всички части
Събиране на всички части

Сградата се състои главно от Arduino Nano, който е основното ядро за този проект. Можете да използвате всякакви други варианти на Arduino като популярните Arduino Uno, Arduino Pro Mini, Arduino Mega и т.н. Този дисплей може да бъде интерфейс с arduino с протокола I2C, който изисква само два проводника за данни и часовник, като по този начин намалява броя на връзките и прави проекта по -компактен. За възпроизвеждане на мелодията на темата на PUBG използвах 5V зумер, от който свързах положителния щифт с цифров пин 6 на arduino и земята отива към земята на Arduino.

Това е списъкът на частите, необходими за проекта:

  1. Arduino Nano (или всяка друга дъска по ваш избор)
  2. 0,96 -инчов OLED дисплей модул
  3. 5V зумер
  4. Кабелни проводници
  5. Платка
  6. Кабел за програмиране на Arduino

Стъпка 2: Свързване на OLED дисплея

Свързване на OLED дисплея
Свързване на OLED дисплея
Свързване на OLED дисплея
Свързване на OLED дисплея
Свързване на OLED дисплея
Свързване на OLED дисплея

За свързването на OLED дисплея от arduino са необходими общо 4 връзки:

Vcc 5V на Arduino

Gnd Gnd от Arduino

SDA A4 на Arduino

SCK A5 на Arduino

Пиновете A4 и A5 на arduino обслужват многоцелеви аналогови входове, както и пинове за I2C комуникация. Тук сме използвали щифтовете за I2C протокола за взаимодействие с модула на дисплея.

Връзката към библиотеката Adafruit, използвана в този проект:

Стъпка 3: Свързване на зумера

Свързване на зумера
Свързване на зумера
Свързване на зумера
Свързване на зумера

Звуковият сигнал 5V има положителен и отрицателен захранващ терминал.

Положителен щифт 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 loop () на кода 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, върху която работя. Кажете ми, ако изградите този забавен проект:)

До следващия път.

Препоръчано: