Съдържание:
- Стъпка 1: Събиране на всички части
- Стъпка 2: Свързване на OLED дисплея
- Стъпка 3: Свързване на зумера
- Стъпка 4: Всички хардуерни връзки са завършени
- Стъпка 5: Включване на библиотеката и инициализиране на дисплейни протоколи
- Стъпка 6: Мелодия на тематичната песен
- Стъпка 7: Възпроизвеждане на песента по време на стартиране
- Стъпка 8: Преобразуване на изображенията в растерни карти
- Стъпка 9: Регулиране на разделителната способност според вашия дисплей
- Стъпка 10: Генериране на растерни масиви
- Стъпка 11: Показване на изображенията като последователност
- Стъпка 12: Целият код:
- Стъпка 13: Резултатите:
Видео: Тематична песен на PUBG+анимация с Arduino !: 13 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
Здравейте и добре дошли в тази забавна инструкция! Надявам се всички да сте добре и да сте здрави. Този малък, но невероятен проект е за възпроизвеждане на тематичната песен на PUBG и дори за създаване на някои анимации на играта с помощта на arduino.
Използваните компоненти са много лесно достъпни и много лесни за сглобяване върху парче макет. Ще споделя целия процес на изграждане и кодиране в тази инструкция, останете до края!
Силно бих ви препоръчал да гледате видеото, за да добиете представа за проекта:) Ако ви харесва, харесайте и споделете видеото. Помислете за абониране за канала ми, ако ви харесва моята версия. Благодаря!
Така че, без допълнително забавяне, нека започнем!
Стъпка 1: Събиране на всички части
Сградата се състои главно от Arduino Nano, който е основното ядро за този проект. Можете да използвате всякакви други варианти на Arduino като популярните Arduino Uno, Arduino Pro Mini, Arduino Mega и т.н. Този дисплей може да бъде интерфейс с arduino с протокола I2C, който изисква само два проводника за данни и часовник, като по този начин намалява броя на връзките и прави проекта по -компактен. За възпроизвеждане на мелодията на темата на PUBG използвах 5V зумер, от който свързах положителния щифт с цифров пин 6 на arduino и земята отива към земята на Arduino.
Това е списъкът на частите, необходими за проекта:
- Arduino Nano (или всяка друга дъска по ваш избор)
- 0,96 -инчов OLED дисплей модул
- 5V зумер
- Кабелни проводници
- Платка
- Кабел за програмиране на Arduino
Стъпка 2: Свързване на 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 компонента:
- Основната програма, състояща се от инициализация и последователности на показване на изображение и мелодия
- "pitches.h" файл, състоящ се от списъка с музикални ноти и свързаната честота
- "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, върху която работя. Кажете ми, ако изградите този забавен проект:)
До следващия път.
Препоръчано:
Растерна анимация на SSD1331 OLED дисплей (SPI) с Visuino: 8 стъпки
Растрова анимация на SSD1331 OLED дисплей (SPI) С Visuino: В този урок ще покажем и се движим по растерно изображение в проста форма на анимация на SSD1331 OLED дисплей (SPI) с Visuino. Гледайте видеоклипа
Кукла за оригами с гласова анимация: 6 стъпки
Кукла за оригами с гласова анимация: Този проект използва вградения микрофон на площадката Adafruit Circuit Arduino, която работи като цветен орган и управлява прикрепено микросерво, за да създаде анимираното движение на прикрепена кукла от оригами лисица. За забавление, опитайте да замените нещо
RGB LED куб с Bluetooth приложение + анимация Създател: 14 стъпки (със снимки)
RGB LED куб с Bluetooth приложение + AnimationCreator: Това е инструкция за това как да се изгради 6x6x6 RGB LED (общи аноди) куб, контролиран от Bluetooth приложение с помощта на Arduino Nano. Цялата конструкция е лесно приспособима към куб 4x4x4 или 8x8x8. Този проект е вдъхновен от GreatScott. Реших да
Анимация с кинеграма или аналогичен бумеранг: 9 стъпки (със снимки)
Кинеграма или аналогична анимация с бумеранг: *- * Тази инструкция е на английски език. Щракнете тук за холандската версия, *- * Deze Instructable е на het Engels. Кликнете върху версията на Nederlandse. Има два типа хора: тези, които приемат всяка нова технология и тези, които дълго носталгират
Arduino Uno: Растрова анимация на ILI9341 TFT сензорен екран Щит на дисплея с Visuino: 12 стъпки (със снимки)
Arduino Uno: Анимация на растерни изображения на ILI9341 TFT сензорен екран с щит с Visuino: ILI9341 базиран на TFT сензорен дисплей с сензорен екран са много популярни нискоразходни екранни щитове за Arduino. Visuino има подкрепа за тях от доста време, но никога не съм имал възможност да напиша урок за това как да ги използвам. Наскоро обаче малко хора попитаха