İçindekiler:

Etkileşimli Led Lamba - Tensegrity Yapısı + Arduino: 5 Adım (Resimlerle)
Etkileşimli Led Lamba - Tensegrity Yapısı + Arduino: 5 Adım (Resimlerle)

Video: Etkileşimli Led Lamba - Tensegrity Yapısı + Arduino: 5 Adım (Resimlerle)

Video: Etkileşimli Led Lamba - Tensegrity Yapısı + Arduino: 5 Adım (Resimlerle)
Video: Araç İçi Led Aydınlatma Sistemi (Müzik Etkileşimli) 2024, Temmuz
Anonim
Etkileşimli Led Lamba | Tensegrity Yapısı + Arduino
Etkileşimli Led Lamba | Tensegrity Yapısı + Arduino
Etkileşimli Led Lamba | Tensegrity Yapısı + Arduino
Etkileşimli Led Lamba | Tensegrity Yapısı + Arduino
Etkileşimli Led Lamba | Tensegrity Yapısı + Arduino
Etkileşimli Led Lamba | Tensegrity Yapısı + Arduino

Bu parça harekete duyarlı bir lambadır. Minimal bir gerilim heykeli olarak tasarlanan lamba, tüm yapının yönüne ve hareketlerine göre renk konfigürasyonunu değiştirir. Başka bir deyişle, yönüne bağlı olarak lamba belirli bir renk, parlaklık ve ışık moduna geçer.

İkosahedron döndüğünde (kendi ekseni üzerinde), sanal bir küresel renk seçiciden bir değer seçer. Bu renk seçici görünmez, ancak renk ayarlamaları gerçek zamanlı olarak gerçekleşir. Böylece parça ile oynarken her bir rengin uzayda nerede konumlandığını anlayabilirsiniz.

İkosahedral şekil 20 yüz düzlemi sağlar ve gerginlik yapısı ona 6 ek bakış açısı verir. Bu, lamba düz bir yüzey üzerinde durduğunda toplam 26 olası renk sağlar. Lambayı havaya çevirdiğinizde bu sayı artar.

Sistem, üç eksenli bir ivmeölçere bağlı bir Pro Biblo tarafından kontrol edilir. Işık, renk ve beyaz parlaklık değerini ayrı ayrı kontrol edebilen RGBW LED şeritlerle sağlanır. Mikroişlemci, sensörler ve aydınlatma sistemi dahil tüm devre 5v ile çalışmaktadır. Sistemi çalıştırmak için 10A'e kadar bir kaynak gereklidir.

Lambada kullanılan ana elemanların listesi aşağıdaki gibidir:

- Adafruit Pro Biblo - 5V

- Adafruit LIS3DH Üç Eksenli İvmeölçer

- Adafruit NeoPixel Dijital RGBW LED Şerit - Beyaz PCB 60 LED/m

- 5V 10A anahtarlama güç kaynağı

Bu harekete duyarlı lamba, daha uzun bir kişisel projenin ilk versiyonu veya prototipidir. Bu prototip, geri dönüştürülmüş malzemelerden yapılmıştır. Tasarım ve yapım süreçleri boyunca, başarılardan ve hatalardan ders çıkardım. Bunları göz önünde bulundurarak şimdi daha akıllı bir yapıya ve güçlü bir yazılıma sahip olacak bir sonraki sürüm üzerinde çalışıyorum.

Projenin gelişimi boyunca yardımları, fikirleri ve önerileri için LACUNA LAB topluluğuna teşekkür etmek istiyorum.

çalışmamı şuradan takip edebilirsiniz:action-io / tumblraction-script / github

Adım 1: Fikir

Fikir
Fikir
Fikir
Fikir
Fikir
Fikir

Bu proje, bir süredir kafamda oynadığım birkaç fikrin sonucuydu.

Başladığımdan beri konsept değişti, ilk proje gelişti ve gerçek şeklini aldı.

İlk yaklaşım, etkileşim aracı olarak geometrik şekillere ilgi duymaktı. Tasarımı nedeniyle, bu lambanın çoklu poligonal yüzleri giriş yöntemi olarak hizmet eder.

İlk fikir, ikosahedronu hareket etmeye zorlamak için dinamik bir sistem kullanmaktı. Bu, etkileşimli bir uygulama veya sosyal medya kullanıcıları tarafından kontrol edilebilirdi.

Başka bir olasılık, dahili bir bilye veya topun farklı düğmelere veya sensörlere basması ve böylece parça hareket ettikçe rastgele girdiler üretmek olabilirdi.

Gerginlik yapısı daha sonra gerçekleşti.

Bu yapım yöntemi beni büyüledi: yapının parçalarının birbirini dengede tutma şekli. Görsel olarak çok hoş. Tüm yapı kendi kendini dengeler; parçalar doğrudan birbirine değmez. Parçayı oluşturan tüm gerilimlerin toplamıdır; o fantastik!

İlk tasarım değiştikçe; proje ilerliyor.

Adım 2: Yapı

Yapı
Yapı
Yapı
Yapı
Yapı
Yapı
Yapı
Yapı

Daha önce bahsettiğim gibi, bu ilk model, atılması gereken geri dönüştürülmüş malzemelerden yapıldı.

Sokakta bulduğum latalı bir yataktan aldığım tahtalar. Altın kaplamalar eski bir lambanın kolunun parçasıydı ve lastik bantların tıpaları ofis klipsleriydi.

Her neyse, yapının inşası oldukça basittir ve adımlar herhangi bir tensegriry'deki ile aynıdır.

Tahtalarla yaptığım şey onları ikişerli gruplar halinde bir araya getirmek. Altın ara parçalarla bir "sandviç" yapmak, ışıkların parlayacağı bir boşluk bırakmak.

Projenin boyutları tamamen değişkendir ve yapmak istediğiniz yapının boyutuna bağlı olacaktır. Bu projenin resimlerinden ahşap çubuklar 38 cm uzunluğunda ve 38 mm genişliğindedir. Levhalar arasındaki mesafe 13 mm'dir.

Ahşap levhalar aynı şekilde kesildi, zımparalandı (eski boya tabakasını çıkarmak için) ve daha sonra her iki uçtan delindi.

Daha sonra tahtaları rustik koyu vernikle boyadım. Parçaları birleştirmek için 5 mm'lik dişli çubuk kullandım, her iki tarafında bir düğüm olacak şekilde 5 cm ve 5 mm'lik parçalar halinde kestim.

Gergiler kırmızı lastik bantlardır. Kauçuğu çubuklara tutturmak için küçük bir delik açtım ve içinden bandı geçirdim ve ardından bir durdurucu ile tuttum. Bu, levhaların serbestçe hareket etmesini ve yapının sökülmesini önler.

Adım 3: Elektronik ve Işıklar

Elektronik ve Işıklar
Elektronik ve Işıklar
Elektronik ve Işıklar
Elektronik ve Işıklar
Elektronik ve Işıklar
Elektronik ve Işıklar
Elektronik ve Işıklar
Elektronik ve Işıklar

Elektronik bileşenlerin konfigürasyonu, 5v kullanarak sistem boyunca hem mantık hem de besleme ile aynı voltajı koruyacak şekilde tasarlanmıştır.

Sistem, üç eksenli bir ivmeölçere bağlı bir Pro Biblo tarafından kontrol edilir. Işık, renkleri ve beyaz parlaklık değerlerini ayrı ayrı kontrol edebilen RGBW LED şeritlerle sağlanır. Mikroişlemci, sensörler ve aydınlatma sistemi dahil tüm devre 5v ile çalışmaktadır. Sistemi çalıştırmak için 10A'e kadar bir kaynak gereklidir.

Pro Trinket 5V, Arduino UNO'daki aynı çekirdek çip olan Atmega328P çipini kullanır. Ayrıca hemen hemen aynı pinlere sahiptir. Bu nedenle, UNO projenizi minyatür alanlara taşımak istediğinizde gerçekten kullanışlıdır.

LIS3DH çok yönlü bir sensördür, +-2g/4g/8g/16g okumak için yeniden yapılandırılabilir ve ayrıca Dokunma, Çift dokunma, yönlendirme ve serbest düşme algılama özelliklerini de sunar.

NeoPixel RGBW LED Strip, ton rengini ve beyaz yoğunluğunu ayrı ayrı yönetebilir. Özel bir beyaz LED ile, beyaz bir ışığa sahip olmak için tüm renkleri doyurmanıza gerek yoktur, ayrıca sizi beyazı daha saf ve parlak yapar ve bunun üzerine enerji tasarrufu sağlar.

Kablolama yapmak ve bileşenleri birbirine bağlamak için kablo geçirmeye ve krimpler ve konektör yuvaları kullanarak erkek ve dişi pimli soketler oluşturmaya karar verdim.

Bibloyu ivmeölçere bağladım, varsayılan konfigürasyonla SPI'yi fırlattım. Bu, Vin'i 5V güç kaynağına bağlamak anlamına gelir. GND'yi ortak güç/veri toprağına bağlayın. SCL (SCK) pinini Dijital #13'e bağlayın. SDO pinini Dijital #12'ye bağlayın. SDA (SDI) pinini Dijital #11'e bağlayın. CS pin Dijital #10'u bağlayın.

Led şerit sadece bir pin tarafından kontrol edilir, bu #6'ya gider ve toprak ve 5v doğrudan güç kaynağı adaptörüne gider.

İhtiyaç duyabileceğiniz tüm belgeleri adafruit sayfasında daha ayrıntılı ve daha iyi açıklanmış bulacaksınız.

Güç kaynağı, mikrodenetleyiciyi ve LED şeridi aynı anda besleyen bir dişi DC adaptörüne bağlanır. Ayrıca devreyi "açma" anında kararsız akımdan korumak için bir kondansatöre sahiptir.

Lambanın 6 ışık çubuğu vardır, ancak LED şeritleri tek bir uzun bant halinde gelir. LED bant 30cm (18 LED) kesitler halinde kesildi ve daha sonra devrenin geri kalanına modüler olarak bağlanmak için erkek ve dişi 3 pin ile kaynak yapıldı.

Bu proje için 5v - 10A güç kaynağı kullanıyorum. Ancak ihtiyacınız olan led sayısına bağlı olarak, sistemi beslemek için gereken akımı hesaplamanız gerekecektir.

Parçanın dokümantasyonu boyunca, LED'in LED başına 80mA çekildiğini görebilirsiniz. Toplamda 108 LED kullanıyorum.

Adım 4: Kod

kod
kod

Şema çalışır oldukça basittir. Bir ivmeölçer, x, y, z eksenindeki hareket hakkında bilgi sağlar. Yöne bağlı olarak, LED'lerin RGB değerleri güncellenir.

Çalışma aşağıdaki aşamalara ayrılmıştır.

  • Sensörden bir okuma yapın. API'yi kullanın.
  • Trigonometri ile "yuvarlanma ve adım atma" değerlerini çözün. Mark Pedley tarafından hazırlanan bu belgede çok daha fazla bilgi bulabilirsiniz.
  • Dönüş değerleriyle ilgili olarak karşılık gelen rengi elde edin. Bunun için bir HSL - RGB dönüştürme işlevi kullanarak 0-360 RGB değerine dönüyoruz. Perde değeri, beyaz ışığın yoğunluğunu ve renk doygunluğunu düzenlemek için çeşitli ölçeklerde kullanılır. Renk seçici kürenin zıt yarım küreleri tamamen beyazdır.
  • Ayrı ayrı LED renklerinin bilgilerini depolayan ışıkların arabelleğini güncelleyin. Bu bilgilere bağlı olarak, arabellek denetleyicisi bir animasyon oluşturacak veya tamamlayıcı renklerle yanıt verecektir.
  • Son olarak renkleri gösterin ve LED'leri yenileyin.

Başlangıçta fikir, herhangi bir rengi seçebileceğiniz bir renk küresi yaratmaktı. Renk çarkını meridyene yerleştirmek ve koyu ve açık tonları kutuplaştırmak.

Ancak bu fikir hızla çöpe atıldı. LED'ler farklı tonlar oluşturduğundan, her rgb LED'ini kapatıp hızlı bir şekilde yaktığından, koyu renkleri temsil etmek için düşük değerler verildiğinde, LED'ler çok düşük bir performans verir ve nasıl yanıp sönmeye başladıklarını görebilirsiniz. Bu, renk küresinin karanlık yarımküresinin düzgün çalışmamasına neden olur.

Ardından, şu anda seçili olan tona tamamlayıcı renkler atama fikrini buldum.

Yani, bir yarım küre, %50 aydınlatma %90 ~ %100 doygunluktan bir tekerleğin tek renkli renk değerini seçiyor. Bu sırada diğer taraf, aynı renk konumundan bir renk gradyanı seçer, ancak gradyanın diğer tarafına tamamlayıcı rengini ekler.

Sensörden gelen verilerin okunması ham. Lambanın kendisinin gürültüsünü ve titreşimlerini yumuşatmak için bir filtre uygulanabilir. Şu an için ilginç buluyorum çünkü daha analog görünüyor, herhangi bir dokunuşa tepki veriyor ve tamamen dengelenmesi bir saniye sürüyor.

Hala kod üzerinde çalışıyorum ve yeni özellikler ekliyorum ve animasyonları optimize ediyorum.

Kodun en son sürümlerini github hesabımdan kontrol edebilirsiniz.

Adım 5: Toplama

Toplama
Toplama
Toplama
Toplama
Toplama
Toplama
Toplama
Toplama

Son montaj oldukça basittir. LED şeritlerin silikon kapağını iki Bileşenli Epoksi Yapıştırıcı ile çubuklara yapıştırın ve 6 parçayı arka arkaya seri olarak bağlayın.

Bileşenleri sabitlemek istediğiniz bir noktayı sabitleyin ve ivmeölçer ile profesyonel bibloyu ahşaba vidalayın. Pimlerin altını korumak için plastik bir ara parçası kullandım. Güç kaynağı adaptörü, daha fazla epoksi epoksi yapıştırıcı ile çubukların aralığı arasına düzgün bir şekilde sabitlenmiştir. Lamba dönerken hareket etmesini engelleyecek şekilde tasarlanmıştır.

Gözlemler ve iyileştirmeler

Projenin gelişimi boyunca, sorunları çözmenin yolları hakkında yeni fikirler ortaya çıktı. Ayrıca geliştirilebilecek bazı tasarım kusurları veya parçaları da fark ettim.

Atmak istediğim bir sonraki adım, ürün kalitesi ve bitişinde bir iyileştirme; çoğunlukla yapıdadır. Tasarımın bir parçası olarak tensörleri dahil eden ve bileşenleri gizleyen daha iyi yapılar hakkında daha da basit harika fikirlerle geliyorum. Bu yapı, 3D yazıcılar ve lazer kesiciler gibi daha güçlü araçlar gerektirecektir.

Hala yapı boyunca kabloları gizlemenin yolunu bekliyorum. Ve daha verimli bir enerji tüketimi için çalışın; Lamba uzun süre çalıştığında ve aydınlatmayı değiştirmediğinde harcamaları azaltmak için.

Makaleyi okuduğunuz ve işime gösterdiğiniz ilgi için teşekkür ederim. Umarım bu projeden benim kadar öğrenmişsinizdir.

Önerilen: