Mündəricat:

Wifi İdarə Edilən LED Şeritli Aşağı Poli Dəmir Adam: 8 Addım (Şəkillərlə)
Wifi İdarə Edilən LED Şeritli Aşağı Poli Dəmir Adam: 8 Addım (Şəkillərlə)

Video: Wifi İdarə Edilən LED Şeritli Aşağı Poli Dəmir Adam: 8 Addım (Şəkillərlə)

Video: Wifi İdarə Edilən LED Şeritli Aşağı Poli Dəmir Adam: 8 Addım (Şəkillərlə)
Video: Toronto merliyinə namizəd DARREN ATKINSON 9 seçki platforması mövzusunu və daha çoxunu izah edir 2024, Noyabr
Anonim
Wifi İdarə Edilən LED Şeritli Aşağı Poli Dəmir Adam
Wifi İdarə Edilən LED Şeritli Aşağı Poli Dəmir Adam
Wifi İdarə Edilən LED Şeritli Aşağı Poli Dəmir Adam
Wifi İdarə Edilən LED Şeritli Aşağı Poli Dəmir Adam
Wifi İdarə Edilən LED Şeritli Aşağı Poli Dəmir Adam
Wifi İdarə Edilən LED Şeritli Aşağı Poli Dəmir Adam
Wifi İdarə Edilən LED Şeritli Aşağı Poli Dəmir Adam
Wifi İdarə Edilən LED Şeritli Aşağı Poli Dəmir Adam

Bu interaktiv divar sənəti əsəri təxminən 39 "uzunluqda və 24" genişlikdədir. Clemson Universitetinin Student Makerspace-də odunu lazerlə kəsdim, sonra bütün üçbucaqları əllə boyadım və arxa tərəfinə işıqlar qoydum. Bu öyrədici, bu əsəri necə hazırladığımdan keçəcək, inşallah konsepsiyası başqasına özünəməxsus sənət əsərini yaratmağa ilham verəcək. Ünvanlı WS2812B LED şerit işıqları və adi RGB LED şerit işıqları olan bir ESP8266 mikro nəzarətçisindən istifadə edir.

Parçalar və materiallar

  • 1/4 "ağac - 40" x 28 "(Lazer kəsicimizin maksimum ölçüləri)
  • 1/8 "şəffaf akril - TAPPlastics (Lighting White istifadə edirəm, 69%)
  • Batareya paketi - TalentCell 12V/5V batareya paketi (12V/6000mAh paket istifadə etdim)
  • RGB LED şeridi - 6 fut (Standart 4 tel, RGB işığının hamısı bir modulda olduğu 5050 versiyası)
  • Bir çox işığın PWM idarə edilməsi üçün TIP122 tranzistor
  • WS2812B LED şeridi - 2 fut (hər metr üçün 144 LED olan versiyanı istifadə etdim)
  • ESP8266 NodeMCU mikro nəzarətçi
  • Qatı nüvəli 22 ölçü bağlayıcı teli (link1 - link2 - link3 - link4)
  • 300 -ə yaxın rezistor
  • Boya fırçaları
  • Boya - Əsasən Craft Premium boyasından istifadə edirdim. Rəsm addımında detallar

Alətlər

  • Lazer kəsiciyə giriş (Clemsonda istifadə etdim)
  • Lehimleme dəmir
  • İsti yapışqan silahı (bu vacibdir)
  • Tel kəsicilər/soyucu
  • Adobe Illustrator
  • Səbir

Addım 1: Illustrator -da dizayn

Illustrator -da dizayn
Illustrator -da dizayn
Illustrator -da dizayn
Illustrator -da dizayn

Mənbə şəkli William Teal -ın bir nümunəsidir, zəhmət olmasa portfelinə onun digər möhtəşəm əsərlərinə bir göz atın: https://www.behance.net/tealeo93 (Düşünürəm ki, bu - GoogleImages, Pinterest, GraphicDesignJunction, Behance)

Mənbə şəklini "Aşağı Poli Dəmir Adam" və ya "Geometrik Dəmir Adam Divar kağızı" üçün Google axtarışından tapdım. Şəkli yükləyib Adobe Illustrator -da açdım.

Sonra, şəkildəki hər bir xətti əl ilə çəkmək üçün Illustratordakı qələm alətindən istifadə etdim. Bunu lazer kəsicinin bütün görüntünün üzərində raster etmək əvəzinə, aşağı gücə qoyulmuş vektor kəsimi kimi bütün daxili xətləri həkk edə bilməsi üçün etdim. Bunu etmək üçün bir neçə saat çəkdi (aka məktəbdə təxminən 3 sinif dövrü)

Şəkil tamamilə təsvir edildikdən sonra bütün xətləri bir araya topladım və sonra əllər, sinə və gözlər üçün şəkillər çəkdim. Bunların hamısını bir qrupa qoydum və onları asanlıqla ayırd edə bilmək üçün doldurma rənglərini mavi rəngə qoydum. Akril kəsmə üçün bunları ayrı bir fayla kopyaladım.

Akril hissə üçün akril parçamın səmərəliliyini artırmaq istədim və bu veb saytına https://svgnest.com/ yüklədim və yalnız akril kəsilmiş parçaları olan bir fayl yüklədim və hissələri "yuva etməsinə" icazə verdim. Tullantıları minimuma endirmək üçün vərəqdəki hissələrinizin ən səmərəli quruluşunu müəyyən etmək üçün bəzi təkrarlamalar və sərin alqoritmlərdən istifadə edir. IronManAcrylic.ai sənədindəki konfiqurasiyanı çıxarır.

Addım 2: Lazerlə kəsmə

Image
Image

Ağacı kəsməzdən əvvəl spreylə astarla boyadım və sonra hamarlaşdırmaq üçün yüngülcə zımparaladım. Boyanın sonradan daha bərabər çıxması üçün bunu etdim.

Konturu ağacdan kəsdiyim zaman Clemson Makerspace -də 60W Epilog Fusion M2 40 -da 100% güc 6% sürət istifadə etdim (düşünürəm). Bu çox iş gördü, amma odun bir küncdə çox əyilmişdi, buna görə lazerin bu küncünü yenidən fokuslamalı və kəsik hissəsini yenidən işə salmalı idim.

Bütün daxili üçbucaqlar üçün xətlər çəkdiyim üçün yuxarıdakı videoda göstərildiyi kimi bütün bu xətləri tez bir zamanda aşındırmaq üçün vektor kəsmə istifadə edə bildim. Bu, faylı taramaqdan daha sürətli idi. 70% sürət və 50% güc istifadə etdiyimi düşünürəm - ancaq təcrübə etməlisiniz.

1/8 akrili əvvəlcə 100% güc və 8% sürətlə kəsdim ki, bu da bir az çox güclü idi və qorunmayan akrilikdə bəzi izlər buraxdı, buna görə də 14% sürətlə etdim və bir cazibədarlıq kimi çalışdı.

Addım 3: Rəsm

Rəsm
Rəsm
Rəsm
Rəsm
Rəsm
Rəsm

Belə ki. Çox. Rəsm. Təxminən 20 saatlıq bir rəsm əsəri idi.

Bu qədər üçbucaqlı bir layihə etməyi düşünürsənsə, lütfən onu özün boyama. Şəkli metal və ya taxta üzərində çap etdirmək üçün pul ödəyin, sonra kəsin və ya başqa bir şeyə çap edin və həmin parçanı möhkəm bir şeyə yapışdırın. Rəsm çəkməyi sevmədiyiniz halda özünüz boyamayın.

Bunu çəkərkən hər üçbucağı təsvir etmək üçün FrogTape rəssamlarının lentindən istifadə etdim. Bu, hər üçbucağı heç bir bant sərhədləri olmadan əllə doldurmaq cəhdlərimdən daha çox ardıcıl nəticələr verdi.

FrogTape, ağ və ya mavi rəssamların lentindən daha dəqiq xətlər verir. Vaxtınız və sağlam düşüncəniz tamamilə əlavə 2 dollar/rulet lenti dəyərindədir. Daha cılız olmasını istəyirsinizsə, dəqiq bir bıçaq istifadə edərək lentin bir neçə qatını daha kiçik zolaqlara kəsin ki, bir üçbucağın konturunu çəkdiyiniz zaman o qədər qonşu üçbucaqları örtməsin.

Mən ucuzam və rəsmdə çox təcrübəm yoxdur, buna görə Michael və ya Hobbi Lobisindən 2 oz boya şüşəsi istifadə etdim. Craft Smart Premium xəttinin kifayət qədər yaxşı örtüldüyünü və qırmızı rənglərimin 95% -ni etmək üçün ağ və ya qara ilə qarışdırılmış CraftSmart Premium Metalik Şənlikli Qırmızı boya istifadə etdiyimi gördüm. Sarı, bir az parıltılı etmək üçün bir az qızıl atılan Craft Smart mükafat sarı idi.

Daha yaxşı əhatə edən ucuz rəngli bir boya bilirsinizsə - şərhlərdə mənə bildirin !! Aşağıdakı ağ rənglərin heç birinin görünməməsi üçün tez -tez iki qat boya çəkməli idim və bunun qarşısını alacaq daha gözəl bir boyaya sahib olmaq istərdim.

Bir dəfə hamısı boyanmışdı (amma akril parçalara yapışdırmadan əvvəl) boyanı qorumaq və hamısını parlaq etmək üçün parlaq şəffaf bir qat spreyi istifadə etdim.

Addım 4: Akril Parçalar və Akril Armaturlar

Akril Parçalar və Akril Arxa Fənərlər
Akril Parçalar və Akril Arxa Fənərlər
Akril Parçalar və Akril Arxa Fənərlər
Akril Parçalar və Akril Arxa Fənərlər
Akril Parçalar və Akril Arxa Fənərlər
Akril Parçalar və Akril Arxa Fənərlər
Akril Parçalar və Akril Arxa Fənərlər
Akril Parçalar və Akril Arxa Fənərlər

Akrilik parçaları yapışdırmaq bir az çətin idi, çünki iş masamın/masamın və taxta parçamın hər ikisi də bir az əyri idi, buna görə də epoksi qurmaq üçün kifayət qədər uzun müddət qalacağına zəmanət verə biləcəyim bir yol yox idi. Bir həll yolu olaraq, taxtanı yapışdırdığım akril parçanın yanındakı masaya basdım və əvvəlcə hər bir akril parçanı yerində saxlamaq üçün isti yapışqan istifadə etdim. İsti yapışqan akrilin ön tərəfindən görünür, buna görə də akril parçaları qalıcı olaraq yerində saxlamaq üçün diş çubuğu ilə sürülmüş iki hissəli epoksi Gorilla Glue istifadə etdim. Kiçik kəlbətinlə qayıtdım və orijinal isti yapışqan parçalarını çıxartdım.

Hər bir akril parça üçün ayrı bir işıq modulu hazırladım. Əvvəlcə 1/4 düymlük qara köpük lövhədən lazım olan ölçüdən bir qədər böyük ölçüdə kəsdim və üzərinə akril parçanın konturunu çəkdim. Sonra həmin hissənin LED şeridlərini əsasən akrili örtəcək şəkildə kəsib bantladım. sahə.

Bu addım bir prototip lövhəsi və bəzi vida terminalları ilə edilsə daha yaxşı olardı, amma kabel çəkməyə hazır olduğum zaman əlimdə yox idi. Bir həll yolu olaraq, bəzi qadın başlıq pin zolaqlarını 4 girişə ayırdım - Ground, 5V in, data in, data out. Dişi başlıq şeridini köpük lövhəsinə isti şəkildə yapışdırdım və bütün işıqları birlikdə lehimləməyə başladım.

Lehim yastıqlarının nə qədər kiçik olduğuna görə həqiqətən çətin idi. Xoşbəxtlikdən bütün güc və yer yastıqları üçün iki şansım oldu, çünki hər bir zolağın hər iki ucuna enerji verilə bilər. Məlumat telinin serpantin bir şəkildə axması üçün zolaqları qoydum. Tənzimlənən temperaturlu bir lehimləmə dəmiri istifadə edirəm və istiliyin yaşıl rəngli aralığın yuxarı hissəsində olmasını istədiyimi gördüm - yəqin ki, çox xoşlayıram, çünki illərdir istifadə etdiyim lehimləmə dəmiri ucuz idi və heç bir temperatur tənzimləyicisi yox idi. və isti qaçdı.

Hər şey lehimləndikdən sonra, işıqları bağlamaq və qanaxmanı azaltmaq üçün köpük taxtasının zolaqlarını kəsmək üçün dəqiq bıçaqla (təzə bıçaqla) istifadə etdim. Daha uzun zolaqlara malik olduğum üçün qara əvəzinə ağ istifadə etdim və əslində bu yaxşı bir şeydi, çünki hamısını bağlamaq üçün sınaq mərhələsində LED şeritlərinin bu hissəsinin açıldığını asanlıqla görməyimə imkan verdi.

Addım 5: Elektronikanın qalan hissəsi

Qalan elektronika
Qalan elektronika
Qalan elektronika
Qalan elektronika
Qalan elektronika
Qalan elektronika

Həmişə əvvəlcə güc girişlərini, sonra nəzarətçini, sonra digər lövhə elementlərini və ətraf qurğuları qoyaraq layihələrimi bağlamağa çalışıram. Batareya paketini isti yerə yapışdırdım və sonra ayrılan DC jak kabelini çəkdim ki, şarj girişinə layihənin bir kənarından asanlıqla doldurulsun. Batareya paketi bölünmüş kabel ilə gəldi və təlimatlarda, batareyanı istifadə edərkən doldurmağın yaxşı olduğunu söylədi.

Ucuz bir mikro usb kabelini yeyə bildim və 5V girişini istifadə edə biləcəyim üçün mikro USB ucunu bir DC barel yuvası ilə əvəz etdim. Çörək taxtasının bir gərginlikli rayına və ESP8266 Vin pininə 5V qoydum, sonra topraklama rayına və ESP8266 -nın topraklama pininə toprakladım (bütün əsaslar idarəedicinin içərisində birləşdirilməlidir, buna görə hansının olmasının əhəmiyyəti yoxdur))

Standart RGB LED şeritləri nəzarətçidən PWM siqnalı ilə idarə olunur. Bununla birlikdə, mikro nəzarətçilər, nəzarətçidən asılı olaraq hər pin üçün yalnız 20mA-50mA cərəyan verə bilər. Şeriddəki hər bir LED bu qədər güc tələb edir, buna görə də zolaqları idarə etmək üçün bir növ tranzistordan istifadə etməliyik. Google axtarışlarında ortaya çıxan bir neçə yer, 5 amper və ya 40W gücünü dəyişə bilən TIP122 tranzistorunu təklif etdi - bu tətbiqimiz üçün kifayət qədər çoxdur. Həqiqətən çörək taxtasına sığmaq üçün nəzərdə tutulmayıb, amma hər teli 90 ° yana çevirsəniz, çörək taxtası yuvalarına sığar. Əvvəlcə hər birinə kiçik bir soyuducu bağlamağı planlaşdırırdım, amma bəzi sınaqlardan sonra lazım olduğu qədər istiləşmədiklərini təyin etdim. Hər tranzistor girişini PWM çıxışı üçün təyin edilmiş ESP8266 -dakı bir pinə bağladım

Təsadüfən "suya davamlı" rezin örtüyə sahib olduğum RGB LED şeritləri istədiyim kimi taxta yapışdırılmayacaqdı. Bir həll yolu olaraq, köpük taxtasının kiçik hissələrini kəsdim və köpük parçasını taxtaya yapışdırdım və sonra LED şeridini onlara yapışdırdım.

Addım 6: Proqramlaşdırmaya Baxış

Bu layihə müxtəlif kitabxanalardan istifadə edir ki, Blynk adlı bir telefon tətbiqindən idarə olunsun, Amazon Echodan açılsın/söndürülsün və kod wifi üzərindən yenilənə bilsin. İstifadə olunan kitabxanalardan bəziləri aşağıda verilmişdir

Blynk -

Blynk, bir ESP8266 mikro nəzarətçi ilə fərdiləşdirilə bilən telefon tətbiqi arasında sadə idarəetməyə imkan verən bir xidmətdir. Telefon tətbiqi düymələr, sürgülər, RGB rəng seçiciləri və daha çox şeylərdən ibarət bir tətbiq qurmağa imkan verir. Hər bir "widget", müəyyən bir funksiyanı işlədərkən Blynk tətbiqindən çıxarıla bilən bir dəyəri dəyişdirir.

OTA (Havada) Güncellemesi- ESP8266-ya daxil olan standart kitabxana

Alexa Wemo Emulator-https://github.com/witnessmenow/esp8266-alexa-wemo…

Amazon Echo'yu aldatmaqla, layihənizin Wemo işıq açarı olduğunu düşünür. Kod, Alexa "aç" siqnalı və söndürmə siqnalı üçün ayrı bir funksiya göndərdikdə işləyəcək bir funksiya təyin etməyə imkan verir. Daha çox elastikliyə imkan verən tək bir nəzarətçi ilə birdən çox cihazı (10 -a qədər) təqlid edə bilərsiniz. Kodum Echo'nun "Dəmir Adam" və "Gecə İşığı" adlı iki cihazı tapması üçün qurulmuşdur. Həm bu layihə həm də bu nəzarətçidirlər, amma "Gecə İşığını" yandırsam, qaranlıq ağ işıqları olan bir funksiyanı yerinə yetirəcək, burada "Dəmir Adam" yandırıldıqda xarici LED şeritlərini qırmızıya, akril parçaları ağa çevirir..

VMicro istifadə edərək Visual Studio'da Arduino redaktəsi

Artıq bir neçə aydır ki, Visual Studio -nu iş yerində istifadə edirəm və qurduğu bütün avtomatik tamamlama vasitələrini sevirəm, buna görə də bəzi axtarışlardan sonra normal Arduino IDE yerinə Visual Studio -dan istifadə edə biləcəyimi gördüm. Tək bir kompüter vMicro lisenziyası tələbələr üçün 15 dollara başa gəlir, Arduino kodunu proqramlaşdırmaq üçün bir neçə saatdan çox vaxt sərf edəcəksinizsə, fikrimcə buna dəyər.

FastLED vs Neopixel

Layihələrimdə FastLED -dən istifadə edirəm, çünki bunun üçün artıq onlayn olaraq daha çox funksiya tapdım və bu nöqtədə istifadə edərək bir çox layihə hazırladım, buna görə yenidən istifadə etmək üçün çoxlu kodum var. Əminəm ki, kifayət qədər işləsəniz Neopixel kitabxanası da yaxşı işləyəcək. Başqa insanların istifadə etməsi üçün bütün xüsusi funksiyalarımı GitHub -a yerləşdirməyi planlaşdırıram, hələ bu işlə məşğul olmamışam.

Addım 7: Proqramlaşdırma haqqında göstərişlər

Ümumi quruluş

İşimdə bir nəzarət mühəndisiyəm və tez -tez PLC proqramlaşdırma adlanan bir proqramlaşdırma tərzindən istifadə edirik. Bu tip, Arduino -ya bənzəyir ki, bir neçə milisaniyədə davamlı işləyən və koddakı fərqli "vəziyyətlər" arasında atlayaraq giriş/çıxışlarla məşğul olur. Məsələn, kod konveyerlə bağlı bir addımı vura bilər, burada konveyerdə bir tepsi varsa 45 vəziyyətinə keçəcək, amma heç bir tepsi yoxdursa 100 vəziyyətinə keçəcək. Bu proqramlaşdırma tərzi mənim koduma ilham verdi. Dövlət nömrəsi əvəzinə bir simli oxuya biləcəyim üçün bəzi dəyişikliklər etdim.

Layihənin hansı işıq vəziyyətində olduğunu izləmək üçün qlobal bir dəyişəndən (commandString) istifadə edirəm. Əlavə olaraq, "canlandırmaq" adlı bir boolean istifadə edirəm ki, bir funksiyadan çıxıb çıxmayacağını da təyin edim. Beləliklə, Blynk -də "Klassik rejim" düyməsini basdığınızda kodum animate -i false (cari funksiyadan çıxması üçün) və commandString -i "RunClassic" olaraq təyin edəcək. Hər bir funksiya "CheckInput" funksiyasını işlədərək Blynk, Alexa və OTAUpdate -dən daxil olan məlumatları daim yoxlayır.

Qlobal Dəyişənlər

Layihəmdəki bəzi parametrləri izləmək üçün qlobal dəyişənlərdən istifadə edirəm. Bu dəyişənlər mənim kodumdakı hər hansı bir funksiyaya əlçatan olan quraşdırma kodumdan əvvəl işə salınır.

  • qlobal Parlaqlıq (0-255)
  • globalSpeed - hər hansı bir cizgi funksiyasının animasiya sürəti. Bu layihə yalnız solğun göy qurşağına malikdir
  • globalDelayTime - FastLED hər LED -ə məlumat yazmaq üçün təxminən 30 mikrosaniyəyə ehtiyac duyur, buna görə də bu dəyişəni NUM_LEDS * 30/1000 + 1 olaraq təyin etdim; əmrinin kəsilməməsi üçün FastLED.show () etdiyimdən sonra gecikmə (globalDelayTime) əlavə edin.
  • _r, _g, _b - qlobal RGB dəyərləri. Bu şəkildə fərqli rəng sxemi düymələri qlobal r/g/b dəyərlərini dəyişdirə bilər və hamısı eyni funksiyanı sonda çağıra bilər

Arduino OTA yeniləmə nəzarətçisinin adlandırılması

Hava üzərindən yeniləmə funksiyasından istifadə edərək nəzarətçiyə necə ad verəcəyimi öyrənənə qədər məni çox narahat etdi. Sözün həqiqi mənasında "ArduinoOTA.onStart (" - əvvəli) kodunuzun quraşdırma hissəsinə bu sətri daxil edin.

ArduinoOTA.setHostname ("IronMan");

Visual Studio məsləhətləri ilə vMicro

Bəzən vizual studiya, standart C ++ faylları kimi dərin fayllarla bəzi problemləri aşkar edər və bəzi səhvlər atar. Açıq layihənizdə heç bir dəstəkləyici fayl yox, yalnız səhvləriniz yaranana qədər müxtəlif növ səhv mesajlarını açmağa/söndürməyə çalışın. Kodu Arduino IDE -də də aça bilərsiniz və orada tərtib ediləcəyini və ya daha faydalı bir səhv kodu verəcəyini görə bilərsiniz.

FastLED

Bu Təlimat bir neçə həftədən çoxdur ki, mənə yazın və özəl funksiyalarımı GitHub -a necə qoyacağımı hələ də başa düşmədim.

FastLED, ESP8266 ilə uyğun olaraq siyahıya alındı, ancaq pin tərifləri doğru olmaya bilər. FastLED üçün sənədlərdə, #include əvvəli aşağıdakı sətirlərdən birini daxil edə biləcəyiniz deyilir

  • //#FASTLED_ESP8266_RAW_PIN_ORDER təyin edin
  • //#FASTLED_ESP8266_NODEMCU_PIN_ORDER təyin edin
  • //#FASTLED_ESP8266_D1_PIN_ORDER təyin edin

Ancaq hər üçünü sınadım və heç vaxt bütün sancaqlar uyğun gəlmədi. Hal -hazırda son sətirdən istifadə edirəm və FastLED -ə D2 pinini istifadə etməsini söylədiyim zaman həqiqətən nəzarətçimdə D4 pin istifadə etdiyini qəbul etdim.

İşıqlarım yalnız Neopixel -lərin ucuz Çin çaxnaşması olsa da, yenə FastLED -ə deyirəm ki, onlara quruluşda Neopixel kimi baxsınlar.

  • FastLED.addLeds (ledlər, NUM_LEDS);
  • FastLED.setCorrection (TypicalLEDStrip);
  • //FastLED.setMaxPowerInVoltsAndMilliamps (5, maxMilliamps); // Batareya ilə işləyən layihələr üçün faydalıdır
  • FastLED.setBrightness (globalBright);

Addım 8: Son məhsul

Son Məhsul
Son Məhsul
Son Məhsul
Son Məhsul
Son Məhsul
Son Məhsul

Ta-da!

Şərh yazmaqdan və ya mənə suallar göndərməkdən çekinmeyin - Mən bu materialı sevirəm və digər insanların sərin layihələr hazırlamalarına kömək etmək istərdim. Etdiyim digər layihələr və bəzi fotoşəkillərim üçün veb saytımı yoxlayın: www.jacobathompson.com

Tövsiyə: