Isi kandungan:

Pumpktris - Labu Tetris: 10 Langkah (dengan Gambar)
Pumpktris - Labu Tetris: 10 Langkah (dengan Gambar)

Video: Pumpktris - Labu Tetris: 10 Langkah (dengan Gambar)

Video: Pumpktris - Labu Tetris: 10 Langkah (dengan Gambar)
Video: Инженерная лента новостей 12: Спасение жизней с помощью роботов-пчёл 2024, Julai
Anonim
Pumpktris - Labu Tetris
Pumpktris - Labu Tetris

Siapa yang mahukan wajah dan lilin yang menyeringai apabila anda dapat memiliki labu interaktif pada Halloween ini? Mainkan permainan penyusun blok kegemaran anda pada grid 8x16 yang diukir ke permukaan labu, diterangi oleh LED dan gunakan batang sebagai alat kawalan. Ini adalah projek yang cukup maju dan memerlukan pengalaman pematerian dan pengaturcaraan di persekitaran Arduino. Anda akan bekerja dengan bahan organik dan semua kebiasaannya, jadi pengukuran mungkin perlu disesuaikan agar sesuai dengan labu yang anda gunakan.

Langkah 1: Bahan yang Diperlukan

Bahan yang Diperlukan
Bahan yang Diperlukan
Bahan yang Diperlukan
Bahan yang Diperlukan

Untuk membina Pumpktris anda sendiri, anda memerlukan perkara berikut: Komponen

  • 128 LED amber 5mm (Saya menggunakannya dari Mouser) Beli beberapa tambahan untuk menampung sebarang kesilapan atau ujian. Saya mendapat 140. Amber menyerupai nyala api yang ada di dalam jack-o-lantern tradisional, tetapi anda bebas menggunakan warna yang anda suka.
  • Pengawal mikro Arduino
  • Tiub Pengecutan Panas 1/16 "(11 kaki, atau kepingan panjang 256 1/2")
  • Joystick arked dengan pemegang yang boleh ditanggalkan (yang satu ini dari SparkFun berfungsi dengan baik untuk saya)
  • 4 # 6 sauh drywall nilon Ini bukan jenis dengan togol, tetapi jenis yang kelihatan seperti skru dengan benang dalam
  • 4 skru panjang setengah inci dengan ukuran dan jenis yang sama yang disertakan dengan jangkar drywall. Yang akan disertakan dengan sauh akan terlalu lama.
  • Baut 6mm x 50mm (atau saiz apa pun yang sesuai dengan pemasangan untuk pemegang kayu bedik anda)
  • Nut gandingan 6mm (atau ukuran apa pun yang diperlukan untuk menandingi bolt di atas) Nut gandingan kelihatan seperti mur biasa, tetapi panjangnya kira-kira satu inci dan digunakan untuk bergabung dengan dua baut atau kepingan batang berulir.

Dan yang terakhir, anda memerlukan 1 labu. Anda hanya memerlukan satu, tetapi saya cadangkan dua supaya anda dapat memilikinya untuk latihan menggerudi dan memotong. Matriks LED anda akan meliputi kawasan dengan ketinggian kira-kira 4 "dengan lebar 8", jadi anda mahukan labu dengan luas yang sehalus dan rata mungkin sehingga matriks anda tidak membungkus terlalu jauh. Anda boleh menggunakan labu busa, tetapi di mana keajaibannya? Saya tidak boleh bercakap dengan teknik ukiran yang diperlukan pada labu busa. Alat dan Bahan habis pakai

  • Besi pematerian
  • Pateri
  • Pemotong wayar
  • Pelucut wayar
  • Latihan kuasa
  • Hacksaw
  • Pisau X-Acto
  • Bit gerudi 13/64"
  • Bit gerudi 1-1 / 8 "(saya menggunakan bit Forstner, tetapi bit sekop mungkin juga berfungsi)
  • Papan teras buih 1/4"

Langkah 2: Membina Matriks LED

Membina Matriks LED
Membina Matriks LED
Membina Matriks LED
Membina Matriks LED
Membina Matriks LED
Membina Matriks LED

Setiap matriks dibuat dari 64 LED dan 128 kepingan dawai. Paling mudah untuk memotong dan menanggalkan semua wayar untuk setiap matriks lebih awal. Potong 112 menjadi kepingan 2.5 "dan lepaskan 1/4" setiap hujungnya. Potong baki 16 menjadi 12 "dan lepaskan kedua-dua hujungnya. Semakin konsisten anda boleh mendapatkan panjang wayar anda, semakin mudah untuk membina dan memasang.

Anda akan mulakan dengan membina enam belas rantai daisy lapan segmen-masing-masing dengan 7 wayar pendek dan panjang. Putar setiap hujungnya bersama bahagian seterusnya dan pateri. Untuk menyambungkan wayar ke LED, anda memerlukan jig untuk menahan LED. Lukiskan grid 8x8 dengan jarak setengah inci pada sekeping papan teras buih tebal 1/4 ", kemudian gunakan awl untuk mencucuk lubang yang berdiameter sedikit lebih kecil daripada LED di setiap persimpangan. Anda akan mempunyai 64 lubang ketika anda sudah selesai. Di barisan atas lubang masukkan 8 LED. Inti busa akan meregangkan agar sesuai dengan LED dan akan menahannya dengan erat. Sejajarkan LED sehingga kaki yang lebih panjang - plumbum anod menghadap ke arah anda pada setiap satu. Periksa semula, kerana jika anda salah, matriks tidak akan berfungsi. Klip setiap anod yang membawa panjang kira-kira 1/4 ", dan timah dengan solder untuk memudahkan penyambungan wayar. Potong 8 kepingan tiub pengecutan panas menjadi segmen 1/2 ". Geser sekeping tiub di atas sambungan wayar pertama, tolak ke belakang sehingga tidak terpengaruh oleh panas pateri, kemudian pateri sambungan wayar ke anod LED. Geser tiub ke bawah ke atas sambungan setelah disejukkan. Teruskan ke LED seterusnya, ulangi tujuh kali lagi proses meluncur pada bahagian tiub, solder sambungan, kemudian turunkan tiub di atas sendi. Apabila anda mendapat set lapan LED yang saling terhubung satu sama lain, lepaskan dari jig dan ulangi lagi selama tujuh baris lagi, pastikan anda membuat semua sambungan ke plumbum anod setiap LED. Anda boleh menggunakan baris jig mana yang paling mudah dijangkau, kerana anda hanya bekerja satu demi satu. Setelah semua lapan baris disolder, sudah tiba masanya untuk bergabung dengan lajur dan membuat matriks. Masukkan semua rentetan LED ke dalam jig yang anda buat. Pastikan wayar panjang tetap sama sisi setiap tali. Potong dan timah timbal katod setiap LED pada col pertama umn, seperti yang anda lakukan untuk membina tali. Ambil rantai wayar lain dan ulangi proses pemateriannya ke LED, hanya kali ini anda menyambungkannya pada 90 darjah ke set wayar pertama yang anda lakukan. Simpan wayar panjang di sisi matriks yang sama. Semasa anda melengkapkan setiap lajur, keluarkannya dari jig inti busa dan lipatlah untuk memberi akses ke lajur seterusnya. Apabila anda selesai, anda akan mempunyai 64 LED dalam 8 baris dan 8 lajur. Malangnya, anda perlu mengulangi proses itu lagi untuk matriks kedua. Sekiranya anda memerlukan rehat, lompat ke langkah 3, 4, dan 5 untuk mengusahakan kod tersebut, kemudian kembali ke ini.

Langkah 3: Mengawal LED

Mengawal LED
Mengawal LED
Mengawal LED
Mengawal LED
Mengawal LED
Mengawal LED
Mengawal LED
Mengawal LED

Matriks LED yang anda buat akan dikendalikan oleh dua Ransel Matriks LED Mini 8x8 dari Adafruit. Setiap alat kawalan membolehkan anda menggerakkan 64 LED dengan hanya dua wayar dari Arduino, dan anda boleh menyatukan pelbagai pengawal bersama pada dua wayar yang sama. Ikuti petunjuk yang disertakan dengan Ransel Matriks LED untuk menyolder pada header kuasa / data / jam 4-pin. Kemudian, alih-alih menyolder pada matriks LED yang disertakan dengannya, masukkan dua baris header wanita ke beg galas. Pasangkan matriks LED mini yang disertakan ke dalam tajuk. Pasangkan matriks ke papan roti dan sambungkannya seperti berikut:

  • Sambungkan pin CLK pada Ransel ke pin analog 5 di Arduino.
  • Sambungkan pin DAT ke pin analog 4 di Arduino.
  • Sambungkan GND ke pin tanah di Arduino.
  • Sambungkan VCC + ke kuasa 5v.

Muat turun perpustakaan Adafruit LED Backpack dan Adafruit GFX dan pasangkannya di komputer anda dengan menyalin masing-masing ke folder "perpustakaan" folder sketsa Arduino komputer anda. Muat naik fail "matrix8x8" ke Arduino anda dan sahkan bahawa ransel LED berfungsi. Pin matriks LED mungkin tidak bersentuhan dengan baik pada tajuk wanita, jadi anda mungkin perlu menggoyangkan atau melepaskannya untuk membuat hubungan dan membiarkan semua baris dan lajur menyala. Ulangi prosesnya dengan beg galas LED kedua, tetapi kali ini anda perlu menetapkan alamat baru untuknya dengan menyolok pelompat di pad A0 pada beg galas. Jalankan kod "matrix8x8" sekali lagi, tetapi ubah baris "matrix.begin (0x70)" menjadi "matrix.begin (0x71)" supaya kod tersebut menghadap ransel LED baru.

Langkah 4: Menyambungkan Joystick

Menyambungkan Joystick
Menyambungkan Joystick
Menyambungkan Joystick
Menyambungkan Joystick

Joystick anda harus mempunyai empat suis dengan masing-masing dua terminal. Apabila anda menggerakkan kayu bedik anda ke kanan, ia akan memicu suis di sebelah kiri, ketika anda menggerakkannya ke bawah, ia akan memicu suis di atas, dan seterusnya. Pada satu terminal setiap suis, solder wayar 3 ". Putar ujung keempat-empat wayar ini bersama-sama dan pasangkannya ke wayar 12". Ini adalah landasan bersama untuk keempat-empat suis. Pateri wayar 12 "ke terminal yang tinggal dari setiap suis, kemudian sambungkannya seperti berikut:

  • Sambungkan suis bawah (diaktifkan semasa anda menekan ke atas) ke pin analog 0 di Arduino.
  • Sambungkan suis kiri (diaktifkan semasa anda menekan kanan) ke pin analog 1 di Arduino.
  • Sambungkan suis atas (diaktifkan semasa anda menekan ke bawah) ke pin analog 2 di Arduino.
  • Sambungkan suis kanan (diaktifkan semasa anda menekan kiri) ke pin analog 3 di Arduino.
  • Sambungkan wayar ground biasa ke pin ground di Arduino.

Langkah 5: Memprogram Permainan

Memprogram Permainan
Memprogram Permainan

Muat turun Pumpktris.ino.zip yang dilampirkan, buka zip, dan buka fail di persekitaran pembangunan Arduino. Susun dan muat naik ke Arduino anda. Anda kini boleh bermain di matriks LED mini yang anda tetapkan pada langkah sebelumnya. Saya telah cuba mengulas kodnya sebanyak mungkin, tetapi berikut adalah gambaran umum mengenai proses utama: Menjelaskan Bentuknya Terdapat tujuh tetromino, masing-masing dengan 4 piksel, dan masing-masing dengan empat kemungkinan putaran. Kami menyimpan semua ini dalam tatasusunan multi-dimensi: dimensi pertama yang terdiri daripada tujuh bentuk, dimensi kedua yang mengandungi empat putaran untuk setiap bentuk, yang ketiga mengandungi deskripsi empat piksel yang masing-masing terdiri daripada koordinat X dan Y. Contohnya, ini menerangkan bentuk "T": / * T * / {/ * sudut 0 * / {{0, 1}, {1, 1}, {2, 1}, {1, 2}}, / * sudut 90 * / {{1, 0}, {1, 1}, {2, 1}, {1, 2}}, / * sudut 180 * / {{1, 0}, {0, 1}, {1, 1}, {2, 1}}, / * sudut 270 * / {{1, 0}, {0, 1}, {1, 1}, {1, 2}}}

Menjejak Potongan Aktif Untuk mengesan potongan yang sedang dimainkan, program ini mengekalkan pemboleh ubah aktifPiece. Ini adalah indeks bentuk aktif pada tahap laras tertinggi. Ia juga menyimpan pemboleh ubah putaran yang mengandungi indeks putaran semasa. Pemboleh ubah xOffset menjejaki sejauh mana kiri atau kanan (0-7) setiap bahagian, dan yOffset menjejaki sejauh mana (0-15) papan jatuh. Untuk melukis bahagian aktif program menambahkan nilai mengimbangi X dan Y pada koordinat X dan Y setiap piksel yang ditarik dari putaran semasa sekeping yang dipilih. Melacak Potongan Tetap Program ini menggunakan susunan 16 bait untuk mengesan tetap kepingan, dengan setiap bait mewakili satu baris. Sebagai contoh, susunan di bawah akan mewakili bentuk L yang duduk di tengah dua baris bawah (seperti yang ditunjukkan oleh 1 dalam dua bait terakhir): byte sampleGrid [16] = {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00100000, B00111000}; Pengesanan Perlanggaran Apabila percubaan dilakukan untuk menggerakkan bahagian aktif, program ini terlebih dahulu memeriksa kedudukan baru terhadap susunan kepingan tetap. Sekiranya tidak ada perlanggaran, pergerakan dibenarkan dan matriks digambar semula. Sekiranya pelanggaran dikesan semasa cuba bergerak ke kiri, kanan, atau berpusing, tindakan dilarang. Sekiranya perlanggaran dikesan semasa cuba menjatuhkan sekeping, potongan itu tetap pada posisinya dan ditambahkan pada susunan piksel tetap. Menjatuhkan Potongan Secara Automatik Laju permainan dikawal oleh pemboleh ubah gravityTrigger dan stepCounter. Setiap gelung program meningkatkan stepCounter, dan setiap kali stepCounter mencapai jumlah yang disimpan di gravityTrigger, ia menurunkan bahagian aktif satu tahap. Semasa permainan berlangsung, gravityTrigger semakin berkurang sehingga bahagian aktif turun lebih banyak dan lebih kerap sehingga akhirnya ia jatuh di setiap gelung program. Setiap kali bahagian aktif dipasang ke grid, program memeriksa bait / baris penuh (B11111111). Sekiranya ia menjumpai, ia akan mengedipkannya dan tiga kali, kemudian mengeluarkannya dan menjatuhkan baris di atas untuk mengisi jurang. Penyelesaian masalah Sekiranya kepingan tidak jatuh dari atas ke bawah, tetapi sebaliknya dari sisi ke sisi, ubah nilai berlalu dalam baris "matrixTop.setRotation (1);" dan / atau "matrixBottom.setRotation (1);" dalam gelung "persediaan ()". Sekiranya kepingan bermula di matriks yang salah, ubah lokasi fizikal setiap matriks atau ubah alamat yang dinyatakan dalam "matrixTop.begin (0x70);" dan "matrixBottom.begin (0x71);" garisan gelung "setup ()". Sekiranya beberapa baris atau lajur tidak menyala, goyangkan matriks LED mini pada tajuk wanita. Mereka mungkin tidak melakukan hubungan baik.

Langkah 6: Menyambungkan Matriks LED Anda

Menyambungkan Matriks LED Anda
Menyambungkan Matriks LED Anda
Menyambungkan Matriks LED Anda
Menyambungkan Matriks LED Anda
Menyambungkan Matriks LED Anda
Menyambungkan Matriks LED Anda

Apabila semua kod dan kawalan telah disahkan berfungsi dengan matriks LED mini, sudah tiba masanya untuk memasangkan matriks LED besar yang anda solder sendiri.

Anda boleh memasukkan setiap wayar ke header pada ransel matriks secara berasingan, tetapi anda mungkin akan melakukan banyak pemasangan dan pencabutan, sehingga boleh menjadi kerumitan yang nyata. Sebagai gantinya anda mahu menyolder setiap wayar ke jalur kepala lelaki dan pasangkannya ke dalam beg galas matriks. Saya memasang helai kepala pada sekeping papan prototaip sehingga saya dapat memasang dan mencabut semua 16 pin bersama. Baris 1-4 bersambung ke pin 1-4 di ransel matriks (penomboran pin bermula di kiri atas semasa anda melihat ke bawah beg galas dengan pin kuasa / tanah / data / jam 4-pin di atas). Lajur 1-4 bersambung ke pin 5-8. Penomboran pin membungkus sehingga pin 9 berada di kanan bawah. Baris 5-8 bersambung ke pin 12-9, dan lajur 5-8 bersambung ke pin 16-13. Lihat rajah untuk lebih jelas. Pasangkan setiap matriks ke dalam beg galas dan jalankan program "matrix8x8" yang sama seperti yang anda lakukan untuk matriks LED mini pada langkah 4. Jika masing-masing berfungsi, anda boleh memuatkan program permainan. Sekiranya tidak berfungsi, periksa apakah baris dan lajur matriks LED besar dipasang ke pin ransel yang betul. Memasang matriks LED di jig inti busa yang anda buat untuk pemasangan dapat menjadikannya lebih mudah untuk menguji keseluruhan sistem.

Langkah 7: Mengukir Labu

Mengukir Labu
Mengukir Labu
Mengukir Labu
Mengukir Labu
Mengukir Labu
Mengukir Labu

Jangan buat ukiran labu sehingga semua alat elektronik anda berfungsi. Labu yang diukir mempunyai jangka hayat yang terhad, dan jika anda mengukirnya terlebih dahulu dan kemudian menghabiskan 2 hari untuk elektronik, itu adalah dua hari keseronokan bermain-permainan yang anda telah hilang.

Cari bahagian paling rata pada labu sehingga panel LED anda tidak melilit terlalu jauh, kemudian potong bukaan di sisi yang bertentangan dengan itu. Bersikap pemurah; anda akan memerlukan ruang untuk mendapatkan tangan anda di sana untuk bekerja. Anda tidak akan memotong bahagian atas seperti labu tradisional kerana itu perlu dibiarkan utuh untuk kayu bedik. Labu labu dan elektronik bukanlah rakan terbaik, jadi bersihkan bahagian dalamnya dengan baik. Untuk Pumpktris yang paling menarik, anda mahu grid LED anda lurus dan sejajar dengan labu. PDF dilampirkan dengan jarak 8x16, jarak setengah inci. Cetak ini (atau buat sendiri dengan jarak anda sendiri), potong tepi, dan pasangkannya ke bahagian depan labu. Pastikan ia lurus ke atas dan ke bawah. Dengan paku, tusuk gigi, atau alat lain yang serupa, masukkan lubang pandu ke tengah setiap LED yang ditandakan di atas kertas. Penggerudian secara langsung melalui kertas tidak dianjurkan kerana kemungkinan akan beralih atau koyak. Setelah semua lubang percubaan dicucuk, lepaskan templat kertas dan gunakan bit 13/64 "di gerudi kuasa anda untuk menggerudi setiap lubang. Jangan sejajarkan gerudi tegak lurus ke permukaan labu! Sekiranya anda melakukan ini, kelengkungan labu boleh menyebabkan lubang yang terletak setengah inci di bahagian luar bertemu di bahagian dalam dan akan sukar untuk memasukkan LED. Sebaliknya cuba simpan semua lubang selari. Apabila semua lubang digerudi, gunakan pisau X-Acto anda untuk memotong "piksel" persegi di sekitar setiap lubang. Sudut pisau ke arah tengah setiap lubang dan tinggalkan sekitar 1/8 "di antara piksel. Saya cadangkan membeli labu latihan dan menggunakannya untuk menyempurnakan teknik penggerudian dan ukiran piksel anda. Kuasai di sana sebelum anda berpeluang merosakkan labu sempurna yang anda dapati untuk produk siap.

Langkah 8: Memasang Batang ke Joystick

Memasang Batang ke Joystick
Memasang Batang ke Joystick
Memasang Batang ke Joystick
Memasang Batang ke Joystick
Memasang Batang ke Joystick
Memasang Batang ke Joystick
Memasang Batang ke Joystick
Memasang Batang ke Joystick

Sekarang anda akan menyesuaikan batangnya untuk digunakan sebagai kayu bedik untuk mengawal permainan.

Potong batang sedekat mungkin ke pangkal. Sekiranya potongan tidak lancar dan bersih, gunakan blok pengamplasan untuk meratakannya. Bor lubang 1-1 / 8 "lurus melalui pangkal batang dan masuk ke labu. Buka bola kayu bedik dan sejajarkan poros dengan pusat lubang dari bahagian dalam labu. Pastikan bahagian depan kayu bedik itu bersegi dengan muka depan labu-semasa anda bermain, anda mahu menekan kiri dan kanan untuk menggerakkan kepingan, bukan pada sudut. Apabila berpusat dan persegi, gunakan paku atau tusuk gigi untuk mencucuk lubang ke bahagian dalam labu di atas lubang pelekap di dasar kayu bedik. Tanggalkan kayu bedik. Dengan pemotong wayar anda, potong hujung yang mengembang dari jangkar drywall sehingga lebih pendek daripada ketebalan kulit labu. Skru pelekat drywall yang pendek ini ke lubang juruterbang yang anda buat. Perincian bahagian seterusnya akan bergantung pada kayu bedik yang anda beli. Yang saya gunakan dari SparkFun mempunyai lampiran 6mm untuk pemegang bola yang akan diganti oleh batangnya. Sekiranya kayu bedik anda berbeza, gunakan kacang dan bolt saiz apa pun. Cari tengah batang dan gerudi lubang 13/64 "(ukuran yang sama dengan yang anda gunakan untuk lubang LED, secara kebetulan) kira-kira satu inci lurus ke batang. Ini akan menjadi langkah yang baik untuk menguji labu latihan anda, untuk memastikan skru bolt dengan rapat ke lubang. Potong kepala bolt 6mm x 50mm dengan gergaji besi. Masukkan epoksi atau gam kayu ke benang di dekat hujung skru yang dipotong, dan pasangkannya ke batang. Anda mahukan satu inci atau lebih dari batang dan satu inci di luar. Skru kacang gandingan 6mm ke batang kayu bedik, tetapi jangan pasangkan kayu bedik di labu.

Langkah 9: Penempatan LED dan Joystick

Peletakan LED dan Joystick
Peletakan LED dan Joystick

Dari bahagian dalam labu, masukkan LED secara berturut-turut ke dalam lubang mereka sehingga alasnya rata dengan permukaan dalaman labu. Apabila semuanya sudah siap, gunakan tusuk sate buluh untuk mendorongnya lebih jauh ke arah depan. Saya membiarkan tepi depan mereka duduk kira-kira 1/4 "hingga 3/8" di bawah permukaan luar. Sekiranya mereka terlalu jauh di bawah permukaan, cahaya akan tumpah ke daging labu dan setiap piksel akan kurang jelas.

Tambahkan lapisan bungkus plastik ke bahagian atas kayu bedik, dengan batang itu sendiri menembus. Ini akan mengekalkan sedikit kelembapan dari meresap ke dalamnya. Pasang kayu bedik dengan skru 1/2 ke sauh drywall. Skru yang disertakan dengan sauh akan terlalu panjang dan akan menembus labu.

Langkah 10: Bermain Permainan

Bermain Permainan
Bermain Permainan

Letakkan mangkuk atau bekas penyimpanan makanan plastik di bahagian bawah labu untuk menjauhkan sebarang barang elektronik dari menyentuh bahagian bawah. Pasangkan kayu bedik ke Arduino anda, beg galas LED ke Arduino, dan matriks LED ke dalam beg galas. Pasang sumber kuasa ke Arduino anda. Sekarang mainkan sendiri Pumpktris! Idea untuk Penerokaan Lebih Lanjut Daripada memasang kayu bedik di bahagian atas labu dengan LED, anda boleh menggunakan labu jauh, sama ada tanpa wayar atau dengan kabel yang dihiasi agar kelihatan seperti pokok anggur. Daripada permainan, anda boleh memaparkan mesej bergulir di jack-o-lantern anda. Anda mungkin mahu memasang matriks ke sisi (16 lebar hingga 8 tinggi), atau hanya menggunakan satu matriks. Pembusukan Yang Tidak Dapat Dielakkan Labu anda akhirnya akan mulai membusuk dan tumbuh cetakan dan jamur. Ini boleh membahayakan kesihatan anda dan boleh menyebabkan gangguan pada elektronik anda. Sebaiknya keluarkan semua elektronik anda apabila anda melihat ada pertumbuhan di labu, sehingga anda dapat menggunakannya semula nanti tanpa memerlukan pembersihan Haz-Mat.

Peraduan Hiasan Halloween
Peraduan Hiasan Halloween
Peraduan Hiasan Halloween
Peraduan Hiasan Halloween

Hadiah Kedua dalam Peraduan Hiasan Halloween

Disyorkan: