İçindekiler:

Lightpainting için RGB LED Kalem: 17 Adım (Resimlerle)
Lightpainting için RGB LED Kalem: 17 Adım (Resimlerle)

Video: Lightpainting için RGB LED Kalem: 17 Adım (Resimlerle)

Video: Lightpainting için RGB LED Kalem: 17 Adım (Resimlerle)
Video: Led Işıklı Oda 😫🤤#Shorts 2024, Kasım
Anonim
Lightpainting için RGB LED Kalem
Lightpainting için RGB LED Kalem
Lightpainting için RGB LED Kalem
Lightpainting için RGB LED Kalem
Lightpainting için RGB LED Kalem
Lightpainting için RGB LED Kalem

Bu, RGB LED denetleyici kullanan bir hafif boyama aracı için eksiksiz bir yapım talimatıdır. Bu denetleyiciyi gelişmiş araçlarımda çok kullanıyorum ve bunun nasıl oluşturulduğuna ve programlandığına dair bir belgeselin bazı insanlara yardımcı olabileceğini düşündüm.

Bu araç, ışıkla yazma, ışıkla çizim ve aydınlatma grafiti için tasarlanmış modüler bir RGB ışıklı kalemdir. Sadece kalemin elinizde olması ve rengi hızlı bir şekilde değiştirebilmeniz nedeniyle kullanımı kolaydır.

Araç şunlardan oluşur:

  • 3D basılmış bir kılıf
  • bir Arduino Mikro
  • bir WS2816B LED'i
  • iki potansiyometre (10K veya 100K)
  • iki anahtar
  • bir basma düğmesi
  • ve bazı kablolar.

Arduino Micro bunun için mükemmeldir çünkü RGB LED'leri kontrol etmek için son derece küçük ve harikadır. Ayrıca LilyPad ve hatta ATtiny85 gibi daha küçük mikrodenetleyiciler de kullanabilirsiniz, ancak ben genellikle Micro'yu kullanırım çünkü kullanıma hazır bir USB konektörüyle birlikte geldiği için kullanımı kolaydır. Hem Arduino hem de LED, 5V ile çalışır, bu nedenle uygun güç desteğine dikkat etmeniz gerekir. Bu araç, dört adet AAA şarj edilebilir pil kullanmak üzere tasarlanmıştır, çünkü genellikle 1.2V ve hem Arduino'ya hem de LED'e güç sağlamak için yeterli olan 4.8V'a sahiptir. Normal AAA pilleri kullanmamaya dikkat edin, çünkü bunlar 1,5V'a sahiptir ve birleşik voltaj bileşenler için çok fazla olabilir ve onlara zarar verebilir. Normal pil kullanmak istiyorsanız lütfen sadece üç pil kullanın, voltaj hala yeterli olmalıdır. Burada bulabileceğiniz pil kutusu için başka bir harika 3D baskılı parça kullandım: "Esneyen pil tutucular".

Adım 1: Programlama

Öncelikle, indirmek ve kullanmak için ücretsiz olan mikro denetleyiciyi programlamak için Arduino IDE'ye ihtiyacınız var. Bu ilk bakışta oldukça karmaşık geliyor, ama gerçekten oldukça basit. Yazılımı kurduktan sonra, Arduino'ya yüklenen taslağı kodlamak için kullanılan basit bir metin düzenleyici penceresi alacaksınız. Bu araç aynı zamanda, satın alabileceğiniz hemen hemen her tür RGB LED'i kontrol etmek için harika ve kullanımı kolay bir kitaplık olan FastLED kitaplığını da kullanır. Kütüphaneyi indirdikten sonra Arduino IDE tarafından oluşturulan kütüphane klasörüne dosyaları yerleştirerek kurulum yapmanız gerekmektedir. Bu, değiştirmediyseniz, genellikle "C:\Users\{Kullanıcı Adı}\Documents\Arduino\libraries" altında bulunabilir. Kütüphaneyi bu klasöre yerleştirdikten sonra IDE zaten çalışıyorsa yeniden başlatmanız gerekir. Artık controller için kod oluşturmaya hazırız.

2. Adım: Kod

FastLED kütüphanesini kullanmak için önce onu kodumuza dahil etmemiz gerekiyor. Bu, bu satırdaki herhangi bir şeyden önce kodun en üstünde yapılır:

#Dahil etmek

Daha sonra birkaç sabit tanımlayacağız. Bu, kod çalışırken bu değerlerin değişmeyeceği ve ayrıca daha okunabilir olması için yapılır. Bu değerleri doğrudan kodun içine koyabilirsiniz, ancak herhangi bir şeyi değiştirmeniz gerekirse, kodun tamamını gözden geçirmeniz ve değerin kullanıldığı her satırı değiştirmeniz gerekir. Tanımlanmış sabitleri kullanarak, yalnızca bir yerde değiştirmeniz gerekir. ve ana koda dokunmanıza gerek yok. Öncelikle bu controller tarafından kullanılan pinleri tanımlıyoruz:

#define HUE_PIN A0

#define BRIGHT_PIN A1 #define LED_PIN 3 #define LIGHT_PIN 6 #define COLOR_PIN 7 #define RAINBOW_PIN 8

Arduino'da basılan numaralar veya isimler aynıdır. Analog pinler, numarasının önünde bir A ile tanımlanır, dijital pinler sadece koddaki numarayı kullanır, ancak bazen kartta önde bir D ile yazdırılır.

A0 pimindeki potansiyometre rengin tonunu kontrol etmek için kullanılır, A1 pimindeki potansiyometre parlaklığı kontrol etmek için kullanılır. Pin D3, Arduino'nun rengi kontrol etmek için veri gönderebilmesi için LED'e bir sinyal olarak kullanılır. Pim D6, ışığı değiştirmek için kullanılır ve pim D7 ve D8, kontrol cihazının modunu ayarlamak için kullanılır. Bu denetleyicideki modlara uyguladım, biri renk potansiyometresi tarafından tanımlanan rengi LED'e koyar ve diğeri tüm renkler arasında kaybolur. Daha sonra FastLED kitaplığı için de birkaç tanıma ihtiyacımız var:

#define COLOR_ORDER GRB

#define CHIPSET WS2811 #define NUM_LEDS 5

Chipset, kütüphaneye ne tür bir LED kullandığımızı anlatmak için kullanılır. FastLED, mevcut olan hemen hemen tüm RGB LED'leri destekler (NeoPixel, APA106, WS2816B, vb. gibi). Kullandığım LED, WS2816B olarak satılıyor ancak biraz farklı görünüyor, bu nedenle en iyi WS2811 yonga seti kullanılarak çalışıyor. Rengi ayarlamak için LED'e gönderilen baytların sırası da üreticiler arasında farklılık gösterebilir, bu nedenle bayt sırası için bir tanımımız da vardır. Buradaki tanım sadece kütüphaneye rengi yeşil, kırmızı, mavi sırayla göndermesini söyler. Son tanım, bağlı olan LED'lerin miktarı içindir. Her zaman kodda tanımladığınızdan daha az LED kullanabilirsiniz, bu yüzden sayıyı 5 olarak belirledim çünkü bu araçla 5'ten fazla LED'li kalemler tasarlamayacağım. Sayıyı çok daha yükseğe ayarlayabilirsiniz, ancak performans nedeniyle ihtiyacım olduğu kadar küçük tutuyorum.

Ana kod için ayrıca birkaç değişkene ihtiyacımız var:

int parlaklık = 255;

unsigned int pot_Reading1 = 0; imzasız int pot_Reading1 = 0; imzasız uzun lastTick = 0; unsigned int wheel_Speed = 10;

Bu değişkenler parlaklık, potansiyometrelerden okumalar, kodun en son ne zaman yürütüldüğünü ve rengin ne kadar hızlı solması gerektiğini hatırlamak için kullanılır.

Ardından, rengi ayarlamanın kolay bir yolu olan LED'ler için bir dizi tanımlıyoruz. Burada dizinin boyutunu ayarlamak için tanımlanan LED miktarı kullanılır:

CRGB led'leri [NUM_LEDS];

Tanımlarla ilgilendikten sonra artık setup fonksiyonunu yazabiliriz. Bu, bu program için oldukça kısa:

geçersiz kurulum() {

FastLED.addLeds(led'ler, NUM_LEDS).setCorrection(TypicalLEDStrip); pinMode(LIGHT_PIN, INPUT_PULLUP); pinMode(COLOR_PIN, INPUT_PULLUP); pinMode(RAINBOW_PIN, INPUT_PULLUP); }

İlk satır, daha önce belirlediğimiz tanımları kullanarak FastLED kitaplığını başlatır. Son üç satır Arduino'ya bu pinlerin giriş olarak kullanıldığını ve herhangi bir şeye bağlı değilse voltajlarının yüksek (PULLUP) olarak ayarlanması gerektiğini söyler. Bu, bir şeyi tetiklemek için bu pinleri GND'ye bağlamamız gerektiği anlamına gelir.

Artık ana programla ilgilenebiliriz. Bu, döngü işlevinde yapılır. İlk önce bazı değişkenleri ayarlıyoruz ve potansiyometreleri okuyoruz:

boşluk döngüsü () {

statik uint8_t renk tonu = 0; statik uint8_t tekerlek_Hue = 0; pot_Reading1 = analogRead(HUE_PIN); renk tonu = harita(pot_Reading1, 0, 1023, 0, 255); pot_Reading2 = analogRead(BRIGHT_PIN); parlaklık = harita(pot_Reading2, 0, 1023, 0, 255);

İlk iki satır, daha sonra renk için kullanılacak değişkenleri ayarlar. Aşağıdaki iki blok, potansiyometre değerlerinin okunmasıyla ilgilenir. "AnalogRead" kullanarak bir pini okursanız 0 ile 1023 arasında bir değer elde ettiğinizden, ancak renk tonu ve parlaklık 0 ile 255 arasında bir değere ihtiyaç duyduğundan, okumayı bir değer bölgesinden diğerine çevirmek için "harita" işlevini kullanırız. Bu fonksiyonun ilk parametresi çevirmek istediğiniz değer, son dördü ise çeviri için kullanmak istediğiniz bölgelerin minimum ve maksimum değerleridir.

Daha sonra butonları değerlendireceğiz:

if (digitalRead(LIGHT_PIN) == DÜŞÜK) {

Okumayı LOW'a karşı kontrol ediyoruz çünkü tetiklenmezse pini yüksek olarak tanımladık. Yani basma düğmesine basılırsa pin GND'ye bağlanacak ve düşük okuyacaktır. Pimlere basılmazsa yapacak pek bir şey yok.

İlk önce sadece LED'i tek renkte aydınlatmaya özen gösterelim:

if (digitalRead(COLOR_PIN) == DÜŞÜK) {

if (ton < 2) { FastLED.showColor(CRGB::Beyaz); FastLED.setBrightness(parlaklık); } else { FastLED.showColor(CHSV(ton, 255, parlaklık)); FastLED.setBrightness(parlaklık); } gecikme(10);

Bu modu kullanmak istediğimizi bilmek için renk pinini değerlendirmemiz gerekiyor. Sonra hangi rengin gerekli olduğunu kontrol edebiliriz. Burada HSV renk modeli kullanıldığı için bir rengi tanımlamak için sadece tona ihtiyacımız var. Ancak bu aynı zamanda rengi beyaza ayarlamanın bir yolu olmaması sorununu da yaratıyor. Hue 0 ve hue 255'in her ikisi de kırmızıya çevrildiği için burada küçük bir hile kullanıyorum ve hue potansiyometresinden gelen okumanın 2'den küçük olup olmadığını kontrol ediyorum. Bu, potansiyometrenin tamamen bir tarafa çevrildiği ve bunu beyazı ayarlamak için kullanabileceğimiz anlamına geliyor.. Diğer tarafta hala kırmızı var, bu yüzden burada hiçbir şey kaybetmeyeceğiz.

Yani ya rengi beyaza sonra da parlaklığa ayarlıyoruz ya da rengi ton okumasına ve ayrıca parlaklığa göre ayarlıyoruz.

Daha sonra küçük bir gecikme ekledim çünkü kontrolöre güç tasarrufu sağlamak için biraz çalışmama süresi vermek çok daha iyi ve 10 milisaniyelik bir gecikme hissedilmeyecek.

Ardından renk solmasını kodluyoruz:

else if (digitalRead(RAINBOW_PIN) == DÜŞÜK) {

tekerlek_Hızı = harita(pot_Reading1, 0, 1023, 2, 30); if (lastTick + wheel_Speed 255) { wheel_Hue = 0; } lastTick = millis(); } FastLED.showColor(CHSV(wheel_Hue, 255, parlaklık)); }

İlk önce bu modu değiştirmek için pin kontrol edilir. Solma hızını kontrol etmek için üçüncü bir potansiyometre eklemek istemediğimden ve bu modda hue potansiyometresi kullanılmadığından hızı ayarlamak için o potansiyometreyi kullanabiliriz. Harita işlevini tekrar kullanarak okumayı, solmanın hızına çevrilen bir gecikmeye çevirebiliriz. Gecikme için 2 ile 30 arasında bir değer kullandım çünkü deneyimlere göre bu iyi bir hız. "Milis" işlevi, Arduino açıldığından beri geçen milisaniyeleri döndürür, böylece bunu zamanı ölçmek için kullanabiliriz. Tonun son değişikliği, daha önce tanımladığımız bir değişkende saklanır ve bu, tonu tekrar değiştirmemiz gerekip gerekmediğini görmek için her seferinde karşılaştırılır. Son satır, yalnızca bir sonraki görüntülenmesi gereken rengi belirler.

Kodu bitirmek için:

} Başka {

FastLED.showColor(CRGB::Siyah); } }

Rengi siyaha ayarlayarak ve açık parantezleri kapatarak düğmeye basılmazsa LED'i kapatmamız yeterlidir.

Gördüğünüz gibi bu, RGB LED kullanan birçok araç için kullanılabilecek oldukça kısa ve kolay bir koddur.

Kodun tamamına sahip olduğunuzda, Arduino'ya yükleyebilirsiniz. Bunun için Arduino'yu bir USB kablosuyla PC'nize bağlayın ve IDE'de Arduino tipini seçin.

Bu talimatta Arduino Pro Micro kullanıyorum. Arduino modelini ayarladıktan sonra IDE'nin bulabileceği bağlantı noktasını seçmelisiniz. Bağlantı noktası menüsünü açın ve bağlı Arduino'nuzu görmelisiniz.

Şimdi yapılacak tek şey, pencerenin üst kısmındaki ikinci tur düğmesine basarak kodu Arduino'ya yüklemek. IDE kodu oluşturacak ve yükleyecektir. Bu başarılı olduktan sonra Arduino'nun bağlantısını kesebilir ve denetleyiciyi monte etmeye devam edebilirsiniz.

Adım 3: Denetleyici için Elektroniğin Montajı

Arduino'yu kodlamakla ilgilendiğimize göre, şimdi kontrolör donanımını monte edebiliriz. Bileşenleri kasanın içine koyarak başlıyoruz. Potansiyometreler soldaki iki yuvarlak deliğe girer, güç anahtarı altta, mod anahtarı sağ üstte ve Arduino ortadaki tutucuya girer.

4. Adım:

resim
resim

Güç anahtarından Arduino'nun RAW pinine kırmızı bir kablo lehimleyerek başlayın. Bu pin, bir voltaj regülatörüne bağlı olduğu için güç kaynağı pinidir, bu nedenle voltaj 5V'tan yüksek olsa bile, bu pin Arduino'ya güç sağlamak için kullanılabilir. Potansiyometre için yüksek seviyeli voltaja ihtiyacımız olduğundan, daha sonra VCC pimine başka bir kırmızı kablo lehimleyin. Potansiyometre okumaları için kullanılacak A0 ve A1 pinlerine iki beyaz kablo lehimleyin.

Adım 5:

resim
resim

Şimdi, daha sonra LED'i bağlamak için kullanılacak olan üstteki açıklıktan uzun bir beyaz ve uzun bir yeşil kablo geçirin. Yeşili pim 3'e ve beyazı pim 6'ya lehimleyin ve bunları Arduino'ya düz bir şekilde bastırın. Arduino'nun sol tarafındaki GND pinlerine lehimlenmiş iki siyah kablo, bunlar potansiyometreler için düşük seviyeli voltaj için kullanılır. Mod anahtarı için kullanılacak iki mavi kabloyu pim 7 ve pim 8'e lehimleyin.

6. Adım:

resim
resim
resim
resim

VCC pinine lehimlediğimiz kırmızı kablonun şimdi ilk potansiyometrenin dış pinlerinden birine lehimlenmesi gerekiyor. Bunu ikinci potansiyometreye devam ettirmek için başka bir kırmızı kablo kullanın. Her iki potansiyometrede aynı tarafı kullanmaya özen gösteriniz, böylece dolu olan her iki tarafta da aynı taraf olacaktır. Potansiyometrelerin diğer tarafına iki siyah kabloyu ve orta pimdeki A0 ve A1 Pinlerinden gelen beyaz kabloları lehimleyin. Potansiyometreler, orta pindeki voltajı dış pinlere uygulanan voltajlar arasında bir voltaja ayarlayarak çalışır, yani yüksek ve alçak voltajı bağlarsak orta pinde arada bir voltaj alabiliriz. Bu, potansiyometreler için kablolamayı tamamladı ve pimler yoldan çıkacak şekilde biraz döndürülebilirler.

7. Adım:

resim
resim

Mod anahtarının orta pimine siyah bir kablo lehimleyin ve güç kaynağına giden açıklıktan uzun siyah bir kablo geçirin. LED için GND olarak kullanılmak üzere üst açıklıktan başka bir uzun siyah kablo geçirin.

Adım 8:

resim
resim

Güç kaynağından gelen siyah kablo, Arduino'nun son boş GND pinine bağlanan başka bir siyah kabloya lehimlenmiştir. LED'e giden kabloyu ve mod anahtarındaki siyah kabloyu birlikte lehimleyin ve son olarak şimdi birlikte sahip olduğunuz iki çift siyah kabloyu lehimleyin. Kontrolör içinde kısa devre olmasını önlemek için lehimlemeyi izole etmek için büzüşen boru kullanın.

9. Adım:

resim
resim

Son bir adım olarak, iki mavi kabloyu mod anahtarına lehimleyebiliriz. Bu anahtarlar, anahtarın hangi tarafta olduğuna bağlı olarak orta pimi dış pimlerden birine bağlayarak çalışır. Pin 7 ve 8, GND'ye bağlandığında tetiklenecek şekilde ayarlandığından, switch'in pinleri için dış pinlerini ve GND için orta pinlerini kullanabiliriz. Bu şekilde pinlerden biri her zaman tetiklenir.

Son olarak güç açıklığından kırmızı bir kablo geçirin ve güç anahtarının orta pimine lehimleyin ve açıklıktan LED'e uzun bir kırmızı kablo daha geçirin ve bunu Arduino'nun bağlı olduğu güç anahtarındaki aynı pime lehimleyin.

Adım 10:

resim
resim

Güç kablolarını pil tutucuya lehimleyin ve LED'e giden kabloları tutan klipsi vidalayın. Bu, kontrolör için kablolamayı tamamlar.

Adım 11: Işık Kaleminin Montajı

Bu aracın modüler olması ve farklı kalemler kullanması gerektiği için, LED için kablolar üzerinde bir konektöre ihtiyacımız var. Genellikle bir bilgisayardaki fanlar için kullanılan kablolarda bulunabilen ucuz bir 4 terminalli molex konektörü kullandım. Bu kablolar ucuzdur ve elde edilmesi kolaydır, bu nedenle mükemmeldirler.

Adım 1/2:

resim
resim
resim
resim

Denetleyiciyi kablolamaya başladığımda, konektörlerdeki kabloların renklerini kontrol etmedim, bu nedenle biraz farklı, ancak hatırlaması kolay. Siyah kabloları, gücü sarıya, yeşili yeşile ve beyazı maviye bağladım, ancak istediğiniz kombinasyonu kullanabilirsiniz, diğer kalemler için de unutmayın. Kısa devre oluşmasını önlemek için lehimlenmiş bölgeleri büzüşmeli boru ile izole etmeye özen gösterin.

Adım 13:

resim
resim
resim
resim

Kalemin içinden uzun kırmızı ve uzun yeşil bir kablo geçirin ve siyah kabloları düğmenin bir tarafına ve beyaz kabloyu diğer tarafına lehimleyin. Bu tür butonlarda, ikisi çift olarak bağlı olan dört adet pin bulunur. Düğmenin alt kısmına bakarak hangi pinlerin bağlı olduğunu görebilirsiniz, bağlı olan çiftler arasında boşluk var. Düğmeye basarsanız, iki taraf diğerine bağlanır. Beyaz ve bir siyah kablo daha sonra düğmenin açıklığından başlayarak kalemin sonuna kadar çekilir. Diğer siyah kablo öne doğru çekilir. Her iki tarafta da çalışmak için yeterli kabloya sahip olduğunuzdan emin olun.

Adım 14:

resim
resim
resim
resim

Düğmeye açıklığa oturtun ve kalan kabloları hazırlayın. Kablolar kalemin ortasından geçtiği için kabloları LED'in ortasına bakacak şekilde LED'e lehimlemek en iyisidir. Kırmızı kabloyu 5V lehim pedine, siyah kabloyu GND lehim pedine ve yeşil kabloyu Din lehim pedine lehimleyin. Birden fazla LED'iniz varsa, ilk LED'in Dout lehim pedi bir sonraki LED'in Din'ine bağlanır ve bu şekilde devam eder.

Adım 15:

resim
resim
resim
resim

Şimdi kalemin önündeki düğmeye basın ve kalemi yerinde tutmak için arkasına bir damla tutkal koyun.

Şimdi sadece renkleri göz önünde bulundurarak kalemin ucundaki kabloları konektörün diğer tarafına lehimlemeniz gerekiyor.

Kabloların kırılmasını önlemek için kalemin ucundaki kabloları serbest bırakmak için bir damla tutkal ve bir miktar bant kullanmak en iyisidir. Bu, ışıklı kalemin montajını tamamlar.

Adım 16: Örnekler

Örnekler
Örnekler
Örnekler
Örnekler
Örnekler
Örnekler
Örnekler
Örnekler

Son olarak size bu aracı kullandığım birkaç örnek göstermek istiyorum. Açılı kalem, bir grafiti çizgilerini aydınlatmak için harika ve düz kalem, havada bir şeyler çizmek ve yazmak için harika (ki bu konuda çok az yeteneğim var).

Bu aracın ana amacı budur. Gördüğünüz gibi, bu araçla uzun pozlamaları birleştirirseniz olasılıklar harika.

Bu tür fotoğrafçılıkla başlamak için kameranızın desteklediği en düşük ISO ayarını ve yüksek diyaframı kullanmayı deneyin. Doğru ayarları bulmanın iyi bir yolu, kameranızı diyafram moduna getirmek ve kameranız resme eklemek istediklerinizi çizmek için ihtiyaç duyduğunuz süre kadar bir pozlama süresi gösterene kadar diyaframı kapatmaktır. Ardından manuele geçin ve bu pozlama süresini kullanın veya ampul modunu kullanın.

Bunları denerken iyi eğlenceler! Bu harika bir sanat formu.

Bu talimatı mucitlere ve olağandışı kullanımlar meydan okumasına ekledim, bu yüzden beğenirseniz bir oy bırakın;)

Adım 17: Dosyalar

Ayrıca, kolunuza bağlayabilmeniz için denetleyici kasasının altına yapıştırılması gereken kayış tutucu modelleri ve kaleme ihtiyacınız olmadığında kapağa yapıştırılabilen kalem için bir klips ekledim. elinde.

Ayrıca ışığı daha pürüzsüz hale getirmek ve kalem doğrudan kameraya baktığında parlamaları önlemek için kullanılabilen difüzör kapakları da vardır.

Önerilen: