Мазмуну:

PUBG Theme Song+Animation with Arduino!: 13 Steps (Сүрөттөр менен)
PUBG Theme Song+Animation with Arduino!: 13 Steps (Сүрөттөр менен)

Video: PUBG Theme Song+Animation with Arduino!: 13 Steps (Сүрөттөр менен)

Video: PUBG Theme Song+Animation with Arduino!: 13 Steps (Сүрөттөр менен)
Video: PUBG MOBILE Global Launch Trailer 2024, Июль
Anonim
Image
Image
Бардык бөлүктөрдү чогултуу
Бардык бөлүктөрдү чогултуу

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

Колдонулган компоненттер абдан оңой жеткиликтүү жана нан табакка чогултуу абдан оңой. Мен бүт имаратты жана коддоо процессин ушул көрсөтмөдө бөлүшөм, аягына чейин туруңуз!

Долбоор тууралуу түшүнүк алуу үчүн видеону көрүүнү сунуштаар элем:) Эгер сизге жакса, анда видеону жактырып, бөлүшүп коюңуз. Менин курулушум сизге жакса, каналыма жазылууну ойлонуп көрүңүз. Рахмат!

Андыктан, кечиктирбестен, баштайлы!

1 -кадам: Бардык бөлүктөрдү чогултуу

Бардык бөлүктөрдү чогултуу
Бардык бөлүктөрдү чогултуу

Курулуш негизинен бул долбоордун негизги өзөгү болгон Arduino Nanoдон турат. Сиз популярдуу Arduino Uno, Arduino Pro Mini, Arduino Mega ж. Бул дисплей I2C протоколу бар arduino менен интерфейстер болушу мүмкүн, бул маалымат жана саат үчүн эки зымды талап кылат, ошону менен байланыштардын санын кыскартат жана долбоорду чакан кылат. PUBG темасындагы обонду ойноо үчүн мен 5V сигналын колдондум, анын позитивдүү пинин ардуинонун санарип пин 6 менен туташтырып, Arduino жерге түштү.

Бул долбоор үчүн керектүү бөлүктөрдүн тизмеси:

  1. Arduino Nano (же каалаган ардуино тактасы)
  2. 0.96 дюймдук OLED дисплей модулу
  3. 5V сигнал
  4. Өткөргүч зымдар
  5. Breadboard
  6. Arduino программалоо кабели

2 -кадам: OLED дисплейин туташтыруу

OLED дисплейин туташтыруу
OLED дисплейин туташтыруу
OLED дисплейин туташтыруу
OLED дисплейин туташтыруу
OLED дисплейин туташтыруу
OLED дисплейин туташтыруу

OLED дисплейинин arduinoдон туташуусу үчүн жалпысынан 4 туташуу керек:

Vcu 5V Arduino

Gnd Gnd Arduino

SDU A4 Arduino

SCU A5 Arduino

Ардуинонун A4 жана A5 төөнөгүчтөрү аналогдук кирүүлөрдүн көптөгөн максаттарын, ошондой эле I2C байланыш үчүн төөнөгүчтөрдү тейлейт. Бул жерде биз дисплей модулу менен иштөө үчүн I2C протоколу үчүн төөнөгүчтөрдү колдондук.

Бул долбоордо колдонулган Adafruit китепканасына шилтеме:

3 -кадам: Бузерди туташтыруу

Бузерди туташтыруу
Бузерди туташтыруу
Бузерди туташтыруу
Бузерди туташтыруу

5V сигналынын оң жана терс берүү терминалы бар.

Ардуинонун оң пин D6 (санарип пин 6) (сиз ардуинонун каалаган санарип пинин колдоно аласыз)

Arduino терс пин Gnd

Биз D6 санарип пининде керектүү обонду түзөбүз, ага коңгуроо обон ойнойт.

4 -кадам: Бардык аппараттык туташуулар аяктады

Бардык аппараттык туташуулар аяктады
Бардык аппараттык туташуулар аяктады
Бардык аппараттык туташуулар аяктады
Бардык аппараттык туташуулар аяктады

OLED дисплейинин жана сигналдын бардык керектүү туташуулары аяктады. Эми долбоордун программалоо жагын түшүнүү үчүн алдыга жылалы.

5 -кадам: Китепкана жана дисплей протоколдорун баштоо

Китепкана жана дисплей протоколдорун баштоо
Китепкана жана дисплей протоколдорун баштоо

Бардык программа 3 компонентке бөлүнгөн:

  1. Негизги программа инициализациядан жана образды көрсөтүү менен обондун ырааттуулугунан турат
  2. "pitches.h" файлы музыкалык ноталардын тизмесинен жана байланышкан жыштыктан турат
  3. "pictures.h" файлы көрсөтүлө турган сүрөттөрдүн битмаптарынан турат.

Сүрөттү OLED дисплейинин бит массивине кантип айландыруу процесси алдыдагы кадамдарда талкууланат.

Мен ошондой эле кодду толугу менен тиркеп коеюн, бул көрсөтмө менен бирге колдонууңуз үчүн:)

6 -кадам: Theme Song Melody

Theme Song Melody
Theme Song Melody
Theme Song Melody
Theme Song Melody

Мен интернеттен PUBG темасындагы ырды камтыган негизги ноталарды издедим, анан аларды обон катарына коштум.

Бир топ убакытты ойнотуу жана обондордун ырааттуулугун кайталоо менен, мен ар бир нотаны канча убакытка чейин ойнотуу керек экендигине байланыштуу убакыт аралыгын түздүм. Обондуу массив менен узактык массивинин айкалышы ырды ойнотуу үчүн толук маалыматты камтыйт.

7 -кадам: Ырды баштоо учурунда ойнотуу

Старт учурунда ырды ойнотуу
Старт учурунда ырды ойнотуу

Мен обондордун ырааттуулугун түзгөн 63 нотанын бардыгы бар. For циклин колдонуу жана нота менен узактык массивин ар бир нотанын ортосунда алдын ала белгиленген тыныгуу менен кайталоо, бүт тизмек бир жолу ойнотулат, анткени бул коддун бөлүгү жатат боштукту орнотууда (). Кызыктуусу, бул долбоордун эч бир коду arduino кодунун void loopын () колдонбойт, анткени мен сүрөттөрдү бир гана жолу ойнотууну жана көрсөтүүнү ниет кылам. Албетте, эгер сиз кайталануучу ырааттуулукту кааласаңыз, анда аны void loop () функциясына коюу керек.

8 -кадам: Сүрөттөрдү битмаптарга айландыруу

Сүрөттөрдү битмаптарга айландыруу
Сүрөттөрдү битмаптарга айландыруу

Эми, долбоордун кызыктуу бөлүгү - сүрөттү OLED дисплейи үчүн пикселдик тыгыздыгына жараша битмап массивине айландыруу процесси. Бул үчүн мен префектин онлайн куралын таптым, ал бизге ыңгайлаштырылган битмаптарды түзүүгө мүмкүндүк берет.

Бул онлайн тиркеме үчүн шилтеме:

Бул колдонмонун укмуштуудай жаратуучуларына рахмат, бул менин жумушумду бир топ жеңилдетет.

Шилтемеге барганда, адегенде битмапты түзгүңүз келген сүрөттү жүктөшүңүз керек. Бул жерде белгилей кетчү нерсе, түстөрдүн карама -каршылыгы жок сүрөттөрдү тандап, жакшы натыйжаларга жетүү үчүн эч кандай градиенттери жок сүрөттөрдү жабыштырып көрүшүңүз керек.

9 -кадам: Дисплейиңизге ылайык токтомду тууралоо

Чечимди дисплейиңизге жараша тууралоо
Чечимди дисплейиңизге жараша тууралоо

Кийинки кадамда, дисплейдин чечилишине жараша сүрөттүн өлчөмүн өзгөртүүбүз керек. Биздин OLED дисплейибиз үчүн, ал сүрөттө көрсөтүлгөндөй тууралаган туурасы 28 пиксел жана бийиктиги 64 пиксел. Сүрөт бир топ ачык экенине ынануу үчүн жарыктык босогосун тууралаңыз (бул жерде ачык түстөр менен сүрөттөрдү колдонуунун артыкчылыгы пайда болот, түстүү градиенттер канчалык көп болсо, монохромдук дисплейдеги сүрөттүн сапаты начарлайт, анткени ал жарыктык босогосун бузат.).

Кийинки кадам - бул пропорцияларды сактап, симметрияны тууралоо үчүн экранда сүрөттү орнотуу. Сиз каалаган сүрөттү алуу үчүн бул параметрлерди изилдей аласыз. Маалымат үчүн сиз укмуштуудай алдын ала көрүү мүмкүнчүлүгүн аласыз!

10 -кадам: Bitmap массивин түзүү

Bitmap массивин түзүү
Bitmap массивин түзүү

Сүрөт параметрлерин тууралагандан кийин, кийинки кадамда Arduino кодун чыгаруу форматы катары тандап, керектүү битмап массивин алуу үчүн генерацияны басыңыз!

Ал жерде! сиз сүрөттү каалаган битмап массивине ийгиликтүү айландырдыңыз. Мен бул процессти жалпысынан 7 сүрөт үчүн жасап, сактап койдум.

11 -кадам: сүрөттөрдү ырааттуулук катары көрсөтүү

Сүрөттөрдү ырааттуулук катары көрсөтүү
Сүрөттөрдү ырааттуулук катары көрсөтүү
Сүрөттөрдү ырааттуулук катары көрсөтүү
Сүрөттөрдү ырааттуулук катары көрсөтүү
Сүрөттөрдү ырааттуулук катары көрсөтүү
Сүрөттөрдү ырааттуулук катары көрсөтүү

Сүрөттөрдү көрсөтүү үчүн, мен Arduino millis () функциясын колдонуп, draw () функциясын чакырдым, ал негизинен дисплейди тазалоо үчүн буйруктардын жыйындысы, битмап массивин OLEDге чийип, дисплейди баштоо. Негизги логика - ар бир 3,5 секунддан кийин, сүрөт өзгөртүлүп, кийинки сүрөт көрсөтүлөт. Ооба, 3,5 секунд - бул уникалдуу сан эмес, мен обондун узактыгын 7 сүрөткө бөлсөм, ар бир дисплей үчүн болжол менен 3,5 секунд алганын түшүндүм. Кааласаңыз, буга дагы сүрөттөрдү кошуп, ар бир сүрөттү көрсөтүү убактысын кыскартсаңыз болот.

Код үзүндүлөрү миллис () функциясынын негизинде функциялардын кандайча чакырыларын түшүндүрөт.

Сүрөттөрдүн бүт бит массивдери "pictures.h" файлында сакталат

12 -кадам: Бүтүндөй код:

Бул жерде мен баарыңар менен ойноп, эксперимент жүргүзүү үчүн баардык кодду бөлүшүп жатам!

Баары жакшы көрүнгөндөн кийин, тактага жүктөө убактысы келди:)

13 -кадам: Жыйынтыктар:

Жыйынтыктар
Жыйынтыктар
Жыйынтыктар
Жыйынтыктар
Жыйынтыктар
Жыйынтыктар
Жыйынтыктар
Жыйынтыктар

Көрүнүп тургандай, сүрөттөр сонун болуп чыкты! Жана обону да ушундай болду! Мен демонстрация толугу менен катышкан видеону көрдүңүз деп үмүттөнөм.

Бул Arduino версиясы PUBG бардык оюндар жана электрондук ышкыбоздор үчүн кызыктуу долбоор деп үмүттөнөм.

Сураныч, комментарийлерде өзүңүздүн пикириңизди билдириңиз жана кандайдыр бир сунуштарды бөлүшүңүз. Ошондой эле, мен иштеп жаткан OLED сериясынын бир бөлүгү болгондуктан, менин каналыма жазылыңыз. Эгер бул кызыктуу долбоорду түзсөңүз, мага кабарлаңыз:)

Кийинки жолу чейин.

Сунушталууда: