Stwórz pulpit Tamagotchi: 8 kroków (ze zdjęciami)

Stwórz pulpit Tamagotchi: 8 kroków (ze zdjęciami)

Spisu treści:

Anonim

Pewnego dnia siedziałem za biurkiem w pracy i miałem dziwną potrzebę budowania czegoś, po tym jak rozejrzałem się trochę, dostrzegłem matrycę LED i to wywołało w mojej głowie pomysł: „I WANNA MAKE A TAMAGOTCHI”.

Więc dla tych z was, którzy nie wiedzą, co do cholery jest Tamagotchi, jest trochę urywków z wikipedii:

„Tamagotchi (た ま ご っ ち Tamagocchi?) To podręczny cyfrowy zwierzak, stworzony w Japonii przez Akihiro Yokoi z WiZ i Aki Maita z Bandai. Po raz pierwszy został sprzedany przez Bandai w 1996 roku w Japonii.”

Tak więc moje podejście do tej klasycznej zabawki polega na dołączeniu jej do gadżetu na pulpicie z matrycą LED do wyświetlacza i Arduino do mózgów, aby uczynić go bardziej dostępnym dla ludzi. Po tym wszystkim dołącz do mnie, projektując, budując i programując pierwszy na świecie (o ile wiem) pulpit Tamagotchi.

Kieszonkowe dzieci:

Krok 1: Uzyskiwanie właściwych rzeczy

Tak jak każdy inny projekt elektroniczny, będziesz musiał zdobyć podstawowe narzędzia:

1) Lutownica

2) Niektóre druty lutownicze

3) Para noży

4) Para szczypiec igłowych

Opcjonalnie: Zdobądź trochę oplotu lutowniczego lub pompę lutowniczą, aby naprawić błędy lutowania

Jeśli chodzi o elektronikę, lista części jest nieco dłuższa, oto co musisz uzyskać:

1) ATmega328P z bootloaderem arduino + kryształ 16Mhz z dwoma czapkami 22pF

* Będziesz potrzebował czegoś do zaprogramowania układu, jak również platformy arduino lub adaptera FDTI

2) 4 rejestry zmianowe 74HC595

3) 2 x tablica tranzystorów Darlington ULN2803

4) 1 x DS1302 RTC + 32,768 kHz Crystal

5) Uchwyt baterii pastylkowej 1 x 3 V + bateria.

6) 4 x przyciski pod kątem prostym

7) 1 x Brzęczyk Peizzo

8) Moduły matrycowe 4 x 8x8 LED

9) rezystory 16 x 330 Ohm (trzeba obliczyć wartość macierzy)

10) 2 x wiersz 16 kobiecych nagłówków pinów

11) 2 x rząd 16 męskich nagłówków pinów

12) 1 x rząd 4 żeńskich nagłówków (do programowania)

13) 5 x 100nF cap

14) 1 x 10uF cap

15) Rezystor 1 x 10K

15) Złącze gniazda zasilania

16) brodawki ścienne 5V DC

17) Duży kawałek protoboardu

18) Niektóre przewody do połączeń

Krok 2: Strona sprzętowa

Nawet jeśli ten projekt, jeśli jest głównie skoncentrowany na oprogramowaniu, musimy najpierw zbudować sprzęt, aby ułatwić pisanie kodu i debugowanie go.

Sprzęt składa się z 2 głównych części: części mikrokontrolera i wyświetlacza LED.

Część mikrokontrolera jest bardzo prosta, jest samodzielnym arduino (ATmega328 z bootloaderem arduino) z

niektóre urządzenia peryferyjne (4 przyciski, buzzer i RTC), ale jest to najbardziej krytyczna część, ponieważ robi wszystko, co myśli.

Część wyświetlacza LED jest nieco bardziej skomplikowana i lutowanie trwa trochę czasu. Obwód ten składa się z 4 rejestrów przesuwnych (74HC595), 2 macierze tranzystorów darlington (ULN2803) i 4 matryce 8x8 LED.

Jak większość wyświetlaczy LED nie jest niespodzianką, że wyświetlacz musi być multipleksowany (spójrz na to, że jest to całkiem fajna koncepcja), ponieważ jazda pojedynczymi diodami 16x16 spowoduje pobranie 256 mikroprocesorów z mikrokontrolera i to po prostu głupie.

Nawet przy podejściu multipleksowania nadal będziemy potrzebować 32 (16 wierszy + 16 kolumn) pinów z mikrokontrolera, aby sterować wyświetlaczem, którego ponownie nie mamy, więc rozwiązaniem jest użycie rejestrów przesuwnych jako rozszerzenia we / wy, 4 8 rejestry przesunięć bitowych dają nam 32 wyjścia, a do ich kontroli potrzeba tylko 3 linii.

Ale problemy nie kończą się tutaj, ponieważ rejestry zmianowe nie są w stanie obsłużyć prądu 16 diod LED (jeśli świeci pełny wiersz) na jednym pinie, więc musimy dać mu rękę przy pomocy tablicy tranzystorów darlington, która będzie działać jak bufor, który może obsługiwać duże prądy, które mogą smażyć rejestry zmianowe.

Podsumowując, używamy 4 rejestrów przesuwnych połączonych łańcuchowo, aby sterować wyświetlaniem, pierwsze 2 napędzają rzędy, a pozostałe 2 sterują kolumnami za pomocą macierzy darlington.

Jedyne, co należy obliczyć w tym projekcie, to wartość rezystorów, które będą napędzać rzędy diod LED.

Formuła jest bardzo prosta i wygląda tak:

R = (Vsource - Vled) / Iled

Źródło to 5V, Vled to napięcie przewodzenia na pojedynczej diodzie LED w matrycy, a Iled to prąd przewodzenia tej samej diody LED.

Możesz także skorzystać z kalkulatorów online, aby Ci w tym pomóc.

Krok 3: Koncepcja budowy - płyta LED

Kiedy zacząłem budować, chciałem uzyskać czysty wygląd bez użycia przypadku (znalezienie odpowiedniego przypadku to koszmar), więc poszedłem po

dwuczęściowa konstrukcja, tj. jedna płyta, która trzyma matrycę LED, a druga z całą elektroniką.

W ten sposób jedyną rzeczą, którą widzisz z przodu, jest sam wyświetlacz LED, a wszystkie inne rzeczy są ukryte za wyświetlaczem.

Pierwsza płyta z matrycą LED będzie dyktować rozmiar drugiego, ponieważ chcesz ukryć drugą płytę za wyświetlaczem. Tak więc umieść zespół matrycy na płycie, zaznacz, gdzie wyciąć i przeciąć deskę. Wytnij drugą planszę, tak aby miała taki sam rozmiar jak pierwszy. Sztuką związaną z tym stylem budynku jest posiadanie proto-desek o tym samym rozmiarze, dlatego dobrym pomysłem jest szlifowanie desek, aby uzyskać ten sam rozmiar.

Ponieważ miałem 4 matryce 8x8 LED, musiałem je połączyć, aby uzyskać jedną matrycę LED 16x16, co jest dość proste i wymaga trochę czasu, aby je połączyć. Sposób, w jaki to robisz, polega na łączeniu rzędów poziomych macierzy na i innych oraz łączeniu kolumn pionowych matryc (wykonałem połączenia z niektórymi cienkimi drutami do owijania drutem).

Teraz jedyną częścią, która pozostała z tą płytą, jest łączenie nagłówków, które łączą się z płytami, rozmieszczenie tego złącza zależy od położenia przełączników na drugiej płycie. Przełączniki będą po bokach płyty, więc nie można umieścić złączy na krawędzi płyty, dlatego złącza są umieszczone około 4 otworów od krawędzi.

Istnieją dwa złącza jedno dla wierszy i dwa dla kolumn.

Aby zakończyć wygląd, zalecam umieszczenie arkusza białego papieru na matrycy, aby ukryć zespół i uzyskać czysty wygląd.

Przykleiłem papier do krawędzi matrycy, aby wyświetlacz był bezpieczny od kleju.

Krok 4: Koncepcja budowy - Tablica kierowcy

Teraz karta kierowcy jest najbardziej złożoną częścią tej kompilacji, ponieważ ogranicza przestrzeń i nie mogę powiedzieć, jak ją zbudować, ponieważ każdy ma swój styl budowania.

To, co mogę ci powiedzieć, to rozmieszczenie kluczowych komponentów, takich jak przyciski i złącza. Teraz przyciski powinny znajdować się po bokach planszy, a większość z nich powinna być ustawiona pod kątem prostym, tak aby były poza zasięgiem wzroku, ale nadal można było je naciskać.

Stamtąd umieszczasz złącza, które łączą dwie deski, złącza powinny być jak najbliżej krawędzi, aby zapewnić dobre i mocne połączenie, w ten sposób umieszczasz przyciski najpierw na krawędzi, a stamtąd decydujesz, gdzie połóż złącza.

uwaga: To bardzo ważne, aby upewnić się, że złącza na obu płytach łączą się ze sobą idealnie, a boki desek są wyrównane.

Po tych krytycznych częściach możesz zbudować resztę, jak widzisz, ale upewnij się, że nie ma części, które przechodzą „za burtę”.

Polecam tworzenie grup i utrzymywanie wszystkich części w tej grupie blisko siebie, aby ułatwić podłączenie, na przykład:

Łącznik kolumnowy powinien być podłączony do dwóch układów Darlington i dwóch rejestrów zmianowych, więc sensowne jest umieszczenie tej wiązki blisko siebie i przy odrobinie myślenia można uciec z kilkoma przewodami tu i tam w tej grupie..

Upewnij się także, że dla przyszłych modyfikacji wprowadzono kilka nagłówków programowania dla mikrokontrolera.

Krok 5: Zasady gry

Po zakończeniu części sprzętowej czas zastanowić się nad kodem i mechaniką gry.

To była dla mnie najtrudniejsza część, ponieważ patrzyłem od zera i musiałem wymyślić własne zasady, które nie są idealne w żaden sposób.

Gra w obecnej postaci jest bardzo łatwa do wykorzystania i dobrze się sprawdza, ale nie jest to poważna gra i ma być fajnym małym gadżetem.

Tak więc z tym małym zastrzeżeniem z drogi porozmawiajmy trochę o zasadach gry.

Zwierzę ma 5 podstawowych statystyk: zdrowie, waga, szczęście, głód i wiek.

Rola graczy polega na zrównoważeniu tych statystyk o 4 akcje, które ma: karmić zwierzę, bawić się z nim, czyścić po nim i opiekę medyczną.

Każda akcja ma pozytywny efekt i negatywny efekt, a gracz musi podjąć wysiłek, aby wybrać najlepszy kompromis.

Kiedy gracz zdecyduje się nakarmić zwierzę, ma 3 opcje: daj mu posiłek mięsny, daj mu owoc lub słodycze.

Mączka mięsna wynagradza najwięcej punktów głodu i dodaje dużo wagi, owoc podnosi zdrowie zwierząt, ale obniża szczęście zwierząt, a cukierek daje duży wzrost szczęścia, ale obniża zdrowie i podnosi wagę zwierząt.

Gdy gracz wybierze grę ze zwierzakiem, zaczynają się gry Simona iw zależności od tego, jak dobrze gracz podniósł statystyki szczęścia, ale jeśli gracz zrobił bardzo źle, szczęście spadnie.

Od czasu do czasu zwierzę idzie do toalety, a gracz musi po nim posprzątać, każda tura chybienie gracza obniża zdrowie zwierząt i zwiększa szansę, że zwierzę będzie chore.

Istnieje również przypadkowa szansa, że ​​zwierzę zachoruje, szansa ta jest wyższa, jeśli zwierzę jest stare lub brudne. Istnieją 3 poziomy choroby, każda z własnymi negatywnymi skutkami. Gracz może oddać strzał zwierzęciu, aby go wyleczyć, ale obniży to zdrowie zwierząt (nikt nie lubi strzelać: D).

A najbardziej bezsilną częścią (dla mnie) jest to, że zwierzę idzie automatycznie spać o 23:00 i budzi się o 8:00, aby nie zginęło w nocy. Oczywiście możesz zmienić tę część dla swoich upodobań i ustawić nową porę snu dla zwierzaka.

Krok 6: Oprogramowanie: menu i animacje

Tutaj zajmujemy się najbardziej czasochłonną częścią projektu, po podjęciu decyzji o wszystkich funkcjach i stanach gry nadszedł czas, aby ożywić je, tworząc wszystkie animacje, ustawienia, działania i stany gry.

W tym kroku użyłem kombinacji dwóch programów: paint.net i excel.

W farbie stworzyłem kolejno wszystkie ikony i ekrany menu. Używanie farby jest wielką pomocą, ponieważ możesz łatwo kopiować, malować, usuwać i manipulować obrazem. Mimo to ta część była dla mnie bardzo trudna, ponieważ miałem trudności z wymyślaniem niestandardowych ikon, które wyróżniają się przy każdej akcji, ustawieniu, jedzeniu i emocjach.

Uwaga: W farbie użyłem opcji siatki pikseli, aby umożliwić mi łatwe podzielenie sekcji na piksele i pomalowanie każdej z nich.

Po zakończeniu pracy nad animacjami i ikonami ponumerowałem ikony w grupach i zacząłem tworzyć mapę bitową ikon, aby to zrobić, użyłem mojej ulubionej sztuczki w programie Excel, aby utworzyć bitmapę.

Stworzyłem arkusz kalkulacyjny Excel, który pozwala mi „malować” komórki w określonym obszarze, a następnie wypluwa bitmapę w formacie, który chcę.

Po tym wszystkim jest to tylko kwestia skopiowania bitmap do kodu i rozpoczęcia pisania oprogramowania.

Krok 7: Oprogramowanie: kod końcowy

Główną częścią tego projektu jest oprogramowanie, które nadaje temu projektowi charakter.

Teraz nie omówię tutaj szczegółowo kodu, ponieważ zrobiłem to w samym kodzie, więc spodziewaj się wielu komentarzy (niektóre z okropnymi błędami ortograficznymi: D).

Kod wykorzystuje 3 biblioteki, ale wszystkie pochodzą z Arduino IDE, więc nie ma potrzeby pobierania żadnych.

Napisałem kod bez żadnych specjalnych bibliotek, aby zaoszczędzić na kłopotach z aktualizowaniem kodu i znajdowaniem tych bibliotek w przyszłości, dlatego kod jest długi i ma wiele różnych funkcji.

Teraz sam kod ma dwie główne części: główną pętlę, która obsługuje wszystkie reguły gry i zachowanie „zwierząt domowych” oraz procedurę przerwania timera, która obsługuje aktualizację wyświetlacza.

Moja praca nad kodem nadal nie jest zakończona, ponieważ zawsze są w nim nowe rzeczy do dodania i ulepszenia, więc od czasu do czasu będę aktualizować kod. Ale na razie kod działa w pełni i jest w pełni funkcjonalny.

Krok 8: Gotowe! Co następne?

Tak! Skończyliśmy! czy my?

Mamy w pełni działającą ławkę Tamagotchi ze wszystkimi podstawowymi funkcjami, ale po co się tam zatrzymywać?

Jest wiele rzeczy do dodania i ulepszenia, a do ciebie należy to zrobić. Więc bierzcie się za przeszkody i poprawiajcie, zmieniajcie i bawcie się z tym!

I nie zapomnij z dumą umieścić na swojej talii i pochwal się nowym tworem.

P.S.

Zadbaj o to i nie zapomnij podawać go od czasu do czasu:)