Mundarija:
- 1 -qadam: Ba'zi ma'lumot va nazariyalar
- 2 -qadam: Rejalashtirish
- 3 -qadam: Kod
- 4 -qadam: eng qiyin qism
- 5 -qadam: Gloat. Mutlaqo Gloat
Video: 42 RGB LED pikselli badiiy rasm: 5 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:28
Hey, Shunday qilib, "Agar shunday bo'lsa" deb nomlangan maktab topshirig'ida men Arduino Uno boshlang'ich to'plami yordamida interaktiv // nimadir // qilishim kerak edi (va kim o'zlarini sotib olmoqchi bo'lsa ham). Men San'at/Texnologiyani o'rganayotganimni ko'rib, ikkalasini (san'at va texnika) birlashtirishni xohlardim. Men Arduino -ga mos keladigan RGB LED -laridan iborat rasm chizaman deb o'ylardim va o'yinchi/rassomga RGB LED -lari orqali qo'lda aylanishiga va rang tanlashiga ruxsat beraman. Shunday qilib, ular o'zlarining "pikselli san'ati" ni yaratishi mumkin!
1 -qadam: Ba'zi ma'lumot va nazariyalar
Xo'sh, keling, butani urmaylik. Agar siz ushbu loyihani hayotga tatbiq etmoqchi bo'lsangiz: qiyin. Menga nima qilish kerakligini aniqlash/o'rganish va undan ham ko'proq narsani bajarish uchun ko'p soat kerak bo'ldi, lekin agar siz haqiqatan ham juda kichik "rasmlar" yarata oladigan sim bilan to'ldirilgan qutini xohlasangiz, men sizga buni o'rgataman.
Shunday qilib, birinchi navbatda birinchi narsa. Biz Arduino -da iloji boricha ko'proq LED/RGB LEDni xohlaymiz. Qancha ko'p (RGB) LED ulansangiz, siz "rasm" chizishingiz mumkin (10x10 piksel o'ng tomonda 2x2 ga qaraganda ko'proq harakatlanish xonasini beradi). O'ylaymanki, sizning 13 ta raqamli pinlaringizda (RGB registrlari) ko'p sonli (RGB) LEDlarni olishning boshqa usullari bor, lekin men "Charlieplexing" usulini qo'lladim. Men bu kontseptsiyani tushunishga yordam beradigan ko'rsatma bilan bog'lanaman (ular buni juda yaxshi tushuntirishadi), lekin men ham sizga bu erda tezkor versiyasini beraman. Charlieplexing quyidagicha:
Siz 1 -pin va 2 -pin o'rtasida LEDni qo'yasiz, agar siz 1 -pinni YUQORI va 2 -ni LOW -ga qo'ygan bo'lsangiz, aylana muammosiz ishlaydi va LED yonadi. Asosiysi. Xo'sh, endi siz boshqa LEDni ulaysiz, lekin aylanib o'ting. Uzun uchi 2da, qisqa uchi pin1da. Agar siz 2 -pinni YUQORI va 1 -POMni LOW -ga aylantirsangiz, 2 -chi LED yonadi va sizning birinchi o'chadi, chunki oqim noto'g'ri bo'ladi. Endi siz 2 pinli ikkita LEDni ulashingiz mumkin. Agar biz aralashmaning 3 -chi pinini olsak, siz bu hiylani 1 va 2, 1 va 3 va 2 va 3 oralig'ida qilishingiz mumkin. Bu 6 LED. Bu davom etadi, 5 ta pin bizga (2 + 4 + 6 + 8) 20 ta LED beradi. Hamma 13 raqamli pimdan foydalanish bizga 156 variantni beradi. Bu 156 LEDni alohida -alohida yoqish va o'chirish.
(ha, siz hayron bo'lganlar uchun. Ha, agar sizda ko'p narsalarni bir vaqtning o'zida yoqish imkonsiz bo'lsa -da, lekin tashvishlanmang, arduino svetodiodlar orasidagi almashishni shunchalik tez amalga oshiradiki, inson ko'zlari miltillashni ko'ra olmaydi)
(Yaxshi va batafsil tushuntirish, rasmlar bilan)
To'g'ri, biz simlarni ulashda ko'p kuch sarflaymiz (bu haqda keyinroq to'xtalib o'taman), biz juda ko'p LEDlar panjarasini yasashimiz mumkin, lekin bunga yo'l qo'ymaylik. LEDlar juda zerikarli. Qanday qilib faqat 2 ta rang bilan rasm yasash mumkin? O'ylaymanki, siz qila olasiz, lekin o'ngdan tanlash uchun ko'proq ranglar bo'lsa, salqinroqmi? to'g'ri Shunday qilib, biz RGB LEDlariga murojaat qilamiz!
RGB LED'lari asosan 3 ta LEDni o'z ichiga oladi. Ular umumiy katod yoki anodga ega (bu erda quvvat kirsa yoki o'chadi), qolgan 3 "oyoq" esa sizning qizil yashil va ko'k LEDingizdir. Shuni yodda tutgan holda, biz ham ularni charlieplex qila olamiz! Har bir RGB LED 3 ta oddiy LEDni hisobga oladi. Shunday qilib, siz ularni birma -bir yoqishingiz va o'chirishingiz va sovuq ranglar tanlashingiz mumkin! Yagona kamchilik shundaki, bu ishni ancha qiyinlashtiradi, chunki siz xaritani rejalashtirishingiz va svetodiodli LEDlarni 3 barobar ko'p ulashingiz kerak.
Men 13 ta pinli 42 ta RGB LEDni oldim. Bu 126 ta oddiy LED … juda ko'p son. Sizga buni qanday qilganimni aytib beray.
2 -qadam: Rejalashtirish
Ha, nima qilayotganingizning nazariyasini tushunganingizda, bu qadam juda oson. Siz asosan barcha LED -laringizni yozasiz va qaysi pinni qaysi RGB LED "oyog'iga" o'tkazish kerakligini rejalashtirasiz, shunda siz barcha variantlaringizni qamrab olasiz. Men o'z rejamning rasmini ilova qildim, bundan ham bemalol foydalaning (men mavjud bo'lgan barcha variantlarni ishlatmadim, chunki men "faqat" 156 dan 126 ta ulanishga muhtoj edim. Men buni shunday tuzganman, chunki u qurilishni biroz yengilroq qiladi.).
Buni qog'ozga olish juda muhim, keyinroq kodlash kerak bo'ladi. Agar siz buni yozmasangiz va 1 ulanishni buzsangiz, bu LED uchun kod ishlamaydi.
3 -qadam: Kod
Xo'sh, agar sizda 2 ta RGB LED -ni 2 ta pin bilan qanday ulash haqida fikringiz bo'lsa: Davom eting! Kodni tekshirish juda yaxshi, lekin ishontirib aytamanki, u ishlaydi! Iloji boricha iloji boricha "toza" kodlashni qilishga harakat qildim (Siz buni kalitlarning kalitlari bilan ham boshqarishingiz mumkin edi, lekin bu sizning x42 kodingizni yozishga majbur qilgan dahshatli muammo, bu menga yaxshiroq bo'lishi mumkinligini anglab etdi. yo'l).
Kodning maqsadi quyidagicha. Siz LED1dan boshlaysiz. 1 -tugma keyingi LEDga o'tishga imkon beradi, lekin oldingi LED yonadi. Button2 oldingi LED -ga qaytishga imkon beradi, 3 -tugma rangni o'zgartirishga imkon beradi. Hozirgi tanlangan LED yonib -o'chib turadi, shuning uchun qaysi LED "tanlanganini" ko'rishingiz mumkin.
Buni amalga oshirish uchun men massivlar bilan ishladim. Men LED sinfini yaratdim, u rejalashtirish bosqichida siz yozgan ma'lumotni ishlatib, qaysi rangni yaratish kerakligini aniqladi. Men ularning barchasini bir qatorga qo'ydim va men arduino -ni LEDarray orqali o'tkazishga ruxsat berdim, qaysi biri yoqilganligini aniqlash uchun va rang qatori orqali qaysi rang tanlanganligini aniqlash uchun (rang 7 ta rangni tanlash imkonini beruvchi kalit bilan belgilanadi). Miltillovchi if-ifodasi bilan tartibga solinadi.
Kod biriktirilgan, uni yuklab oling va ishlating. Agar tushunmagan narsangiz bo'lsa, sharhlar bo'limi savollar uchun ochiq, lekin siz asosan yopishtirib nusxa ko'chirishingiz mumkin!
4 -qadam: eng qiyin qism
Shunday qilib, endi sizda fikr, ish kodi bor …. faqat mahsulot emas. Bu loyihaning eng dahshatli qismi, shuning uchun men buni engil qabul qilmaslikni maslahat beraman. Hamma bir xil pin bilan tugaydigan har xil oyoqlarni eslaysizmi? Ha, siz LEDlar tarmog'ini yasashingiz kerak, so'ngra har bir oyog'ingizni bir xil pinga o'tishi kerak bo'lgan boshqa oyog'iga ulang va keyin ularni shu pinga ulang. Bu eng qiyin qism va men ham 100% mukammal chiqmadim, agar siz lehimlashni yaxshi bilsangiz, ehtimol sizda imkoniyat bor.
Men bir vaqtning o'zida bir qator RGB LEDlarini qo'ydim va har bir oyog'iga mis simni uladim (men korpusli/o'ralgan mis simni tavsiya qilaman. Meniki juda qalin edi va bu menga juda ko'p qayg'u keltirdi). Ikkala oyoq yoki sim bir -biriga tegmasligiga ehtiyot bo'ling! keyin "oddiygina" bir xil pinga o'tishi kerak bo'lgan barcha simlarni ulang, so'ng ularni rezistorga ulang va uni shu pinga ulang. Ishonchim komilki, buni amalga oshirishning "xavfsizroq" usuli bor, lekin ishonchim komilki, kimdir harakat qilayotganda simga cho'kib ketadi … va sizning taxtangiz juda katta!
(men bu qadamni soddalashtiradigan rasm qo'shdim. Bu sizga qaysi oyog'ingizga qaysi pinni tutish kerakligini, mening kodimga to'liq amal qilishini aytadi.)
Menga 4 kunlik ish kerak bo'ldi, lekin endi har bir LEDni (minus 3-4) o'z-o'zidan yoqilishi mumkin!
keyin siz faqat ba'zi tugmachalarni va prestoni ulashingiz kerak! Sizning shaxsiy pikselli rasmingiz!
Bu odam, shuningdek, sim o'tkazishga misol keltirdi, bu juda foydali
5 -qadam: Gloat. Mutlaqo Gloat
Agar siz boshlang'ich bo'lsangiz (men kabi) va siz bu kalamush simlariga o'xshash narsalarni yasashga muvaffaq bo'lsangiz va u yoqilsa; g'amgin Siz haqiqatan ham yaxshilik qildingiz!
Agar sizda biron bir savol/sharh bo'lsa, ularni quyida qoldiring, agar iloji bo'lsa, yordam berishga harakat qilaman!
Tavsiya:
Rgb pikselli Rojdestvo chiroqlari namoyishi 1 -qism: 7 qadam
Rgb pikselli Rojdestvo chiroqlari namoyishi 1 -qism: Bu ko'rsatmaga men sizga RGB pikselli yorug'lik shousini qanday qurishni ko'rsataman. Yopish uchun ALOT bor. Aslida, men buni taxminan 3-5 xil instrukablega bo'lishim mumkin. Bu asoslar haqida bo'ladi. Sizda juda ko'p o'qish bor
RGB LED pikselli soyalar: 17 qadam (rasmlar bilan)
RGB LED pikselli soyalar: Hammaga salom, men ko'rsatma beraman, men sizga LED pikselli soyalarni qanday yasashni ko'rsataman. Dastlab men ularni Rojdestvo / Yangi yil uyida kiyinish uchun uyali bezak sifatida yaratdim, lekin ular biroz kiberpank bo'lib qolishdi
500 ta LED-pikselli RGB-g'isht: 9 qadam (rasmlar bilan)
500 ta LED-pikselli RGB-g'isht: Bir muncha oldin men ushbu WS2812 LED-lari bilan 10x10 o'lchamli LED-coffetable quraman, lekin eski maktab o'yinini ilonni unga ulangan smartfon bilan o'ynash mumkin bo'lsa ham, men ko'proq narsani xohlayman. maxsus Shunday qilib, men bunga yana bir nechta led qo'yishga qaror qildim, arra
Badiiy LED yoritgichlarni yaratish uchun eski yorug'lik moslamalarini qayta ishlang: 4 qadam
Eski badiiy yoritgichlarni qayta ishlang, badiiy LED yoritgichlar yarating: do'konlarda, garajda va hokazolarda eski yoritish moslamalarini toping, ularni tozalang, so'ng futuristik ko'rinishga ega yorug'lik yaratish uchun LED yorug'lik simlarini qo'shing
64 pikselli RGB LED displey - yana bir Arduino klon: 12 qadam (rasmlar bilan)
64 pikselli RGB LED displey - boshqa Arduino klon: bu displey 8x8 RGB LED matritsaga asoslangan. Sinov maqsadida u 4 smenali registrlar yordamida standart Arduino platasiga (Diecimila) ulandi. Ishga kirgandan so'ng, men uni fabbed PCB bilan to'ldirdim. Shift registrlarining kengligi 8-bit va