Daftar Isi:

Jam Space Invaders (dengan Anggaran terbatas!): 6 Langkah (dengan Gambar)
Jam Space Invaders (dengan Anggaran terbatas!): 6 Langkah (dengan Gambar)

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

Video: Jam Space Invaders (dengan Anggaran terbatas!): 6 Langkah (dengan Gambar)
Video: *Inilah Wujud Menakjubkan* Ujung Alam Semesta yang Disaksikan Teleskop Hubble ! 2024, Juli
Anonim
Image
Image
Kumpulkan Bagian
Kumpulkan Bagian

Baru-baru ini saya melihat build keren dari GeckoDiode dan saya langsung ingin membuatnya sendiri. Instructable adalah Jam Desktop Space Invaders dan saya sarankan Anda melihatnya setelah membaca ini.

Proyek ini hampir semata-mata dibangun dari bagian-bagian yang bersumber dari Adafruit dengan penutup cetak 3D, dan facia yang dipotong laser. Menambahkan semuanya, biaya pembuatannya menjadi sangat mahal! (sekitar £100 atau lebih). Masalahnya adalah jika Anda tidak memiliki printer 3D, Anda harus membayar untuk mencetak model Anda, atau membeli enklosur jelek dari ebay yang seringkali terlalu kecil, terlalu sempit, pendek, atau sebaliknya.

Sebagian besar bangunan saya harus dilakukan dengan anggaran penghobi dan penutup selalu menjadi bagian yang paling mahal. Jadi saya memutuskan untuk membuat jam yang sama tetapi dengan anggaran yang layak.

Jika Anda senang melihat jam aneh, lihat Jam Voltmeter Steampunk saya, yang menggunakan bahan bangunan yang sama untuk enklosur:-)

Langkah 1: Kumpulkan Bagian

Untuk membuat proyek ini, Anda memerlukan yang berikut ini. Ingatlah dengan bahan untuk enklosur Anda akan memiliki BANYAK sisa yang dapat Anda gunakan dalam proyek lain (yang membuat biaya pembangunan di masa depan lebih murah). Saya telah mengunggah PDF dari barang-barang yang Anda butuhkan jika Anda ingin memeriksa harga dll di ebay.

Alat (saya berasumsi Anda sudah memilikinya)

  • Besi solder
  • Pateri
  • Pompa solder (jika Anda membuat kesalahan dan perlu melepas solder)
  • Pistol lem panas
  • Tongkat lem panas
  • Pisau kerajinan (alias pisau stanley)
  • Penggaris / pita pengukur / vernier caliper
  • Bor tanpa kabel + mata bor (1 mm hingga 13 mm)
  • Multi-alat putar dengan cakram pemotong (alias Dremel)
  • Cairan pembersih seperti Isopropil-alkohol (aftershave murah juga berfungsi)
  • Masker pengaman (digunakan saat mengecat semprot)

Elektronik (Biaya elektronik = £13,05)

Beberapa di antaranya saya dapatkan secara gratis. Mainan elektronik lama memiliki speaker Mylar yang bagus di dalamnya jika Anda memisahkannya. Saat Anda berada di sana, Anda mungkin bisa mendapatkan laras DC dan tombol tekan juga.

  • Kabel Dupont / Jumper - £0,99
  • DS1307 Modul jam waktu nyata - £0,99 (Saya akan merekomendasikan mendapatkan DS3231 sebagai gantinya jika tersedia)
  • Arduino nano + kabel usb - £2.23
  • 8 Ohm speaker Mylar - £0,99
  • Tombol tekan sesaat SPST - £1,49
  • Soket barel DC 5,5mm - £1,26
  • 5v, catu daya DC 0,5A - £2,83
  • MAX7219 Tampilan dot matrix - £3,76

Kandang (Biaya bahan selungkup = £17,19)

  • Pipa pembuangan persegi 60mm - £5,99 (Anda akan memiliki BANYAK sisa ini untuk proyek lainnya)
  • Cat semprot hitam - £4,85
  • PVC Hitam (papan busa) - £2,99
  • Lem super - £0,99
  • Tutup ujung 60mm - £2,37

Total biaya = £30.24:-) ……..hari ini setara dengan 38 USD untuk setiap pembaca internasional.

Saya senang bekerja dengan pipa persegi PVC. Mereka mudah dibor, dipotong, dicat, dan saya menggunakannya untuk jam Steampunk saya.

Langkah 2: Siapkan Pipa Tiriskan Anda

Siapkan Anda Pipa Tiriskan
Siapkan Anda Pipa Tiriskan

Tandai di mana Anda ingin meletakkan sesuatu

Ini sangat mudah. Saya tidak menggunakan sesuatu yang mewah. Pertama saya memotong panjang 2,5 m ke ukuran yang wajar untuk bangku saya di rumah (sekitar 30 cm) dengan gergaji besi. Saya kemudian memotongnya dengan dremel untuk membuat ujungnya bagus dan lurus. Kemudian saya meletakkan komponen di permukaan pipa dan menggunakan pasar permanen untuk menandai di mana saya ingin mengebor dan memotong. Saya menelusuri di sekitar bagian luar matriks LED, dan menggunakan multi-alat putar untuk memotong lubang persegi agar sesuai dengan flush. Saya menggunakan caliper digital untuk mengukur diameter tombol tekan dan laras DC untuk memotong lubang ukuran yang benar di bagian belakang dan atas.

Potong bingkai

Saya memiliki banyak papan busa PVC yang diletakkan di sekitar proyek sebelumnya. Mereka bagus untuk memasang sirkuit ke dalam selungkup, menggunakannya untuk mencampur epoksi bersama di atasnya, dan membuat potongan dan bob lainnya. Ambil potongan ukuran A4 atau A5 dan potong surround atau bezel persegi 5 mm untuk membingkai matriks LED. Ini akan menyembunyikan tepi miring yang Anda buat saat memotong lubang persegi untuk matriks. Untuk ini saya menggambar template kecil di Inkscape dan mencetaknya (File SVG terlampir). Saya kemudian menempelkannya dengan selotip ke papan busa dan dengan hati-hati memotongnya dengan pisau kerajinan. Sulit untuk melakukannya dengan benar, saya sarankan memotong bagian dalam terlebih dahulu kemudian bagian luar.

Cat semuanya

Setelah semua lubang dibor dan dipotong, singkirkan tepi yang tergores. Bersihkan permukaan dengan tisu alkohol untuk menghilangkan debu atau polusi (atau aftershave murah jika Anda tidak memiliki IPA). Coba dan semprotkan di area yang berventilasi baik dan gunakan masker jika memungkinkan. Saya melakukan ini di luar dengan beberapa karton di lantai tetapi itu tidak ideal, bahkan angin sepoi-sepoi dapat menyebabkan cat terbang kembali ke wajah Anda. Berhati-hatilah dan kenakan peralatan pelindung jika memungkinkan.

Semprotkan pipa, bezel, dan penutup ujungnya sehingga warnanya sama hitamnya, lalu biarkan kering selama beberapa jam.

Langkah 3: Program Arduino

Memprogram Arduino
Memprogram Arduino

Beberapa informasi tentang kode

Penghargaan untuk GeckoDiode karena saya telah mengambil kodenya dan memodifikasinya agar berfungsi dengan Chip MAX7219. Versi Adafruit menggunakan bus I2C dan MAX menggunakan bus SPI. Untuk ini saya menggunakan perpustakaan MaxMatrix, yang saya unduh dan instal ke Arduino IDE. Jika Anda ingin mempelajari lebih lanjut tentang MaxMatrix dan cara kerja matriks LED pada prinsipnya, ada tutorial singkat di HowToMechatronics.com. Matriks LED hanya terdiri dari satu warna LED daripada memiliki layar multi-warna.

Satu frustrasi yang saya miliki adalah bahwa TIDAK ada definisi yang jelas tentang apa fungsinya untuk perpustakaan dan argumen apa yang perlu diteruskan ke masing-masing. Untungnya saya dapat mengetahui apa yang dilakukan apa dengan coba-coba dan pada akhirnya tidak terlalu sulit untuk membuatnya berfungsi dengan baik. Hal pertama yang harus dipahami adalah Anda harus menentukan berapa banyak modul 8x8 dalam matriks Anda. Dalam kode saya ini disimpan dalam bilangan bulat yang disebut "modul" seperti ini:

"int modul = 4;"

Ini adalah NUMBER modul 8x8 yang telah Anda tautkan bersama di layar Anda. Bukan jumlah LED atau pin apa yang Anda gunakan untuk mengirim data. Hal berikutnya yang perlu diingat adalah jika "sprite" Anda atau apa pun mencakup keempat matriks maka array byte perlu didefinisikan seperti ini:

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

Angka menunjukkan jumlah baris dan kolom dalam matriks. Pada kesempatan ini byte bernama "text_start_bmp" ditampilkan lebih dari 32 kolom dan 8 baris. Angka-angka hanya ditampilkan pada satu matriks 8x8 tunggal sehingga angka menit 10 terlihat seperti ini:

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

Penyerbu menutupi dua matriks sehingga byte akan diberikan 16, 8 dalam data byte.

Hal lain yang menarik perhatian saya adalah posisi data sprite. Anda dapat meminta Arduino untuk menampilkan sprite dalam posisi X/Y yang berbeda pada matriks dari posisi awal default. Kode terlihat seperti ini untuk menit nol:

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

Satu angka adalah penyesuaian X dan yang lainnya adalah Y. Tidak dapat mengingat yang mana sekarang, tetapi jika Anda ingin mendorong sprite ke atas atau ke bawah sebanyak 1 baris atau kolom, Anda cukup menambahkan angka positif atau minus. Cukup sederhana untuk matriks 8x8 tetapi ketika sprite Anda mencakup lebih dari satu matriks, Anda harus mengatur posisi home yang sesuai. Sprite "POP" ditunjukkan di bawah ini:

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

Perhatikan sekarang bagaimana posisi rumah adalah 16 bukan 8? Di sini kode menunjukkan sprite ditampilkan dari kiri ke kanan dari posisi baris/kolom 16. Ini menganggap dua tampilan 8x8 menjadi satu tampilan 16x8 meskipun ada 4! Oleh karena itu, penting untuk memikirkan berapa banyak tampilan sprite yang akan ditampilkan dan menentukan ukuran array byte masing-masing sprite. Jika tidak, Anda akan memiliki beberapa sprite yang sangat menarik!

DS1307 RTC

Meskipun DS1307 bekerja dengan baik dengan perpustakaan Adafruit RTClib.h, Anda tidak dapat mengatur waktu secara manual yang hanya merepotkan. Saya hanya menggunakan ini karena itu berarti lebih sedikit kode untuk diubah. DS1307 mengatur waktu menggunakan waktu dan tanggal kode dikompilasi dari waktu komputer Anda. Sebagai gantinya, pelajari cara menggunakan pustaka DS3231 dan atur sekali untuk satu atau dua menit ke depan di masa mendatang. Ini juga memiliki lebih sedikit "melayang" sehingga membuat waktu lebih baik dari waktu ke waktu. Kedua modul menggunakan bus I2C dan saya yakin DS3231 dapat digunakan dengan RTClib.h jika Anda ingin terus menggunakannya.

Unggah kodenya

Setelah Anda puas dengan kode, unggah ke Arduino. Saya telah melampirkan sketsa Arduino saya untuk pertimbangan Anda.

Langkah 4: Merakit Elektronik

Perakitan Elektronik
Perakitan Elektronik

Saat mengunggah kode, saya akan merekomendasikan agar elektronik dirakit dengan kabel dupont/jumper di papan tempat memotong roti terlebih dahulu sehingga ketika Anda mengunggah kode, Anda tahu semuanya berfungsi sebagaimana dimaksud. Ini memungkinkan Anda untuk mengatasi masalah apa pun dengan menampilkan sprite dll sebelum Anda mulai menempelkan dan menempel. Dalam kode saya, Anda dapat melihat saya menggunakan pin digital 4, 5, 6, 7, 9, tetapi Anda dapat mengubahnya jika perlu. Anda mungkin perlu menyolder kabel ke tombol, jack DC, dan Speaker tetapi sebagian besar harus berupa konektor gaya push fit yang mudah.

Setelah Anda senang elektronik bekerja sebagaimana dimaksud, Anda harus mempertimbangkan untuk menyolder sambungan. Anda dapat melakukan ini dengan stripboard / veroboard tembaga, tetapi untuk sejumlah kecil komponen Anda dapat menyolder langsung ke pin Arduino. Ini akan terlihat seperti sarang tikus tetapi tidak ada yang akan melihat ke dalam kandang setelah dirakit, pastikan bahwa semua bagian logam dipisahkan, Anda tidak ingin ada korslet dalam kasingnya.

Saya telah membuat tombol push berfungsi ketika pin "mainButton" ditarik rendah. Saya menemukan Arduino mengenali tombol tekan palsu yang ditekan ketika elektronik mengambang menetap di atasnya. Menggunakan resistor pulldown 10K pada tombol tekan dan mengatur pin ke "INPUT_PULLUP" memecahkan masalah itu untuk saya.

Terlampir adalah skema dalam PDF dan-p.webp

Langkah 5: Pasang Elektronik dan Tutup

Pasang Elektronik dan Close Up
Pasang Elektronik dan Close Up
Pasang Elektronik dan Close Up
Pasang Elektronik dan Close Up

Untuk jam saya, saya memasang elektronik menggunakan lem panas, tetapi hati-hati untuk tidak menerapkan terlalu banyak (elektronik tidak suka dipanaskan terlalu lama). Saya menggunakan setetes kecil lem super yang tersebar di sekitar bezel dan menempelkannya di bagian depan. Saya menyelesaikan enklosur dengan mendorong tutup ujung di setiap ujungnya. Tentu saja Anda dapat merekatkan tutup ujung untuk menutup rakitan sepenuhnya, tetapi saya membiarkan satu sisi saya terbuka sehingga saya masih dapat mengakses port USB arduino untuk mengatur ulang tanggal dan waktu di masa mendatang.

Langkah 6: Nikmati

Menikmati
Menikmati
Menikmati
Menikmati

Secara keseluruhan saya senang dengan cara ini keluar, mengingat itu hanya beberapa pipa selokan dan cat semprot. Saya harap Anda menyukainya dan beri tahu saya jika Anda dapat memikirkan peningkatan keren yang dapat ditambahkan. Saya tertarik untuk mengetahui apakah ada yang bisa membuat ini lebih murah atau jika ada cara hemat lain untuk membuat enklosur yang bisa saya coba di proyek saya berikutnya.

Direkomendasikan: