Мазмуну:
- 1 -кадам: Бардык бөлүктөрдү чогултуу
- 2 -кадам: OLED дисплейин туташтыруу
- 3 -кадам: Бузерди туташтыруу
- 4 -кадам: Бардык аппараттык туташуулар аяктады
- 5 -кадам: Китепкана жана дисплей протоколдорун баштоо
- 6 -кадам: Theme Song Melody
- 7 -кадам: Ырды баштоо учурунда ойнотуу
- 8 -кадам: Сүрөттөрдү битмаптарга айландыруу
- 9 -кадам: Дисплейиңизге ылайык токтомду тууралоо
- 10 -кадам: Bitmap массивин түзүү
- 11 -кадам: сүрөттөрдү ырааттуулук катары көрсөтүү
- 12 -кадам: Бүтүндөй код:
- 13 -кадам: Жыйынтыктар:
Video: PUBG Theme Song+Animation with Arduino!: 13 Steps (Сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:39
Салам алейкум жана бул кызыктуу сабакка кош келиңиз! Баарыңар жакшы болуп, ден соолукта болгула деп ишенем. Бул кичинекей, бирок таң калыштуу долбоор PUBG темасындагы ырды ойноп, ал тургай arduino аркылуу оюн анимацияларын түзүү жөнүндө.
Колдонулган компоненттер абдан оңой жеткиликтүү жана нан табакка чогултуу абдан оңой. Мен бүт имаратты жана коддоо процессин ушул көрсөтмөдө бөлүшөм, аягына чейин туруңуз!
Долбоор тууралуу түшүнүк алуу үчүн видеону көрүүнү сунуштаар элем:) Эгер сизге жакса, анда видеону жактырып, бөлүшүп коюңуз. Менин курулушум сизге жакса, каналыма жазылууну ойлонуп көрүңүз. Рахмат!
Андыктан, кечиктирбестен, баштайлы!
1 -кадам: Бардык бөлүктөрдү чогултуу
Курулуш негизинен бул долбоордун негизги өзөгү болгон Arduino Nanoдон турат. Сиз популярдуу Arduino Uno, Arduino Pro Mini, Arduino Mega ж. Бул дисплей I2C протоколу бар arduino менен интерфейстер болушу мүмкүн, бул маалымат жана саат үчүн эки зымды талап кылат, ошону менен байланыштардын санын кыскартат жана долбоорду чакан кылат. PUBG темасындагы обонду ойноо үчүн мен 5V сигналын колдондум, анын позитивдүү пинин ардуинонун санарип пин 6 менен туташтырып, Arduino жерге түштү.
Бул долбоор үчүн керектүү бөлүктөрдүн тизмеси:
- Arduino Nano (же каалаган ардуино тактасы)
- 0.96 дюймдук OLED дисплей модулу
- 5V сигнал
- Өткөргүч зымдар
- Breadboard
- Arduino программалоо кабели
2 -кадам: 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 компонентке бөлүнгөн:
- Негизги программа инициализациядан жана образды көрсөтүү менен обондун ырааттуулугунан турат
- "pitches.h" файлы музыкалык ноталардын тизмесинен жана байланышкан жыштыктан турат
- "pictures.h" файлы көрсөтүлө турган сүрөттөрдүн битмаптарынан турат.
Сүрөттү OLED дисплейинин бит массивине кантип айландыруу процесси алдыдагы кадамдарда талкууланат.
Мен ошондой эле кодду толугу менен тиркеп коеюн, бул көрсөтмө менен бирге колдонууңуз үчүн:)
6 -кадам: Theme Song Melody
Мен интернеттен PUBG темасындагы ырды камтыган негизги ноталарды издедим, анан аларды обон катарына коштум.
Бир топ убакытты ойнотуу жана обондордун ырааттуулугун кайталоо менен, мен ар бир нотаны канча убакытка чейин ойнотуу керек экендигине байланыштуу убакыт аралыгын түздүм. Обондуу массив менен узактык массивинин айкалышы ырды ойнотуу үчүн толук маалыматты камтыйт.
7 -кадам: Ырды баштоо учурунда ойнотуу
Мен обондордун ырааттуулугун түзгөн 63 нотанын бардыгы бар. For циклин колдонуу жана нота менен узактык массивин ар бир нотанын ортосунда алдын ала белгиленген тыныгуу менен кайталоо, бүт тизмек бир жолу ойнотулат, анткени бул коддун бөлүгү жатат боштукту орнотууда (). Кызыктуусу, бул долбоордун эч бир коду arduino кодунун void loopын () колдонбойт, анткени мен сүрөттөрдү бир гана жолу ойнотууну жана көрсөтүүнү ниет кылам. Албетте, эгер сиз кайталануучу ырааттуулукту кааласаңыз, анда аны void loop () функциясына коюу керек.
8 -кадам: Сүрөттөрдү битмаптарга айландыруу
Эми, долбоордун кызыктуу бөлүгү - сүрөттү OLED дисплейи үчүн пикселдик тыгыздыгына жараша битмап массивине айландыруу процесси. Бул үчүн мен префектин онлайн куралын таптым, ал бизге ыңгайлаштырылган битмаптарды түзүүгө мүмкүндүк берет.
Бул онлайн тиркеме үчүн шилтеме:
Бул колдонмонун укмуштуудай жаратуучуларына рахмат, бул менин жумушумду бир топ жеңилдетет.
Шилтемеге барганда, адегенде битмапты түзгүңүз келген сүрөттү жүктөшүңүз керек. Бул жерде белгилей кетчү нерсе, түстөрдүн карама -каршылыгы жок сүрөттөрдү тандап, жакшы натыйжаларга жетүү үчүн эч кандай градиенттери жок сүрөттөрдү жабыштырып көрүшүңүз керек.
9 -кадам: Дисплейиңизге ылайык токтомду тууралоо
Кийинки кадамда, дисплейдин чечилишине жараша сүрөттүн өлчөмүн өзгөртүүбүз керек. Биздин OLED дисплейибиз үчүн, ал сүрөттө көрсөтүлгөндөй тууралаган туурасы 28 пиксел жана бийиктиги 64 пиксел. Сүрөт бир топ ачык экенине ынануу үчүн жарыктык босогосун тууралаңыз (бул жерде ачык түстөр менен сүрөттөрдү колдонуунун артыкчылыгы пайда болот, түстүү градиенттер канчалык көп болсо, монохромдук дисплейдеги сүрөттүн сапаты начарлайт, анткени ал жарыктык босогосун бузат.).
Кийинки кадам - бул пропорцияларды сактап, симметрияны тууралоо үчүн экранда сүрөттү орнотуу. Сиз каалаган сүрөттү алуу үчүн бул параметрлерди изилдей аласыз. Маалымат үчүн сиз укмуштуудай алдын ала көрүү мүмкүнчүлүгүн аласыз!
10 -кадам: Bitmap массивин түзүү
Сүрөт параметрлерин тууралагандан кийин, кийинки кадамда Arduino кодун чыгаруу форматы катары тандап, керектүү битмап массивин алуу үчүн генерацияны басыңыз!
Ал жерде! сиз сүрөттү каалаган битмап массивине ийгиликтүү айландырдыңыз. Мен бул процессти жалпысынан 7 сүрөт үчүн жасап, сактап койдум.
11 -кадам: сүрөттөрдү ырааттуулук катары көрсөтүү
Сүрөттөрдү көрсөтүү үчүн, мен Arduino millis () функциясын колдонуп, draw () функциясын чакырдым, ал негизинен дисплейди тазалоо үчүн буйруктардын жыйындысы, битмап массивин OLEDге чийип, дисплейди баштоо. Негизги логика - ар бир 3,5 секунддан кийин, сүрөт өзгөртүлүп, кийинки сүрөт көрсөтүлөт. Ооба, 3,5 секунд - бул уникалдуу сан эмес, мен обондун узактыгын 7 сүрөткө бөлсөм, ар бир дисплей үчүн болжол менен 3,5 секунд алганын түшүндүм. Кааласаңыз, буга дагы сүрөттөрдү кошуп, ар бир сүрөттү көрсөтүү убактысын кыскартсаңыз болот.
Код үзүндүлөрү миллис () функциясынын негизинде функциялардын кандайча чакырыларын түшүндүрөт.
Сүрөттөрдүн бүт бит массивдери "pictures.h" файлында сакталат
12 -кадам: Бүтүндөй код:
Бул жерде мен баарыңар менен ойноп, эксперимент жүргүзүү үчүн баардык кодду бөлүшүп жатам!
Баары жакшы көрүнгөндөн кийин, тактага жүктөө убактысы келди:)
13 -кадам: Жыйынтыктар:
Көрүнүп тургандай, сүрөттөр сонун болуп чыкты! Жана обону да ушундай болду! Мен демонстрация толугу менен катышкан видеону көрдүңүз деп үмүттөнөм.
Бул Arduino версиясы PUBG бардык оюндар жана электрондук ышкыбоздор үчүн кызыктуу долбоор деп үмүттөнөм.
Сураныч, комментарийлерде өзүңүздүн пикириңизди билдириңиз жана кандайдыр бир сунуштарды бөлүшүңүз. Ошондой эле, мен иштеп жаткан OLED сериясынын бир бөлүгү болгондуктан, менин каналыма жазылыңыз. Эгер бул кызыктуу долбоорду түзсөңүз, мага кабарлаңыз:)
Кийинки жолу чейин.
Сунушталууда:
Visuino менен SSD1331 OLED дисплейиндеги (SPI) Bitmap Animation: 8 кадам
Visuino менен SSD1331 OLED Дисплейиндеги (SPI) Bitmap Animation: Бул үйрөткүчтө биз Visuino менен SSD1331 OLED Дисплейинде (SPI) анимациянын жөнөкөй түрүндө битмап сүрөтүн көрсөтөбүз жана айланабыз
Howto: Rpi-imager жана сүрөттөр менен Raspberry PI 4 Headless (VNC) орнотуу: 7 кадам (Сүрөттөр менен)
Howto: Rpi-imager жана сүрөттөр менен Raspberry PI 4 Headless (VNC) орнотуу: Мен бул блогумда кызыктуу долбоорлордун топтомунда бул Rapsberry PI колдонууну пландап жатам. Аны текшерүүдөн тартынбаңыз. Мен Raspberry PIди колдонууну каалагам, бирок жаңы жерде клавиатура же чычкан жок болчу. Мен Raspberry орнотконума бир топ убакыт болду
Raspberry Pi Stop-Motion Animation Rig: 16 Steps (Сүрөттөр менен)
Raspberry Pi Stop-Motion Animation Rig: Stop-motion анимациясы-бул объекттер физикалык жактан башкарылуучу жана кыймылдуу сүрөттөлүштүн элесин жаратуу үчүн кадрдан кадрга сүрөткө тартуу ыкмасы. , бул " кичинекей жана аффект
Animation Coffee Table: 9 кадам (Сүрөттөр менен)
Animation Coffee Table: LED матрицалары менен интерактивдүү кофе үстөлдөрүн жасоо боюнча көптөгөн жакшы көрсөтмөлөр бар, мен алардын айрымдарынан илхам жана кеңештерди алдым. Бул жөнөкөй, арзан жана эң негизгиси чыгармачылыкты стимулдаштырууга багытталган: болгону экөө
Arduino Uno: ILI9341 TFT сенсордук дисплейдеги Bitmap Animation Visuino менен: 12 кадам (сүрөттөр менен)
Arduino Uno: ILI9341 TFT сенсордук дисплейдеги Bitmap Animation Visuino менен: ILI9341 негизделген TFT сенсордук дисплей калканчтары Arduino үчүн абдан популярдуу арзан экрандар. Visuino аларды бир топ убакыттан бери колдоп келет, бирок мен аларды кантип колдонуу боюнча окуу куралын жазууга эч качан мүмкүнчүлүк болгон эмес. Жакында эле аз адамдар сурашты