Isi kandungan:

Kubah LED Geodesik Interaktif: 15 Langkah (dengan Gambar)
Kubah LED Geodesik Interaktif: 15 Langkah (dengan Gambar)

Video: Kubah LED Geodesik Interaktif: 15 Langkah (dengan Gambar)

Video: Kubah LED Geodesik Interaktif: 15 Langkah (dengan Gambar)
Video: Fakta Unik Tentang Mumi #shorts #mumi #mesirkuno 2024, Julai
Anonim
Image
Image
Kubah LED Geodesik Intera-t.webp
Kubah LED Geodesik Intera-t.webp
Kubah LED Geodesik Intera-t.webp
Kubah LED Geodesik Intera-t.webp
Kubah LED Geodesik Intera-t.webp
Kubah LED Geodesik Intera-t.webp

Saya membina kubah geodesi yang terdiri daripada 120 segitiga dengan LED dan sensor pada setiap segitiga. Setiap LED dapat ditujukan secara individu dan setiap sensor disetel khusus untuk segitiga tunggal. Kubah diprogramkan dengan Arduino untuk menyala dan menghasilkan isyarat MIDI bergantung pada segitiga yang anda letakkan tangan anda.

Saya merancang kubah menjadi paparan yang menyeronokkan yang menarik minat orang terhadap cahaya, elektronik, dan suara. Kerana kubah terbahagi kepada lima bahagian, saya merancang kubah itu untuk mempunyai lima keluaran MIDI yang berasingan yang masing-masing boleh mempunyai bunyi yang berbeza. Ini menjadikan kubah sebagai alat muzik raksasa, sesuai untuk bermain muzik dengan banyak orang secara serentak. Selain bermain muzik, saya juga memprogramkan kubah untuk pertunjukan cahaya dan memainkan persembahan Simon dan Pong. Struktur akhir berdiameter lebih kurang satu meter dan tingginya 70cm, dan dibina terutamanya dengan bahagian bercetak kayu, akrilik, dan 3D.

Terdapat beberapa Instruksional yang hebat pada meja dan kubus LED yang memberi inspirasi kepada saya untuk memulakan projek ini. Walau bagaimanapun, saya ingin mencuba menyusun LED dalam geometri yang berbeza. Saya tidak dapat memikirkan struktur yang lebih baik untuk projek daripada kubah geodesi, yang juga didokumentasikan dengan baik pada Instructables. Jadi projek ini adalah remix / mashup jadual LED dan kubah geodesi. Berikut adalah pautan ke meja LED dan Instructables kubah geodesi yang saya periksa pada awal projek.

Meja dan kiub LED:

www.instructables.com/id/RGB-LED-Pixel-Touc…

www.instructables.com/id/Touch-LED-Table-Re…

www.instructables.com/id/Led-Cube-8x8x8/

www.instructables.com/id/500-LED-Pixel-RGB-…

Kubah geodesi:

www.instructables.com/id/Folding-Geodesic-D…

www.instructables.com/id/Geodesic-dome-kit/

Langkah 1: Senarai Bekalan

Senarai Bekalan
Senarai Bekalan
Senarai Bekalan
Senarai Bekalan
Senarai Bekalan
Senarai Bekalan

Bahan:

1. Kayu untuk tali kubah dan dasar kubah (jumlahnya bergantung pada jenis dan ukuran kubah)

2. Jalur LED yang boleh ditujukan (Jalur Piksel LED Berwarna 16.4ft / 5m 160leds Ws2801 Dc5v)

3. Arduino Uno (Atmega328 - dipasang)

4. Papan prototaip (Penta Angel Double-Side Prototype PCB Universal (7x9cm))

5. Akrilik untuk LED menyebar (Cast Acrylic Sheet, Clear, 12 "x 12" x 0.118 "Size)

6. Bekalan kuasa (Pemacu Bekalan Kuasa Suis Aiposen 110 / 220V ke DC12V 30A 360W)

7. Penukar Buck untuk Arduino (RioRand LM2596 DC-DC Buck Converter 1.23V-30V)

8. Penukar Buck untuk LED dan sensor (DROK Mini Electric Buck Voltage Converter 15A)

9. 120 sensor IR (Modul Sensor Penghindaran Halangan Inframerah)

10. Lima multiplexer 16 saluran (Analog / Digital MUX Breakout - CD74HC4067)

11. Enam 8 saluran multiplexer (Multiplexer Breakout - 8 Channel (74HC4051))

12. Lima multiplexer dua saluran (MAX4544CPA +)

13. Wire wrap wire (PCB Solder 0.25mm Tin Plated Copper Cord Dia Wire-wrapping Wire 305M 30AWG Merah)

14. Kawat penyambung (Inti Pepejal, 22 AWG)

15. Header Pin (Gikfun 1 x 40 Pin 2.54mm Single Row Breakaway Male Pin Header)

16. Lima bicu MIDI (MIDI Jack mesra papan roti (5-pin DIN))

17. Sepuluh perintang 220ohm untuk bicu MIDI

18. Spacer stand-off untuk memasang elektronik ke kubah (Stand-off Spacer Hex M3 Male x M3 Female)

19. Penyesuai benang untuk menyambungkan stand-off ke kayu (Sisipan E-Z Lok Threaded, Brass, Knife Thread)

20. Epoxy atau Gorilla Superglue

21. Pita elektrik

22. Pateri

Alat:

1. Stesen Pematerian

2. Latih tubi

3. Gergaji bulat

4. Sander orbital

5. Jig saw

6. Miter gergaji

7. Protraktor

8. pencetak 3D

9. Pemotong wayar

10. Alat pembalut wayar

11. Pemotong laser untuk memotong plat LED (pilihan)

12. Shopbot CNC untuk asas kubah (pilihan)

Langkah 2: Merancang Kubah Geodesi

Merancang Kubah Geodesi
Merancang Kubah Geodesi
Merancang Kubah Geodesi
Merancang Kubah Geodesi

Seperti yang saya nyatakan di intro, terdapat beberapa sumber dalam talian untuk membina kubah geodesi anda sendiri. Laman web ini menyediakan kalkulator kubah yang menentukan panjang setiap sisi (iaitu strut) dan bilangan penyambung yang diperlukan untuk apa sahaja jenis kubah yang ingin anda bina. Kerumitan kubah geodesi (iaitu ketumpatan segitiga) ditentukan oleh kelasnya (1V, 2V, 3V, dan sebagainya), dengan kerumitan yang lebih tinggi menjadi penghampiran permukaan sfera yang sempurna. Untuk membina kubah anda sendiri, anda mesti memilih diameter dan kelas kubah terlebih dahulu.

Saya menggunakan laman web bernama Domerama untuk membantu saya merancang kubah 4V yang dipotong menjadi 5/12 sfera dengan radius 40cm. Untuk kubah jenis ini, terdapat enam penyangga panjang:

30 X "A" - 8.9cm

30 X "B" - 10.4cm

50 X "C" - 12.4cm

40 X "D" - 12.5cm

20 X "E" - 13.0cm

20 X "F" - 13.2cm

Itu adalah jumlah 190 tali yang menambah bahan sehingga 2223cm (73 kaki). Saya menggunakan kayu pinus 1x3 (3/4 "× 2-1 / 2") untuk penyangga di kubah ini. Untuk menyambungkan penyokong, saya merancang dan menyambung pencetak 3D menggunakan Autocad. Fail STL tersedia untuk dimuat turun pada akhir langkah ini. Bilangan penyambung untuk kubah 4V 5/12 adalah:

Penyambung 20 X 4

Penyambung 6 X 5

Penyambung 45 X 6

Pada langkah seterusnya, saya menerangkan bagaimana kubah ini dibina dengan tali kayu dan penyambung bercetak 3D yang saya reka.

Langkah 3: Membina Kubah Dengan Strut dan Penyambung

Membina Kubah Dengan Strut dan Penyambung
Membina Kubah Dengan Strut dan Penyambung
Membina Kubah Dengan Strut dan Penyambung
Membina Kubah Dengan Strut dan Penyambung
Membina Kubah Dengan Strut dan Penyambung
Membina Kubah Dengan Strut dan Penyambung
Membina Kubah Dengan Strut dan Penyambung
Membina Kubah Dengan Strut dan Penyambung

Dengan menggunakan pengiraan dari Domerama untuk kubah 4V 5/12, saya memotong tali menggunakan gergaji bulat. 190 tali dilabel dan diletakkan di dalam kotak setelah dipotong. 71 penyambung (20 penyambung empat, 6 penyambung lima, dan 45 penyambung enam) dicetak 3D menggunakan Makerbot. Tali kayu dimasukkan ke dalam penyambung mengikut rajah yang dibuat oleh Domerama. Saya memulakan pembinaan dari bahagian atas dan bergerak secara radial ke luar.

Setelah semua penyokong disambungkan, saya melepaskan satu strut pada satu masa dan menambahkan epoksi pada kayu dan penyambungnya. Penyambungnya dirancang untuk mempunyai fleksibiliti bagaimana mereka menghubungkan struktur, jadi penting untuk memeriksa simetri kubah sebelum menambahkan sebarang epoksi.

Langkah 4: Pemotongan Laser dan Pemasangan Plat Bawah

Pemotongan dan Pemasangan Plat Papan Laser
Pemotongan dan Pemasangan Plat Papan Laser
Memotong dan Memasang Pinggan Laser
Memotong dan Memasang Pinggan Laser
Pemotongan dan Pemasangan Plat Papan Laser
Pemotongan dan Pemasangan Plat Papan Laser
Pemotongan dan Pemasangan Plat Papan Laser
Pemotongan dan Pemasangan Plat Papan Laser

Sekarang kerangka kubah itu dibina, sudah tiba masanya untuk memotong pelat dasar segitiga. Plat asas ini dilekatkan pada bahagian bawah penyangga, dan digunakan untuk memasang LED ke kubah. Pada mulanya saya memotong papan dasar dari papan lapis setebal 5mm (3/16 ) dengan mengukur lima segitiga berbeza yang terdapat di kubah: AAB (30 segitiga), BCC (25 segitiga), DDE (20 segitiga), CDF (40 segitiga)), dan EEE (5 segitiga). Dimensi setiap sisi dan bentuk segitiga ditentukan menggunakan kalkulator kubah (Domerama) dan beberapa geometri. Setelah memotong plat asas ujian dengan jigsaw, saya melukis reka bentuk segitiga menggunakan Coral Draw, dan memotong plat asas yang tinggal dengan pemotong laser (jauh lebih pantas!). Sekiranya anda tidak mempunyai akses ke pemotong laser, anda boleh menarik plat asas ke papan lapis menggunakan pembaris dan protraktor dan memotong semuanya dengan jigsaw. Setelah plat dasar dipotong, kubah dibalik dan plat dilekatkan pada kubah menggunakan gam kayu.

Langkah 5: Gambaran Keseluruhan Elektronik

Gambaran Keseluruhan Elektronik
Gambaran Keseluruhan Elektronik

Yang ditunjukkan dalam gambar di atas adalah skema elektronik untuk kubah. Arduino Uno digunakan untuk menulis dan membaca isyarat untuk kubah. Untuk menerangi kubah, jalur LED RGB dijalankan di atas kubah sehingga LED diposisikan pada setiap satu dari 120 segitiga. Untuk maklumat mengenai bagaimana jalur LED berfungsi, lihat arahan ini. Setiap LED dapat ditangani secara berasingan menggunakan Arduino, yang menghasilkan data bersiri dan isyarat jam untuk jalur (lihat pin A0 dan A1 dalam skema). Dengan jalur dan dua isyarat ini sahaja, anda boleh mempunyai kubah cahaya yang hebat. Terdapat cara lain untuk menulis isyarat untuk banyak LED dari Arduino, seperti Charlieplexing dan shift register.

Untuk berinteraksi dengan kubah, saya memasang sensor IR di atas setiap LED. Sensor ini digunakan untuk mengesan kapan tangan seseorang dekat dengan segitiga di kubah. Kerana setiap segitiga di kubah memiliki sensor IR sendiri dan ada 120 segitiga, anda harus melakukan semacam multiplexing sebelum Arduino. Saya memutuskan untuk menggunakan lima multiplexer 24 saluran (MUX) untuk 120 sensor di kubah. Berikut adalah arahan mengenai multiplexing, jika anda tidak dikenali. MUX 24 saluran memerlukan lima isyarat kawalan. Saya memilih pin 8-12 di Arduino, jadi saya boleh melakukan manipulasi port (lihat Langkah 10 untuk maklumat lebih lanjut). Keluaran papan MUX dibaca menggunakan pin 3-7.

Saya juga memasukkan lima output MIDI pada kubah sehingga dapat menghasilkan bunyi (Langkah 11). Dengan kata lain, lima orang dapat memainkan kubah secara serentak dengan setiap output memainkan bunyi yang berbeza. Hanya ada satu pin TX di Arduino, jadi lima isyarat MIDI memerlukan demultiplexing. Kerana output MIDI dihasilkan pada masa yang berbeza daripada bacaan sensor IR, saya menggunakan isyarat kawalan yang sama.

Setelah semua input sensor IR dibaca ke Arduino, kubah dapat menyala dan memainkan suara namun anda memprogram Arduino. Saya mempunyai beberapa contoh dalam Langkah 14 ini.

Langkah 6: Memasang LED Ke Dome

Memasang LED Ke Kubah
Memasang LED Ke Kubah
Memasang LED Ke Kubah
Memasang LED Ke Kubah
Memasang LED Ke Kubah
Memasang LED Ke Kubah

Oleh kerana kubahnya sangat besar, jalur LED perlu dipotong untuk meletakkan satu LED pada setiap segitiga. Setiap LED terpaku pada segitiga menggunakan gam super. Di kedua-dua sisi LED, sebuah lubang digerudi melalui plat bawah agar kabel dapat dijalankan melalui kubah. Saya kemudian memateri wayar penyambungan pada setiap kenalan pada LED (5V, arde, jam, isyarat) dan menyalurkan wayar melalui plat bawah. Kawat ini dipotong sehingga cukup panjang untuk mencapai LED seterusnya di kubah. Kawat ditarik ke LED seterusnya, dan prosesnya diteruskan. Saya menyambungkan LED dalam konfigurasi yang akan mengurangkan jumlah wayar yang diperlukan sementara masih masuk akal untuk menangani LED menggunakan Arduino kemudian. Kubah yang lebih kecil akan menghilangkan keperluan untuk memotong jalur dan menjimatkan banyak masa pematerian. Pilihan lain adalah menggunakan LED RGB yang berasingan dengan register shift.

Komunikasi bersiri ke jalur dicapai menggunakan dua pin (pin data dan jam) dari Arduino. Dengan kata lain, data untuk menerangi kubah diteruskan dari satu LED ke LED yang lain ketika meninggalkan pin data. Berikut adalah contoh kod yang diubah suai dari forum Arduino ini:

// Buat keseluruhan kubah menambah dan mengurangkan intensiti warna tunggal

#define numLeds 120 // Bilangan LED // PIN OUTPUT // int clockPin = A1; // tentukan pin jam int dataPin = A0; // tentukan pin data // VARIABLES // int red [numLeds]; // Memulakan array untuk jalur LED int hijau [numLeds]; // Permulaan array untuk jalur LED int biru [numLeds]; // Memulakan susunan untuk jalur LED // skala dua KONSTANA = {0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1}; // pecahan intensiti penyediaan kekosongan LED () {pinMode (clockPin, OUTPUT); pinMode (dataPin, OUTPUT); memset (merah, 0, numLeds); memset (hijau, 0, numLeds); memset (biru, 0, numLeds); } pembaharuan tidak sah (int redA [numLeds], int greenA [numLeds], int blueA [numLeds]) {untuk (int i = 0; i <numLeds; i ++) {shiftOut (dataPin, clockPin, MSBFIRST, redA ); shiftOut (dataPin, clockPin, MSBFIRST, greenA ); shiftOut (dataPin, clockPin, MSBFIRST, blueA ); }} gelung void () {untuk (int p = 0; p <20; p ++) // gelung untuk meningkatkan intensiti cahaya kubah {skala dua = skalaA [p]; kelewatan (20); untuk (int i = 0; i <numLeds; i ++) // kitarkan semua LEDS {red = 255 * skala; hijau = skala 80 *; biru = 0; } kemas kini (merah, hijau, biru); // kemas kini jalur diketuai}}

Langkah 7: Reka Bentuk dan Pelaksanaan Sensor Mount

Reka Bentuk dan Pelaksanaan Sensor Mount
Reka Bentuk dan Pelaksanaan Sensor Mount
Reka Bentuk dan Pelaksanaan Sensor Mount
Reka Bentuk dan Pelaksanaan Sensor Mount
Reka Bentuk dan Pelaksanaan Sensor Mount
Reka Bentuk dan Pelaksanaan Sensor Mount

Saya memutuskan untuk menggunakan sensor IR untuk kubah. Sensor ini mempunyai LED IR dan penerima. Apabila objek berada di depan sensor, beberapa sinaran IR dari LED IR dipantulkan ke arah penerima. Saya memulakan projek ini dengan membuat sensor IR saya sendiri, yang berdasarkan arahan Richardouvina. Semua pematerian berlaku terlalu lama, jadi saya membeli 120 sensor IR dari eBay yang masing-masing menghasilkan output digital. Ambang sensor ditetapkan dengan potensiometer di papan sehingga outputnya tinggi hanya apabila tangan berada di dekat segitiga itu.

Setiap segitiga terdiri daripada papan lapis LED papan lapis, selembar akrilik resapan yang dipasang kira-kira 2.5cm di atas plat LED, dan sensor IR. Sensor untuk setiap segitiga dipasang ke selembar papan lapis tipis berbentuk pentagon atau segi enam bergantung pada posisi di kubah (lihat gambar di atas). Saya menggerudi lubang ke pangkalan sensor IR untuk memasang sensor IR, dan kemudian menghubungkan tanah dan pin 5V dengan wayar-wrap wire dan alat pembungkus wayar (wayar merah dan hitam). Setelah menyambungkan tanah dan 5V, saya membungkus wayar-bungkus wayar panjang pada setiap keluaran (kuning), tanah, dan 5V untuk berjalan melalui kubah.

Lekapan sensor heksagon atau pentagon IR kemudiannya mengalami epoksi ke kubah, tepat di atas penyambung bercetak 3D, sehingga wayar dapat mengalir melalui kubah. Dengan mempunyai sensor di atas penyambung, saya juga dapat mengakses dan menyesuaikan potensiometer pada sensor IR yang mengawal kepekaan sensor. Pada langkah seterusnya, saya akan menerangkan bagaimana output sensor IR disambungkan ke multiplexer dan dibaca ke Arduino.

Langkah 8: Output Sensor Multiplexing

Output Sensor Multipleksing
Output Sensor Multipleksing
Output Sensor Multipleksing
Output Sensor Multipleksing
Output Sensor Multipleksing
Output Sensor Multipleksing

Kerana Arduino Uno hanya mempunyai 14 pin I / O digital dan 6 pin input analog dan terdapat 120 isyarat sensor yang mesti dibaca, kubah memerlukan multiplexer untuk membaca dalam semua isyarat. Saya memilih untuk membina lima multiplexer 24 saluran, yang masing-masing membaca 24 sensor IR (lihat gambaran keseluruhan elektronik). MUX 24-saluran terdiri daripada papan pemecah MUX 8-saluran, papan pelarian MUX 16-saluran, dan MUX 2-saluran. Header pin disolder ke setiap papan pelarian sehingga dapat disambungkan ke papan prototaip. Dengan menggunakan alat pembungkus dawai, saya kemudian menyambungkan tanah, 5V, dan pin isyarat kawalan papan pelarian MUX.

MUX 24 saluran memerlukan lima isyarat kawalan, yang saya pilih untuk menyambung ke pin 8-12 di Arduino. Semua lima MUX 24 saluran menerima isyarat kawalan yang sama dari Arduino jadi saya menyambungkan wayar dari pin Arduino ke MUX 24 saluran. Output digital sensor IR disambungkan ke pin input MUX 24 saluran sehingga dapat dibaca secara bersiri ke Arduino. Oleh kerana terdapat lima pin berasingan untuk dibaca dalam semua 120 output sensor, sangat berguna untuk membayangkan kubah itu terbahagi kepada lima bahagian berasingan yang terdiri daripada 24 segitiga (periksa warna kubah dalam gambar).

Dengan menggunakan manipulasi port Arduino, anda dapat dengan cepat meningkatkan isyarat kawalan yang dihantar oleh pin 8-12 ke multiplexer. Saya telah melampirkan beberapa kod contoh untuk mengendalikan multiplexer di sini:

int numChannel = 24;

// OUTPUTS // int s0 = 8; // kawalan MUX 0 - PORTbD int s1 = 9; // kawalan MUX 1 - PORTb int s2 = 10; // kawalan MUX 2 - PORTb int s3 = 11; // kawalan MUX 3 - PORTb int s4 = 12; // kawalan MUX 4 - PORTb // INPUTS // int m0 = 3; // Input MUX 0 int m1 = 4; // Input MUX 1 int m2 = 5; // Input MUX 2 int m3 = 6; // Input MUX 3 int m4 = 7; // MUX input 4 // VARIABLES // int arr0r; // bacaan digital dari MUX0 int arr1r; // bacaan digital dari MUX1 int arr2r; // bacaan digital dari MUX2 int arr3r; // bacaan digital dari MUX3 int arr4r; // bacaan digital dari persediaan tidak sah MUX4 () {// letakkan kod persediaan anda di sini, untuk dijalankan sekali: DDRB = B11111111; // menetapkan pin Arduino 8 hingga 13 sebagai input pinMode (s0, OUTPUT); pinMode (s1, OUTPUT); pinMode (s2, OUTPUT); pinMode (s3, OUTPUT); pinMode (s4, OUTPUT); pinMode (m0, INPUT); pinMode (m1, INPUT); pinMode (m2, INPUT); pinMode (m3, INPUT); pinMode (m4, INPUT); } gelung void () {// letakkan kod utama anda di sini, untuk dijalankan berulang kali: PORTB = B00000000; // Pin kawalan SET untuk mux rendah untuk (int i = 0; i <numChannel; i ++) {// Output bacaan digital MUX0 - MUX4 untuk sensor IR i // Jika sensor IR adalah LO, segitiga disentuh oleh pemain. arr0r = digitalRead (m0); // bacaan dari Mux 0, sensor IR i arr1r = digitalRead (m1); // bacaan dari Mux 1, sensor IR i arr2r = digitalRead (m2); // bacaan dari Mux 2, sensor IR i arr3r = digitalRead (m3); // bacaan dari Mux 3, sensor IR i arr4r = digitalRead (m4); // bacaan dari Mux 4, sensor IR i // LAKUKAN DENGAN INPUT MUX ATAU KEDAI DI ARRAY DI SINI // PORTB ++; // isyarat kawalan kenaikan untuk MUX}}

Langkah 9: Menyebar Cahaya Dengan Akrilik

Cahaya Menyebar Dengan Akrilik
Cahaya Menyebar Dengan Akrilik
Cahaya Menyebar Dengan Akrilik
Cahaya Menyebar Dengan Akrilik
Cahaya Menyebar Dengan Akrilik
Cahaya Menyebar Dengan Akrilik

Untuk menyebarkan cahaya dari LED, saya mengoleskan akrilik lutsinar dengan sander orbit bulat. Sander digerakkan di kedua sisi akrilik dalam gerakan angka-8. Saya mendapati kaedah ini jauh lebih baik daripada cat semburan "kaca buram".

Setelah mengamplas dan membersihkan akrilik, saya menggunakan pemotong laser untuk memotong segitiga agar sesuai dengan LED. Adalah mungkin untuk memotong akrilik menggunakan alat pemotong akrilik atau bahkan jigsaw jika akrilik tidak retak. Akrilik dipegang di atas LED dengan segi empat tepat papan lapis setebal 5mm yang juga dipotong dengan pemotong laser. Papan kecil ini dilekatkan pada tali di kubah, dan segitiga akrilik dilekatkan pada papan.

Langkah 10: Membuat Muzik Dengan Kubah Menggunakan MIDI

Membuat Muzik Dengan Kubah Menggunakan MIDI
Membuat Muzik Dengan Kubah Menggunakan MIDI
Membuat Muzik Dengan Kubah Menggunakan MIDI
Membuat Muzik Dengan Kubah Menggunakan MIDI
Membuat Muzik Dengan Kubah Menggunakan MIDI
Membuat Muzik Dengan Kubah Menggunakan MIDI

Saya mahukan kubah mampu menghasilkan bunyi, jadi saya menyediakan lima saluran MIDI, satu untuk setiap subkumpulan kubah. Mula-mula anda perlu membeli lima bicu MIDI dan menyambungkannya seperti yang ditunjukkan dalam skema (lihat tutorial ini dari sokongan Arduino untuk maklumat lebih lanjut).

Kerana hanya ada satu pin siri pemancar pada Arduino Uno (pin 2 dilabelkan sebagai pin TX), anda perlu menyahgandakan isyarat yang dihantar ke lima bicu MIDI. Saya menggunakan isyarat kawalan yang sama (pin 8-12), kerana isyarat MIDI dihantar pada waktu yang berbeza daripada ketika sensor IR sedang dibaca ke Arduino. Isyarat kawalan ini dihantar ke demultiplexer 8 saluran sehingga anda mengawal bicu MIDI mana yang menerima isyarat MIDI yang dibuat oleh Arduino. Isyarat MIDI dihasilkan oleh Arduino dengan perpustakaan isyarat MIDI yang hebat yang dibuat oleh Francois Best. Berikut adalah beberapa contoh kod untuk menghasilkan beberapa output MIDI ke bicu MIDI yang berbeza dengan Arduino Uno:

#masuk // sertakan perpustakaan MIDI

#define numChannel 24 // Number of IR per Triangle #define numBahagian 5 // bilangan bahagian dalam kubah, bilangan MUX 24 saluran, bilangan bicu MIDI // OUTPUTS // int s0 = 8; // kawalan MUX 0 - PORTbD int s1 = 9; // kawalan MUX 1 - PORTb int s2 = 10; // kawalan MUX 2 - PORTb int s3 = 11; // kawalan MUX 3 - PORTb int s4 = 12; // kawalan MUX 4 - PORTb // INPUTS // int m0 = 3; // Input MUX 0 int m1 = 4; // Input MUX 1 int m2 = 5; // Input MUX 2 int m3 = 6; // Input MUX 3 int m4 = 7; // MUX input 4 // VARIABLES // int arr0r; // bacaan digital dari MUX0 int arr1r; // bacaan digital dari MUX1 int arr2r; // bacaan digital dari MUX2 int arr3r; // bacaan digital dari MUX3 int arr4r; // bacaan digital dari MUX4 int midArr [numSections]; // Simpan sama ada nota telah ditekan oleh salah satu pemain int note2play [numSections]; // Simpan nota untuk dimainkan jika sensor disentuh int nota [numChannel] = {60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83}; int pauseMidi = 4000; // masa jeda antara isyarat midi MIDI_CREATE_DEFAULT_INSTANCE (); batal persediaan () {// letakkan kod persediaan anda di sini, untuk dijalankan sekali: DDRB = B11111111; // menetapkan pin Arduino 8 hingga 13 sebagai input MIDI.begin (MIDI_CHANNEL_OFF); pinMode (s0, OUTPUT); pinMode (s1, OUTPUT); pinMode (s2, OUTPUT); pinMode (s3, OUTPUT); pinMode (s4, OUTPUT); pinMode (m0, INPUT); pinMode (m1, INPUT); pinMode (m2, INPUT); pinMode (m3, INPUT); pinMode (m4, INPUT); } gelung void () {// letakkan kod utama anda di sini, untuk dijalankan berulang kali: PORTB = B00000000; // Pin kawalan SET untuk mux rendah untuk (int i = 0; i <numChannel; i ++) {// Output bacaan digital MUX0 - MUX4 untuk sensor IR i // Jika sensor IR adalah LO, segitiga disentuh oleh pemain. arr0r = digitalRead (m0); // bacaan dari Mux 0, sensor IR i arr1r = digitalRead (m1); // bacaan dari Mux 1, sensor IR i arr2r = digitalRead (m2); // bacaan dari Mux 2, sensor IR i arr3r = digitalRead (m3); // bacaan dari Mux 3, sensor IR i arr4r = digitalRead (m4); // bacaan dari Mux 4, sensor IR i jika (arr0r == 0) // Sensor pada bahagian 0 disekat {midArr [0] = 1; // Pemain 0 telah memukul nota, tetapkan HI sehingga terdapat output MIDI untuk pemain 0 note2play [0] = nota ; // Catatan untuk dimainkan untuk Pemain 0} if (arr1r == 0) // Sensor pada bahagian 1 telah disekat {midArr [1] = 1; // Pemain 0 telah memukul nota, tetapkan HI sehingga terdapat output MIDI untuk pemain 0 note2play [1] = nota ; // Catatan untuk dimainkan untuk Pemain 0} if (arr2r == 0) // Sensor pada bahagian 2 telah disekat {midArr [2] = 1; // Pemain 0 telah memukul nota, tetapkan HI sehingga terdapat output MIDI untuk pemain 0 note2play [2] = nota ; // Catatan untuk dimainkan untuk Pemain 0} if (arr3r == 0) // Sensor pada bahagian 3 disekat {midArr [3] = 1; // Pemain 0 telah memukul nota, tetapkan HI sehingga terdapat output MIDI untuk pemain 0 note2play [3] = nota ; // Catatan untuk dimainkan untuk Pemain 0} if (arr4r == 0) // Sensor pada bahagian 4 telah disekat {midArr [4] = 1; // Pemain 0 telah memukul nota, tetapkan HI sehingga terdapat output MIDI untuk pemain 0 note2play [4] = nota ; // Catatan untuk dimainkan untuk Pemain 0} PORTB ++; // isyarat kawalan kenaikan untuk MUX} updateMIDI (); } batal kemas kiniMIDI () {PORTB = B00000000; // pin kawalan SET untuk mux rendah jika (midArr [0] == 1) // Pemain 0 output MIDI {MIDI.sendNoteOn (note2play [0], 127, 1); kelewatanMikrodetik (jedaMidi); MIDI.sendNoteOff (note2play [0], 127, 1); kelewatanMikrodetik (jedaMidi); } PORTB ++; // kenaikan MUX if (midArr [1] == 1) // Pemain 1 MIDI output {MIDI.sendNoteOn (note2play [1], 127, 1); kelewatanMikrodetik (jedaMidi); MIDI.sendNoteOff (note2play [1], 127, 1); kelewatanMikrodetik (jedaMidi); } PORTB ++; // kenaikan MUX if (midArr [2] == 1) // Pemain 2 MIDI output {MIDI.sendNoteOn (note2play [2], 127, 1); kelewatanMikrodetik (jedaMidi); MIDI.sendNoteOff (note2play [2], 127, 1); kelewatanMikrodetik (jedaMidi); } PORTB ++; // kenaikan MUX jika (midArr [3] == 1) // Pemain 3 MIDI output {MIDI.sendNoteOn (note2play [3], 127, 1); kelewatanMikrodetik (jedaMidi); MIDI.sendNoteOff (note2play [3], 127, 1); kelewatanMikrodetik (jedaMidi); } PORTB ++; // kenaikan MUX if (midArr [4] == 1) // Pemain 4 MIDI output {MIDI.sendNoteOn (note2play [4], 127, 1); kelewatanMikrodetik (jedaMidi); MIDI.sendNoteOff (note2play [4], 127, 1); kelewatanMikrodetik (jedaMidi); } midArr [0] = 0; midArr [1] = 0; midArr [2] = 0; midArr [3] = 0; midArr [4] = 0; }

Langkah 11: Menghidupkan Kubah

Menggerakkan Kubah
Menggerakkan Kubah
Menggerakkan Kubah
Menggerakkan Kubah
Menggerakkan Kubah
Menggerakkan Kubah
Menggerakkan Kubah
Menggerakkan Kubah

Terdapat beberapa komponen yang perlu dihidupkan di kubah. Oleh itu, anda perlu mengira amp yang diambil dari setiap komponen untuk menentukan bekalan kuasa yang perlu anda beli.

Jalur LED: Saya menggunakan kira-kira 3.75 meter jalur LED Ws2801, yang menggunakan 6.4W / meter. Ini sepadan dengan 24W (3.75 * 6.4). Untuk menukarnya ke amp, gunakan Power = current * volt (P = iV), di mana V adalah voltan jalur LED, dalam hal ini 5V. Oleh itu, arus yang diambil dari LED ialah 4.8A (24W / 5V = 4.8A).

Sensor IR: Setiap sensor IR menarik sekitar 25mA, berjumlah 3A untuk 120 sensor.

The Arduino: 100mA, 9V

Multiplexer: Terdapat lima multiplexer 24 saluran yang masing-masing terdiri daripada multiplexer 16 saluran dan multiplexer 8 saluran. 8 saluran dan 16 saluran MUX masing-masing menggunakan kira-kira 100mA. Oleh itu, jumlah penggunaan kuasa semua MUX adalah 1A.

Dengan menambahkan komponen ini, jumlah penggunaan tenaga dijangka sekitar 9A. Jalur LED, sensor IR, dan multiplexer mempunyai voltan input pada 5V, dan Arduino mempunyai voltan input 9V. Oleh itu, saya memilih bekalan kuasa 12V 15A, penukar buck 15A untuk menukar 12V ke 5V, dan penukar buck 3A untuk menukar 12V hingga 9V untuk Arduino.

Langkah 12: Pangkalan Kubah Bulat

Pangkalan Kubah Bulat
Pangkalan Kubah Bulat
Pangkalan Kubah Bulat
Pangkalan Kubah Bulat
Pangkalan Kubah Bulat
Pangkalan Kubah Bulat

Kubah itu terletak di atas sekeping kayu bulat dengan pentagon yang dipotong di tengah untuk memudahkan akses ke elektronik. Untuk membuat asas bulat ini, kepingan kayu lapis 4x6 'dipotong menggunakan penghala CNC kayu. Jigsaw juga dapat digunakan untuk langkah ini. Setelah pangkalnya dipotong, kubah itu terpasang di atasnya dengan menggunakan blok kayu 2x3”kecil.

Di atas pangkalan, saya memasangkan bekalan kuasa dengan epoksi dan penukar MUX dan Buck dengan jarak jauh PCB. Spacer dipasang pada papan lapis menggunakan penyesuai benang E-Z Lok.

Langkah 13: Pentagon Dome Base

Pangkalan Kubah Pentagon
Pangkalan Kubah Pentagon
Pangkalan Kubah Pentagon
Pangkalan Kubah Pentagon
Pangkalan Kubah Pentagon
Pangkalan Kubah Pentagon

Sebagai tambahan kepada pangkalan bulat, saya juga membina dasar pentagon untuk kubah dengan tingkap kaca di bahagian bawah. Pangkalan dan tingkap yang kelihatan ini juga dibuat dari potongan kayu lapis dengan penghala CNC kayu. Bahagian sisi pentagon terbuat dari papan kayu dengan satu sisi mempunyai lubang di dalamnya agar penyambung dapat dilalui. Dengan menggunakan pendakap logam dan sambungan blok 2x3, papan kayu dilekatkan pada dasar pentagon. Suis kuasa, penyambung MIDI, dan penyambung USB dipasang pada panel depan yang saya buat menggunakan pemotong laser. Keseluruhan dasar pentagon diskrukan ke dasar bulat yang dijelaskan dalam Langkah 12.

Saya memasang tingkap ke bahagian bawah kubah supaya sesiapa sahaja dapat melihat ke dalam kubah untuk melihat elektronik. Kaca yang kelihatan terbuat dari potongan akrilik dengan pemotong laser dan dilekatkan pada papan lapis bulat.

Langkah 14: Memprogram Kubah

Ada kemungkinan yang tidak berkesudahan untuk memprogram kubah. Setiap kitaran kod mengambil isyarat dari sensor IR, yang menunjukkan segitiga yang telah disentuh oleh seseorang. Dengan maklumat ini, anda boleh mewarnai kubah dengan warna RGB dan / atau menghasilkan isyarat MIDI. Berikut adalah beberapa contoh program yang saya tulis untuk kubah:

Warnakan kubah: Setiap segitiga mengitar empat warna semasa disentuh. Apabila warna berubah, arpeggio dimainkan. Dengan program ini, anda dapat mewarnai kubah dengan ribuan cara.

Muzik kubah: Kubah berwarna dengan lima warna, setiap bahagian sesuai dengan output MIDI yang berbeza. Dalam program ini, anda boleh memilih nota mana yang dimainkan setiap segitiga. Saya memilih untuk memulakan di tengah C di bahagian atas kubah, dan meningkatkan nada ketika segitiga bergerak lebih dekat ke pangkalan. Kerana terdapat lima output, program ini sangat sesuai untuk mempunyai banyak orang memainkan kubah secara serentak. Dengan menggunakan instrumen MIDI atau perisian MIDI, isyarat MIDI ini dapat dibuat untuk terdengar seperti instrumen apa pun.

Simon: Saya menulis sebutan Simon, permainan lampu memori klasik. Urutan lampu secara rawak diterangi satu demi satu di seluruh kubah. Pada setiap giliran, pemain mesti menyalin urutan. Sekiranya pemain memadankan urutan dengan betul, cahaya tambahan akan ditambahkan pada urutan. Skor tinggi disimpan di salah satu bahagian kubah. Permainan ini juga sangat menyeronokkan untuk dimainkan dengan pelbagai orang.

Pong: Mengapa tidak bermain pong di atas kubah? Sebiji bola merambat melintasi kubah hingga memukul dayung. Apabila berlaku, isyarat MIDI dihasilkan, menunjukkan dayung memukul bola. Pemain lain kemudian harus mengarahkan dayung di sepanjang kubah sehingga memukul bola ke belakang.

Langkah 15: Foto Kubah Selesai

Foto Kubah Selesai
Foto Kubah Selesai
Foto Kubah Selesai
Foto Kubah Selesai
Foto Kubah Selesai
Foto Kubah Selesai
Foto Kubah Selesai
Foto Kubah Selesai
Peraduan Arduino 2016
Peraduan Arduino 2016
Peraduan Arduino 2016
Peraduan Arduino 2016

Hadiah Utama dalam Peraduan Arduino 2016

Peraduan Remix 2016
Peraduan Remix 2016
Peraduan Remix 2016
Peraduan Remix 2016

Hadiah Kedua dalam Peraduan Remix 2016

Jadikannya Peraduan Glow 2016
Jadikannya Peraduan Glow 2016
Jadikannya Peraduan Glow 2016
Jadikannya Peraduan Glow 2016

Hadiah Kedua dalam Peraduan Make it Glow 2016

Disyorkan: