Мазмұны:

PUBG тақырыптық әні+Arduino көмегімен анимация!: 13 қадам (суреттермен)
PUBG тақырыптық әні+Arduino көмегімен анимация!: 13 қадам (суреттермен)

Бейне: PUBG тақырыптық әні+Arduino көмегімен анимация!: 13 қадам (суреттермен)

Бейне: PUBG тақырыптық әні+Arduino көмегімен анимация!: 13 қадам (суреттермен)
Бейне: Басыңды байқа! | Slava Marlow - она тебя любит | PUBG Mobile 2024, Шілде
Anonim
Image
Image
Барлық бөлшектерді жинау
Барлық бөлшектерді жинау

Сәлеметсіз бе, осы қызықты нұсқаулыққа қош келдіңіз! Барлығыңыз аман -сау болыңыздар деп үміттенемін. Бұл шағын, бірақ таңғажайып жоба PUBG тақырыбындағы әнді ойнауға және тіпті arduino көмегімен ойын анимацияларын жасауға арналған.

Қолданылатын компоненттер өте оңай қол жетімді және оларды нан тақтасына жинау өте оңай. Мен осы нұсқаулықта бүкіл ғимарат пен кодтау процесін бөлісетін боламын, соңына дейін болыңыз!

Мен сізге жоба туралы түсінік алу үшін бейнені қарауды ұсынамын:) Егер сізге ұнаса, онда лайк басып, бөлісіңіз. Егер менің құрылысым сізге ұнаса, менің каналыма жазылуды ойлаңыз. Рақмет!

Сонымен, кідіріссіз, бастайық!

1 -қадам: барлық бөлшектерді жинау

Барлық бөлшектерді жинау
Барлық бөлшектерді жинау

Құрылым негізінен осы жобаның негізгі өзегі болып табылатын Arduino Nano -дан тұрады. Сіз Arduino Uno, Arduino Pro Mini, Arduino Mega және т.б. сияқты кез келген басқа Arduino нұсқаларын қолдана аласыз. Анимациялар мен кескіндерді көрсету үшін мен 0,96 дюймдік OLED дисплеймен ажыратымдылығы 128 -ден 64 пиксельге дейін баруды шештім. Бұл дисплей I2C протоколы бар arduino интерфейстері болуы мүмкін, ол үшін деректер мен сағат үшін екі сым қажет, осылайша қосылымдар санын азайтады және жобаны ықшам етеді. PUBG тақырыптық әуенін ойнау үшін мен 5В дыбыстық сигналды қолдандым, мен оң түйреуішті 6 сандық түйреуішке ардуиноға жалғап, 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 қосылым қажет:

Ардуинодағы VV 5V

Gnd Gnd Arduino

SDA A4 Arduino

SC5 A5 Arduino

Ардуиноның A4 және A5 түйреуіштері аналогты кірістердің көптеген мақсаттарына қызмет етеді, сонымен қатар I2C байланысына арналған түйреуіштер. Мұнда біз дисплей модулімен өзара әрекеттесу үшін I2C протоколының түйреуіштерін қолдандық.

Бұл жобада пайдаланылатын Adafruit кітапханасына сілтеме:

3 -қадам: Дабыл сигналын қосу

Дыбыстық сигналды қосу
Дыбыстық сигналды қосу
Дыбыстық сигналды қосу
Дыбыстық сигналды қосу

5В сигналының оң және теріс жеткізу терминалы бар.

Arduino оң D6 түйреуіші (сандық пин 6) (сіз arduino кез келген цифрлық түйреуішті пайдалана аласыз)

Gnd Arduino теріс пині

Біз D6 цифрлық пинінде қажетті дыбысты жасаймыз, оған зумер әуенді ойнайды.

4 -қадам: барлық аппараттық қосылулар аяқталды

Барлық аппараттық қосылымдар аяқталды
Барлық аппараттық қосылымдар аяқталды
Барлық аппараттық қосылымдар аяқталды
Барлық аппараттық қосылымдар аяқталды

OLED дисплейі мен дыбыстық сигналдың барлық қажетті қосылымдары аяқталды. Енді жобаның бағдарламалау аспектісін түсіну үшін жалғастырайық.

5 -қадам: Кітапхана мен дисплей протоколдарын қосу

Оның ішінде кітапхана және дисплей протоколдарын инициализациялау
Оның ішінде кітапхана және дисплей протоколдарын инициализациялау

Барлық бағдарлама 3 компоненттен тұрады:

  1. Негізгі бағдарлама инициализациядан және бейнелеу мен әуеннің реттілігінен тұрады
  2. музыкалық ноталар тізімінен және байланысты жиіліктен тұратын «pitches.h» файлы
  3. «pictures.h» файлы көрсетілетін суреттердің нүктелік кескіндерінен тұрады.

Кескінді OLED дисплейінің нүктелік массивіне қалай айналдыру процесі алдағы қадамдарда талқыланады.

Мен сонымен бірге барлық кодты осы нұсқаулықпен бірге қолданамын:

6 -қадам: Тақырып әнінің әуені

Тақырып әнінің әуені
Тақырып әнінің әуені
Тақырып әнінің әуені
Тақырып әнінің әуені

Мен интернеттен PUBG тақырыбындағы әннен тұратын негізгі жазбаларды іздедім, содан кейін оларды әуендер массивіне қостым.

Әуендер тізбегін ойнауға және қайта ойнауға көп уақыт жұмсай отырып, мен әр нотаны қанша уақыт ойнату керек екеніне қатысты уақыт ұзақтығының массивін құрдым. Әуенді массив пен ұзақтық массивінің комбинациясы әнді ойнауға арналған толық ақпаратты қамтиды.

7 -қадам: Әнді іске қосу кезінде ойнату

Әнді орындау кезінде ойнату
Әнді орындау кезінде ойнату

Менде әуендер тізбегін құратын 63 нота бар. For циклын қолдана отырып, нота мен ұзақтық массиві арқылы әр нота арасында алдын ала белгіленген үзіліспен қайталау арқылы бүкіл тізбек бір рет ойнатылады, себебі бұл код бөлігі жатыр бос орнатуда (). Бір қызығы, бұл жобаның кодтарының ешқайсысы arduino кодының void циклін () пайдаланбайды, өйткені мен суреттерді бір рет ойнатуға және көрсетуге ниеттімін. Әрине, егер сіз қайталанатын реттілікті қаласаңыз, онда оны 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 -қадам: Нәтижелер:

Нәтижелері
Нәтижелері
Нәтижелері
Нәтижелері
Нәтижелері
Нәтижелері
Нәтижелері
Нәтижелері

Көріп отырғаныңыздай, суреттер керемет болып шықты! Әуен де осылай болды! Сіз бүкіл демонстрация бар бейнені көрдіңіз деп үміттенемін.

Бұл Arduino PUBG нұсқасы барлық ойындар мен электронды әуесқойлар үшін қызықты жоба деп үміттенемін.

Түсініктемелерде өз пікіріңізді білдіруге және кез келген ұсыныстармен бөлісуге рұқсат етіңіз. Сонымен қатар, мен жұмыс істейтін OLED сериясының бөлігі болғандықтан, менің контентіме жазылыңыз. Егер сіз бұл қызықты жобаны құрсаңыз, маған хабарлаңыз:)

Келесіге дейін.

Ұсынылған: