Isi kandungan:

Jam Space Invaders (dengan anggaran!): 6 Langkah (dengan Gambar)
Jam Space Invaders (dengan anggaran!): 6 Langkah (dengan Gambar)

Video: Jam Space Invaders (dengan anggaran!): 6 Langkah (dengan Gambar)

Video: Jam Space Invaders (dengan anggaran!): 6 Langkah (dengan Gambar)
Video: Akun fb dibatasi? - Inilah Solusinya! 2024, Julai
Anonim
Image
Image
Kumpulkan Bahagian
Kumpulkan Bahagian

Baru-baru ini saya melihat binaan yang hebat oleh GeckoDiode dan saya segera mahu membinanya sendiri. Instructable is Space Invaders Desktop Clock dan saya cadangkan anda melihatnya setelah membaca ini.

Projek ini hampir sepenuhnya dibina dari bahagian yang bersumber dari Adafruit dengan penutup bercetak 3D, dan laser cut facia. Menambah semuanya kos pembinaan menjadi sangat mahal! (sekitar £ 100 atau lebih) Masalahnya ialah jika anda tidak memiliki pencetak 3D, anda perlu membayar untuk mencetak model anda, atau membeli kandang jelek dari ebay yang selalunya terlalu kecil, terlalu sempit, pendek, atau sebaliknya.

Sebilangan besar binaan saya mesti dibuat berdasarkan anggaran hobi dan kurungan selalu menjadi bahagian paling mahal. Oleh itu, saya memutuskan untuk membina jam yang sama tetapi dengan anggaran yang lumayan.

Sekiranya anda gemar melihat jam yang pelik, lihat Jam Voltmeter Steampunk saya, yang menggunakan bahan binaan yang sama untuk kandang:-)

Langkah 1: Kumpulkan Bahagian

Untuk membuat projek ini, anda memerlukan perkara berikut. Perlu diingat dengan bahan untuk kandang anda akan mempunyai banyak sisa yang boleh anda gunakan dalam projek lain (yang menjadikan kos pembinaan masa depan lebih murah). Saya telah memuat naik PDF barang yang anda perlukan sekiranya anda ingin menyemak harga dll di ebay.

Alat (saya anggap anda akan memilikinya)

  • Besi pematerian
  • Pateri
  • Pam pateri (jika anda melakukan kesalahan dan perlu mengeluarkan pateri)
  • Pistol gam panas
  • Gam panas melekat
  • Pisau kraf (pisau stanley)
  • Pembaris / pita pengukur / Caliper Vernier
  • Bor tanpa wayar + bit gerudi (1 mm hingga 13 mm)
  • Alat pelbagai putar dengan cakera pemotong (sebutan Dremel)
  • Cecair pembersih seperti Isopropil-alkohol (selepas bekerja murah juga)
  • Topeng keselamatan (digunakan semasa lukisan semburan)

Elektronik (Kos elektronik = £ 13.05)

Sebilangan ini saya dapat secara percuma. Mainan elektronik lama mempunyai pembesar suara Mylar yang bagus ini jika anda membezakannya. Semasa anda berada di sana, anda mungkin boleh mendapatkan tong DC dan juga butang tekan.

  • Kabel Dupont / Jumper - £ 0,99
  • DS1307 Modul jam masa nyata - £ 0,99 (saya akan mengesyorkan mendapatkan DS3231 sebagai ganti jika ada)
  • Kabel Arduino nano + usb - £ 2.23
  • Pembesar suara 8 Ohm Mylar - £ 0,99
  • Butang tekan sesaat SPST - £ 1,49
  • Soket tong 5.5mm DC - £ 1,26
  • 5v, bekalan kuasa DC 0.5A - £ 2.83
  • Paparan matriks MAX7219 Dot - £ 3,76

Kandang (Kos bahan kandang = £ 17.19)

  • Paip saliran 60mm persegi - £ 5.99 (anda akan mempunyai BANYAK baki ini untuk lebih banyak projek)
  • Cat semburan hitam - £ 4,85
  • PVC hitam (papan kayu) - £ 2,99
  • Lem super - £ 0,99
  • Topi hujung 60mm - £ 2,37

Jumlah kos = £ 30.24:-) …….. pada hari ini ini bersamaan 38 USD untuk mana-mana pembaca antarabangsa.

Saya seronok bekerja dengan paip persegi PVC. Mereka mudah menggerudi, memotong, melukis, dan saya menggunakannya untuk jam Steampunk saya.

Langkah 2: Siapkan Paip Saliran Anda

Sediakan Paip Saliran Anda
Sediakan Paip Saliran Anda

Tandakan di mana anda mahu meletakkan barang

Ini sangat mudah. Saya tidak menggunakan sesuatu yang mewah. Mula-mula saya memotong panjang 2.5 m ke ukuran yang sesuai untuk bangku saya di rumah (kira-kira 30 cm) dengan gergaji besi. Saya kemudian memotongnya dengan dremel untuk menjadikan pinggirnya bagus dan lurus. Kemudian saya meletakkan komponen di permukaan paip dan menggunakan pasar tetap untuk menandakan tempat saya ingin menggerudi dan memotong. Saya menelusuri bahagian luar matriks LED, dan menggunakan alat pelbagai putar untuk memotong lubang persegi agar sesuai dengan flush. Saya menggunakan caliper digital untuk mengukur diameter butang tekan dan tong DC untuk memotong lubang ukuran yang betul di bahagian belakang dan atas.

Potong bezel

Saya mempunyai banyak papan busa PVC yang terbentang dari projek sebelumnya. Mereka bagus untuk memasang litar ke dalam kurungan, menggunakannya untuk mencampurkan epoksi di atasnya, dan membuat bit dan bob lain. Ambil sekeping ukuran A4 atau A5 dan potong sekeliling atau bezel 5 mm persegi untuk membingkai matriks LED. Ini akan menyembunyikan apa-apa hujung yang anda buat semasa memotong lubang persegi untuk matriks. Untuk ini saya melukis templat kecil di Inkscape dan mencetaknya (SVG File dilampirkan). Saya kemudian mengetuknya dengan pita pelekat ke papan kayu dan memotongnya dengan hati-hati dengan pisau kerajinan. Sukar untuk mendapatkan yang betul, saya cadangkan memotong bahagian dalam terlebih dahulu kemudian bahagian luar.

Warnakan semuanya

Setelah semua lubang digerudi dan dipotong, lepaskan tepi yang pecah. Bersihkan permukaan dengan beberapa tisu alkohol untuk menghilangkan habuk atau pencemaran (atau ada yang murah jika anda tidak mempunyai IPA). Cuba dan semburkan di kawasan yang berventilasi baik dan gunakan topeng jika boleh. Saya melakukan ini di luar dengan kadbod di lantai tetapi ia tidak sesuai, walaupun angin sepoi-sepoi boleh menyebabkan cat terbang kembali ke wajah anda. Berhati-hati dan pakai alat pelindung di mana mungkin.

Semburkan paip, bezel, dan penutup akhir sehingga semuanya jenis hitam yang sama, kemudian biarkan hingga kering selama beberapa jam.

Langkah 3: Program Arduino

Atur cara Arduino
Atur cara Arduino

Beberapa maklumat mengenai kod tersebut

Kredit kepada GeckoDiode kerana saya telah mengambil kodnya dan mengubahnya untuk berfungsi dengan Cip MAX7219. Versi Adafruit menggunakan bas I2C dan MAX menggunakan bas SPI. Untuk ini saya menggunakan perpustakaan MaxMatrix, yang saya muat turun dan pasang ke Arduino IDE. Sekiranya anda ingin mengetahui lebih lanjut mengenai MaxMatrix dan bagaimana matriks LED berfungsi secara prinsip, terdapat tutorial yang sangat singkat mengenai HowToMechatronics.com. Matriks LED hanya terdiri daripada satu warna LED daripada mempunyai paparan pelbagai warna.

Satu kekecewaan yang saya hadapi ialah TIDAK ada definisi yang jelas mengenai fungsi apa yang ada di perpustakaan dan argumen apa yang perlu disampaikan. Nasib baik saya dapat mengetahui apa yang dilakukan oleh percubaan dan kesilapan dan pada akhirnya tidak terlalu sukar untuk membuatnya berfungsi dengan baik. Perkara pertama yang perlu difahami ialah anda harus menentukan berapa banyak modul 8x8 dalam matriks anda. Dalam kod saya ini disimpan dalam bilangan bulat yang disebut "modul" seperti ini:

"int modul = 4;"

Ini adalah BILANGAN modul 8x8 yang telah anda hubungkan bersama di paparan anda. Bukan bilangan LED atau pin apa yang anda gunakan untuk menghantar data. Perkara seterusnya yang perlu diingat ialah jika "sprite" anda atau apa sahaja yang merangkumi keempat matriks, maka array byte perlu ditentukan seperti ini:

"byte text_start_bmp = {32, 8,… * beberapa data bait *…};"

Nombor menunjukkan jumlah baris dan lajur dalam matriks. Pada kesempatan ini bait bernama "text_start_bmp" dipaparkan lebih dari 32 lajur dan 8 baris. Nombor hanya dipaparkan pada satu matriks 8x8 tunggal sehingga nombor minit 10 kelihatan seperti ini:

"byte minute_ten_bmp = {8, 8,… * beberapa data bait *…};"

Penyerang merangkumi dua matriks sehingga bait akan diberi 16, 8 dalam data bait.

Perkara lain yang menarik perhatian saya ialah kedudukan data sprite. Anda boleh meminta Arduino untuk memaparkan sprite dalam kedudukan X / Y yang berbeza di matriks dari kedudukan rumah lalai. Kod ini kelihatan seperti ini untuk minit sifar:

"matrix.writeSprite (8, 0, minit_zero_bmp);"

Satu nombor adalah penyesuaian X dan yang lain adalah Y. Tidak ingat mana yang sekarang, tetapi jika anda ingin menekan sprite ke atas atau ke bawah dengan 1 baris atau lajur, anda hanya menambah nombor positif atau tolak. Cukup sederhana untuk matriks 8x8 tetapi apabila sprite anda merangkumi lebih dari satu matriks, anda harus menetapkan kedudukan rumah dengan sewajarnya. Sprite "POP" ditunjukkan di bawah:

"matrix.writeSprite (16, 0, invader_pop_bmp);"

Perhatikan sekarang bagaimana kedudukan rumah 16 bukan 8? Di sini kod menunjukkan sprite dipaparkan dari kiri ke kanan dari baris kedudukan / lajur 16. Ia menganggap dua paparan 8x8 sebagai paparan tunggal 16x8 walaupun terdapat 4! Oleh itu, adalah mustahak untuk memikirkan berapa banyak paparan sprite yang akan dipaparkan dan ukuran setiap bait setiap sprite dengan sewajarnya. Jika tidak, anda akan mempunyai beberapa sprite yang sangat menarik!

DS1307 RTC

Walaupun DS1307 berfungsi dengan baik dengan perpustakaan Adafruit RTClib.h, anda tidak boleh menetapkan waktu secara manual yang hanya menyusahkan. Saya hanya meneruskannya kerana ini bermaksud kurang mengubah kod. DS1307 menetapkan waktu menggunakan waktu dan tarikh kod disusun dari waktu komputer anda. Sebaliknya belajar bagaimana menggunakan perpustakaan DS3231 dan tetapkannya sekali selama satu atau dua minit ke depan pada masa akan datang. Ia juga kurang "drift" sehingga menjadikan waktu lebih baik dari masa ke masa. Kedua-dua modul menggunakan bas I2C dan saya yakin DS3231 dapat digunakan dengan RTClib.h jika anda berminat untuk terus menggunakannya.

Muat naik kod

Setelah anda berpuas hati dengan kod tersebut muat naik ke Arduino. Saya telah melampirkan lakaran Arduino saya untuk pertimbangan anda.

Langkah 4: Pemasangan Elektronik

Pemasangan Elektronik
Pemasangan Elektronik

Semasa memuat naik kod, saya akan mengesyorkan agar elektronik dipasang dengan wayar dupont / jumper pada papan roti terlebih dahulu, jadi apabila anda memuat naik kod, anda tahu semuanya berfungsi seperti yang diharapkan. Ini membolehkan anda menyelesaikan masalah dengan memaparkan sprite dan lain-lain sebelum anda mula melekat dan melekat. Dalam kod saya, anda dapat melihat bahawa saya menggunakan pin digital 4, 5, 6, 7, 9, tetapi anda boleh menukarnya jika perlu. Anda mungkin perlu menyolder kabel ke butang, soket DC, dan Pembesar suara tetapi kebanyakannya mestilah penyambung gaya tekan mudah.

Sebaik sahaja anda gembira kerja elektronik seperti yang diharapkan, anda harus mempertimbangkan untuk menyambungkan sambungan. Anda boleh melakukan ini dengan papan tembaga / papan verver, tetapi untuk sebilangan kecil komponen anda boleh menyolder terus ke pin Arduino. Ia akan kelihatan seperti sarang tikus tetapi tidak ada yang akan melihat di dalam kandang setelah dipasang juga, pastikan semua bahagian logam dipisahkan, anda tidak mahu ada kekurangan dari kotak tersebut.

Saya telah membuat butang tekan berfungsi apabila pin "mainButton" ditarik rendah. Saya dapati Arduino menyedari butang tekan palsu ditekan ketika elektronik terapung berada di atasnya. Menggunakan perintang pulldown 10K pada butang tekan dan tetapkan pin ke "INPUT_PULLUP" menyelesaikan masalah itu bagi saya.

Dilampirkan adalah skema dalam PDF dan-p.webp

Langkah 5: Pasang Elektronik dan Tutup

Pasang Elektronik dan Tutup
Pasang Elektronik dan Tutup
Pasang Elektronik dan Tutup
Pasang Elektronik dan Tutup

Untuk jam saya, saya memasang elektronik menggunakan lem panas, tetapi berhati-hati untuk tidak menggunakan terlalu banyak (elektronik tidak suka dipanaskan terlalu lama). Saya menggunakan setetes gam super kecil di sekitar bezel dan menekannya ke depan. Saya menyelesaikan penutup dengan menolak penutup akhir pada setiap hujungnya. Sudah tentu anda boleh melekatkan penutup akhir untuk melampirkan pemasangan sepenuhnya, tetapi saya membiarkan satu sisi terbuka sehingga saya masih dapat mengakses port USB arduino untuk menetapkan semula tarikh dan masa di masa akan datang.

Langkah 6: Nikmati

Nikmati
Nikmati
Nikmati
Nikmati

Secara keseluruhan saya gembira dengan cara ini keluar, memandangkan hanya sebilangan paip air dan cat semburan. Saya harap anda menyukainya dan beritahu saya jika anda dapat memikirkan peningkatan hebat yang boleh ditambah. Saya berminat untuk mengetahui apakah ada yang dapat membuat ini lebih murah atau jika ada cara lain yang baik untuk membuat kandang yang boleh saya cuba dalam projek seterusnya.

Disyorkan: