İçindekiler:

Digispark & WS2812 Kutuda Gökkuşağı Tekerleği: 4 Adım (Resimlerle)
Digispark & WS2812 Kutuda Gökkuşağı Tekerleği: 4 Adım (Resimlerle)

Video: Digispark & WS2812 Kutuda Gökkuşağı Tekerleği: 4 Adım (Resimlerle)

Video: Digispark & WS2812 Kutuda Gökkuşağı Tekerleği: 4 Adım (Resimlerle)
Video: Digispark and RGB leds with WS2812 2024, Temmuz
Anonim
Image
Image
Digispark ve WS2812 Gökkuşağı Tekerleği Kutuda
Digispark ve WS2812 Gökkuşağı Tekerleği Kutuda
Digispark & WS2812 Gökkuşağı Tekerleği Kutuda
Digispark & WS2812 Gökkuşağı Tekerleği Kutuda

Bu minik proje, bir dükkanda bulduğum güzelce oyulmuş 10x6x5cm'lik ahşap bir kutunun etrafında yapıldı.

Kameraya tam olarak yansımayan en iyi özelliği, kutunun ağaç oymalı kapağının kenarlarını parlak, doygun renklerle aydınlatması.

Öte yandan, dar RGB 5050 LED'lerden oluşan bir şerit üzerinde gökkuşağı efekti kullanmanın, her pikselin rengi yakında komşularıyla karışacağından, LED'lerden birkaç santimetre uzakta her zaman beyazımsı bir aydınlatmayla sonuçlanacağını unutmayın. Bu etkiden kaçınmak istiyorsanız, biraz odaklama lensi kullanmayı deneyebilirsiniz.

Bir LDR sayesinde lambanın parlaklığı ortam ışığıyla orantılı tutulur: lamba gün ışığı koşullarında parlar ve karanlıkta gece lambası olarak kullanıldığında çok parlak olmaz.

Gereçler

Malzeme listesi:

  • Micronucleus önyükleyicili bir Attiny85 Digispark (klon) kartı
  • bir adet 8x WS2812 çubuğu
  • bir LDR, çevreye bağlı olarak lambanın parlaklığını ayarlamak için kullanılır
  • LDR için bir adet 10KΩ pull-up direnci
  • Digispark'ı programlamak ve bittiğinde lambayı çalıştırmak için bir USB mikro kablosu
  • içi boş bir ahşap kutu
  • 5V⎓ güç kaynağı (500mA'dan az olmayan bir güç sağlama kapasitesine sahiptir)

Beceriler ve araçlar:

  • IDE olarak PlatformIO (Visual Studio Code üzerinde çalışıyor) - herhangi bir Arduino IDE işi yapacak olsa da
  • bir havya, bazı lehim teli ve temel lehimleme becerileri
  • biraz kablolama, makas
  • biraz yapıştırıcı, cımbız
  • biraz opak boya (Digispark LED'i kaplamak ve LDR'yi lamba ışığından etkilenmekten korumak için)

Adım 1: Digispark ve PlatformIO

Digispark (ve aynı 8-bit mikrodenetleyiciyi içeren her klon), bir AVR Attiny85 etrafında inşa edilmiş ve bir Micronucleus önyükleyici sayesinde doğrudan USB iletişimi yapabilen bir devre kartıdır. Lütfen wiki'sinde daha fazla bilgi bulabilirsiniz:

PlatformIO, Digispark'ı programlamak için kullandığım ekosistemdir. Bununla çalışmak için Visual Studio Code'u yüklemeniz gerekir

Adım 2: Şematik ve Kablolama

Şematik ve Kablolama
Şematik ve Kablolama
Şematik ve Kablolama
Şematik ve Kablolama
Şematik ve Kablolama
Şematik ve Kablolama

Lehimleme

  1. WS2812 çubuğuna üç kablo bağlayın (toprak, güç girişi ve veri girişi)
  2. Digispark'ın topraklaması ve Vcc'den 5V'a ve GND pinine
  3. kalan kabloyu Digispark'ın P0 pinine lehimleyin
  4. kartın GND ve P2 pinlerine 10KΩ direnç lehimleyin
  5. LDR'yi 5V ve P2 pinlerine bağlamak için iki kablo kullanın (estetik nedenlerle zar zor görünen emaye kablolar kullandım)

3. Adım: Bellenim

Bu projenin kodunu GitHub'ımda bulun:

Bilmek güzel:

  • PlatformIO ile çalışırken #include kullanılmalıdır
  • pin ataması, WS2812 LED'lerinin sayısı, gökkuşağı tekerlek hızı ve hem LED'ler hem de LDR için karanlık/parlak eşikler gibi parametreler kodun başındadır
  • Adafruit Neopixel, WS2812 LED'lerini kontrol etmek için kullanılan kütüphanedir.
  • RunningMedian kitaplığı, LDR okumalarını daha kararlı hale getirmek için kullanılır; ayarlanan sınırlar nedeniyle, LED parlaklık sınırlarının eşlenmesi nedeniyle, bu özellikle küçük bir dalgalanmanın can sıkıcı bir titremeye neden olabileceği düşük parlaklık koşullarında iyidir
  • Attiny85'i kilitleme girişimi bulamazsınız, bu nedenle proje düzenlenebilir kalacaktır

Bazı ipuçları (GitHub'daki README.md dosyasında da görünür):

  • Kodu yüklemek için, her pinin bağlı olduğu bir USB kablosuna sahip olduğunuzdan emin olun: ucuz şarj kablolarında genellikle sadece +5V bulunur ve topraklanır
  • PlatformIO'dan DigiSpark'a yükleme yapmak, konsolun Arduino IDE'nin yaptığı gibi "şimdi DigiSpark'ınızı takma zamanı" uyarısında bulunmamasına rağmen, derlemeden sonra DigiSpark'ı takmanızı gerektirir.
  • MacOS'ta PlatformIO'dan DigiSpark'a yükleme sorunu için hızlı düzeltme: PIO sorunu 111
  • Ucuz USB şarj cihazları kirli/gürültülü çıkış sağlayabilir, bu da LED'lerin özellikle düşük parlaklıkta garip bir şekilde titremesine neden olabilir: temiz bir 5VDC kaynağına sahip olduğunuzdan veya bir kapasitör (veya daha uygun bir devre) ekleyerek filtreleme yaptığınızdan emin olun.

Adım 4: Muhafaza ve Son Dokunuş

Gövde ve Son Dokunuş
Gövde ve Son Dokunuş
Gövde ve Son Dokunuş
Gövde ve Son Dokunuş
Gövde ve Son Dokunuş
Gövde ve Son Dokunuş
  • USB kablonuzu takmak için projeyi barındırmak için seçtiğiniz kutuya bir delik açın. Mikro USB konektörünün etrafındaki delik ne kadar büyük olursa, opak bir yalıtım sağlamazsanız LED çubuğunuzdan o kadar fazla ışık sızacağını unutmayın.
  • LDR için bir delik açın; LED'ler tarafından aydınlatılacak alana doğru bakmadığından emin olun, aksi takdirde otomatik düzenleme bir döngüye girer.
  • Lambanıza bakarken doğrudan LED'leri görmek istememeniz gerektiğinden, LED çubuğuna yer açmak için iç yüzeyi kazıyın.
  • WS2812 çubuğunun neden olduğu ortamın parlaklığını algılamada herhangi bir paraziti önlemek için LDR'nin altını opak bir ortamla kapatın
  • Digispark güç ledini maskelemek için bir damla opak boya kullanın, böylece kutunun içinde parlamasını önleyin
  • İçi boş kutunuzun düzensiz görünmesini önlemek için Digispark panosunu, LED çubuğu, LDR'yi ve her kabloyu yapıştırın
  • Lambayı kolayca açıp kapatmak için anahtarlı bir USB kablosu öngörün

Önerilen: