Daftar Isi:
- Langkah 1: Papan Busa, Paket Baterai, dan Sakelar Nyala/Mati
- Langkah 2: Mikrokontroler dan Sirkuit
- Langkah 3: Lampu serat optik
- Langkah 4: Pemrograman
- Langkah 5: Produk Akhir
Video: Lampu Serat Optik dalam Cetak Kanvas: 5 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
Proyek ini menambahkan putaran unik pada cetakan kanvas standar. Saya memprogram dalam 4 mode pencahayaan yang berbeda tetapi Anda dapat dengan mudah menambahkan lebih banyak. Mode berubah setiap kali Anda mematikan dan menghidupkannya kembali alih-alih memiliki tombol terpisah untuk meminimalkan kerusakan pada bingkai. Baterai harus bertahan selama 50+ jam penggunaan - Saya tidak begitu yakin, tetapi saya membuat proyek serupa untuk seorang teman dan menggunakan 5x lebih banyak lampu dan telah bertahan 20+ jam dengan satu set baterai.
Bahan:
- Cetakan kanvas dengan ruang yang bisa diterapkan - Saya memesan milik saya dari https://www.easycanvasprints.com karena harganya bagus dan buka kembali. Bingkai 1,5" yang lebih tebal sempurna dan memberi saya banyak ruang untuk menekuk untaian serat optik. Selain itu, Anda menginginkan gambar yang memberi Anda ruang kerja 3" kali 8" untuk paket baterai dan mikrokontroler serta strip LED
- Lampu strip LED - Saya menggunakan strip LED WS2812 yang dapat dialamatkan. Jangan terintimidasi, mereka sangat mudah digunakan dengan perpustakaan FastLED atau Neopixel! Anda juga dapat menggunakan strip LED standar apa pun, Anda hanya tidak akan dapat mengontrol setiap bagian lampu satu per satu tanpa lebih banyak kabel.
- Mikrokontroler - Saya menggunakan Arduino Uno tetapi Anda dapat menggunakan apa saja untuk proyek ini.
- Paket baterai - Saya memesan yang ini dari eBay (dari China) dan diberi judul "6 x 1.5V AA 2A CELL Battery Battery Holder"
- Untaian serat optik - sekali lagi, dipesan dari China di eBay - "Kabel Serat Optik Plastik PMMA End Grow Led Light DIY Decor" atau "Kabel Serat Optik PMMA End Glow untuk Kit Lampu Langit-Langit Bintang". Saya menggunakan ukuran 1mm dan 1.5mm, saya sebenarnya merekomendasikan menggunakan yang lebih kecil dari itu.
- Sakelar Nyala/Mati - "Saklar Toggle Miniatur On/On 2 Posisi SPDT"
- Klip organisasi kawat - Ini membantu menjaga untaian serat optik tetap bagus dan rapi.
- Papan busa, kawat konektor inti padat, tabung panas menyusut
Peralatan
- Dremel - digunakan untuk memasang sakelar hidup/mati di bingkai foto. Ini mungkin bisa dicapai dengan latihan dan sedikit yang sangat besar, tetapi saya tidak merekomendasikan itu.
- Besi solder - memasang kabel ke strip LED
- Pistol lem panas - secara harfiah setiap langkah proyek ini
- Jarum jahit besar - untuk melubangi kanvas dan papan busa untuk lampu
Langkah 1: Papan Busa, Paket Baterai, dan Sakelar Nyala/Mati
Sebelum hal lain, Anda perlu menempelkan sepotong papan busa ke bagian belakang cetakan kanvas. Ini memberi kita permukaan padat yang bagus untuk menempelkan segala sesuatu yang lain dan membantu menahan untaian serat optik di tempatnya. Cukup gunakan pisau eksak atau pemotong kotak untuk memotong papan busa dengan ukuran yang tepat dan lem panas di banyak tempat. Saya sarankan menggunakan papan busa hitam sehingga tidak memungkinkan banyak cahaya untuk menembus.
Saya menggunakan mata bor dremel yang terlihat seperti mata bor biasa tetapi sebenarnya bagus untuk menghilangkan material. Ini adalah salah satu bagian yang harus disertakan dengan dremel apa pun. Gunakan sekaleng udara bertekanan untuk menghilangkan serbuk gergaji dari dremel.
Lem panas semuanya di tempatnya. Pastikan baterai terpasang dengan sangat baik karena memerlukan sedikit tenaga untuk memasukkan/mengeluarkan baterai dan Anda tidak ingin dudukan baterai pergi ke mana pun.
Langkah 2: Mikrokontroler dan Sirkuit
Saya meletakkan sakelar daya sebelum Arduino UNO sehingga ketika Anda mengaktifkan sakelar maka tidak ada yang menggunakan daya dari paket baterai. Ini akan membantu baterai bertahan selama mungkin saat proyek tidak dihidupkan. Papan Arduino terkenal buruk dalam manajemen daya - mereka menggunakan banyak arus jika dihidupkan bahkan jika mereka tidak aktif melakukan apa pun.
Colokkan ujung positif paket baterai ke VIN (input tegangan) mikrokontroler sehingga menggunakan pengatur tegangan bawaan pengontrol untuk menurunkan tegangan ke 5V yang dibutuhkan. Jika kami menyalakan lebih banyak lampu, kami mungkin perlu menggunakan pengatur tegangan kami sendiri untuknya, tetapi UNO harus dapat menangani 5 LED.
Saya menggunakan resistor antara output data dan strip LED untuk menghaluskan sinyal - tanpa resistor Anda mungkin mendapatkan piksel yang berkedip secara acak. Ukuran resistor tidak terlalu penting, apa pun antara 50Ω dan 400Ω harus berfungsi.
Langkah 3: Lampu serat optik
Setelah beberapa percobaan dan kesalahan akhirnya saya menemukan cara yang baik untuk mendapatkan untaian serat optik melalui kanvas.
- Gunakan jarum jahit terbesar yang Anda miliki untuk membuat lubang melalui bagian depan kanvas dan papan busa. Saya sarankan menyodok setiap lubang yang Anda inginkan di awal sehingga Anda dapat membaliknya dan melihat di mana Anda dapat/tidak dapat meletakkan klip organisasi kabel Anda
- Ambil sepasang tang berhidung jarum dan ambil untaian serat optik kurang dari satu sentimeter dari ujungnya
- Tusuk untaian serat optik melalui lubang yang Anda buat dengan jarum
- Rutekan untaian melalui berbagai klip plastik ke tempat yang sedikit lebih panjang dari yang diperlukan - kami akan memotongnya nanti
- Dengan pistol lem panas Anda pada pengaturan suhu RENDAH (jika memiliki opsi itu) letakkan setetes lem panas pada untaian serat optik di mana lem itu menembus papan busa. Sebagai alternatif, Anda bisa menggunakan barang norak biru itu. Lem panas memang sedikit merusak untaian tetapi tampaknya tidak terlalu mengacaukan kualitas optik
- Potong untaian sedikit menjauh dari kanvas menggunakan pemotong kawat.
Untuk mempercepat prosesnya, Anda bisa menyodok banyak serat secara berurutan sebelum melakukan lem panas. Mereka umumnya harus tetap di tempatnya sendiri.
Berhati-hatilah untuk tidak mematahkan atau meremas untaian serat optik di atas meja - mereka akan putus dan jika membuat untaian terlalu pendek maka Anda akan sedih dan harus mengulanginya. Gunakan baterai sebagai penyeimbang sehingga Anda dapat memiliki bingkai foto kurang dari setengah di atas meja.
Karena saya menggunakan papan busa putih alih-alih hitam, ada banyak cahaya yang bersinar saat LED menyala. Sebagai perbaikan, saya menempelkan beberapa aluminium foil di antara lampu dan kanvas.
Gunakan tabung heat shrink untuk menyatukan setiap bundel untaian serat optik.
- Potong untaian untuk bundel dengan panjang yang kira-kira sama
- Letakkan bagian melalui tabung panas menyusut
- Gunakan senapan panas atau besi solder untuk mengecilkannya. Jika Anda menggunakan besi solder, biarkan sisi besi sedikit menyentuh pipa dan itu akan menyusut. Seharusnya tidak melelehkan tabung karena dirancang untuk sedikit panas.
Akhirnya saya menggunakan lem panas untuk menempelkan ujung bundel ke setiap lampu LED. Saya menggunakan banyak lem panas sehingga serat benar-benar mendapat cahaya dari setiap dioda merah/hijau/biru dalam cahaya - ketika serat benar-benar dekat dengan cahaya warna "putih" (yang sebenarnya merah dan hijau dan biru) maka beberapa serat hanya akan berwarna merah dan beberapa akan berwarna hijau, bukannya semuanya menjadi putih. Ini dapat ditingkatkan dengan menggunakan selembar kertas atau sesuatu yang lain untuk menyebarkannya, tetapi lem panas bekerja cukup baik untuk saya.
Langkah 4: Pemrograman
Dalam pemrograman ini saya menggunakan threelibraries
FastLED - perpustakaan hebat untuk mengontrol strip LED WS2812 (dan banyak strip LED beralamat lainnya) -
Arduino Low Power - Saya tidak tahu berapa banyak daya yang sebenarnya dihemat, tetapi sangat mudah diterapkan dan akan membantu menghemat sedikit daya pada fungsi yang hanya menyala putih dan kemudian menunda selamanya.
EEPROM - Digunakan untuk membaca/menyimpan mode proyek saat ini. Ini memungkinkan proyek untuk meningkatkan mode warna setiap kali Anda mematikan dan menghidupkannya kembali, yang menghilangkan kebutuhan tombol terpisah untuk mengubah mode. Pustaka EEPROM diinstal setiap kali Anda menginstal Arduino IDE.
Saya juga menggunakan sketsa untuk mengedipkan lampu yang dipasang orang lain. Ini secara acak menyalakan piksel dari warna dasar ke warna puncak dan kemudian kembali ke bawah. https://Gist.github.com/kriegsman/88954aae22b03a66… (menggunakan perpustakaan FastLED juga)
Saya juga menggunakan plugin vMicro untuk Visual Studio - ini adalah versi Arduino IDE yang ditingkatkan. Ini memiliki banyak fungsi pelengkapan otomatis yang membantu dan menyoroti masalah dalam kode Anda tanpa harus mengompilasinya. Biayanya $15 tetapi sangat berharga jika Anda akan membuat lebih dari satu proyek Arduino, dan itu akan memaksa Anda untuk belajar tentang Visual Studio yang merupakan program yang sangat kuat.
(Saya juga melampirkan file kode.ino karena Instructable hosting dari Github Gist menghancurkan banyak ruang kosong dalam file)
Kode Arduino menjalankan 4 mode warna pada Arduino UNO untuk beberapa lampu strip LED WS2812B menggunakan perpustakaan FastLED
#termasuk |
#termasuk |
#termasuk |
//Pengaturan LED Cepat |
#defineNUM_LEDS4 |
#definePIN3//Pin data untuk strip LED |
LED CRGB[NUM_LEDS]; |
//Pengaturan berkelap-kelip |
#defineBASE_COLORCRGB(2, 2, 2) //Warna latar belakang dasar |
#definePEAK_COLORCRGB(255, 255, 255) //Warna puncak untuk berkelap-kelip hingga |
// Jumlah untuk menambah warna setiap loop saat menjadi lebih cerah: |
#defineDELTA_COLOR_UPCRGB(4, 4, 4) |
// Jumlah untuk mengurangi warna dengan setiap loop saat semakin redup: |
#defineDELTA_COLOR_DOWNCRGB(4, 4, 4) |
// Peluang setiap piksel mulai cerah. |
// 1 atau 2 = beberapa piksel cerah sekaligus. |
// 10 = banyak piksel yang cerah pada satu waktu. |
#defineCHANCE_OF_TWINKLE2 |
enum { SteadyDim, GettingBrighter, GettingDimmerAgain }; |
uint8_t PixelState[NUM_LEDS]; |
byte runMode; |
byte globalBright = 150; |
byte globalDelay = 20; // Kecepatan tunda untuk kedipan |
alamat byte = 35; //Alamat untuk menyimpan mode run |
pengaturan kosong() |
{ |
FastLED.addLeds(leds, NUM_LEDS); |
FastLED.setCorrection(TypicalLEDStrip); |
//FastLED.setMaxPowerInVoltsAndMilliamps(5, maxMilliamps); |
FastLED.setBrightness(globalBright); |
//Dapatkan mode untuk dijalankan |
runMode = EEPROM.read(alamat); |
//Meningkatkan runmode sebesar 1 |
EEPROM.write(alamat, runMode + 1); |
} |
batal () |
{ |
beralih (runMode) |
{ |
//putih pekat |
case1: fill_solid(leds, NUM_LEDS, CRGB::White); |
FastLED.show(); |
Tunda Selamanya(); |
merusak; |
// Berkedip agak lambat |
case2: FastLED.setBrightness(255); |
globalDelay = 10; |
TwinkleMapPixels(); |
merusak; |
//Berkedip dengan cepat |
case3: FastLED.setBrightness(150); |
globalDelay = 2; |
TwinkleMapPixels(); |
merusak; |
//Pelangi |
kasus4: |
JalankanPelangi(); |
merusak; |
//Indeks di luar jangkauan, setel ulang ke 2 dan kemudian jalankan mode 1. |
// Ketika arduino restart itu akan menjalankan mode 2, tetapi untuk sekarang menjalankan mode 1 |
bawaan: |
EEPROM.write(alamat, 2); |
runMode = 1; |
merusak; |
} |
} |
voidRunRainbow() |
{ |
byte *c; |
uint16_t i, j; |
sementara (benar) |
{ |
for (j = 0; j < 256; j++) { // 1 siklus semua warna pada roda |
untuk (i = 0; i < NUM_LEDS; i++) { |
c = Roda(((i * 256 / NUM_LEDS) + j) & 255); |
setPixel(i, *c, *(c + 1), *(c + 2)); |
} |
FastLED.show(); |
penundaan (penundaan global); |
} |
} |
} |
byte * Roda(byte WheelPos) { |
byte statis c[3]; |
if (WheelPos < 85) { |
c[0] = WheelPos * 3; |
c[1] = 255 - WheelPos * 3; |
c[2] = 0; |
} |
elseif (WheelPos < 170) { |
WheelPos -= 85; |
c[0] = 255 - WheelPos * 3; |
c[1] = 0; |
c[2] = WheelPos * 3; |
} |
lain { |
WheelPos -= 170; |
c[0] = 0; |
c[1] = WheelPos * 3; |
c[2] = 255 - WheelPos * 3; |
} |
kembali c; |
} |
voidTwinkleMapPixels() |
{ |
InitPixelStates(); |
sementara (benar) |
{ |
for (uint16_t i = 0; i < NUM_LEDS; i++) { |
if (PixelState == SteadyDim) { |
// piksel ini saat ini: SteadyDim |
// jadi kami secara acak mempertimbangkan untuk membuatnya menjadi lebih cerah |
jika (random8() < CHANCE_OF_TWINKLE) { |
PixelState = Menjadi Lebih Terang; |
} |
} |
elseif (PixelState == Menjadi Lebih Terang) { |
// piksel ini saat ini: GettingBrighter |
// jadi kalau sudah di peak color, ubah jadi redup lagi |
if (led >= PEAK_COLOR) { |
PixelState = MendapatkanDimmerAgain; |
} |
lain { |
// jika tidak, tetap cerahkan: |
leds += DELTA_COLOR_UP; |
} |
} |
else { // redup lagi |
// piksel ini saat ini: GettingDimmerAgain |
// jadi jika kembali ke warna dasar, alihkan ke redup stabil |
if (led <= BASE_COLOR) { |
leds = BASE_COLOR; // reset ke warna dasar yang tepat, jika kita overshot |
PixelState = SteadyDim; |
} |
lain { |
// jika tidak, terus redupkannya: |
led -= DELTA_COLOR_DOWN; |
} |
} |
} |
FastLED.show(); |
FastLED.delay (penundaan global); |
} |
} |
voidInitPixelStates() |
{ |
memset(PixelState, ukuran(PixelState), SteadyDim); // inisialisasi semua piksel ke SteadyDim. |
fill_solid(led, NUM_LEDS, BASE_COLOR); |
} |
voidDelaySelamanya() |
{ |
sementara (benar) |
{ |
penundaan(100); |
LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF); |
} |
} |
voidshowStrip() { |
FastLED.show(); |
} |
voidsetPixel(int Pixel, byte merah, byte hijau, byte biru) { |
// LED Cepat |
leds[Pixel].r = merah; |
leds[Pixel].g = hijau; |
leds[Pixel].b = biru; |
} |
lihat rawFiberOptic_ClemsonPic.ino dihosting dengan ❤ oleh GitHub
Langkah 5: Produk Akhir
Ta-da! Saya harap Instructable ini menginspirasi orang lain untuk membuat proyek serupa mereka sendiri. Itu benar-benar tidak sulit untuk dilakukan dan saya terkejut bahwa tidak ada yang melakukannya dan menulis instruksi menyeluruh tentang itu.
Direkomendasikan:
Pemasangan Plafon Bintang Serat Optik Reaktif Musik: 11 Langkah (dengan Gambar)
Musik Reaktif Fiber Optic Star Ceiling Instalasi: Ingin sepotong galaksi di rumah Anda? Temukan bagaimana itu dibuat di bawah ini! Selama bertahun-tahun itu adalah proyek impian saya dan akhirnya selesai. Butuh beberapa waktu untuk menyelesaikannya, tetapi hasil akhirnya sangat memuaskan sehingga saya yakin itu sepadan. Sedikit
Cek Cetak Tanpa Software Khusus atau Printer Dengan MS Excel (Cetak Bank Cetak): 6 Langkah
Periksa Cetak Tanpa Perangkat Lunak Khusus atau Printer Dengan MS Excel (Cetak Cek Bank): Ini adalah buku kerja excel sederhana, yang akan sangat berguna bagi bisnis apa pun untuk menulis banyak cek bank. hanya yang Anda butuhkan adalah komputer dengan MS Excel dan printer biasa. Ya, sekarang Anda dapat
Jam Lilin Serat Optik Pertama di Dunia: 14 Langkah (dengan Gambar)
Jam Lilin Serat Optik Pertama di Dunia: Saya memutuskan untuk memberikan hadiah kepada istri saya dan ingin mendapatkan ide orisinal. Saya menyukai ide patung bergerak dan setelah banyak pertimbangan muncul dengan konsep jam mekanis yang berkelap-kelip dan berkedip menggunakan kristal, lilin, dan
Kipas Laser Serat Optik: 9 Langkah (dengan Gambar)
Kipas Laser Serat Optik: Apa yang keren? Serat optik. Apa yang lebih keren? Laser. Apa yang mengagumkan? Penggemar api. Instruksi ini sebagian terinspirasi oleh kipas api dan sebagian oleh balerina bionik. Setiap kipas terbuat dari lima batang serat optik, diterangi oleh sensor kemiringan menjadi merah atau kuning
Lampu Dekorasi Serat Optik: 11 Langkah
Lampu Dekorasi Serat Optik: hii membuat lampu hias ini dari beberapa serat optik yang saya beli di ebay beberapa waktu lalu untuk kemungkinan proyek masa depan jadi saya akhirnya berhasil melakukan sesuatu darinya