Mündəricat:

Uzaqdan idarə olunan LED gözlər və kostyum başlığı: 7 addım (şəkillərlə)
Uzaqdan idarə olunan LED gözlər və kostyum başlığı: 7 addım (şəkillərlə)

Video: Uzaqdan idarə olunan LED gözlər və kostyum başlığı: 7 addım (şəkillərlə)

Video: Uzaqdan idarə olunan LED gözlər və kostyum başlığı: 7 addım (şəkillərlə)
Video: Audiokitab və subtitrlər: Johann Wolfgang Von Goethe. Gənc Verterin kədərləri. Kitab yurdu. 2024, Noyabr
Anonim

BekathwiaBecky SternFollow Müəllif tərəfindən daha çox:

Veb Kamera Məxfilik Dostu
Veb Kamera Məxfilik Dostu
Veb Kamera Məxfilik Dostu
Veb Kamera Məxfilik Dostu
3D Çaplı Bağlayıcılarla Yagi Anten Bant Ölçüsü
3D Çaplı Bağlayıcılarla Yagi Anten Bant Ölçüsü
3D Çaplı Bağlayıcılarla Yagi Anten Bant Ölçüsü
3D Çaplı Bağlayıcılarla Yagi Anten Bant Ölçüsü
Bürc naxışları
Bürc naxışları
Bürc naxışları
Bürc naxışları

Haqqında: Yaratmaq və paylaşmaq mənim ən böyük ehtiraslarımdır! Ümumilikdə mikro nəzarətçilərdən toxuculuğa qədər hər şey haqqında yüzlərlə dərslik nəşr etdim. Mən New York City motosikletçisiyəm və tövbə etməyən it anasıyam. Mənim wo… bekathwia haqqında daha çox »

Əkiz Jawas! Cüt Orko! Bubble-Bobble-dan iki xəyal sehrbazı! Bu kostyum başlıq, yalnız rəngləri dəyişdirərək seçdiyiniz hər hansı bir LED gözlü canlı ola bilər. Bu layihəni ilk dəfə 2015 -ci ildə çox sadə bir sxem və kodla hazırladım, amma bu il iki kostyumda eyni vaxtda animasiya idarəetməsi ilə təkmilləşdirilmiş bir versiya yaratmaq istədim. Bu dövrə eyni tezlikdə iki qəbuledicini idarə etmək üçün bir sadə, yaxın məsafəli RF uzaqdan idarəetmə sistemindən istifadə edir və Bill Earlın dərs koduna əsaslanaraq cavab verən animasiya dəyişikliklərinə nail olmaq üçün kəsilmələrdən istifadə edən Arduino kodu.

Bu layihə üçün sizə lazım olacaq:

  • İki NeoPixel Mücevheri
  • GEMMA M0 mikro nəzarətçi
  • 315MHz simsiz alıcı, kilidləmə növü
  • Dörd, iki və ya tək düymə konfiqurasiyasında 315MHz simsiz RF uzaqdan idarəetmə cihazı
  • Silikon örtüklü tel (30awg tövsiyə olunur)
  • Lehimləmə dəmir və lehim
  • Tel çıxarıcılar
  • Yuyan kəsicilər
  • Cımbız
  • Üçüncü əl alətinə kömək (isteğe bağlı)
  • Dikiş sancaqları
  • Dərzi təbaşiri (isteğe bağlı)
  • 19awg galvanizli polad tel
  • Başlıq/pelerin üçün qalın parça (bu versiya üçün iki qat ağ tütün parçası və bir qat ağ tül bezi istifadə etdim, sonra işığı maneə törətmək üçün kapotun içini möhkəm qara ilə astarladım)
  • Üz paneli üçün şəffaf qara parça
  • Tikiş maşını
  • Qayçı
  • İynə və sap
  • Çevik filamentli 3D printer (isteğe bağlı)

İşlədiklərimdən xəbərdar olmaq üçün məni YouTube, Instagram, Twitter, Pinterest -də izləyin və bülletenimə abunə olun. Amazon Associate olaraq, ortaqlıq bağlantılarımdan istifadə edərək etdiyiniz satınalmalardan qazanıram.

Başlamadan əvvəl, aşağıdakı ön şərtləri oxumaq istəyə bilərsiniz:

  • Gemma M0 təqdim olunur
  • NeoPixel Uberguide
  • İlk başlıq layihəsi versiyası (2015 -ci ildə klassik Gemma ilə qurulmuşdur və simsiz idarəetmə yoxdur)
  • Arduino pt 3 üçün çoxlu tapşırıqlar

Addım 1: Dövrə Şeması və Kodu

Dövrə diaqramı və kodu
Dövrə diaqramı və kodu

Dövrə əlaqələri aşağıdakı kimidir:

  • Gemma D2 simsiz alıcıya D0
  • Gemma D0 simsiz alıcıya D1
  • Gemma 3V simsiz alıcıya +5V
  • Gemma GND simsiz alıcı GND və NeoPixel zərgərlik GND
  • Gemma D1 - NeoPixel zərgərlik məlumatları IN
  • Gemma Vout NeoPixel zinət əşyalarına PWR
  • NeoPixel zərgərlik məlumatları digər NeoPixel Jewel məlumatlarına ÇIXDI

Montaj qeydləri üçün növbəti addıma baxın.

Kod, Bill Earl tərəfindən çox vəzifəli Arduino eskizinə əsaslanır və iki rəqəmsal girişi olan iki NeoPixel daşını idarə etmək üçün dəyişdirildi. Beləliklə, simsiz alıcıdan istifadə etmək məcburiyyətində deyilsiniz- bunun əvəzinə sxemdəki düymələrdən istifadə edə bilərsiniz. Bu Arduino kod faylını bu addımın əlavələrindən yükləyin və ya buradan boş bir Arduino eskizinə kopyalayıb yapışdırın:

#"Adafruit_NeoPixel.h" daxil edin

// Dəstəklənən naxış növləri: enum nümunəsi {NONE, RAINBOW_CYCLE, THEATER_CHASE, COLOR_WIPE, SCANNER, FADE}; // Patern istiqamətləri dəstəklənir: enum istiqaməti {İLƏ, REVERSE}; // NeoPattern Sınıfı - Adafruit_NeoPixel sinif NeoPatterns sinifindən götürülmüşdür: public Adafruit_NeoPixel {public: // Member Variables: pattern ActivePattern; // hansı naxış İstiqamət istiqamətində işləyir; // imzasız uzun aralığı işlətmək istiqaməti; // yenilənmələr arasındakı milisaniyələr imzasız uzun lastUpdate; // mövqenin son yeniləməsi uint32_t Color1, Color2; // Hansı rənglər istifadə olunur uint16_t TotalSteps; // modeldəki addımların ümumi sayı uint16_t Index; // model void daxilində cari addım (*OnComplete) (); // Nümunə tamamlandıqda geri çağırış // Konstruktor - NeoPatterns zolağını (uint16_t piksel, uint8_t pin, uint8_t növü, void (*geri çağırma) ()): Adafruit_NeoPixel (piksel, pin, tip) {OnComplete = geri zəng et; } // Void modelini yeniləyin Update () {if ((millis () - lastUpdate)> Interval) // yeniləmə vaxtı {lastUpdate = millis (); keçid (ActivePattern) {case RAINBOW_CYCLE: RainbowCycleUpdate (); fasilə; case THEATER_CHASE: TheaterChaseUpdate (); fasilə; hal COLOR_WIPE: ColorWipeUpdate (); fasilə; halda SCANNER: ScannerUpdate (); fasilə; FADE işi: FadeUpdate (); fasilə; standart: fasilə; }}} // İndeksi artırın və sonunda sıfırlayın void Artım () {if (Direction == İLƏ) {Index ++; if (İndeks> = TotalSteps) {İndeks = 0; if (OnComplete! = NULL) {OnComplete (); // geri çağırma çağırışı}}} başqa // İstiqamət == REVERSE {--Index; if (İndeks <= 0) {İndeks = TotalSteps-1; if (OnComplete! = NULL) {OnComplete (); // geri çağırma çağırışı}}}} // Ters model istiqaməti void Reverse () {if (Direction == İLƏ) {Direction = REVERSE; İndeks = TotalSteps-1; } başqa {İstiqamət = İLƏ; İndeks = 0; }} // RainbowCycle boşluğu üçün başlayın RainbowCycle (uint8_t interval, istiqamət dir = İLƏ) {ActivePattern = RAINBOW_CYCLE; Aralıq = interval; Ümumi addımlar = 255; İndeks = 0; İstiqamət = dir; } // RainbowCycleUpdate () {RainbowCycleUpdate () {for (int i = 0; i <numPixels (); i ++) {setPixelColor (i, Wheel (((i * 256 / numPixels ())+Index)) və 255))); } göstər (); Artım (); } // Theatre Chase void TheaterChase üçün başladın (uint32_t color1, uint32_t color2, uint8_t interval, istiqamət dir = İLƏ) {ActivePattern = THEATER_CHASE; Aralıq = interval; TotalSteps = numPixels (); Rəng1 = rəng1; Rəng2 = rəng2; İndeks = 0; İstiqamət = dir; } // Theatre Chase Pattern void TheaterChaseUpdate () {for (int i = 0; i <numPixels (); i ++) {if ((i+Index) % 3 == 0) {setPixelColor (i, Color1); } başqa {setPixelColor (i, Color2); }} şou (); Artım (); } // ColorWipe boşluğu ColorWipe üçün başladın (uint32_t rəng, uint8_t interval, istiqamət dir = İLƏ) {ActivePattern = COLOR_WIPE; Aralıq = interval; TotalSteps = numPixels (); Rəng1 = rəng; İndeks = 0; İstiqamət = dir; } // Rəng Silmək Nümunəsini ləğv edin ColorWipeUpdate () {setPixelColor (İndeks, Color1); göstərmək (); Artım (); } // SCANNNER boş bir Skanerini işə salın (uint32_t color1, uint8_t interval) {ActivePattern = SCANNER; Aralıq = interval; TotalSteps = (numPixels () - 1) * 2; Rəng1 = rəng1; İndeks = 0; } // Scanner Pattern boşluğunu ScannerUpdate () {üçün yeniləyin (int i = 0; i > 1, Yaşıl (rəng) >> 1, Mavi (rəng) >> 1); qaytarılması dimColor; } // Bütün pikselləri rəngli (sinxron) boş ColorSet (uint32_t color) {üçün (int i = 0; i> 16) & 0xFF; } // 32 bitlik rəngin Yaşıl komponentini qaytarır uint8_t Green (uint32_t color) {return (color >> 8) & 0xFF; } // 32-bit rəngli Mavi komponentini qaytarır uint8_t Mavi (uint32_t rəngli) {qaytar rəng & 0xFF; } // Rəng dəyəri əldə etmək üçün 0 ilə 255 arasında bir dəyər daxil edin. // Rənglər r - g - b - r -yə qayıdışdır. uint32_t Təkər (bayt WheelPos) {WheelPos = 255 - WheelPos; if (WheelPos <85) {return Color (255 - WheelPos * 3, 0, WheelPos * 3); } if if (WheelPos <170) {WheelPos -= 85; qaytarma Rəngi (0, WheelPos * 3, 255 - WheelPos * 3); } başqa {WheelPos -= 170; qaytarma Rəngi (WheelPos * 3, 255 - WheelPos * 3, 0); }}}; void JewelsComplete (); // İki halqa və çubuq üçün bəzi NeoPatterns təyin edin // həmçinin NeoPatterns Jewels (14, 1, NEO_GRBW + NEO_KHZ800, & JewelsComplete) kimi bəzi tamamlama qaydaları; const int BRIGHTNESS = 50; // Hər şeyi başladın və boşluq qurmağa başlamağa hazırlaşın () {Serial.begin (115200); pinMode (2, GİRİŞ); pinMode (0, GİRİŞ); // Jewels.setBrightness (BRIGHTNESS) bütün piksellərini işə salın; Jewels.begin (); // Jewels. TheaterChase (Jewels. Color (255, 50, 0), Jewels. Color (0, 0, 0, 50), 100) modelini işə salın. } // Main loop void loop () {// Mücevherləri yeniləyin. Jewels. Update (); // Nümunələri bir düyməyə basaraq dəyişdirin: əgər (digitalRead (2) == YÜKSEK) // 1 nömrəli düyməyə basıldığında {Jewels. Color1 = Jewels. Color (255, 50, 0); Jewels. ActivePattern = FADE; Jewels. TotalSteps = 100; Mücevherler. Aralıq = 1; } else if (digitalRead (0) == YÜKSEK) // 2 nömrəli düyməyə {Jewels. Color1 = Jewels. Color (255, 0, 0); Jewels. ActivePattern = SKANER; Jewels. TotalSteps = Jewels.numPixels (); Mücevherlər. Aralıq = 100; } else // Normal işə qayıt {// Bütün model parametrlərini normal dəyərlərə qaytarın Jewels. Color1 = Jewels. Color (255, 50, 0); Jewels. ActivePattern = THEATER_CHASE; Jewels. TotalSteps = Jewels.numPixels (); Mücevherlər. Aralıq = 100; }} // ---------------------------------------------- -------------- // Tamamlama Rutinləri-bir naxışın tamamlanmasına çağırılır // ---------------------- -------------------------------------- // Jewels Completion Callback void JewelsComplete () {// Növbəti tarama üçün təsadüfi rəng dəyişikliyi //Jewels. Color1 = Jewels. Wheel (təsadüfi (255)); Jewels. Reverse (); }

Addım 2: Dövrə yığın

Dövrə yığın
Dövrə yığın
Dövrə yığın
Dövrə yığın

Üçüncü əl tutuculara köməkçi dəsti, tellərə komponentlərə lehimləmə prosesini çox sadə və əyləncəli edə bilər. Ancaq dəstiniz yoxdursa narahat olmayın; Lehim edərkən lövhənizi sabit saxlamaq üçün hər zaman bir lent və ya poster macundan istifadə edə bilərsiniz.

İki NeoPixel daşını birləşdirmək üçün nazik tel parçaları (təxminən 6in/15cmin uzunluğunda) istifadə edin (əvvəlki addımdakı diaqram). Çox qısa tellərdən istifadə etsəniz, LED gözlərinizi bir -birindən kifayət qədər uzaqlaşdıra bilməyəcəksiniz və çox tel istifadə etsəniz, kostyum geyindiyiniz zaman boşluq üzünüzə girəcək.

Əsas dövrə lapel bölgəsində yaşayacaq (sinəniz çiyninizlə birləşir), buna görə də zəncirdəki ilk NeoPixel zərgər ilə Gemma arasındakı əlaqələr üçün tellər daha uzun olacaq. Telin göz bölgəsinə qədər tutub çəkə biləcəyi məsafəni ölçmək üçün çəkə bilərsiniz, sonra boşluq və sığorta üçün bir az daha əlavə edə bilərsiniz.

Gemma ilə simsiz alıcı arasında əlaqə qurmaq üçün, qadın başlıqları olan prototipləşdirmə tellərindən istifadə etməyi seçdim, çünki simsiz qəbuledicinin başlıq pinləri artıq bağlanmışdır.

Addım 3: Batareya Gücü

Batareya Gücü
Batareya Gücü
Batareya Gücü
Batareya Gücü

Dövrəni gücləndirmək üçün 500 mAh həcmli bir lipoli batareyadan istifadə etdim. Lipolyar bir batareya istifadə edirsinizsə, onu cızıqlardan, ponksiyonlardan, aşınmalardan, əyilmələrdən və digər sui -istifadə hallarından qorumaq ağıllıdır. Bir az möhkəm parça lentə bükə və ya bunun üçün 3D çaplı tutacaq düzəldə bilərsiniz.

3xAAA tutacaqdan asanlıqla istifadə edə bilərsiniz (yaxanın içərisində deyil, cibinizdə gəzdirin).

Addım 4: Dikiş Nümunəsi və Kumaş Kəsmə

Tikiş Naxışı və Kəsmə Parçası
Tikiş Naxışı və Kəsmə Parçası

Bu kostyumun ilk versiyası üçün yaratdığım eyni nümunəni istifadə etdim.

Kumaşınızı qatlayın, parça taxılını hizalamaq üçün kənarların kənarlarını hizalayın və nümunə parçalarını işarələnmiş şəkildə qatlayın. Nişan təbaşir və ya qələm istifadə edərək, təxminən 5/8in/3 sm olan naxış parçalarının kənarından (qat istisna olmaqla) bir dikiş izi çəkin. Kumaşım incə olduğuna görə iki qat artırmaq istədim və iki başlıq hazırladığım üçün əsas parça içərisindəki hər bir naxış parçasından dördünü kəsdim, sonra kənara toxuma əlavə etmək üçün tülbentdən başqa bir təbəqə kəsdim. işığın daxil olmasını maneə törətmək üçün astar kimi qara parça təbəqəsi. Düşünürəm ki, bunu əvvəlcədən planlaşdırsaydım, ilkin ağ təbəqələrdən birini ata bilərdim və başlıqlar hər biri dörd deyil, yalnız üç qatdan ibarət olardı.

Addım 5: Parça parçaları yığın

Parça parçaları yığın
Parça parçaları yığın
Parça parçaları yığın
Parça parçaları yığın
Parça parçaları yığın
Parça parçaları yığın
Parça parçaları yığın
Parça parçaları yığın

Hər bir naxış parçasına dart/çiyin tikişləri bağlayın və tikin, sonra başlıq və pelerin parçalarını boyun tərəfi boyunca sağ tərəfləri ilə hizalayın. Dikişi, eləcə də başlıq üstü boyunca düz bir dikiş tikin.

Başlıq üzərində sınayın. Başlığın qabaq kənarını bükün və bərkidin və səliqəli bir kənar və telin keçəcəyi bir kanal yaratmaq üçün aşağıya dikin.

Sonra, başlığın önünü örtmək üçün yuvarlaq bir qara parça parçasını kəsin. Dövrəni dəstəkləyəcək və üzünüzü gizlədən budur. Ən yaxşı uyğunlaşmaq üçün başlıq taxarkən yerinə bərkidin, sonra əllə və ya maşınla başlıq açılışına tikin.

Addım 6: Hood -da Circuit quraşdırın

Hood -da Circuit quraşdırın
Hood -da Circuit quraşdırın

Başlığı taxdım, dövrəni açdım və LEDlər üçün ən yaxşı yeri çıxarmaq üçün bir güzgü istifadə etdim. Sonra yerləri qeyd etmək üçün sancaqlar istifadə etdim və qara iplə diqqətlə tikdim, NeoPixel zinət əşyalarındakı montaj deliklərini şəffaf qara ön panelə bağladım. Mənimki əsl gözlərimin altında oturur, bu da onların keçmişini görməyi asanlaşdırır.

İkinci bir başlıq hazırlayırsınızsa durulayın və təkrarlayın.

Addım 7: Geyin

Geyin!
Geyin!
Geyin!
Geyin!
Geyin!
Geyin!
Geyin!
Geyin!

Bunlar geyinmək çox əyləncəlidir. Çölə çıxmaq asandır və başqalarının üzünüzü görməsi asan deyil. Ön parça üzünüzə tökülməsinə mane olan böyük başlıq və tel çərçivə sayəsində hər şey olduqca rahatdır.

Sevgilim və mən bunları bu il hacker məkanımın Halloween partiyasında DJ üçün geyindik və lazer proyektor proqramının interfeysini görə bilsəm də, o, Abeltondakı kiçik mətni başa düşə bilmədi, ona görə də onu daha yaxşı görünüş. Qara parça panelini kapotun yuxarı hissəsindən çıxartdım və artıqlığı qatladım. Qaranlıq bir otaqda, ikimiz arasındakı fərqi həqiqətən deyə bilmədiniz, baxmayaraq ki, bunu yuxarıdakı birlikdə çəkdiyimiz fotoşəkildə görə bilərsiniz.

Oxuduğunuz üçün təşəkkürlər! Bu layihəni bəyənirsinizsə, digərlərindən bəziləri ilə maraqlana bilərsiniz:

  • LED -lərin yayılması üçün 13 fikir
  • Arduino/Bluetooth ilə Dağıtılmış LED Şerit İşarəti
  • ESP8266 ilə YouTube Abunə Sayacı
  • Asan Sonsuzluq Güzgüsü
  • 3 Başlanğıc Arduino Səhvləri

İşlədiklərimdən xəbərdar olmaq üçün məni YouTube, Instagram, Twitter və Pinterest -də izləyin.

Tövsiyə: