Isi kandungan:

Ikatan Starry Sky Led: 9 Langkah (dengan Gambar)
Ikatan Starry Sky Led: 9 Langkah (dengan Gambar)

Video: Ikatan Starry Sky Led: 9 Langkah (dengan Gambar)

Video: Ikatan Starry Sky Led: 9 Langkah (dengan Gambar)
Video: #short #viral cewe hijab dicium di mall 2024, November
Anonim
Image
Image
Tali Langit Berbintang
Tali Langit Berbintang
Tali Langit Berbintang
Tali Langit Berbintang

Beberapa ketika yang lalu saya menjumpai mainan kanak-kanak dengan fiberoptik di kedai dolar, dan mula memikirkan apa yang boleh saya lakukan dengannya.

Salah satu idea gila yang saya ada, adalah membuat tali leher dengan kesan langit berbintang.

Saya masih mempunyai beberapa arduino pro mini, papan iklan dan bateri yang mungkin sesuai dengan projek ini.

Oleh itu, sebaik sahaja saya menjumpai tali leher lebar di kedai pajak gadai di bandar saya dan menjumpai kotak yang mungkin sesuai dengan perkakasan, saya memutuskan untuk mencarinya dan mencuba dan membinanya.

Petunjuk ini menunjukkan kepada anda bagaimana saya membuatnya.

Ia menggunakan arduino pro mini, adafruit powerboost 500 charger, emmerich icr 18650nh-sp dan 5 LED putih. Kod tersebut menjadikan kecerahan perubahan LED secara rawak. (40 saat pertama video adalah kelajuan 3x)

Langkah 1: Skematik dan Perkakasan

Skematik dan Perkakasan
Skematik dan Perkakasan
Skematik dan Perkakasan
Skematik dan Perkakasan

Saya menggunakan perkakasan berikut:

- PCB dengan LED putih ais dan perintang 220 Ohm.

- Arduino pro mini (saya menggunakan tiruan)

- Pengecas Adafruit Powerboost 500

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

- Serat optik (dalam pelbagai saiz)

Langkah 2: Membuat PCB Hosting sebagai LED

Menjadikan PCB Hosting sebagai LED
Menjadikan PCB Hosting sebagai LED
Menjadikan PCB Hosting sebagai LED
Menjadikan PCB Hosting sebagai LED
Menjadikan PCB Hosting sebagai LED
Menjadikan PCB Hosting sebagai LED

Saya memotong sehelai PCB untuk memegang LED dan menggunakan pin LED untuk menyoldernya ke PCB utama.

Menyambungkan semua katod (-) ke GND, dan menggunakan separuh pin untuk menyoldernya terpaku pada PCB utama.

Menyambungkan semua anod (+) ke perintang, dan dengan kabel ke arduino.

Setiap LED mesti disambungkan ke salah satu port PWM berikut: 3, 5, 6, 9, 10, 11

Konyol saya membuat banyak kesilapan dengan projek ini dan lupa untuk memeriksa port PWM yang betul, jadi saya terpaksa menyelesaikannya kemudian. Diuji dengan Tinggi / Rendah jadi saya hanya memperhatikannya kemudian.

Saya bermula dengan 7 LED, tetapi hanya ada 6 port PWM dan salah satu LED yang saya tetapkan mati. Saya hanya menyimpan 5 LED yang berfungsi dan tidak menggunakan yang ke-6.

Langkah 3: Membuat Kotak

Membuat Kotak
Membuat Kotak
Membuat Kotak
Membuat Kotak
Membuat Kotak
Membuat Kotak
Membuat Kotak
Membuat Kotak

Saya menggunakan Bosch GRO (seperti Dremel) dan gerudi untuk memotong bentuk bateri, butang, port mikro-usb, tajuk dari Arduino dan serat optik. (gunakan topeng habuk!)

Lekatkan bateri ke casing dengan 2 jalur.

Skru yang digunakan untuk memasang papan Adafruit dan PCB.

Geseran dari membuka dan menutup beberapa wayar rosak. Saya terpaksa menyelesaikannya dan menggunakan gam untuk mengelakkannya berulang.

Langkah 4: Menyiapkan Ikatan

Menyiapkan Ikatan
Menyiapkan Ikatan
Menyiapkan Ikatan
Menyiapkan Ikatan
Menyiapkan Ikatan
Menyiapkan Ikatan

Menanggalkan jahitan dari bahagian bawah tali leher agar sesuai dengan kepingan getah.

Untuk menyembunyikan perkakasan dan masih dapat mengaksesnya jika diperlukan saya memutuskan untuk menggunakan ritsleting.

Saya tidak pandai menggunakan mesin jahit, jadi ibu manis saya meletakkan zip di bahagian belakang tali leher.

Setelah selesai, saya melekatkan kepingan getah di tali leher. Saya takut menggunakan gam yang terlalu banyak yang akan menjenuhkan kain dan kelihatan dari depan, jadi saya cuba meratakannya dan tidak menggunakan terlalu banyak. Secara keseluruhan kelihatan baik, tetapi di beberapa tempat saya melihat terlalu banyak atau terlalu sedikit lem, kerana ia keluar melalui kain atau tidak menempel kain dengan baik. Nasib baik ini hanya dapat dilihat dari jarak dekat dalam cahaya terang.

Kotak dan tali leher sudah selesai. Masa untuk melekatkan fiberoptik!

Langkah 5: Melekatkan Fiberoptics

Melekatkan Fiberoptics
Melekatkan Fiberoptics
Melekatkan Fiberoptics
Melekatkan Fiberoptics
Melekatkan Fiberoptics
Melekatkan Fiberoptics
Melekatkan Fiberoptics
Melekatkan Fiberoptics

Mainan ini mempunyai satu wayar fiber optik bundle besar yang mudah terputus. Pada mulanya saya mencuba melekatkannya satu demi satu, tetapi tidak lama kemudian, lebih baik membuat bundel kecil dan menempelkannya pada LED sekaligus. Itu akan menjadikannya lebih mudah untuk tetap stabil sehingga lem kering. Mengacaukan LED pertama yang memikirkan ini.

Pastikan menggunakan gam telus! Yang saya gunakan kering sangat perlahan dan gam cepat kering saya mencuba LED pertama menjadi putih, menjadikan beberapa gentian dari LED pertama kurang terang.

Saya menempelkan kepingan getah hitam kecil untuk mengelakkan cahaya bocor di atas dan untuk memisahkan LED.

Salah satu helai menghalang sarungnya ditutup jadi saya menambah gelang getah untuk menutup penutupnya.

Langkah 6: Meletakkan Fiberoptics Melalui Ikatan

Meletakkan Fiberoptics Melalui Ikatan
Meletakkan Fiberoptics Melalui Ikatan
Meletakkan Fiberoptics Melalui Ikatan
Meletakkan Fiberoptics Melalui Ikatan
Meletakkan Fiberoptics Melalui Ikatan
Meletakkan Fiberoptics Melalui Ikatan

Bermula di bahagian bawah, saya mencubit lubang dengan jarum dan memasukkan seratnya satu demi satu. Setiap gentian LED tersebar secara rawak di tali leher.

Saya menempelkan jalur hitam di bahagian belakang yang seharusnya sampai ke bahagian tali leher yang lebih kecil untuk menjaga berat kotak, tetapi setelah saya memasang semua wayar dan merasakan ketegangan wayar, saya memutuskan untuk menempel semuanya sesuai dengan idea yang lebih baik dan memotongnya.

Oleh kerana wayar gentian optik dari mainan itu sangat pendek, sangat sukar dipasang di tali leher. Saya terhad dalam meletakkan kotak dan mempunyai masa yang sukar untuk membuat semuanya rata seperti yang saya mahukan.

Langkah 7: Melekatkan Fiberoptics ke Dasi

Lekatkan Fiberoptics ke Dasi
Lekatkan Fiberoptics ke Dasi
Lekatkan Fiberoptics ke Dasi
Lekatkan Fiberoptics ke Dasi
Lekatkan Fiberoptics ke Dasi
Lekatkan Fiberoptics ke Dasi
Lekatkan Fiberoptics ke Dasi
Lekatkan Fiberoptics ke Dasi

Saya menempelkan semua wayar gentian optik ke kepingan getah untuk mengelakkan wayar keluar dari kepingan getah dan menjadikan tali leher rata.

Untuk memastikan saya tidak melekatkan penjepit pada tali leher ketika saya menekannya, saya meletakkan beberapa kertas di antara keduanya. Ia tidak kelihatan hebat tetapi berfungsi dengan baik. Dan anda tidak melihatnya ketika ditutup.

Setelah lem kering saya memotong wayar di bahagian depan dan memotong sedikit dari kepingan getah tepat di atas dawai tertinggi, kerana tali lehernya terlalu panjang.

Foto dengan baju putih dibuat sebelum saya memotong getah yang terakhir.

Langkah 8: Kod

Di bawah kod yang saya tulis untuk tali leher.

Semua LED mempunyai satu set "rata-rata" (bukan rata-rata tetapi kecerahan tengah).

Sebaik sahaja mencapai purata itu, ia akan memutuskan dengan peluang 3/4 untuk mencapai kecerahan yang lebih rendah. Ia juga secara rawak menetapkan kecerahan minimum baru, kecerahan maksimum, masa menunggu untuk kecerahan minimum dan maksimum dan kelajuannya meningkat atau menurun setiap pusingan (1-255) dari 5 nilai yang telah ditetapkan. Kemudian ia akan melakukan satu kitaran sehingga mencapai rata-rata lagi. Hanya 2 LED boleh berada dalam kitaran tinggi pada masa yang sama.

Setiap keadaan diwakili oleh nilai bilangan bulat (1-7) yang menentukan apakah itu akan rata-rata, rendah, rata-rata, menunggu rendah, mengemas kini, dll.

Untuk maklumat mengenai memuat naik kod ke arduino, sila lihat di www.arduino.cc

/ * Starry Sky Tie * * Ini adalah skrip untuk memudar 5 LED secara rawak dari purata hingga lebih rendah * atau kecerahan yang lebih tinggi dengan tetapan rawak yang lebih rendah, lebih tinggi dan masa * untuk kelihatan seperti langit berbintang ketika digunakan dengan fiberoptik. * Dalam kes ini, ini akan dilaksanakan secara bertali. * * Peluang naik / turun = 1/4 naik, 3/4 turun, dengan maksimum 2 * naik ke maksimum pada masa yang sama. * * Rata-rata tetap sama. * Pilihan minimum, maksimum dan masa berubah secara rawak * dari 5 pilihan setiap kali LED mencapai rata-rata lagi. * * Dibuat oleh Billy Jaspers, Mei 2019. *

/ Menyatakan pin

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

// Pemboleh ubah masa

masa semasa yang tidak ditandatangani; waktu menunggu lama yang tidak ditandatangani [5]; longRound terakhir yang tidak ditandatangani;

// Pemboleh ubah LED

int brightMin [5] = {10, 10, 10, 10, 10}; // Kecerahan minimum dalam terangAvg [5] = {200, 200, 200, 200, 200}; // Kecerahan purata dalam terangMax [5] = {240, 240, 240, 240, 240}; // Kecerahan maksimum dalam masaWaitLow [5] = {1000, 1000, 1000, 1000, 1000}; // Waktu menunggu int timeWaitAvg [5] = {5000, 5000, 5000, 5000, 5000}; // Waktu menunggu int timeWaitMax [5] = {4000, 3000, 3000, 3000, 3000}; // Masa menunggu antara kenaikan [5] = {2, 5, 4, 5, 2}; // Kenaikan kecerahan dalam arus semasaBright [5] = {200, 230, 210, 210, 235}; // Kecerahan semasa

// Kemungkinan Pemboleh ubah LED

int brightMinPos [5] = {5, 20, 40, 5, 20}; // Kemungkinan kecerahan minimum int brightMaxPos [5] = {240, 245, 230, 225, 245}; // Kemungkinan kecerahan maksimum dalam waktuLowPos [5] = {3000, 5000, 4000, 2000, 1000}; // Masa menunggu pada kemungkinan kecerahan rendah dalam waktuHighPos [5] = {3000, 1000, 500, 2000, 4000}; // Masa menunggu pada kemungkinan kecerahan tinggi dalam waktuAvgPos [5] = {3000, 5000, 4000, 7000, 8000}; // Masa menunggu pada kemungkinan kecerahan purata int incrementPos [5] = {2, 4, 5, 3, 1}; // kenaikan kemungkinan kecerahan

// Pemboleh ubah

permulaan bool = benar; // Adakah tetapan permulaan perlu dimulakan?

// Pemboleh ubah arah

/ * 0 = Menunggu pada Purata 1 = naik Rata-Rata ke Rendah 2 = menunggu Rendah 3 = pergi Rendah ke Purata 4 = naik Rata-Rata ke Maks 5 = menunggu di Maks 6 = naik Tinggi ke Purata 7 = Mengemas kini pemboleh ubah * / status intLED [5] = {0, 0, 0, 0, 0}; jumlah intHighLED = 0; int refreshRate = 50; status boolWaiting [5] = {false, false, false, false, false}; // Adakah Led menunggu?

// Pemboleh ubah rawak

nombor rawak panjang; // Lama menyimpan nombor rawak panjang rawak panjangNumberTwo; // Lama menyimpan nombor rawak kedua

// kaunter

int i = 0; // Kaunter untuk gelung utama

batal persediaan () {

Serial.begin (115200); // Mulakan siri randomSeed (analogRead (A0)); // Tetapkan biji rawak

// Menyatakan output

pinMode (LED01, OUTPUT); pinMode (LED02, OUTPUT); pinMode (LED03, OUTPUT); pinMode (LED04, OUTPUT); pinMode (LED05, OUTPUT); }

// Tulis data ke LED

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

// Gelung utama

gelung void () {if (startup) {// Tetapan permulaan lastRound = millis (); // Tetapkan lastRound untuk boot writeToLED (); // Tulis data mula ke permulaan LED = false; // Matikan startup} currentTime = millis (); // Tetapkan masa semasa

if (currentTime - lastRound> = refreshRate) {

untuk (i = 0; i <5; i ++) {if (statusLED == 7) {// -7- Mengemas kini Led randomNumber = random (5); brightMin = brightMinPos [randomNumber]; // Tetapkan nilai rawak untuk kecerahan minimum randomNumber = rawak (5); brightMax = brightMaxPos [randomNumber]; // Tetapkan nilai rawak untuk kecerahan maksimum randomNumber = rawak (5); timeWaitLow = timeLowPos [randomNumber]; // Tetapkan nilai rawak untuk masa menunggu rendah randomNumber = rawak (5); timeWaitMax = timeHighPos [randomNumber]; // Tetapkan nilai rawak untuk masa menunggu tinggi randomNumber = rawak (5); timeWaitAvg = timeAvgPos [randomNumber]; // Tetapkan nilai rawak untuk purata masa menunggu randomNumber = rawak (5); kenaikan = incrementPos [randomNumber]; // Tetapkan nilai rawak untuk nilai kenaikan randomNumber = rawak (2); // Tetapkan nilai rawak untuk arah randomNumberTwo = rawak (2); // Tetapkan nilai rawak untuk arah jika (randomNumber == 1 && randomNumberTwo == 0 && jumlahHighLED = brightAvg ) {statusLED = 0; // Jika pada titik terendah: Pergi ke Menunggu Purata} yang lain {currentBright = currentBright + kenaikan ; // Lain: Kecerahan Lebih Tinggi}} lain jika (statusLED == 2) {// -2- Menunggu Rendah jika (! StatusWaiting ) {// Sekiranya tidak menunggu: waitingTime = millis (); // Tetapkan status masa menungguWaiting = true; // Mula menunggu} lain jika (statusWaiting && currentTime-waitingTime > = timeWaitLow ) {// Sekiranya menunggu DAN timeWaitAvg telah berlalu: statusWaiting = false; // Berhenti menunggu statusLED = 3; // Tetapkan statusLed to Menunggu kemas kini}} lain jika (statusLED == 1) {// -1- Menuju Purata ke Rendah jika (currentBright <= brightMin ) {statusLED = 2; // Jika pada titik terendah: Pergi ke Waiting Low} yang lain {currentBright = currentBright -rrrement ; // Lain: Kecerahan yang Lebih Rendah}} lain jika (statusLED == 6) {// -6- Menuju Maksimum ke Purata jika (currentBright = timeWaitMax ) {// Sekiranya menunggu DAN masaWaitAvg telah berlalu: statusWaiting = false; // Berhenti menunggu statusLED = 6; // Tetapkan statusLed to Menunggu kemas kini}} lain jika (statusLED == 4) {// -4- Menuju Purata ke Maks jika (currentBright > = brightMax ) {statusLED = 5; // Sekiranya pada titik terendah: Pergi ke Menunggu Tinggi} yang lain {currentBright = currentBright + kenaikan ; // Lain: Kecerahan Lebih Tinggi}} lain jika (statusLED == 0) {// -0- Menunggu Rata-rata jika (! StatusWaiting ) {// Sekiranya tidak menunggu: waitingTime = millis (); // Tetapkan status masa menungguWaiting = true; // Mula menunggu} lain jika (statusWaiting && currentTime-waitingTime > = timeWaitAvg ) {// Sekiranya menunggu DAN masaWaitAvg telah berlalu: statusWaiting = false; // Berhenti menunggu statusLED = 7; // Tetapkan statusLed to Menunggu kemas kini}}} i = 0; lastRound = milis (); // Tetapkan apabila pusingan terakhir selesai. tulisToLED (); // Tulis semua data ke LED}}

Langkah 9: Produk Akhir

Image
Image
Produk akhir
Produk akhir
Produk akhir
Produk akhir

Saya rasa ia berjaya. Tali lehernya tidak terlalu tebal, kaku, panjang atau berat dan kesan bintang kelihatan luar biasa.

Disyorkan: