Isi kandungan:

Lampu Serat Optik dalam Cetakan Kanvas: 5 Langkah
Lampu Serat Optik dalam Cetakan Kanvas: 5 Langkah

Video: Lampu Serat Optik dalam Cetakan Kanvas: 5 Langkah

Video: Lampu Serat Optik dalam Cetakan Kanvas: 5 Langkah
Video: LAMPU CANTIK DARI FIBER OPTIK - FIBER LIGHT 2024, November
Anonim
Image
Image
Lampu Serat Optik dalam Cetakan Kanvas
Lampu Serat Optik dalam Cetakan Kanvas

Projek ini menambah putaran unik pada cetakan kanvas standard. Saya memprogramkan dalam 4 mod pencahayaan yang berbeza tetapi anda boleh menambahkan lebih banyak lagi. Mode diubah setiap kali anda mematikan dan menghidupkannya semula dan bukannya mempunyai butang terpisah untuk mengurangkan kerosakan pada bingkai. Bateri boleh bertahan selama 50+ jam penggunaan - Saya tidak begitu pasti, tetapi saya membuat projek serupa untuk rakan dan ia menggunakan lampu sebanyak 5x lebih banyak dan telah bertahan 20+ jam pada satu set bateri.

Bahan

  • Cetakan kanvas dengan ruang yang dapat digunakan - Saya memesan tambang dari https://www.easycanvasprints.com kerana harganya bagus dan belakang terbuka. Rangka setebal 1.5 "sempurna dan memberi saya banyak ruang untuk membengkokkan helai serat optik. Selain itu, anda mahukan gambar yang memberi anda ruang kerja 3" kali 8 "untuk pek bateri dan mikrokontroler dan jalur LED
  • Lampu jalur LED - Saya menggunakan jalur LED WS2812 yang boleh dialamatkan. Jangan terintimidasi, mereka sangat mudah digunakan dengan perpustakaan FastLED atau Neopixel! Anda juga boleh menggunakan jalur LED standard, anda tidak akan dapat mengawal setiap bahagian cahaya secara individu tanpa lebih banyak pendawaian.
  • Mikrokontroler - Saya menggunakan Arduino Uno tetapi anda boleh menggunakan apa sahaja untuk projek ini.
  • Pek bateri - Saya memesan yang ini dari eBay (dari China) dan bertajuk "Pemegang Bateri Bateri 6 x 1.5V AA 2A CELL"
  • Jalur gentian optik - sekali lagi, dipesan dari China di eBay - "PMMA Plastik Fiber Optic Cable End Grow Led Light DIY Decor" atau "PMMA End Glow Fiber Optic Cable for Star Ceiling Light Kit". Saya menggunakan saiz 1mm dan 1.5mm, saya sebenarnya mengesyorkan menggunakan yang lebih kecil daripada itu.
  • Suis hidup / mati - "Suis Toggle Miniatur Kedudukan / Hidup SPDT 2"
  • Klip organisasi dawai - Ini membantu menjadikan helai serat optik lebih baik dan kemas.
  • Papan busa, wayar penyambung teras pepejal, tiub pengecutan haba

Alat

  • Dremel - digunakan untuk menyarang suis hidup / mati dalam bingkai gambar. Ini mungkin dapat dicapai dengan latihan dan sedikit besar, tetapi saya tidak mengesyorkannya.
  • Pateri solder - memasang wayar ke jalur LED
  • Senapang panas - secara literal setiap langkah projek ini
  • Jarum jahit besar - untuk mencucuk lubang melalui kanvas dan papan busa untuk lampu

Langkah 1: Papan Buih, Pek Bateri dan Suis Hidup / Mati

Foam Board, Battery Pack dan On / off Switch
Foam Board, Battery Pack dan On / off Switch
Foam Board, Battery Pack dan On / off Switch
Foam Board, Battery Pack dan On / off Switch

Sebelum ada perkara lain, anda perlu melekatkan sekeping papan busa di bahagian belakang cetakan kanvas. Ini memberi kita permukaan padat yang bagus untuk melekatkan semua yang lain dan membantu menahan helai serat optik di tempatnya. Cukup gunakan pisau tepat atau pemotong kotak untuk memotong sekeping papan busa dengan ukuran yang betul dan lekatkan panas di banyak tempat. Saya mengesyorkan menggunakan papan busa hitam supaya tidak membiarkan cahaya melimpah.

Saya menggunakan bit dremel yang kelihatan seperti bit gerudi biasa tetapi sebenarnya bagus untuk mengeluarkan bahan. Ini adalah salah satu bit yang harus disertakan dengan dremel apa pun. Gunakan tin udara termampat untuk menghilangkan habuk papan dari dremel.

Lem panas semua di tempatnya. Pastikan pek bateri terpasang dengan baik kerana memerlukan sedikit kekuatan untuk memasukkan / mengeluarkan bateri dan anda tidak mahu pemegang bateri pergi ke mana sahaja.

Langkah 2: Pengawal mikro dan Litar

Mikrokontroler dan Litar
Mikrokontroler dan Litar
Mikrokontroler dan Litar
Mikrokontroler dan Litar
Mikrokontroler dan Litar
Mikrokontroler dan Litar

Saya meletakkan suis kuasa sebelum Arduino UNO sehingga apabila anda menukar suis maka tidak ada yang menggunakan kuasa dari pek bateri. Ini akan membantu bateri bertahan selama mungkin semasa projek tidak dihidupkan. Papan Arduino terkenal buruk dalam pengurusan kuasa - mereka menggunakan banyak arus jika mereka dihidupkan walaupun mereka tidak melakukan apa-apa secara aktif.

Pasangkan hujung positif pek bateri ke dalam VIN (input voltan) mikrokontroler sehingga menggunakan pengatur voltan bawaan pengawal untuk menurunkan voltan ke 5V yang diperlukannya. Sekiranya kita menghidupkan lebih banyak lampu, kita mungkin perlu menggunakan pengatur voltan kita sendiri untuknya, tetapi UNO seharusnya dapat mengendalikan 5 LED.

Saya menggunakan perintang antara output data dan jalur LED untuk melancarkan isyarat - tanpa perintang anda mungkin mendapat piksel berkelip secara rawak. Saiz perintang tidak begitu penting, apa-apa antara 50Ω dan 400Ω mesti berfungsi.

Langkah 3: Lampu gentian optik

Image
Image
Lampu gentian optik
Lampu gentian optik
Lampu gentian optik
Lampu gentian optik

Setelah melalui beberapa percubaan dan kesilapan, saya akhirnya menemui kaedah yang baik untuk mendapatkan helai serat optik melalui kanvas.

  1. Gunakan jarum jahit terbesar yang anda perlukan untuk mencucuk lubang di bahagian depan kanvas dan papan busa. Saya cadangkan untuk mencucuk setiap lubang yang anda mahukan pada awalnya supaya anda dapat membalikkannya dan melihat di mana anda boleh / tidak dapat meletakkan klip organisasi kabel anda
  2. Ambil sepasang tang dengan jarum dan ambil helai serat optik kurang dari satu sentimeter dari hujungnya
  3. Tarik helai serat optik melalui lubang yang anda buat dengan jarum
  4. Arahkan helai melalui pelbagai klip plastik ke tempat yang lebih panjang daripada yang diperlukan - kami akan memotongnya kemudian
  5. Dengan pistol gam panas anda pada tetapan suhu RENDAH (jika ada pilihan itu) letakkan setetes gam panas pada helai serat optik di mana ia menembusi papan busa. Sebagai gantinya, anda boleh menggunakan barang berwarna biru itu. Gam panas sedikit demi sedikit mengubah helai tetapi nampaknya tidak terlalu banyak mengacaukan kualiti optik
  6. Potong helai sedikit dari kanvas menggunakan pemotong wayar.

Untuk mempercepat proses, anda dapat menembusi banyak serat berturut-turut sebelum melakukan gam panas. Secara amnya mereka harus tetap berada di tempat anda sendiri.

Berhati-hatilah untuk tidak memecahkan atau meregangkan helai serat optik di atas meja - ia akan pecah dan jika helai itu terlalu pendek maka anda akan sedih dan perlu mengulanginya. Gunakan pek bateri sebagai pengimbang supaya bingkai gambar anda kurang dari separuh di atas meja.

Kerana saya menggunakan papan busa putih dan bukannya hitam, terdapat banyak cahaya yang menyinari ketika LED menyala. Sebagai pembaikan, saya menempelkan beberapa aluminium foil di antara lampu dan kanvas.

Gunakan tiub pengecutan haba untuk menyatukan setiap ikatan helai serat optik.

  1. Potong helai untuk ikatan dengan panjang yang hampir sama
  2. Masukkan bahagian melalui tiub penyusutan panas
  3. Gunakan senapang panas atau besi pematerian untuk mengecilkannya. Sekiranya anda menggunakan besi pematerian, biarkan bahagian seterika menyentuh tiub dengan ringan dan ia akan mengecil. Ia tidak boleh mencairkan tiub kerana ia dirancang untuk sedikit panas.

Akhirnya saya menggunakan gam panas untuk memasang hujung bundle pada setiap lampu LED. Saya menggunakan banyak gam panas sehingga serat itu benar-benar mendapat cahaya dari setiap diod merah / hijau / biru dalam cahaya - ketika serat benar-benar dekat dengan cahaya warna "putih" (yang sebenarnya merah dan hijau dan biru) maka beberapa serat akan menjadi merah dan sebahagian lagi berwarna hijau, dan bukannya semuanya berwarna putih. Ini dapat diperbaiki dengan menggunakan sehelai kertas atau yang lain untuk menyebarkannya, tetapi lem panas berfungsi dengan cukup baik untuk saya.

Langkah 4: Pengaturcaraan

Dalam pengaturcaraan ini saya menggunakan threelibraries

FastLED - perpustakaan yang hebat untuk mengawal jalur LED WS2812 (dan banyak jalur LED lain yang boleh dialamatkan) -

Arduino Low Power - Saya tidak tahu berapa banyak kuasa yang sebenarnya dijimatkan, tetapi sangat mudah untuk dilaksanakan dan semestinya membantu menjimatkan sedikit kuasa pada fungsi yang hanya lampu putih dan kemudian melambatkan selama-lamanya.

EEPROM - Digunakan untuk membaca / menyimpan mod projek semasa. Ini membolehkan projek meningkatkan mod warna setiap kali anda mematikan dan menghidupkannya semula, yang menghilangkan keperluan butang terpisah untuk mengubah mod. Perpustakaan EEPROM dipasang setiap kali anda memasang Arduino IDE.

Saya juga menggunakan lakaran untuk sekelip mata lampu yang disiapkan orang lain. Secara rawak menyalakan piksel dari warna dasar ke warna puncak dan kemudian kembali ke bawah. https://gist.github.com/kriegsman/88954aae22b03a66… (ia menggunakan perpustakaan FastLED juga)

Saya juga menggunakan plugin vMicro untuk Visual Studio - ini adalah versi tambahan dari Arduino IDE. Ia mempunyai banyak fungsi pelengkap automatik yang berguna dan menyoroti masalah dalam kod anda tanpa perlu menyusunnya. Harganya $ 15 tetapi sangat berbaloi jika anda akan membuat lebih dari satu projek Arduino, dan ini akan memaksa anda untuk belajar mengenai Visual Studio yang merupakan program yang sangat hebat.

(Saya juga melampirkan fail kod.ino kerana hosting yang diarahkan dari Github Gist memusnahkan banyak ruang kosong dalam fail)

Kod Arduino menjalankan 4 mod warna pada Arduino UNO untuk beberapa lampu jalur LED WS2812B menggunakan perpustakaan FastLED

#sertakan
#sertakan
#sertakan
// Penyediaan FastLED
# tentukanNUM_LEDS4
# definePIN3 // Pin data untuk jalur LED
CRGB memimpin [NUM_LEDS];
// Penyediaan Twinkle
#defineBASE_COLORCRGB (2, 2, 2) // Warna latar asas
#definePEAK_COLORCRGB (255, 255, 255) // Warna puncak untuk sekelip mata hingga
// Jumlah kenaikan warna pada setiap gelung kerana semakin terang:
#tentukanDELTA_COLOR_UPCRGB (4, 4, 4)
// Jumlah pengurangan warna oleh setiap gelung kerana semakin redup:
#tentukanDELTA_COLOR_DOWNCRGB (4, 4, 4)
// Peluang setiap piksel mula cerah.
// 1 atau 2 = beberapa piksel yang terang pada satu masa.
// 10 = banyak piksel yang terang pada satu masa.
# tentukanCHANCE_OF_TWINKLE2
enum {SteadyDim, GettingBrighter, GettingDimmerAgain};
uint8_t PixelState [NUM_LEDS];
byte runMode;
bait globalBright = 150;
bait globalDelay = 20; // Kelewatan kelajuan untuk sekelip mata
alamat bait = 35; // Alamat untuk menyimpan mod jalankan
kekosongan ()
{
FastLED.addLeds (led, NUM_LEDS);
FastLED.setCorrection (KhasLEDStrip);
//FastLED.setMaxPowerInVoltsAndMilliamps(5, maxMilliamps);
FastLED.setBrightness (globalBright);
// Dapatkan mod untuk dijalankan
runMode = EEPROM.read (alamat);
// Tingkatkan runmode dengan 1
EEPROM.write (alamat, runMode + 1);
}
kekosongan ()
{
tukar (runMode)
{
// Putih pejal
case1: fill_solid (led, NUM_LEDS, CRGB:: Putih);
FastLED.show ();
DelayForever ();
rehat;
// Twinkle agak perlahan
kes2: FastLED.setBrightness (255);
globalDelay = 10;
TwinkleMapPixels ();
rehat;
// Sekelip mata dengan cepat
kes3: FastLED.setBrightness (150);
globalDelay = 2;
TwinkleMapPixels ();
rehat;
// Pelangi
kes4:
RunRainbow ();
rehat;
// Indeks di luar julat, tetapkan semula ke 2 dan kemudian jalankan mod 1.
// Apabila arduino dimulakan semula, ia akan menjalankan mod 2, tetapi untuk sekarang jalankan mod 1
lalai:
EEPROM.write (alamat, 2);
runMode = 1;
rehat;
}
}
voidRunRainbow ()
{
bait * c;
uint16_t i, j;
sementara (benar)
{
untuk (j = 0; j <256; j ++) {// 1 kitaran 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 ();
kelewatan (globalDelay);
}
}
}
byte * Wheel (byte WheelPos) {
bait statik c [3];
jika (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;
}
pulangan c;
}
voidTwinkleMapPixels ()
{
InitPixelStates ();
sementara (benar)
{
untuk (uint16_t i = 0; i <NUM_LEDS; i ++) {
jika (PixelState == SteadyDim) {
// piksel ini pada masa ini: SteadyDim
// jadi kami secara rawak mempertimbangkan untuk membuatnya menjadi lebih cerah
jika (random8 () <CHANCE_OF_TWINKLE) {
PixelState = Mendapatkan Lebih Cerah;
}
}
elseif (PixelState == Mendapatkan Lebih Cerah) {
// piksel ini kini: GettingBrighter
// jadi jika pada warna puncak, alihkannya menjadi redup lagi
if (leds > = PEAK_COLOR) {
PixelState = MendapatkanDimmerAgain;
}
lain {
// jika tidak, terus cerahkan:
led + = DELTA_COLOR_UP;
}
}
lain {// semakin malap lagi
// piksel ini kini: GettingDimmerAgain
// jadi jika kembali ke warna dasar, alihkan ke redup yang stabil
jika (leds <= BASE_COLOR) {
leds = BASE_COLOR; // tetapkan semula ke warna dasar yang tepat, sekiranya kita melampaui batas
PixelState = SteadyDim;
}
lain {
// jika tidak, terus redupkannya:
led - = DELTA_COLOR_DOWN;
}
}
}
FastLED.show ();
FastLED.delay (globalDelay);
}
}
voidInitPixelStates ()
{
memset (PixelState, sizeof (PixelState), SteadyDim); // mulakan semua piksel ke SteadyDim.
isi_solid (petunjuk, NUM_LEDS, BASE_COLOR);
}
voidDelayForever ()
{
sementara (benar)
{
kelewatan (100);
LowPower.powerDown (SLEEP_FOREVER, ADC_OFF, BOD_OFF);
}
}
voidshowStrip () {
FastLED.show ();
}
voidsetPixel (int Pixel, byte red, byte green, byte blue) {
// Pantas
led [Pixel].r = merah;
led [Pixel].g = hijau;
led [Pixel].b = biru;
}

lihat rawFiberOptic_ClemsonPic.ino yang dihoskan dengan ❤ oleh GitHub

Langkah 5: Produk Akhir

Produk akhir
Produk akhir
Produk akhir
Produk akhir
Produk akhir
Produk akhir

Ta-da! Saya harap Instructable ini memberi inspirasi kepada orang lain untuk membuat projek serupa mereka sendiri. Itu sebenarnya tidak sukar dilakukan dan saya terkejut kerana tidak ada yang melakukannya dan menulis petunjuk yang mendalam mengenai hal itu.

Disyorkan: