Masaüstü Yapın Tamagotchi: 8 Adım (Resimlerle)

Masaüstü Yapın Tamagotchi: 8 Adım (Resimlerle)

İçindekiler:

Anonim

Bir gün işteyken masamın arkasında oturuyordum ve bir şeyler inşa etmek için bu garip bir ihtiyaç duydum, etrafa biraz baktıktan sonra bir LED matrisine göz kulak oldum ve kafamda bir fikir uyandırdı: "Ben bir TAMAGOTCHI YAPMALIYORUM".

Bu yüzden, bir Tamagotchi haltının ne olduğunu bilmeyen sizler için, wikipedia'dan biraz koparılmış:

"Tamagotchi (ち chi) っ ち ag Tamagocchi?), WiZ’li Akihiro Yokoi ve Bandai’nin Aki Maita’sı tarafından Japonya’da yaratılmış bir el tipi evcil hayvandır. İlk olarak 1996 yılında Japonya’da Bandai tarafından satılmıştır.”

Bu yüzden benim bu klasik oyuncağı benim almam, bir ekran için bir LED matrisine sahip bir masaüstü cihazına ve insanlara daha erişilebilir hale getirmek için beyinler için bir Arduino yapmak. Bununla birlikte, dünyanın ilk (bildiğim kadarıyla) masaüstü Tamagotchi'yi tasarlarken, inşa ederken ve programlarken katılın.

Gereçler:

Adım 1: Doğru Şeyleri Almak

Diğer tüm elektronik projeler gibi bazı temel araçlara ihtiyaç duyacaksınız:

1) Havya

2) Bazı lehim teli

3) Bir çift kesici

4) Bir çift iğne burun pensesi

İsteğe bağlı: Lehim hatalarını düzeltmek için bir miktar lehim örgüsü veya bir lehim pompası edinin

Elektronik parçalara göre parça listesi biraz daha uzun, işte almanız gerekenler:

1) İki 22pF kapaklı arduino bootloader + 16Mhz kristalli bir ATmega328P

* Çipi programlamak için bir arduino platformu veya bir FDTI adaptörü gibi bir şeye ihtiyacınız olacak

2) 4 x 74HC595 vardiya kayıtları

3) 2 x ULN2803 Darlington transistör dizisi

4) 1 x DS1302 RTC + 32.768kHz Kristal

5) 1 x 3V düğme pil tutucu + pil.

6) 4 x dik açılı butonlar

7) 1 x Peizzo Buzzer

8) 4 x 8x8 LED matris modülleri

9) 16 x 330Ohm dirençler (matrisiniz için değeri hesaplamanız gerekir)

10) 16 dişi pin başlığının 2 x satırı

11) 16 erkek pin başlığının 2 x sırası

12) 1 x 4 dişi başlık satırı (Programlama için)

13) 5 x 100nF kapağı

14) 1 x 10 uF başlık

15) 1 x 10K direnç

15) Güç girişi bağlantısı

16) 5V DC duvar siğil

17) Büyük bir panel parçası

18) Bağlantılar için bazı teller

Adım 2: Donanım Tarafı

Bu proje çoğunlukla yazılım odaklı olsa bile, yaşam kodunu yazmak ve hata ayıklamayı kolaylaştırmak için önce donanımı oluşturmamız gerekecek.

Donanım 2 ana bölümden oluşur: Mikrodenetleyici bölümü ve LED gösterge.

Mikrodenetleyici kısmı oldukça yalındır, bağımsız bir arduino (arduino önyükleyicili ATmega328)

bazı çevre birimleri (4 düğme, zil ve bir RTC), ama bütün düşünceleri yaptığı gibi en kritik kısım.

LED ekran kısmı biraz daha karmaşık ve lehim için biraz zaman alıyor. Bu devre 4 vardiya kaydından oluşur (74HC595), 2 darlington transistör dizisi (ULN2803) ve 4 8x8 LED matrisi.

LED göstergelerin çoğunda olduğu gibi, ekranın çoğaltılması da şaşırtıcı değil (bak, oldukça havalı bir konsepttir) çünkü 16x16 LED'leri ayrı ayrı kullanmak mikrodenetleyiciden 256 pin alacaktır ve bu çok aptalca.

Çoklama yaklaşımıyla bile, yine de sahip olmadığımız ekranı çalıştırmak için mikrodenetleyiciden 32 (16 satır + 16 sütun) pime ihtiyacımız olacak, bu nedenle çözüm bir G / Ç genişletmesi olarak vardiya kayıtlarını kullanmak, 4 8 bit kaydırma kayıtları bize 32 çıktı verir ve hepsini kontrol etmek için sadece 3 satır yeterlidir.

Fakat mesele burada bitmiyor çünkü vardiya kayıtları, 16 LED'in akımını (tam bir sıra yanıyorsa) tek bir pimde batırmayı kaldıramadığı için darlington transistör dizisinin yardımıyla bir el vermemiz gerekiyor. vardiya kayıtlarını kızaran büyük akımları kaldırabilecek bir tampon gibi davranacaktır.

Özetlemek gerekirse, ekranı kontrol etmek için 4 papatya dizimi vardiya yazıcısı kullanıyoruz, ilk 2 sıraları, diğer 2 sütunları darlington dizisi yardımıyla kullanıyor.

Bu projede hesaplanması gereken tek şey, LED sıralarını sürecek dirençlerin değeridir.

Formül çok basit ve böyle gider:

R = (Vsource - Vled) / Iled

Vsource 5V'tur, Vled matristeki tek bir LED'deki ileri voltajdır ve Iled aynı LED'in ileri akımıdır.

Bu konuda size yardımcı olmak için çevrimiçi hesaplayıcıları da kullanabilirsiniz.

Adım 3: Yapı Konsepti - LED Kurulu

İnşa etmeye başladığımda, bir dava kullanmadan temiz bir görünüm elde etmek istedim (doğru davayı bulmak bir kabustur), bu yüzden kullandım.

iki parçalı bir yapı yani LED matrisini tutan bir pano ve ikincisi tüm elektronik aksamlarla birlikte.

Bu şekilde öne doğru baktığınızda gördüğünüz tek şey LED ekranın kendisidir ve diğer tüm şeyler ekranın arkasına gizlenir.

LED matrisli ilk kart ikinci ekranın boyutunu belirleyecektir çünkü diğer kartı ekranın arkasına gizlemek istiyorsunuz. Bu yüzden matris tertibatını tahtaya yerleştirin, tahtanın nerede kesileceğini ve kesileceğini işaretleyin. İkinci kartı keserek ilk ile aynı boyuta getirin. Bu yapı tarzındaki hile aynı büyüklükteki proto-panoları kullanmak zorunda olduğu için, aynı büyüklükte panoları zımparalamak iyi bir fikirdir.

4 8x8 LED matrisi bulunduğundan, onları bir tane 16x16 LED matrisi elde etmek için birbirine bağlamak zorunda kaldım, bu oldukça basit ve onları birbirine bağlamak biraz zaman alıyor. Yapma şekliniz, yatay matrislerin sıralarını diğerine ve diğerlerine bağlayarak ve dikey matrislerin sütunlarını bağlayarak (Bağlantıları biraz ince tel sarma telleri ile yaptım).

Şimdi bu panoda kalan tek parça, panoları birbirine bağlayacak başlıkları bağlamaktır, bu konektörün yerleştirilmesine, ikinci panodaki anahtarların konumuna göre karar verilir. Anahtarlar, kartın yanlarında olacaktır, böylece konektörleri, kartın kenarına koyamazsınız, bu yüzden konektörler, kenardan yaklaşık 4 delik yerleştirilir.

Biri satırlar için diğeri sütunlar için iki bağlayıcı vardır.

Ve görünümü bitirmek için montajı gizlemek ve temiz bir görünüm elde etmek için matrisin üzerine bir sayfa beyaz kağıt koymanızı öneriyorum.

Kağıdı matrisin kenarlarına yapıştırdım, böylece ekran tutkalıya karşı güvende.

Adım 4: İnşaat Kavramı - Sürücü Kurulu

Şimdi sürücü kartı, alanın kısıtlı olmasından dolayı bu yapının en karmaşık kısmıdır ve gerçekten nasıl inşa edeceğinizi size söyleyemem çünkü her birinin kendi bina tarzı vardır.

Size söyleyebileceğim şey, düğmeler ve konektörler gibi temel bileşenlerin yerleştirilmesi. Şimdi düğmeler tahtanın yanlarında olmalı ve çoğu görüş açısı dışında olacak şekilde dik açılı olmalıdır, ancak yine de onlara basabilirsiniz.

Oradan iki kartı birleştirecek konektörleri yerleştirirsiniz, konektörler iyi ve sağlam bir bağlantı sağlamak için mümkün olduğunca kenara yakın olmalıdır, bu şekilde düğmeleri ilk önce kenara koyup oradan nereye karar vereceğinize karar vermelisiniz. bağlayıcıları yerleştirin.

not: Her iki karttaki konektörlerin mükemmel bir şekilde birleştiğinden ve kartların yanlarının hizalı olduğundan emin olmak oldukça önemlidir.

Bu kritik parçalardan sonra, gerisini doğru gördüğünüz gibi inşa etmekte özgürsünüz, ancak "denize girmeyen" parçaların bulunmadığından emin olun.

Örneğin, kablo grubu oluşturmayı ve bu gruptaki tüm parçaları, kablo bağlantı kolaylığı için birbirine yakın tutmanızı öneririm:

Sütun konektörü iki darlington yongasına ve iki kayma kaydına bağlanmalıdır, bu yüzden bu grubu birbirine yaklaştırmak mantıklıdır ve biraz da bu grupta ve burada bu grupta bulunan birkaç kabloyla kurtulmanın mümkün olduğunu düşünmek gerekir..

Ayrıca gelecekteki modlar için mikro denetleyici için bazı programlama başlıkları koyduğunuzdan emin olun.

Adım 5: Oyun Kuralları

Donanım bölümünü bitirdikten sonra kodu ve oyun mekaniğini düşünmenin zamanı geldi.

Bu benim için en zor kısımdı çünkü sıfırdan baktım ve hiçbir şekilde mükemmel olmayan kendi kurallarımı kendim yapmak zorunda kaldım.

Olduğu gibi oyun, sömürmek ve iyi yapmak için çok kolaydır ama bu ciddi bir oyun değil ve güzel bir küçük gadget olması gerekiyordu.

Böylece bu küçük sorumluluk reddi, oyun kuralları hakkında biraz konuşalım.

Hayvanın 5 temel istatistiği vardır: sağlık, kilo, mutluluk, açlık ve yaş.

Oyuncuların rolü bu istatistikleri 4 aksiyonla dengelemektir: evcil hayvanı besle, onunla oyna, temiz ve tıbbi bakım.

Her bir aksiyonun olumlu bir etkisi ve olumsuz bir etkisi vardır ve oyuncunun en iyi uzlaşmayı seçmek için çaba sarf etmesi gerekir.

Oyuncu, evcil hayvanı beslemeyi seçtiğinde 3 seçeneği vardır: ona bir et yemeği verin, ona bir meyve verin veya bir şekerleme verin.

Bir et yemeği en açlık noktalarını oluşturur ve ağırlığa çok şey ekler, bir meyve evcil hayvanların sağlığını artırır, ancak evcil hayvanların mutluluğunu düşürür ve şeker büyük bir mutluluk verir ama sağlığı düşürür ve evcil hayvanların ağırlığını arttırır.

Oyuncu, evcil hayvanla oynamayı seçtiğinde, bir Simon oyunları başlar ve oyuncunun mutluluğu ne kadar iyi yaptığına bağlı olarak, oyuncu statü yükselir, ancak oyuncu çok kötü bir şekilde yaparsa, mutluluk azalır.

Zaman zaman evcil hayvan tuvalete gidecektir ve oyuncunun ondan sonra temizlenmesi gerekir, oyuncu kaçırdığı her oyuncu evcil hayvanın sağlığını düşürür ve evcil hayvanı hasta etme şansını arttırır.

Ayrıca evcil hayvanın hastalanması için rastgele bir şans var, evcil hayvan yaşlı veya kirliyse bu şans daha yüksek. Her birinin kendine has olumsuz etkileri olan 3 hastalık düzeyi vardır. Oyuncu onu tedavi etmesi için evcil hayvana bir şans verebilir, ancak bu evcil hayvanların sağlığını düşürecektir (hiç kimse atış yapmak gibi değildir: D).

Ve en aciz olan kısım (benim için), evcil hayvanın 23: 00'te otomatik olarak uykuya dalması ve 8: 00'de uyanması, böylece gece boyunca ölmemesidir. Tabii ki bu kısmı beğeninize göre değiştirebilir ve evcil hayvan için yeni bir yatma zamanı ayarlayabilirsiniz.

Adım 6: Yazılım: Menüler ve Animasyonlar

İşte projenin en çok zaman alan kısmıyız, oyunun tüm özelliklerine ve durumlarına karar verdikten sonra oyunun tüm animasyonlarını, ayarlarını, eylemlerini ve durumlarını oluşturarak onları hayata geçirin.

Bu adım için iki programın bir kombinasyonunu kullandım: paint.net ve excel.

Paint'te tüm ikonları ve menü ekranlarını tek tek yarattım. Boyayı kullanmak çok yardımcı olur çünkü görüntüyü kolayca kopyalayabilir, boyayabilir, silebilir ve işleyebilirsiniz. Asla bu kısım benim için çok zor olmadı, çünkü her eylem, düzen, yemek ve duygular için özel ikonlar bulmakta zorlandım.

Not: Boyada, bir bölümü kolayca piksellere bölmeme ve her birini boyamama izin vermek için piksel ızgarası seçeneğini kullandım.

Animasyon ve ikonlar üzerinde çalışmayı bitirdikten sonra gruplardaki ikonları numaralandırdım ve ikonların bitmaplerini oluşturmaya çalıştım, bunu yapmak için en sevdiğim numarayı bitmap oluşturmak için excel'de kullandım.

Belirli bir alandaki hücrelerle "boyama" yapmama izin veren bir Excel tablosu oluşturdum ve ardından bitmap'i istediğim biçimde yayar.

Bütün bunlar yapıldıktan sonra, sadece bitmapleri koda girme ve yazılımı yazmaya başlama meselesi.

Adım 7: Yazılım: Son Kod

Bu projenin ana kısmı yazılımdır ve bu projeye karakterini veren şeydir.

Şimdi burada kodun ayrıntılarına girmeyeceğim, çünkü kodun kendisinde çok fazla yorum görmeyi umuyorum (bazıları korkunç yazım hatalarıyla: D).

Kod 3 kütüphaneyi kullanıyor ancak hepsi Arduino IDE ile birlikte geliyor, dolayısıyla herhangi bir indirme yapmanıza gerek kalmadı.

Kodu, güncel tutma ve gelecekte bu kütüphaneleri bulma zorluğundan kurtulmak için özel kütüphaneler olmadan yazdım.

bu yüzden kod uzun ve farklı fonksiyonlar varsa lotun değeri var.

Şimdi kendi kendine kod iki ana bölümden oluşuyor: tüm oyun kurallarını idare eden ana döngü ve "evcil hayvanlar" davranışını ve ekran güncellemesini idare eden bir zamanlayıcı kesme rutini.

Kod üzerindeki çalışmam hala bitmedi çünkü her zaman ekleyebileceğim ve geliştirebileceğim yeni şeyler olduğu için zaman zaman kodu güncelleyeceğim. Ama şu an için kod çalışma durumunda ve tam özellikli.

Adım 8: Tamamlandı! Sıradaki ne?

Yuppi! İşimiz bitti! ya biz?

Tamagotchi'nin tüm temel işlevleri olan tam çalışan bir tezgahımız var ama neden orada dursun?

Eklemek ve geliştirmek için çok şey var ve bunu yapmak size kalmış. O yüzden engelleri aşın ve kendinizi geliştirin, değiştirin ve eğlenin!

Güvertede gurur duyup yeni yarattıklarını göstermeyi unutmayın.

Not;

Ona iyi bakın ve zaman zaman beslemeyi unutmayın:)