Make a Desktop Tamagotchi: 8 Steps (with Pictures)

Make a Desktop Tamagotchi: 8 Steps (with Pictures)

Daftar Isi:

Anonim

Suatu hari saya sedang duduk di belakang meja saya di tempat kerja dan saya mendapatkan kebutuhan aneh untuk membangun sesuatu, setelah melihat-lihat sedikit saya melihat pada matriks LED dan itu memicu ide di kepala saya: "SAYA INGIN MEMBUAT TAMAGOTCHI".

Jadi bagi Anda yang tidak tahu apa itu Tamagotchi di sini adalah snip-it dari wikipedia:

"Tamagotchi (た ま ご っ ち Tamagocchi?) Adalah hewan peliharaan digital genggam, dibuat di Jepang oleh Akihiro Yokoi dari WiZ dan Aki Maita dari Bandai. Ini pertama kali dijual oleh Bandai pada tahun 1996 di Jepang."

Jadi pendapat saya tentang mainan klasik ini adalah untuk membuatnya ke gadget desktop dengan matriks LED untuk tampilan, dan Arduino untuk otak agar lebih mudah diakses oleh orang-orang. Dengan itu, bergabunglah dengan saya saat kami merancang, membangun, dan memprogram Tamagotchi desktop pertama (Sejauh yang saya tahu).

Persediaan:

Langkah 1: Mendapatkan Hal yang Benar

Jadi seperti proyek elektronik lainnya Anda perlu mendapatkan beberapa alat dasar:

1) Besi Solder

2) Beberapa kawat solder

3) Sepotong pemotong

4) Sepasang tang hidung

Opsional: Dapatkan kepang solder atau pompa solder untuk memperbaiki kesalahan penyolderan

Adapun komponen elektronik daftar sedikit lebih lama, di sini adalah apa yang Anda perlukan:

1) ATmega328P dengan arduino bootloader + kristal 16Mhz dengan dua tutup 22pF

* Anda perlu sesuatu untuk memprogram chip juga seperti platform Arduino atau adaptor FDTI

2) 4 x 74HC595 register geser

3) 2 x array transistor Darlington ULN2803

4) 1 x DS1302 RTC + 32.768 kHz Crystal

5) dudukan baterai sel koin 1 x 3V + baterai.

6) 4 x tombol push miring kanan

7) 1 x Peizzo Buzzer

8) modul matriks LED 4 x 8x8

9) 16 x 330Ohm resistor (Anda perlu menghitung nilai untuk matriks Anda)

10) 2 x baris 16 pin header perempuan

11) 2 x deretan 16 pin header laki-laki

12) 1 x deretan 4 header wanita (Untuk pemrograman)

13) tutup 5 x 100nF

14) 1 x 10 uF tutup

15) 1 x 10K resistor

15) Konektor colokan listrik

16) kutil dinding 5V DC

17) Sepotong besar protoboard

18) Beberapa kabel untuk koneksi

Langkah 2: Sisi Perangkat Keras

Bahkan jika proyek ini jika sebagian besar perangkat lunak terfokus kita perlu membangun perangkat keras terlebih dahulu untuk membuat kode penulisan seumur hidup dan debugging lebih mudah.

Perangkat keras terdiri dari 2 bagian utama: Bagian mikrokontroler dan layar LED.

Bagian mikrokontroler sangat lurus ke depan, ini merupakan arduino mandiri (ATmega328 dengan arduino bootloader) dengan

beberapa periferal (4 tombol, bel dan RTC), tetapi itu bagian yang paling penting karena melakukan semua pemikiran.

Bagian tampilan LED sedikit lebih rumit dan membutuhkan waktu untuk disolder. Sirkuit ini terdiri dari 4 register geser (74HC595), 2 susunan transistor darlington (ULN2803) dan 4 matriks LED 8x8.

Seperti kebanyakan layar LED, tidak mengherankan jika layar perlu multiplexing (lihat itu konsep yang cukup keren) karena mengendarai 16x16 LED secara terpisah akan mengambil 256 pin dari mikrokontroler dan itu konyol.

Bahkan dengan pendekatan multiplexing kita masih membutuhkan 32 (16 baris + 16 kolom) pin dari mikrokontroler untuk menggerakkan layar yang lagi-lagi tidak kita miliki, jadi solusinya adalah dengan menggunakan register geser sebagai ekspansi I / O, 4 8 register bit shift memberi kami 32 output dan hanya perlu 3 baris untuk mengontrol semuanya.

Tetapi masalahnya tidak berakhir di sini karena register shift tidak dapat menangani tenggelamnya arus 16 LED (jika baris penuh menyala) pada satu pin sehingga kita perlu membantu dengan bantuan array transistor darlington yang akan bertindak seperti penyangga yang dapat menangani arus besar yang dapat menggoreng register geser.

Jadi untuk rekap kita gunakan 4 register shift dirantai daisy untuk mengontrol tampilan, 2 pertama menggerakkan baris dan 2 lainnya menggerakkan kolom dengan bantuan array darlington.

Satu-satunya hal yang perlu dihitung dalam proyek ini adalah nilai resistor yang akan menggerakkan baris LED.

Rumusnya sangat sederhana dan seperti ini:

R = (Vsource - Vled) / Iled

Vsource adalah 5V, Vled adalah tegangan maju pada satu LED dalam matriks dan Iled adalah arus maju dari LED yang sama.

Anda juga dapat menggunakan kalkulator online untuk membantu Anda dalam hal ini.

Langkah 3: Konsep Konstruksi - Papan LED

Ketika saya mulai membangun, saya ingin mendapatkan tampilan yang bersih tanpa menggunakan case (menemukan case yang tepat adalah mimpi buruk) jadi saya mencari

konstruksi dua bagian, yaitu satu papan yang menampung matriks LED dan yang kedua dengan semua elektronik.

Dengan cara ini satu-satunya hal yang Anda lihat ketika Anda melihat bagian depan adalah layar LED itu sendiri dan semua barang lainnya tersembunyi di belakang layar.

Papan pertama dengan matriks LED akan menentukan ukuran yang kedua karena Anda ingin menyembunyikan papan lainnya di belakang layar. Jadi tempatkan unit matriks di papan tulis, tandai di mana harus memotong dan memotong papan. Potong papan kedua sehingga ukurannya akan sama dengan yang pertama. Trik dengan gaya bangunan ini adalah harus memasang proto-board dengan ukuran yang sama, jadi ide yang bagus untuk mengampelasnya agar ukurannya sama.

Karena saya memiliki 4 matriks LED 8x8, saya harus menghubungkannya bersama untuk mendapatkan satu matriks LED 16x16, itu cukup sederhana dan hanya membutuhkan sedikit waktu untuk menghubungkannya. Cara Anda melakukannya adalah dengan menghubungkan baris-baris matriks horizontal dengan dan lainnya dan menghubungkan kolom-kolom matriks vertikal (saya membuat koneksi dengan beberapa kabel pembungkus kawat tipis).

Sekarang satu-satunya bagian yang tersisa dengan papan ini adalah menghubungkan header yang akan menghubungkan ke papan bersama-sama, penempatan konektor ini ditentukan oleh posisi sakelar pada papan kedua. Saklar akan berada di sisi papan sehingga Anda tidak dapat meletakkan konektor di tepi papan, itulah mengapa konektor ditempatkan sekitar 4 lubang dari tepi.

Ada dua konektor satu untuk baris dan yang lainnya untuk kolom.

Dan untuk menyelesaikan tampilan, saya sarankan untuk meletakkan selembar kertas putih di atas matriks untuk menyembunyikan rakitan dan mendapatkan tampilan yang bersih.

Saya menempelkan kertas ke tepi matriks sehingga tampilan aman dari lem.

Langkah 4: Konsep Konstruksi - Papan Driver

Sekarang papan driver adalah bagian paling kompleks dari bangunan ini karena kendala ruang dan saya tidak bisa memberi tahu Anda bagaimana cara membuatnya karena setiap orang memiliki gaya bangunan.

Yang bisa saya ceritakan adalah penempatan komponen kunci seperti tombol dan konektor. Sekarang tombol-tombolnya harus berada di sisi papan dan sebagian besar bersudut kanan sehingga tidak terlihat tetapi Anda masih bisa menekannya.

Dari sana Anda menempatkan konektor yang akan bergabung dengan dua papan, konektor harus sedekat mungkin ke tepi untuk memberikan koneksi yang baik dan kokoh, yaitu cara Anda menempatkan tombol pertama di tepi dan dari sana Anda memutuskan ke mana pasang konektor.

Catatan: Ini cukup penting untuk memastikan bahwa konektor pada kedua papan bergabung bersama dengan sempurna dan sisi papan rata.

Setelah bagian-bagian penting selesai Anda bebas untuk membangun sisanya seperti yang Anda lihat benar, tetapi pastikan bahwa tidak ada bagian yang "berlebihan".

Saya akan merekomendasikan membangun dalam kelompok dan menjaga semua bagian dalam kelompok dekat satu sama lain untuk kemudahan pemasangan kabel misalnya:

Konektor kolom harus terhubung ke dua chip darlington dan dua register shift sehingga masuk akal untuk menempatkan banyak yang berdekatan satu sama lain dan dengan sedikit pemikiran mungkin untuk pergi dengan hanya beberapa kabel di sana-sini dalam grup ini.

Pastikan juga untuk meletakkan beberapa tajuk pemrograman untuk mikrokontroler untuk mod di masa mendatang.

Langkah 5: Aturan Game

Setelah menyelesaikan bagian perangkat keras, saatnya memikirkan kode dan mekanisme permainan.

Ini adalah bagian tersulit bagi saya karena saya menatap dari awal dan harus membuat aturan sendiri yang tidak sempurna.

Gim seperti itu, sangat mudah untuk dieksploitasi dan dilakukan dengan baik tetapi ini bukan gim yang serius dan ini dimaksudkan untuk menjadi gadget kecil yang keren.

Jadi dengan sedikit penafian ini, mari kita bicara sedikit tentang aturan permainan.

Hewan peliharaan memiliki 5 statistik dasar: kesehatan, berat badan, kebahagiaan, kelaparan, dan usia.

Peran pemain adalah untuk menyeimbangkan statistik ini dengan 4 tindakan yang ia miliki: memberi makan hewan peliharaan, bermain dengannya, membersihkannya dan perawatan medis.

Setiap tindakan memiliki efek positif dan efek negatif dan pemain perlu berusaha untuk memilih kompromi terbaik.

Ketika pemain memilih untuk memberi makan hewan peliharaan dia memiliki 3 pilihan: memberinya makan daging, memberinya buah atau permen.

Makan daging menebus poin kelaparan yang paling dan menambah banyak berat, buah meningkatkan kesehatan hewan peliharaan tetapi menurunkan kebahagiaan hewan peliharaan dan permen memberikan dorongan kebahagiaan besar tetapi menurunkan kesehatan dan meningkatkan berat hewan peliharaan.

Ketika pemain memilih untuk bermain dengan hewan peliharaan, permainan Simon dimulai dan tergantung pada seberapa baik pemain melakukan stat kebahagiaan, tetapi jika pemain melakukannya dengan sangat buruk, kebahagiaan akan turun.

Dari waktu ke waktu hewan peliharaan akan pergi ke toilet dan pemain harus membersihkan setelahnya, setiap giliran pemain yang terlewatkan menurunkan kesehatan hewan peliharaan dan meningkatkan kesempatan untuk membuat hewan peliharaan sakit.

Juga ada kemungkinan acak bahwa hewan peliharaan akan sakit, kemungkinan itu lebih tinggi jika hewan peliharaan itu tua atau kotor. Ada 3 level penyakit masing-masing dengan efek negatifnya sendiri. Pemain dapat memberikan suntikan kepada hewan peliharaan untuk menyembuhkannya tetapi ini akan menurunkan kesehatan hewan peliharaan (tidak ada yang suka mengambil gambar: D).

Dan bagian yang paling impoten (bagi saya) adalah hewan peliharaan tidur secara otomatis pada pukul 23:00 dan bangun pada pukul 8:00 sehingga tidak akan mati di malam hari. Tentu saja Anda dapat mengubah bagian ini sesuai keinginan Anda dan mengatur waktu tidur baru untuk hewan peliharaan.

Langkah 6: Perangkat Lunak: Menu dan Animasi

Di sini kita berada di bagian yang paling memakan waktu dalam proyek, setelah memutuskan semua fitur dan keadaan permainan, inilah saatnya menghidupkannya dengan membuat semua animasi, pengaturan, tindakan, dan keadaan permainan.

Untuk langkah ini saya menggunakan kombinasi dua program: paint.net dan excel.

Dalam cat saya membuat semua ikon dan layar menu satu per satu. Menggunakan cat sangat membantu karena Anda dapat dengan mudah menyalin, mengecat, menghapus, dan memanipulasi gambar. Namun bagian ini sangat sulit bagi saya karena saya kesulitan menemukan ikon khusus yang mendukung setiap tindakan, pengaturan, makanan, dan emosi.

Catatan: Dalam cat saya menggunakan opsi kisi piksel untuk memudahkan saya membagi bagian menjadi piksel dan mengecatnya masing-masing.

Setelah menyelesaikan pekerjaan pada animasi dan ikon saya menomori ikon dalam kelompok dan mulai bekerja membuat bitmap ikon, untuk melakukannya saya menggunakan trik favorit saya di excel untuk membuat bitmap.

Saya telah membuat spreadsheet excel yang memungkinkan saya untuk "melukis" dengan sel-sel di area tertentu dan kemudian mengeluarkan bitmap dalam format yang saya inginkan.

Setelah semua ini selesai, itu hanya masalah mengatasi bitmap ke kode dan mulai menulis perangkat lunak.

Langkah 7: Perangkat Lunak: Final Code

Bagian utama dari proyek ini adalah perangkat lunak dan itu adalah hal yang memberikan karakter proyek ini.

Sekarang saya tidak akan membahas kode secara rinci di sini karena saya telah melakukannya dalam kode itu sendiri sehingga berharap untuk melihat banyak komentar di sana (beberapa dengan beberapa kesalahan ejaan yang mengerikan: D).

Kode ini menggunakan 3 perpustakaan tetapi semuanya datang dengan IDE Arduino sehingga tidak perlu mengunduh apa pun.

Saya menulis kode tanpa perpustakaan khusus untuk menghemat masalah menjaga kode tetap up to date dan menemukan perpustakaan itu di masa depan, inilah sebabnya kodenya panjang dan memiliki banyak fungsi yang berbeda.

Sekarang kode itu sendiri memiliki dua bagian utama: loop utama yang menangani semua aturan permainan dan perilaku "hewan peliharaan" dan rutinitas interupsi timer yang menangani pembaruan tampilan.

Pekerjaan saya pada kode masih belum selesai karena selalu ada hal-hal baru untuk ditambahkan dan diperbaiki di dalamnya, jadi saya akan memperbarui kode dari waktu ke waktu. Tetapi untuk saat ini kodenya dalam kondisi kerja dan berfitur lengkap.

Langkah 8: Anda Selesai! Apa selanjutnya?

Yay! Kita sudah selesai! atau kita?

Kami memiliki Tamagotchi yang berfungsi penuh dengan semua fungsi dasar tetapi mengapa berhenti di situ?

Ada banyak hal untuk ditambahkan dan diperbaiki dan terserah Anda untuk melakukannya. Jadi, ambil rintangan dan tingkatkan, ubah, dan bersenang-senanglah dengannya!

Dan jangan lupa letakkan di dek Anda dengan bangga dan pamerkan kreasi baru Anda.

P.S.

Jaga baik-baik dan jangan lupa untuk memberinya makan dari waktu ke waktu:)