Mündəricat:

HALO: Handy Arduino Lamp Rev1.0 W/NeoPixels: 9 Addım (Şəkillərlə)
HALO: Handy Arduino Lamp Rev1.0 W/NeoPixels: 9 Addım (Şəkillərlə)

Video: HALO: Handy Arduino Lamp Rev1.0 W/NeoPixels: 9 Addım (Şəkillərlə)

Video: HALO: Handy Arduino Lamp Rev1.0 W/NeoPixels: 9 Addım (Şəkillərlə)
Video: DIY HALO Lamp Rev1.0 - Powered by Arduino Nano, 15+ Color Modes 2024, Iyun
Anonim
Image
Image
HALO: Handy Arduino Lamp Rev1.0 W/NeoPixels
HALO: Handy Arduino Lamp Rev1.0 W/NeoPixels
HALO: Handy Arduino Lamp Rev1.0 W/NeoPixels
HALO: Handy Arduino Lamp Rev1.0 W/NeoPixels

Bu təlimatda sizə HALO və ya Handy Arduino Lamp Rev1.0 -in necə qurulacağını göstərəcəyəm.

HALO, Arduino Nano ilə işləyən sadə bir lampadır. Təxminən 2 "x 3" ölçüsündə və həddindən artıq sabitlik üçün ağırlıqlı bir ağac əsasına malikdir. Çevik boyun və 12 super parlaq NeoPixel istənilən səthdəki hər bir detalı asanlıqla işıqlandırmağa imkan verir. HALO, əvvəlcədən proqramlaşdırılmış 15 fərqli işıq rejimindən keçmək üçün iki düyməyə malikdir. Arduino Nano'nun prosessor olaraq istifadəsi səbəbindən, onu əlavə xüsusiyyətlərlə yenidən proqramlaşdırmaq imkanı var. Tək potensiometr, rejimin göstərildiyi parlaqlığı və/və ya sürəti tənzimləmək üçün istifadə olunur. Sadə bir metal konstruksiya HALO -nu hər hansı bir atelyedə istifadə üçün uyğun olan çox davamlı bir lampa halına gətirir. İstifadənin asanlığı, Nano -nun yerüstü güc tənzimləyicisi ilə çətinləşir, buna görə də HALO ya USB, ya da arxa tərəfdəki standart 5 mm -lik barel jakı ilə işləyə bilər.

Ümid edirəm ki, yaxın gələcəkdə bu lampalardan istifadə edən bir çox insanı görəcəyəm, çünki bu dizaynla açılacaq çoxlu imkanlar var. Zəhmət olmasa bunu bəyənirsinizsə və ya bir şəkildə faydalı hesab edirsinizsə, Mikrokontrolör Müsabiqəsində bir səs buraxın, həqiqətən minnətdar olaram.

Bu Təlimata girməzdən əvvəl, bütün izləyicilərimə və layihələrimi şərh edən, bəyənən və ya səs verən hər kəsə qısa bir təşəkkürümü bildirmək istəyirəm. Uşaqlarınız sayəsində, Karton təlimatçılığım böyük bir müvəffəqiyyətə çevrildi və indi 100 -ə yaxın izləyiciyə çatdığımı yazdığım üçün mənim fikrimcə böyük bir mərhələdir. Ible'larımı qoyduğumda sizdən aldığım bütün dəstəyi çox qiymətləndirirəm və buna gəldikdə, sənsiz bu gün olduğum yerdə olmazdım. Bunu deyərək, hamınıza təşəkkür edirəm!

Qeyd: Bu Təlimat boyunca qalın hərflərlə ifadələr var. Bunlar hər addımın vacib hissələridir və göz ardı edilməməlidir. Bu mənim qışqırmağım və ya qəsdən kobudluğum deyil, sadəcə olaraq nə edilməli olduğunu daha yaxşı vurğulamaq üçün yeni bir yazı texnikası sınayıram. Bəyənməsəniz və əvvəllər addımlarımı necə yazmaq istədiyimə üstünlük versəniz, şərhlərdə mənə bildirin və köhnə üslubuma qayıdacağam.

Addım 1: Materialların toplanması

Materialların toplanması
Materialların toplanması
Materialların toplanması
Materialların toplanması
Materialların toplanması
Materialların toplanması
Materialların toplanması
Materialların toplanması

Bunu neçə dəfə deməliyəm? Həmişə ehtiyac duyduğunuz şeyə sahib olun və sona qədər bir şey qura biləcəyinizə zəmanət verilir.

Qeyd: Bunlardan bəziləri ortaq bağlantılardır ("al" işarəsi ilə qeyd olunur), onlardan satın alsanız, sizə heç bir əlavə xərc ödəmədən kiçik bir geri dönüş alacağam. Bağlantılar vasitəsilə satın alsanız təşəkkür edirəm

Parçalar:

1x Arduino Nano Nano - al

1x 10k Rotary Potansiometr 5 paket 10k Potensiometr - al

1x 5 mm -lik barel krikosu (mina qızardılmış Arduino Uno -dan təkrar emal olunur) Dişi Barel Jack (5 paket) - al

2 x 2 pinli ani düymələr 10 paket SPST Düyməli Switch-al

60 LED/metrdən 12x NeoPixel (hər hansı bir ekvivalent, məsələn WS2812B işləyəcək) Adafruit NeoPixels

0,5 mm alüminium təbəqə

Köhnə esnek çakmağından elastik boyun

"Stick and Click" LED kabinet işığının üst örtük üzüyü LED kabinet işığı - al

1/4 düymlük kontrplakdan kiçik bir təbəqə

Ölçülərin ağır, düz metal çəkisi (təxminən) 1,5 "2,5" x 25"

Zəncirli elektrik naqili

Alətlər:

İsti yapışqan tabancası və yapışqan

Lehimləmə Dəmiri və Lehim

Simsiz elektrikli matkap və müxtəlif bükülmüş bitlər

X-acto bıçağı (və ya xidmət bıçağı)

Tel çıxarıcılar

Kəlbətinlər

Tel kəsicilər/kəsiklər

Ağır Qayçı

Düz metal ağırlığınız yoxdursa, sizə də lazımdır:

1 rulon ucuz lehim (lehim üçün istifadə edəcəyiniz şeylər deyil) Ucuz Qurğuşunsuz Lehim

Alkol şam (və ya Bunsen burner)

Kiçik işlənmiş sərtləşdirilmiş polad yeməyi (və ya varsa kiçik bir tikə) məhv etməyi düşünmürsən.

Sözügedən qab/pota üçün tripod (mənimkini 12 ölçü polad teldən düzəltdim)

Bir gil bitki yeməyi (qazanın altına girən şeylərdən biri)

Bir az alüminium folqa

Qeyd: Bir qaynaq dəstiniz və ya 3D printeriniz varsa, burada sadalanan bütün vasitələrə ehtiyacınız olmayacaq.

Addım 2: Ağırlıq çəkin

Çəki çəkmək
Çəki çəkmək
Çəki çəkmək
Çəki çəkmək
Çəki çəkmək
Çəki çəkmək

Bu olduqca çətin bir addımdır və bunu edərkən son dərəcə ehtiyatlı olmalısınız. Ağır bir metal ağırlığınız və ya təxminən 2,75 "ilə 1,75" ilə 0,25 "ölçüsündə düz bir neodim maqnitiniz varsa, bunun əvəzinə istifadə etməyi məsləhət görürəm (və maqnit hətta lampanı metal səthlərə yan tərəfə yerləşdirməyə imkan verir!).

İmtina: Sizin tərəfinizdən hər hansı bir zədə üçün məsuliyyət daşımıram, buna görə də sağlam düşüncədən istifadə edin

Həm də bunu bir az yandıqda ağlınıza gəlməyəcək bir beton səth üzərində edin (bu yalnız bir tədbirdir). Bu proses üçün heç bir şəklim yoxdur, çünki bir kamera ehtiyacım olmayan və ya istəmədiyim əlavə bir yayındırma olardı.

Birincisi, alüminium folqa və ya yaş gildən, təxminən 2 3/4 düym, 1 3/4 düym 1/4 düym daxili ölçülərdə kiçik bir kalıp düzəldin. Mənim kimi ovoid bir forma və ya düzbucaqlı ola bilər. Çoxlu folqa və ya qalın gil təbəqələrdən istifadə edin.

Kalıbı keramika bitki qabına qoyun və həm kalıbı, həm də tepsini soyuq su ilə doldurun.

Yandırılmamış alkoqol şamını/bunsen brülörünüzü götürün və alovun yeməyin mərkəzini qızdırması üçün (yandırıldıqda) polad qabı/potanı tripodun üzərinə qoyun. Brülörü yandırmadan əvvəl əlinizdə 2 olmasa da ən azı 1 cüt pens və ya metal işləmə maşası olduğundan əmin olun.

Növbəti bir neçə addımı atarkən dəri əlcək, uzun qollu, uzun şalvar, qapalı ayaqqabı və göz qoruması taxmaq yaxşı bir fikirdir

Bir az ucuz lehimi yuvarlayın və makaradan çıxarın və polad qaba qoyun, sonra brülörü yandırın. Bobin tamamilə əriyənə qədər gözləyin, sonra lehimin qalan hissəsini yeməyə orta sürətlə verməyə başlayın. Lehimdə hər hansı bir rozin varsa, bu, istidə öz -özünə yanaraq solğun sarı alov və qara tüstü çıxara bilər. Narahat olmayın, bu mənim başıma dəfələrlə gəlmiş və tamamilə normaldır.

Lehimi yeməyin son hissəsi əriyənə qədər yeməyə davam edin.

Yanan kərəvizdən alovların tamamilə sönməsinə icazə verin və kəlbətin/maşa ilə yeməyi götürün və diqqətlə alovda saxlayaraq içərisində ərinmiş metalı çevirin.

Bütün lehimlərin tamamilə mayeləşdirildiyinə və yaxşı bir temperaturda olduğuna əmin olduqdan sonra, alovdan tez və diqqətlə çıxarın və kalıbın içinə tökün. Suyun bir hissəsi buxarlandıqda və qalanı əridilmiş lehimlə əvəz olunmaq üçün qəlibdən çıxarıldıqda yüksək bir tıslama səsi və buxar eşidiləcək.

Lehimin sərin olmasına icazə verin, ocağınızı söndürün/şamınızı söndürün və polad qabı sərinləmək üçün təhlükəsiz bir yerə qoyun. Soyudmanı sürətləndirmək və daha da sərtləşdirmək üçün soyutma lehiminin üzərinə soyuq su tökmək istəyə bilərsiniz. (Soyuq su, kənarı içəridən daha sürətli sərinlədərək, metalı daha sərt və sərt hala gətirən daxili gərginlik yaradır. Şahzadə Rupertin damlasına bənzəyir.) Metal qabınızın üstünə su da çəkə bilərsiniz, amma bu onun kövrək olmasına səbəb olacaq. Xüsusilə bir neçə dəfə edildikdə.

Lehim tamamilə soyuduqdan sonra (təhlükəsiz olmaq üçün təxminən 20 dəqiqə) folqa kalıbından çıxarın.

Mənimki bir tərəfdən digərindən daha qalın oldu, buna görə çəkiclə düzəldib kənarlarını düzləşdirdim (şəkillərdə gördüyünüz forma ilə nəticələndi). Sonra cilalamaq üçün axan suyun altında yüngülcə zımparaladım və bir müddət sonra kənara qoydum.

Addım 3: Elektron Evinin Tikintisi, Adım 1

Elektron mənzilin tikintisi, Addım 1
Elektron mənzilin tikintisi, Addım 1
Elektron mənzilin tikintisi, Addım 1
Elektron mənzilin tikintisi, Addım 1
Elektron mənzilin tikintisi, Addım 1
Elektron mənzilin tikintisi, Addım 1
Elektron mənzilin tikintisi, Addım 1
Elektron mənzilin tikintisi, Addım 1

Bunlar, Nano -nu yerləşdirəcək, interfeysi quraşdıracaq və əsasən HALO Lampasını bir araya gətirən qabığın hissələridir. 0.5 mm alüminium və isti yapışqanla özüm hazırladım, amma 3D printeriniz varsa (bir müddətdir mağazam üçün almağa çalışdığım bir şey) Tinkercad -da sizin üçün əlavə etdiyim. STL versiyasını hazırladım. yükləyin. Özümdə printer olmadığından hər şeyi düzgün yazdırıb çıxarmadığını yoxlamaq üçün modeli çap etdirə bilmədim, amma düşünürəm ki, dilimləyicinizə uyğun dəstək strukturlarını əlavə etsəniz yaxşı olar. Bir az fərqli bir dizayn və ya estetikaya ehtiyacınız varsa və ya istəsəniz, mənbə faylını buradan kopyalaya və düzəldə bilərsiniz.

Ölçülər, əslində elektronikanın ölçüsündən deyil, özüm üçün lehimdən atdığım metal çəkidən qaynaqlandı, amma hər halda olduqca yaxşı çıxdı və ölçülər olduqca optimaldır.

Şəkillər burada yazacağımdan fərqli olaraq bir az fərqli iş qaydasını əks etdirir, bunun səbəbi orijinal metodumun nəticələrinə əsaslanaraq təkmilləşdirilmiş bir metod hazırlamağımdır.

Mənim kimi sacdan montaj edirsinizsə, burada etməlisiniz:

Addım 1: Üz lövhələri

Təxminən 1,5 "uzunluğunda və 3" enində olan iki eyni yarım dairə şəklini kəsin. (Mən əlimi sərbəst tutdum, buna görə də bir az juke qutusunun önünə bənzəyirlər).

İki lövhədən birində düymələr və potansiyometr üçün üç delik açın. Mənimki hər birinin 1/4 düym diametrində idi. Bunlar hər hansı bir sxemdə ola bilər, amma potensiometrimin mərkəzdə bir qədər qaldırılmasını və hər iki tərəfdəki düymələrin bərabər bir üçbucaq meydana gətirməsini üstün tuturam. Qazma zamanı, lazımi ölçüdə bitməzdən əvvəl həmişə kiçik bir pilot çuxuru açıram, bu, deliklərin mərkəzləşdirilməsinə kömək edir və onları bir qədər təmiz edir.

Addım 2: Kemerli örtük

Üz lövhələrindən birinin əyriliyinə uyğunlaşmaq üçün bir alüminium parçanın üzərinə bükün və uyğun kənar uzunluğunu qeyd edin.

Bu uzunluqda və təxminən 2 düym genişlikdə bir zolaq kəsin və hər iki tərəfdəki üz lövhələrinin əyri formasına uyğun bir qövs halına salın.

Döngənin yuxarı hissəsindəki mərkəzi nöqtəni tapın və çakmağın əyilmiş boynuna uyğun bir çuxur qazın. Arxa tərəfdəki çuxurları ofset etdim, çünki lampamın istifadəsi zamanı boynu əsasən önə doğru əyilmiş olacaq, buna görə bir az əks balans əlavə etmək istədim. Çevik boynum bir düym diametrinin 1/4 -dən bir az çox idi, buna görə də 1/4 düymlük bitdən (sahib olduğum ən böyük bükmə ucu 3/4 düymdən azdır) istifadə etdim və diqqətlə bükdüm. Boyun oturana qədər çuxurdan çıxarmaq üçün qazın.

İndi qabığın hissələrinə sahib olduğumuza görə, növbəti addım elektronikanı əlavə edib bir yerə yığmaqdır!

Addım 4: Elektron Evinin Tikintisi, Adım 2

Elektron mənzilin tikintisi, 2 -ci addım
Elektron mənzilin tikintisi, 2 -ci addım
Elektron mənzilin tikintisi, 2 -ci addım
Elektron mənzilin tikintisi, 2 -ci addım
Elektron mənzilin tikintisi, 2 -ci addım
Elektron mənzilin tikintisi, 2 -ci addım
Elektron mənzilin tikintisi, 2 -ci addım
Elektron mənzilin tikintisi, 2 -ci addım

İndi düymələri və potansiyometrləri əlavə edirik və hamısını bir araya gətiririk.

Addım 1: düymələr və boltlar

Düymələrinizdən və potansiyometrinizdən altıbucaqlı qozları sökün. Qozun altında bir tutma halqası cihazı olmalıdır, bunu yerində qoyun.

Hər bir komponenti öz çuxurundan keçirin, sonra qoz -fındıqları geri vidalayın və hər birini yerində bərkidin. Fındıqları hər bir komponentin tamamilə etibarlı olduğundan əmin olun.

Addım 2. Flex Boyun

Bükülmüş boynu əyri parçanın üstündəki çuxurdan keçirin. İsti yapışqan və ya qaynaq (avadanlığınız varsa) boynu etibarlı şəkildə yerində.

Mənim kimi isti yapışqan istifadə edirsinizsə, yapışqanın sonradan yapışmamasını qarşısını almaq üçün geniş bir əraziyə yayılmış çoxlu yapışqan ilə yapışdırmaq yaxşı bir fikirdir.

Addım 3: Shell Assambleyası (3D çaplı qabığa tətbiq edilmir)

Qaynaq çubuğu və ya isti yapışqan istifadə edərək, ön və arxa üz lövhələrini tağlı qapağın öz yerlərinə bərkidin. Yapışqanımın yapışması üçün bir neçə cəhd etməli oldum və əvvəlki kimi, hiylə də boynun hər iki tərəfində çoxlu yapışqan istifadə etməkdir. Yapışqanın əhatə etdiyi sahə nə qədər böyük olsa, o qədər yaxşı yapışacaq.

İndi qabığa sahib olduğumuz üçün bütün dövrə bitlərini əlavə etməyə davam edə bilərik.

Addım 5: Elektronika əlavə edin

Elektronika əlavə olunur
Elektronika əlavə olunur
Elektronika əlavə olunur
Elektronika əlavə olunur
Elektronika əlavə olunur
Elektronika əlavə olunur

Və burada əyləncəli hissə var: Lehimləmə! Son həftələrdə dürüstcə lehimdən bir az yoruldum, çünki son vaxtlar tezliklə qoymalı olduğum başqa bir layihəni sınamaq və bitirmək üçün çox çalışıram (robotlu ekranın radikallaşmış yeni versiyasına diqqət yetirin) platformalar), nəticədə bir dəmiri xarab etdim və başqasını aldım… Hər halda burada lehimləmək üçün çox şey yoxdur, ona görə də bu olduqca sadə olmalıdır.

Qeyd: Nano'nuzda artıq pin başlıqları varsa, bu layihə üçün onların sökülməsini məsləhət görürəm, yalnız mane olacaqlar.

Yuxarıdakı şəkillərdə bir diaqram var, istəsəniz izləyə bilərsiniz.

Addım 1: Arayüz

Hər bir açardan potansiyometrenin bir ucuna bir pindən bir tel lehimləyin. Eyni yan pimdən bir teli Nano üzərindəki Topraklama pininə lehimləyin.

Potansiyometrenin mərkəzi pinindən Nano üzərindəki A0 -a bir tel lehimləyin.

Nano üzərindəki A1 -ə keçid bağlanmamış pimdən bir tel lehimləyin.

Digər keçiddəki bağlanmamış pindən Nano üzərindəki A2 -ə bir tel lehimləyin.

Qeyd: Hansı açarın olduğu fərq etməz, onları kodda çox asanlıqla dəyişə bilərsiniz, bir açarın digərinin əksini etməsi ilə yanaşı.

Bükülmüş boyundan 4 düym daha uzun bir tel kəsin və hər iki tərəfi soyun. Sharpie istifadə edərək, bir tərəfi tək bir xətt ilə qeyd edin.

Bir teli potansiyometrenin son bağlanmamış yan piminə lehimləyin, bu telin bağlanmamış ucunu son alt addımdakı telin işarəsiz ucu ilə birlikdə bükün.

Lehim, bu, Nano -da 5V -ə qoşuldu.

Addım 2: Ekran və Güc Telləri

Bükülmüş boyundan 4 düym daha uzun olan 2 tel kəsin və hər iki ucunu soyun.

Bir Sharpie istifadə edərək, hər bir telin uclarını, bir xətti 2 xətti və birini 3 ilə qeyd edin.

Nanonun üzərindəki rəqəmsal pin 9 -a 2 xətlə teli lehimləyin.

5 mm -lik barel krikonunuzda, mərkəzi pindən (müsbət) Nano üzərindəki Vinə bir tel lehimləyin.

Barel yuvasının yan piminə (torpaq/mənfi) başqa bir tel lehimləyin.

Uzun telini 3 ədəd bükün, lülənin krikolunun yan pimindən olan tellə birlikdə.

Bu telləri Nano üzərindəki açıq GND pininə lehimləyin.

Lazım gələrsə elektrik lenti və ya isti yapışqan ilə əlaqələri ayırın.

Addım 3: Delikləri kəsin (yalnız metal versiyada, qapağı 3D çap etsəniz, yaxşı olmalısınız)

Bir qazma ucu və X-acto və ya Utility Knife istifadə edərək, Nanonun USB portu üçün qapağın kənarında diqqətlə bir deşik açın.

Qapağın arxasındakı barel yuvasının üzünün ölçüsündə, tercihen USB portu üçün çuxurun əks tərəfinə daha yaxın olan başqa bir çuxur açın.

Addım 4: Komponentlərin quraşdırılması

Üç uzun teli çevik boyundan keçirin və digər tərəfdən.

Bol miqdarda isti yapışqan istifadə edərək, ləkəni qapağın yuxarı tərəfinə baxan yerə yerləşdirin.

Yenə çoxlu isti yapışqan istifadə edərək, sıfırlama düyməsini aşağıya və USB portunu yuvasına qoyaraq, Nanonu yerinə quraşdırın. Barel krikosu ilə Nano arasında "isti yapışqan körpü" etdim ki, bu da hər birinin digərini yerində möhkəm saxlamasını təmin edir.

İndi ağırlıqlı baza yaratmağa davam edə bilərik!

Addım 6: Ağırlıqlı Baza

Ağırlıqlı Baza
Ağırlıqlı Baza
Ağırlıqlı Baza
Ağırlıqlı Baza
Ağırlıqlı Baza
Ağırlıqlı Baza

Lehimləmə bacarığımdan əminəm və bunu yaxşı planlaşdırmışdım, buna görə də kodu sınamadan əvvəl bazanı əlavə etdim. Bacarıqlarınıza daha az güvənirsinizsə, hər şeyin işlədiyini bildiyiniz zaman bu addımı atmağı və sonunda ona qayıtmağı təklif edərdim.

3D çap versiyasını hazırlamısınızsa, ilk addımı atıb ikincisinə keçə bilərsiniz.

Addım 1: Taxta

1/4 düymlük kontrplakdan bir təbəqədən təxminən 3 düym 2 düym kəsin.

Kenarları zımparalayın və hamarlaşdırın.

Addım 2: çəki

Birincisi, bir maqnit, metal və ya xüsusi bir lehim olsun, hazırladığımız metal örtüyün kənarlarına uyğun olsun, seçdiyiniz ağırlığı təmin edin. Mənimki bir istiqamətdə bir qədər iri idi, buna görə yan tərəfdən X-akto bıçağı ilə bir az qırxdım. Bunu sizin edə biləcəyiniz bir şey deyilsə, fərqli bir baza dizaynı ilə əyləşməli ola bilərsiniz.

Ağırlığınızı kontrplak parçasının ortasına və ya 3D çaplı dizayn halında, bu məqsədlə hazırladığım mərkəzi "tepsi" sahəsinə isti yapışdırın.

Addım 3: Baza

Metal örtüyü ağırlığın üstünə qoyun və taxta zəminə mərkəzləşdirin. (3D çap dizaynında, əvvəlcədən hazırlanmış yivlərə yerləşdirin.)

Ağırlığın heç bir elektronikaya müdaxilə etmədiyinə əmin olun

Baza sabitləmək üçün isti yapışqan istifadə edin. Möhkəm bir əlaqə təmin etmək üçün kifayət qədər istifadə edin.

İdarəetmə qutumuz tamamilə hazır olduqdan sonra işıqlara keçək.

Addım 7: NeoPixel Halo Üzük

NeoPixel Halo Üzük
NeoPixel Halo Üzük
NeoPixel Halo Üzük
NeoPixel Halo Üzük
NeoPixel Halo Üzük
NeoPixel Halo Üzük
NeoPixel Halo Üzük
NeoPixel Halo Üzük

Bu lampanın adı üçün ilham mənbəyi, işıqlandırma mənbəyimiz olaraq istifadə edəcəyimiz NeoPixel halo üzüyüdür. İstədiyiniz təqdirdə, bu xüsusi parça hər hansı bir NeoPixel və ya ayrı -ayrı ünvanlı LED halqası ilə dəyişdirilə və ya dəyişdirilə bilər.

Addım 1: Lehimləmə

NeoPixels 12 LED uzunluğunda bir zolaq kəsin.

GND pinini 3 xətti olan çevik boyundan telə lehimləyin.

Din pinini 2 xətti olan telə lehimləyin.

5V pinini 1 xətti olan telə lehimləyin.

Addım 2: İşıqları yoxlayın

Adafruit_NeoPixel kitabxanasını yükləyin və quraşdırın və "strandtest" kodunu açın.

Sabit PIN kodunu 9 olaraq dəyişdirin.

Şeridin təyin olunduğu xətti 12 LED üçün konfiqurasiya edilmiş şəkildə dəyişdirin.

Kodu Nanoya yükləyin və bütün LED -lərinizin düzgün işləməsini təmin edin.

Bütün zolaq işləyənə qədər nasaz olan LED -ləri işləyənlərlə əvəz edin.

Addım 3: Zəng vurun

Üst çubuğu "Çubuq və Tıqqıltı" işığından götürün və daxili kənarındakı vintli montajları kəsin.

Zolaqdan tellər üçün kənarında kiçik bir çentik kəsin.

NeoPixelsin arxasındakı yapışqan bantın qapağını (əgər varsa) soyun və halqanın içərisinə yapışdırın, zolağın hər iki ucunu düz etdiyimiz çentiklə düzəldin.

Şeridin kənarlarını möhkəm bağlamaq üçün isti yapışqan istifadə edin

Yapışqan tamamilə soyuduqdan sonra pikselləri yenidən sınayın. Bu, istidən və qıvrımdan heç kimin çətin olmadığından əmin olmaqdır (bir neçəsi mənim idi).

Addım 4: Montaj

Üzüyün hündürlüyü və 1 2/3 qat genişliyi olan 1/4 düymlük ağacdan iki kiçik düzbucaqlı kəsin.

Boşluğu dolduraraq aralarındakı telləri tamamilə yapışqan ilə örtərək halqadan tellərin hər iki tərəfinə bir -birinə paralel olaraq yapışdırın.

Diqqətlə geri çəkilmiş uzun telləri əyilmiş boyuna itələyin və sonra ağac parçalarını boyunun ucuna yapışdırın, çoxlu yapışqan istifadə edin və boşluqları diqqətlə doldurun (boyunu yapışqanla doldurmadan).

Addım 6: Bitirmə

İstəyirsinizsə üzüyü rəngləyə və hər hansı bir rəngə monte edə bilərsiniz, gümüşü rəngə üstünlük verdim, buna görə üzüyə (əsəbiləşdirici şəkildə) yazılmış loqotipi örtmək üçün yalnız Sharpie istifadə etdim. Eyni şey lampanın qalan hissəsinə də aiddir.

İndi son kodu bitirməyə davam edə bilərik!

Addım 8: Kodlar və Testlər

Kodlar və testlər
Kodlar və testlər
Kodlar və testlər
Kodlar və testlər

Beləliklə, indi yalnız lampanı proqramlaşdırmaq və sınamaq qalır. Mövcud kod versiyası (rev1.0) əlavə olunur, bu kodu olduqca geniş şəkildə sınamışam və çox yaxşı işləyir. Düymələrin xarici müdaxilələr kimi konfiqurasiya edildiyi bir rev2.0 üzərində işləyirəm ki, rejimlər arasında daha asan keçiş edilsin, lakin bu versiya səhvdir və hələ buraxılmağa hazır deyil. Mövcud versiya ilə, düyməni Debounce döngəsini işə salana və uzun "Dinamik" döngələrdə cansıxıcı ola biləcək vəziyyət dəyişikliyini tanıyana qədər basıb saxlayın. Aşağıda bəzi izahatları olan kod var (yüklənə bilən versiyada eyni izahlar var).

#include #ifdef _AVR_ #include #endif

#PIN 9 təyin edin

#POT A0 təyin edin #DÜĞMƏ1 A1 #DÜĞMƏ2 A2 təyin edin

// Parametr 1 = zolaqdakı piksellərin sayı

// Parametr 2 = Arduino pin nömrəsi (əksəriyyəti etibarlıdır) // Parametr 3 = piksel tipli bayraqlar, lazım olduqda əlavə edin: // NEO_KHZ800 800 KHz bit axını (WS2812 LEDli NeoPixel məhsullarının çoxu) // NEO_KHZ400 400 KHz (klassik ') v1 '(v2 deyil) FLORA pikselləri, WS2811 sürücüləri) // NEO_GRB Piksellər GRB bit axını üçün bağlanmışdır (əksər NeoPixel məhsulları) // NEO_RGB Piksellər RGB bit axını üçün bağlanmışdır (v1 FLORA piksellər, v2 deyil) // NEO_RGBW Piksellər tellidir RGBW bit axını (NeoPixel RGBW məhsulları) Adafruit_NeoPixel halo = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800);

// Və indi, Adafruit'deki dostlarımızdan bir təhlükəsizlik mesajı:

// Vacib: NeoPixelin tükənmə riskini azaltmaq üçün 1000 uF kondansatör əlavə edin

// piksel güc mənbələri, ilk piksel məlumat girişinə 300 - 500 Ohm müqavimətçi əlavə edin // və Arduino ilə ilk piksel arasındakı məsafəni minimuma endirin. Canlı bir dövrədə // bağlamaqdan çəkinin … əgər lazımdırsa, əvvəlcə GND -ni bağlayın.

// Dəyişənlər

int düyməsiState1; int düyməsiState2; // giriş pinindən cari oxuma int lastButtonState1 = LOW; // giriş pinindən əvvəlki oxu int lastButtonState2 = LOW; int rejimi; // işıqlarımızın rejimi 16 parametrdən biri ola bilər (0 -dan 15 -ə qədər) int brightVal = 0; // parlaqlıq/ sürət, potensiometr tərəfindən təyin olunduğu kimi

// aşağıdakı dəyişənlər uzundur, çünki vaxt milisaniyələrlə ölçülür, // tez bir intdə saxlanıla biləcəyindən daha böyük bir rəqəmə çevriləcək. long lastDebounceTime = 0; // sonuncu dəfə çıxış pimi uzun debounceDelay = 50; // çıxma vaxtı; çıxış titrəyirsə artırın

ləğv et () {

// keçidin vəziyyətini yerli dəyişənə oxuyun: int reading1 = digitalRead (BUTTON1); int oxu2 = digitalRead (BUTTON2); // Əgər düymələrdən biri səs -küydən və ya basmaqdan asılı olaraq dəyişərsə: if (reading1! = LastButtonState1 || reading2! = LastButtonState2) {// debunding timer sıfırlayın lastDebounceTime = millis (); } if ((millis () - lastDebounceTime)> debounceDelay) {// düyməni basmaq/buraxmaq səbəbindən düymə vəziyyəti mütləq dəyişibsə: if (reading1! = buttonState1) {buttonState1 = reading1; // dəyişdirilərsə onu oxu olaraq təyin edin (buttonState1 == LOW) {// bunlar aktiv aşağı açar rejimi ++ olaraq təyin olunur; if (mode == 16) {mode = 0; }}} if (oxu2! = buttonState2) {buttonState2 = oxu2; if (buttonState2 == LOW) {mode = mode - 1; əgər (rejim == -1) {rejim = 15; }}}} // oxunuşu növbəti dəfə loopButtonState1 = oxu1 vasitəsilə qeyd edin; lastButtonState2 = oxu2; }

void getBright () {// potansiyometri oxumaq üçün kodumuz 0 ilə 255 arasında bir dəyər verir. Bəzi rejimlərdə parlaqlığı, digərlərində sürəti təyin etmək üçün istifadə olunur.

int potVal = analogRead (POT); parlaqVal = xəritə (potVal, 0, 1023, 0, 255); }

// Budur rəng rejimlərimiz. Bunlardan bəziləri ən qəribə nümunədən götürülmüşdür, digərləri orijinaldır.

// Nöqtələri bir -birinin ardınca bir rənglə doldurun (rəngli silmə, strandtestdən götürülmüş)

void colorWipe (uint32_t c, uint8_t gözləyin) {for (uint16_t i = 0; i

// göy qurşağı funksiyaları (strandtestdən də alınmışdır)

boş göy qurşağı (uint8_t gözləyin) {

uint16_t i, j;

üçün (j = 0; j <256; j ++) {üçün (i = 0; i

// Bir az fərqlidir, bu göy qurşağını hər tərəfə bərabər paylayır

boş göy qurşağıCycle (uint8_t gözləyin) {uint16_t i, j;

for (j = 0; j <256*5; j ++) {// (i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, Wheel (((i * 256 / halo.numPixels ()) + j) & 255)); } halo.show (); gecikmə (gözləmək); }}

// 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) {halo. Color qaytarın (255 - WheelPos * 3, 0, WheelPos * 3); } əgər (WheelPos <170) {WheelPos -= 85; qayıt halo. Color (0, WheelPos * 3, 255 - WheelPos * 3); } WheelPos -= 170; qayıt halo. Color (WheelPos * 3, 255 - WheelPos * 3, 0); }

boş quraşdırma () {

// Bu, Trinket 5V 16MHz üçündür, əgər Trinket #if (_AVR_ATtiny85_) əgər (F_CPU == 16000000) clock_prescale_set (clock_div_1) istifadə etmirsinizsə, bu üç sətri silə bilərsiniz; #endif // bibərin sonu xüsusi kod pinMode (POT, INPUT); pinMode (BUTTON1, INPUT_PULLUP); pinMode (BUTTON2, INPUT_PULLUP); pinMode (PIN, ÇIXIŞ); Serial.begin (9600); // məhsulları ayıklama halo.begin (); halo.show (); // Bütün pikselləri "söndürmək" üçün başladın}

boşluq döngəsi () {

çıxarmaq ();

//Serial.println(rejimi); // daha çox ayıklama //Serial.println(lastButtonState1); //Serial.println(lastButtonState2);

əgər (rejim == 0) {

getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (parlaqVal, parlaqVal, parlaqVal)); // bütün pikselləri ağ olaraq təyin edin} halo.show (); }; əgər (rejim == 1) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (parlaqVal, 0, 0)); // bütün pikselləri qırmızı olaraq təyin edin} halo.show (); }; əgər (rejim == 2) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, brightVal, 0))); // bütün pikselləri yaşıl olaraq təyin edin} halo.show (); }; əgər (rejim == 3) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, 0, brightVal)); // bütün pikselləri mavi} halo.show (); }; əgər (rejim == 4) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (0, parlaqVal, parlaqVal)); // bütün pikselləri cyan} halo.show () olaraq təyin edin; }; əgər (rejim == 5) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (parlaqVal, 0, parlaqVal)); // bütün pikselləri bənövşəyi/magenta} halo.show () olaraq təyin edin; }; əgər (rejim == 6) {getBright (); for (int i = 0; i <halo.numPixels (); i ++) {halo.setPixelColor (i, halo. Color (parlaqVal, parlaqVal, 0)); // bütün pikselləri narıncı/sarıya təyin et} halo.show (); }; if (mode == 7) {// indi dinamik rejimlər getBright (); colorWipe (halo. Color (parlaqVal, 0, 0), 50); // Qırmızı}; əgər (rejim == 8) {getBright (); colorWipe (halo. Color (0, brightVal, 0), 50); // Yaşıl}; əgər (rejim == 9) {getBright (); colorWipe (halo. Color (0, 0, brightVal), 50); // Mavi }; əgər (rejim == 10) {getBright (); colorWipe (halo. Color (parlaqVal, parlaqVal, parlaqVal), 50); // ağ}; əgər (rejim == 11) {getBright (); colorWipe (halo. Color (parlaqVal, parlaqVal, 0), 50); // narıncı/sarı}; əgər (rejim == 12) {getBright (); colorWipe (halo. Color (0, parlaqVal, parlaqVal), 50); // mavi); əgər (rejim == 13) {getBright (); colorWipe (halo. Color (parlaqVal, 0, parlaqVal), 50); // bənövşəyi/magenta}; if (mode == 14) {// son ikisi sürət nəzarətidir, çünki parlaqlıq dinamikdir getBright (); göy qurşağı (parlaqVal); }; əgər (rejim == 15) {getBright (); göy qurşağı dövrü (parlaqVal); }; gecikmə (10); // prosessora bir az istirahət ver}

Addım 9: Böyük Final

Böyük Final
Böyük Final

Və indi fantastik, çox parlaq kiçik bir lampamız var!

Buradan daha da dəyişə və ya olduğu kimi buraxa bilərsiniz. Kodu dəyişdirə və ya tamamilə yenisini yaza bilərsiniz. Baza genişləndirə və batareyalar əlavə edə bilərsiniz. Bir fan əlavə edə bilərsiniz. Daha çox NeoPixel əlavə edə bilərsiniz. Bununla edə biləcəyiniz hər şeyin siyahısı demək olar ki, sonsuzdur. "Demək olar ki" deyirəm, çünki əminəm ki, bunu hələ də bir mini portal generatoruna çevirmək üçün texnologiyamız yoxdur (təəssüf ki), ancaq bu kimi şeylər xaricində, tək məhdudiyyət sizin təsəvvürünüzdür (və müəyyən dərəcədə, bu yaxınlarda tapdığım kimi, atelyedəki alətlər). Alətləriniz yoxdursa, bunun sizi dayandırmasına imkan verməyin, həqiqətən bir şey etmək istəyirsinizsə, hər zaman bir yol var.

Bu layihənin mahiyyətinin bir hissəsi, özümə (və daha az dərəcədə dünyaya) digər insanların da istədiyi faydalı şeylər edə biləcəyimi sübut etməkdir. komponentləri və Arduino təchizatı qutusu.

Buradan ayrılacağam, çünki bunun çox yaxşı alındığını düşünürəm. Təkmilləşdirmək üçün bir təklifiniz və ya metodlarımla bağlı bir sualınız varsa, aşağıda bir şərh buraxın. Bunu siz etdinizsə, şəkil çəkin, hamımız görmək istəyirik!

Zəhmət olmasa bəyəndiyiniz halda səs verməyi unutmayın!

Həmişə olduğu kimi, bu, Dangerously Explosive -ın, "Həyat boyu qurmaq istədiyini cəsarətlə qurmaq və daha çox!" Missiyasıdır.

Qalan layihələrimi burada tapa bilərsiniz.

Oxuduğunuz üçün təşəkkür edirəm və Xoşbəxt olun!

Tövsiyə: