Мазмуну:

42 RGB LED пикселдик көркөм сүрөт: 5 кадам
42 RGB LED пикселдик көркөм сүрөт: 5 кадам

Video: 42 RGB LED пикселдик көркөм сүрөт: 5 кадам

Video: 42 RGB LED пикселдик көркөм сүрөт: 5 кадам
Video: ESP32 Tutorial 42 - Taking Photo with Camera save on MicroSD CAM-1 | SunFounder's ESP32 Learnig kit 2024, Июль
Anonim
42 RGB LED пикселдик көркөм сүрөт
42 RGB LED пикселдик көркөм сүрөт

Эй, Ошентип, "эгерде ушундай болсо" деп аталган мектеп тапшырмасы үчүн мен Arduino Uno стартеркитинин жардамы менен интерактивдүү // бир нерсе // жасоого туура келди (жана башка нерселер өздөрүн сатып алууга даяр болчу). Мен Искусство/Технологияны изилдеп жатканымды көрүп, экөөнүн тең айкалышын жасагым келди (искусство жана технология). Мен өзүмдүн Arduinoго туура келгендей көп RGB LEDлеринен турган сүрөт тартып, оюнчуга/сүрөтчүгө ошол RGB LEDлерин кол менен айланып, түсүн тандап алам деп ойлодум. Ошентип алар өздөрүнүн "пикселдик искусствосун" жасай алышат!

1 -кадам: Кээ бир маалымат жана теория

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

Ошентип, биринчи кезекте биринчи нерсе. Биз мүмкүн болушунча көбүрөөк Arduinoбузда LED/RGB LEDлерин каалайбыз. Канчалык көп (RGB) светодиодду туташтырсаңыз, ошончолук "сүрөтүңүздү" жасай аласыз (10х10 пиксель сизге 2х2 оңго караганда көбүрөөк кыймыл бөлмө берет). Менимче, 13 санарип казыгыңызда (RGB) көп светодиоддорду алуунун башка жолдору бар деп ойлойм (нөөмөт реестри сыяктуу нерселер), бирок мен "Charlieplexing" деп аталган ыкманы колдондум. Мен бул түшүнүктү түшүнүүгө жардам берген нускоочуга шилтеме кылам (олуттуу түрдө алар муну абдан жакшы түшүндүрүшөт), бирок мен дагы бул жерде тез версиясын берем. Charlieplexing төмөнкүдөй жүрөт:

Сиз 1 -пин менен 2 -пин ортосуна LED коёсуз, эгер сиз 1 -пинди ЖОГОРКУга жана 2 -ТӨМӨН кылып койсоңуз, тегерек тегиз иштейт жана LED күйөт. Негиздери. Мейли, эми сиз башка LEDди тиркеңиз, бирок айланып кетти. Узун учу 2де, кыска учу pin1де. Эми эгер сиз 2 -пинди ЖОКко жана 1 -пин ТӨМӨНГӨ айландырсаңыз, 2 -светодиод күйөт жана биринчиси өчүп калат, анткени агым туура эмес болот. Эми сиз 2 казыкка 2 светодиодду тиркей аласыз. Эгерде биз 3 -пинди аралаштырып алсак, анда бул трюкту 1 менен 2, 1 жана 3 жана 2 жана 3 ортосунда жасай аласыз. Бул 6 LED. Бул улана берет, 5 пин бизге (2 + 4 + 6 + 8) 20 светодиод берет. Бардык 13 санарип казыкты колдонуу бизге 156 вариантты берет. Thats 156 LEDs сиз жеке күйгүзүп жана өчүрө аласыз.

(макул, сиз ойлогондор үчүн. Ооба, эгер сизде көп нерселер бар болсо, аларды бир убакта күйгүзүү мүмкүн эмес, бирок тынчсызданбаңыз, arduino сиздин диоддоруңуздун ортосуна тез которула алат, адамдын көзү чыракты көрө албайт)

(Сүрөттөр менен жакшыраак жана кеңири түшүндүрмө)

Макул, электр өткөргүчтөрүнө келгенде көп күч -аракет жумшоо менен (бул жөнүндө кийинчерээк сөз кылам), биз диоддук диоддорду түзө алабыз, бирок буга жол берели. Светодиоддор абдан кызыксыз. Кантип бир гана 2 түстүү сүрөт тартууга болот? Менимче, сиз кыла аласыз, бирок оңураак тандоо үчүн дагы түстөр болсо, анын жолу салкыныраакпы? туура Ошентип, RGB светодиодуна кайрылабыз!

RGB светодиоддору негизинен 3 светодиоддордо 1. Алар жалпы катод же анодду бөлүшөт (бул жерде электр энергиясы кирип же чыгып турат), ал эми башка 3 "буту" - бул сиздин кызыл жашыл жана көк LED. Муну эске алып, ооба, биз аларды да charlieplex кыла алабыз! Ар бир RGB LED 3 кадимки LEDди эсептейт. Ушундай жол менен сиз алардын бардыгын жекече күйгүзүп жана өчүрүп, тандоо үчүн муздак түстөрдү түзө аласыз! Бир гана жетишпеген жагы, бул нерсени бир топ татаалдаштырат, анткени сиз картага/пландаштырууга жана светодиоддорго караганда 3 эсе көп керек.

Мен 13 казыкта 42 RGB светодиодуна бардым. Бул 126 кадимки светодиод ….. бул абдан көп. Мен муну кантип кылганымды айтып берейин.

2 -кадам: Пландоо

Пландоо
Пландоо

Ооба, сиз эмне кылып жатканыңыздын теориясын түшүнгөндөн кийин, бул кадам оңой болот. Сиз негизинен бардык светодиоддоруңузду жазасыз жана RGB LEDинин кайсы "бутуна" өтүү керектигин пландаштырасыз, ошондо сиз бардык варианттарыңызды камтыйсыз. Мен пландаштырып жатканымдын сүрөтүн тиркеп койдум, аны да колдонууга тартынбагыла (мен колдо болгон бардык варианттарды колдонгон жокмун, анткени мен "болгону" 156дан 126 байланышка муктаж болчумун. Мен муну структуралаштырдым, анткени ал курулушту бир аз оңоюраак кылат.).

Муну кагазга түшүрүү маанилүү, сизге кийинчерээк код керек болот. Эгерде сиз муну жазып, 1 туташууну бузбасаңыз, анда бул LED үчүн код иштебейт.

3 -кадам: Кодекс

Макул, эгерде сизде буга чейин 2 RGB LEDди 2 казыкка кантип туташтыруу керектиги жөнүндө идея болсо: Алга! Кодду текшерүү жагымдуу, бирок мен ишенем, ал иштейт! Мен мүмкүн болушунча "таза" коддоого аракет кылдым (Сиз муну өчүргүчтөрдүн жардамы менен да башкара аласыз, бирок бул x42 кодуңуздун бардыгын жазып койгон коркунучтуу түйшүк, бул мага жакшыраак экенин түшүнүүгө жардам берди жол).

Коддун максаты төмөндөгүдөй. Сиз LED1ден баштайсыз. 1 -баскыч кийинки LEDга өтүүгө мүмкүндүк берет, бирок мурунку LED күйүп турат. Button2 мурунку LEDге кайтууга, 3 -баскыч түсүн өзгөртүүгө мүмкүндүк берет. Учурдагы тандалган LED жаркырайт, андыктан кайсы LED "тандалганын" көрө аласыз.

Бул үчүн мен массивдер менен иштедим. Мен пландаштыруу стадиясында сиз жазган маалыматты колдонуп, кайсы түстү түзүү керек экенин билүү үчүн LED классын түздүм. Мен алардын бардыгын массивге койдум жана arduino циклине LEDarray аркылуу кайсынысы кошулганын жана colorarray аркылуу кайсы түс тандалганын аныктоого уруксат берем (түс 7 түстү тандоого мүмкүндүк берген которгуч менен аныкталат). Жаркыроо if-билдирүү менен жөнгө салынат.

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

4 -кадам: Эң оор бөлүгү

Эң оор бөлүгү
Эң оор бөлүгү
Эң оор бөлүгү
Эң оор бөлүгү

Эми сизде идея бар, иштөө коду …..тек продукт эмес. Бул бул долбоордун эң коркунучтуу бөлүгү жана мен муну жеңил кабыл албоого кеңеш берер элем. Баары бир эле төөнөгүч менен бүткөн ар кандай буттар эсиңиздеби? ооба … сиз светодиоддордун торун жасашыңыз керек, андан кийин ар бир бутуңузду башка бир бутуңузга туташтырыңыз, анан ошол пинге туташтырыңыз. Бул эң татаал бөлүгү жана меники 100% идеалдуу чыккан жок, эгер сиз ширетүүдө жакшы болсоңуз, анда мүмкүнчүлүгүңүз болушу мүмкүн.

Мен бир убакта RGB светодиоддорун коюп, ар бир бутума жез зымын туташтырдым (мен корпус менен оролгон жез зымды сунуштайм. Меники өтө калың болчу жана ал мага көп кайгы алып келди). Этият болуңуз, эки бут же зым бири -бирине тийбесин! анда "жөн эле" бир зымга өтүү керек болгон бардык зымдарды туташтырып, анан аларды резисторго туташтырып, тигил пинге туташтырыңыз. Муну жасоонун "коопсуз" жолу бар экенине ишенем, бирок аракет кылып жатканда чындап эле чөгүп кетерине ишенем …

(Мен бул кадамды жөнөкөйлөтө турган чийме коштум. Бул менин кодумду так аткаруу үчүн кайсы бутка кайсы пинге баруу керектигин айтат.)

Бул мага 4 күндүк жумушту талап кылды, бирок азыр ар бир светодиод (минус 3-4) мен жекече күйгүзөм!

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

Бул адам зымдардын мисалын да көрсөттү, бул абдан пайдалуу

5 -кадам: Глут. Absolutely Gloat

Эгерде сиз башталгыч болсоңуз (мен сыяктуу) жана сиз бул келемиштердин уясына окшош бир нерсе жасай алсаңыз, ал күйгүзүлөт; көңүлсүз. Сиз чындыгында жакшылык кылдыңыз!

Эгерде сизде кандайдыр бир суроолор/комментарийлер болсо, аларды төмөндө калтырыңыз, мен колумдан келсе жардам берүүгө аракет кылам!

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