Mündəricat:

Ulduzlu Göy Led Kravat: 9 Adım (Şəkillərlə)
Ulduzlu Göy Led Kravat: 9 Adım (Şəkillərlə)

Video: Ulduzlu Göy Led Kravat: 9 Adım (Şəkillərlə)

Video: Ulduzlu Göy Led Kravat: 9 Adım (Şəkillərlə)
Video: Pərdə arxası #2 - Fahişə həyatı - uşaqlar baxmasın 2024, Noyabr
Anonim
Image
Image
Ulduzlu Göy Led Qalstuk
Ulduzlu Göy Led Qalstuk
Ulduzlu Göy Led Qalstuk
Ulduzlu Göy Led Qalstuk

Bir müddət əvvəl bir dollar mağazasında fiberoptikası olan bir uşaq oyuncağı tapdım və onunla nə edə biləcəyimi düşünməyə başladım.

Aldığım dəli fikirlərdən biri də ulduzlu bir səmanın təsiri ilə qalstuk bağlamaq idi.

Hələ də ehtimal ki, bu layihəyə uyğun olacaq bir neçə arduino pro mini, adafruit lövhəsi və batareyaları var idi.

Beləliklə, şəhərimdəki bir lombardda gözəl bir geniş qalstuk tapdıqda və avadanlığa uyğun bir qutu tapan kimi, bunun üçün getməyə və onu tikməyə qərar verdim.

Bu təlimat sizə bunu necə etdiyimi göstərir.

Arduino pro mini, adafruit powerboost 500 şarj cihazı, emmerich icr 18650nh-sp və 5 ağ LED üzərində işləyir. Kod LED -in dəyişmə parlaqlığını təsadüfi edir. (Videonun ilk 40 saniyəsi 3x sürətlidir)

Addım 1: Şemalar və Avadanlıq

Sxem və Avadanlıq
Sxem və Avadanlıq
Sxem və Avadanlıq
Sxem və Avadanlıq

Aşağıdakı avadanlıqdan istifadə edirəm:

- Buzlu ağ LED və 220 Ohm rezistorlu PCB.

-Arduino pro mini (nokautdan istifadə etdim)

-Adafruit Powerboost 500 şarj cihazı

-Emmerich Li-ion Accu ICR-18650NH-SP

- Optik liflər (müxtəlif ölçülərdə)

Addım 2: LED -lərin yerləşdirilməsi üçün PCB hazırlanması

LED -lərin yerləşdirilməsi üçün PCB hazırlanması
LED -lərin yerləşdirilməsi üçün PCB hazırlanması
LED -lərin yerləşdirilməsi üçün PCB hazırlanması
LED -lərin yerləşdirilməsi üçün PCB hazırlanması
LED -lərin yerləşdirilməsi üçün PCB hazırlanması
LED -lərin yerləşdirilməsi üçün PCB hazırlanması

LEDləri tutmaq üçün bir PCB -dən bir zolaq kəsdim və əsas PCB -ə lehimləmək üçün LED pinlərindən istifadə etdim.

Bütün katotları (-) GND-yə bağladı və sancaqların yarısını əsas PCB-yə yapışdırmaq üçün istifadə etdi.

Bütün anodları (+) rezistorlara və kabellərlə arduinoya bağladı.

LED -lərin hər biri aşağıdakı PWM portlarından birinə bağlanmalıdır: 3, 5, 6, 9, 10, 11

Bu layihə ilə çox səhv etdim və düzgün PWM portlarını yoxlamağı unutdum, buna görə bir neçə sonra yenidən satmalı oldum. Yüksək/Aşağı ilə sınaqdan keçirildi, buna görə bunu yalnız sonra gördüm.

7 LED ilə başladım, ancaq 6 PWM portu var idi və yenidən satdığım LED -lərdən biri öldü. Mən yalnız 5 işləyən LED -i saxladım və 6 -cıdan istifadə etmirəm.

Addım 3: Qutunun hazırlanması

Qutunun hazırlanması
Qutunun hazırlanması
Qutunun hazırlanması
Qutunun hazırlanması
Qutunun hazırlanması
Qutunun hazırlanması
Qutunun hazırlanması
Qutunun hazırlanması

Batareyanın, düymənin, mikro usb portunun, Arduinonun başlıqlarının və optik liflərin şəklini kəsmək üçün bir Bosch GRO (Dremel kimi) və bir matkap istifadə etdim. (toz maskası istifadə edin!)

Batareyanı qutuya 2 bantla yapışdırıb.

Adafruit lövhəsini və PCB -ni montaj etmək üçün vintlər istifadə olunur.

Açılma və bağlanma sürtünməsi bəzi telləri zədələyir. Yenidən baş verməməsi üçün onları yenidən satıb yapışqan istifadə etməli oldum.

Addım 4: Qalstukun hazırlanması

Kravat hazırlanır
Kravat hazırlanır
Kravat hazırlanır
Kravat hazırlanır
Kravat hazırlanır
Kravat hazırlanır

Kauçuk təbəqəyə uyğun olması üçün qalstukun alt hissəsindəki dikişlər çıxarılmışdır.

Avadanlığı gizlətmək və lazım olduqda hələ də daxil ola bilmək üçün bir fermuar istifadə etməyə qərar verdim.

Bir tikiş maşını ilə yaxşı işləmirəm, buna görə şirin anam qalstukun arxasına bir fermuar taxdı.

Bunu etdikdən sonra qalstukdakı rezin təbəqəni yapışdırdım. Parçanı doyuracaq və öndən görünən çox yapışqan istifadə etməkdən qorxdum, buna görə də düzəltməyə və çox istifadə etməməyə çalışdım. Ümumiyyətlə yaxşı görünür, amma bəzi yerlərdə çox çox və ya çox az yapışqan gördüm, çünki parça içindən keçdi və ya parça çox yaxşı yapışmadı. Xoşbəxtlikdən, bu, parlaq işıqda yaxın məsafədən ancaq görünür.

Qutu və qalstuk artıq hazırdır. Fiberoptikləri yapışdırmağın vaxtı gəldi!

Addım 5: Fiberoptikləri yapışdırın

Fiberoptikləri yapışdırmaq
Fiberoptikləri yapışdırmaq
Fiberoptikləri yapışdırmaq
Fiberoptikləri yapışdırmaq
Fiberoptikləri yapışdırmaq
Fiberoptikləri yapışdırmaq
Fiberoptikləri yapışdırmaq
Fiberoptikləri yapışdırmaq

Oyuncağın asanlıqla parçalana bilən bir ədəd böyük fiber optik telləri vardı. Əvvəlcə onları bir -bir yapışdırmağa çalışdım, amma tezliklə kiçik paketlər düzəltməyin və onları bir anda LED -ə yapışdırmağın daha yaxşı olduğunu gördüm. Bu, yapışqan quruyana qədər sabit qalmağı asanlaşdıracaq. Bunu anlayan ilk LED -i qarışdırdı.

Şəffaf bir yapışqan istifadə etdiyinizə əmin olun! İstifadə etdiyim çox yavaş quruduldu və ilk LED -də sınadığım sürətli quruyan yapışqan ağa çevrildi və ilk LED -dən olan lifləri daha az parlaq etdi.

İşıq sızmasının qarşısını almaq və LED -ləri ayırmaq üçün kiçik qara rezin təbəqələr yapışdırdım.

Çarşaflardan biri çantanın bağlanmasını maneə törətdi, buna görə də qapağı bağlı saxlamaq üçün rezin bant əlavə etdim.

Addım 6: Fiberoptikləri Qalstuka Yerləşdirmək

Qalstuk vasitəsilə Fiberoptiklərin qoyulması
Qalstuk vasitəsilə Fiberoptiklərin qoyulması
Qalstuk vasitəsilə Fiberoptiklərin qoyulması
Qalstuk vasitəsilə Fiberoptiklərin qoyulması
Fiberoptikləri Qalstuka Yerləşdirmək
Fiberoptikləri Qalstuka Yerləşdirmək

Dibdən başlayaraq iynə ilə deliklər sıxdım və lifləri bir -bir keçirdim. Hər LED -in lifləri qalstuk boyunca təsadüfi yayılır.

Qutunun ağırlığını qorumaq üçün arxadan qara bir zolaq bağladım ki, qalstukun kiçik hissəsinə qədər gedim, amma bütün telləri açıb tellərin gərginliyini hiss etdikdən sonra yapışdırmağa qərar verdim. bağlamaq üçün hər şey daha yaxşı bir fikir idi və zolağı kəsdi.

Oyuncaqdakı fiber optik tellər çox qısa olduğundan onları bütün bağlamaya yerləşdirmək çətin idi. Qutunu yerləşdirməkdə məhdud idim və hər şeyi istədiyim qədər düz etməkdə çətinlik çəkdim.

Addım 7: Fiberoptikləri Qalstuka Yapışdırın

Fiberoptikləri Qalstuka Yapışdırmaq
Fiberoptikləri Qalstuka Yapışdırmaq
Fiberoptikləri Qalstuka Yapışdırmaq
Fiberoptikləri Qalstuka Yapışdırmaq
Fiberoptikləri Qalstuka Yapışdırmaq
Fiberoptikləri Qalstuka Yapışdırmaq
Fiberoptikləri Qalstuka Yapışdırmaq
Fiberoptikləri Qalstuka Yapışdırmaq

Tellərin rezin təbəqədən çıxarılmaması və qalstukun düz olması üçün bütün fiber optik telləri rezin təbəqəyə yapışdırdım.

Təzyiq edərkən bağlamanı bağlamadığımdan əmin olmaq üçün arasına bir az kağız qoydum. Çox yaxşı görünmür, amma yaxşı işləyir. Və bağlandıqda bunu görmürsən.

Yapışqan quruduqdan sonra ön tərəfdəki telləri kəsdim və ən yüksək telin üstündəki rezin təbəqəni bir az kəsdim, çünki bağlama çox uzun idi.

Ağ köynəkli fotoşəkillər, son rezini kəsməmişdən əvvəl hazırlanır.

Addım 8: Kod

Qalstuk üçün yazdığım kodun altında.

Bütün LED -lərdə müəyyən bir "orta" var (əslində orta deyil, orta parlaqlıq).

Bu ortalamaya çatan kimi, 3/4 şansla daha aşağı bir parlaqlığa keçməyə qərar verəcək. Eyni zamanda təsadüfi olaraq yeni minimum parlaqlığı, maksimum parlaqlığı, minimum və maksimum parlaqlığı gözləmə müddətini və hər bir dövrədə (1-255) 5 əvvəlcədən təyin edilmiş dəyərdən artan və ya azaldan sürəti təyin edir. Sonra yenidən ortalamaya çatana qədər bir dövr edəcək. Yalnız 2 LED eyni zamanda yüksək bir dövrədə ola bilər.

Hər əyalət, orta-aşağı, aşağı-orta, aşağı gözləmə, yeniləmə və s.

Kodun arduinoya yüklənməsi haqqında məlumat üçün www.arduino.cc saytına baxın

/ * Ulduzlu Göy Kravat * * Bu, 5 LED -in ortalamadan təsadüfi olaraq aşağıdan aşağıya * və ya daha yüksək parlaqlığın təsadüfi aşağı, daha yüksək və vaxt parametrləri ilə * solğunlaşması üçün bir skriptdir. * Bu halda bunlar bərabərliklə həyata keçiriləcək. * * Yuxarı/aşağı şans = 1/4 yuxarı, 3/4 aşağı, maksimum 2 * eyni anda maksimuma yüksəlir. * * Orta qiymət eyni olaraq qalır. * Minimum, maksimum və zamanlama variantları təsadüfi olaraq dəyişir * hər dəfə bir LED yenidən ortalamaya çatanda 5 variantdan. * * Billy Jaspers tərəfindən hazırlanmışdır, May 2019. *

/ Sancaqlar elan edin

int LED01 = 3; int LED02 = 5; int LED03 = 6; int LED04 = 9; int LED05 = 11;

// Zaman dəyişənləri

imzasız uzun cari zaman; imzasız uzun waitTime [5]; imzasız uzun lastRound;

// LED Dəyişənləri

int parlaqMin [5] = {10, 10, 10, 10, 10}; // Minimum parlaqlıq int brightAvg [5] = {200, 200, 200, 200, 200}; // Orta parlaqlıq int brightMax [5] = {240, 240, 240, 240, 240}; // Maksimum parlaqlıq int timeWaitLow [5] = {1000, 1000, 1000, 1000, 1000}; // Gözləmə müddəti int timeWaitAvg [5] = {5000, 5000, 5000, 5000, 5000}; // Gözləmə müddəti int timeWaitMax [5] = {4000, 3000, 3000, 3000, 3000}; // Gözləmə müddəti int artım [5] = {2, 5, 4, 5, 2}; // Parlaqlıq artımı int currentBright [5] = {200, 230, 210, 210, 235}; // Cari parlaqlıq

// LED Dəyişənlərin İmkanları

int parlaqMinPos [5] = {5, 20, 40, 5, 20}; // Minimum parlaqlıq imkanları int brightMaxPos [5] = {240, 245, 230, 225, 245}; // Maksimum parlaqlıq imkanları int timeLowPos [5] = {3000, 5000, 4000, 2000, 1000}; // int timeHighPos [5] = {3000, 1000, 500, 2000, 4000}; // int timeAvgPos yüksək parlaqlıq imkanları üzərində gözləmə müddəti [5] = {3000, 5000, 4000, 7000, 8000}; // Orta parlaqlıq imkanları gözləmə müddəti int incrementPos [5] = {2, 4, 5, 3, 1}; // parlaqlıq imkanlarının artması

// Dəyişənlər

bool başlanğıcı = doğru; // Başlanğıc parametrlərinə başlamaq lazımdırmı?

// İstiqamət dəyişənləri

/* 0 = Gözləmə Orta hesabla 1 = Ortadan Alçağa doğru gedir 2 = Gözləmə Düşük 3 = Aşağıdan Ortaya 4 gedir = Ortadan Maksiyə 5 -ə gedir = Maksimum 6 -da gözləyirəm = Avqdan 7 -ə qədər gedirik = Dəyişənlərin yenilənməsi*/ int statusLED [5] = {0, 0, 0, 0, 0}; int miqdarıHighLED = 0; int refreshRate = 50; bool statusWaiting [5] = {yalan, yalan, yalan, yalan, yalan}; // Led gözləyirmi?

// Təsadüfi dəyişənlər

uzun təsadüfi Sayı; // Uzun təsadüfi ədədləri saxlamaq üçün uzun randomNumberTwo; // İkinci təsadüfi nömrəni saxlamaq üçün uzun

// sayğaclar

int i = 0; // Əsas döngə üçün sayğac

boş quraşdırma () {

Serial.begin (115200); // Serial randomSeed -ə başlayın (analogRead (A0)); // Təsadüfi toxum seçin

// Çıxışları elan edin

pinMode (LED01, Çıxış); pinMode (LED02, Çıxış); pinMode (LED03, Çıxış); pinMode (LED04, Çıxış); pinMode (LED05, Çıxış); }

// LED -lərə məlumat yazın

void writeToLED () {analogWrite (LED01, currentBright [0]); analogWrite (LED02, currentBright [1]); analogWrite (LED03, currentBright [2]); analogWrite (LED04, currentBright [3]); analogWrite (LED05, currentBright [4]); }

// Əsas döngə

void loop () {if (startup) {// Başlanğıc parametrləri lastRound = millis (); // bootRootToLED () üçün lastRound qurun; // LED başlanğıcına başlanğıc məlumatlarını yazın = yanlış; // Başlanğıcı söndürün} currentTime = millis (); // Cari vaxtı təyin edin

əgər (currentTime - lastRound> = refreshRate) {

for (i = 0; i <5; i ++) {if (statusLED == 7) {// -7- Led randomNumber Güncelleme = təsadüfi (5); parlaqMin = parlaqMinPos [təsadüfiSayı]; // Minimum parlaqlıq üçün təsadüfi dəyər seçin randomNumber = təsadüfi (5); parlaqMax = parlaqMaxPos [təsadüfiSayı]; // Maksimum parlaqlıq üçün təsadüfi dəyər təyin randomNumber = təsadüfi (5); timeWaitLow = timeLowPos [randomNumber]; // Aşağı gözləmə müddəti üçün təsadüfi dəyər təyin edin randomNumber = təsadüfi (5); timeWaitMax = timeHighPos [randomNumber]; // Yüksək gözləmə müddəti üçün təsadüfi dəyər təyin edin randomNumber = təsadüfi (5); timeWaitAvg = timeAvgPos [randomNumber]; // Orta gözləmə müddəti üçün təsadüfi dəyər təyin edin randomNumber = təsadüfi (5); artım = artımPos [təsadüfiSayı]; // Artan dəyər üçün təsadüfi dəyər təyin edin randomNumber = təsadüfi (2); // randomNumberTwo = random (2) istiqaməti üçün təsadüfi dəyər təyin edin; // İstiqamət üçün təsadüfi dəyər təyin edin (randomNumber == 1 && randomNumberTwo == 0 && amountHighLED = brightAvg ) {statusLED = 0; // Ən aşağı nöqtədə olarsa: Gözləmə Ortasına gedin} başqa {currentBright = currentBright +artım ; // Başqa: Daha Yüksək Parlaqlıq}} başqa halda (statusLED == 2) {// -2- (! StatusWaiting ) olarsa Aşağı Gözləyin {// Gözləmirsinizsə: waitTime = milis (); // Gözləmə vaxtının vəziyyətini təyin edinWaiting = doğru; // gözləməyə başlayın} başqa halda (statusWaiting && currentTime-waitTime > = timeWaitLow ) {// Gözləmə VƏ vaxtWaitAvg keçibsə: statusWaiting = yalan; // Status gözləməyi dayandırınLED = 3; // StatusLed'i Yeniləməni Gözləyərkən}} başqa halda (statusLED == 1) {// -1- (cariBright <= parlaqMin ) {statusLED = olarsa, Ortala Düşür 2; // Ən aşağı nöqtədə olsanız: Aşağı Gözləyin} başqa {cariBright = currentBright artım ; // Başqa: Aşağı Parlaqlıq}} başqa halda (statusLED == 6) {// -6- Maksimumun Avg -a gedəcəyi halda (currentBright = timeWaitMax ) {// Gözləmə VƏ vaxtWaitAvg keçibsə: statusWaiting = yalan; // Status gözləməyi dayandırınLED = 6; // StatusLed'i Yeniləməni Gözləyərkən}} başqa halda təyin edin (statusLED == 4) {// -4- Əgər (currentBright > = parlaqMax ) {statusLED = 5; // Ən aşağı nöqtədə olarsa: Yüksək Gözləmə rejiminə keçin} başqa {currentBright = currentBright +artım ; // Başqa: Daha Yüksək Parlaqlıq}} else if (statusLED == 0) {// -0- (! StatusWaiting ) olduqda Ortalama Gözləmə {// Gözləmirsinizsə: waitTime = milis (); // Gözləmə vaxtının vəziyyətini təyin edinWaiting = doğru; // gözləməyə başlayın} başqa halda (statusWaiting && currentTime-waitTime > = timeWaitAvg ) {// Gözləmə VƏ vaxtWaitAvg keçibsə: statusWaiting = yalan; // Status gözləməyi dayandırınLED = 7; // StatusLed'i Güncellemeyi Gözləyir olaraq təyin edin}}} i = 0; lastRound = millis (); // Son tur başa çatdıqda təyin edin. writeToLED (); // Bütün məlumatları LED -lərə yazın}}

Addım 9: Son məhsul

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

Məncə yaxşı alındı. Qalstuk çox qalın, sərt, uzun və ya ağır deyil və ulduz effekti heyrətamiz görünür.

Tövsiyə: