Padaryti darbalaukį Tamagotchi: 8 žingsniai (su nuotraukomis)

Padaryti darbalaukį Tamagotchi: 8 žingsniai (su nuotraukomis)

Turinys:

Anonim

Vieną dieną aš sėdėjau už savo stalo darbe, ir aš gavau tą keistą poreikį kažką statyti, po to, kai žiūriu šiek tiek, aš turėjau savo akis į LED matricą ir tai sukėlė mano galvoje idėją: "Aš WANNA MAKE TAMAGOTCHI".

Taigi tiems iš jūsų, kurie nežino, kas gi yra „Tamagotchi“, čia yra šiek tiek „snip-it“ iš „wikipedia“:

"Tamagotchi (た ま ご っ ち Tamagocchi?) Yra rankinis skaitmeninis naminis gyvūnėlis, kurį Japonijoje sukūrė WiZ Akihiro Yokoi ir Bandai Aki Maita, pirmą kartą Bandai pardavė 1996 metais Japonijoje."

Taigi mano klasikinis žaislas - tai darbalaukio įtaisas su LED matrica ekranui ir „Arduino“ smegenims, kad jis taptų prieinamesnis žmonėms. Kartu su manimi prisijungkite prie manęs, nes mes projektuojame, statome ir programuojame pirmąjį Pasaulio (kiek aš žinau) darbalaukį Tamagotchi.

Prekės:

1 žingsnis: teisingų daiktų gavimas

Taigi, kaip ir bet kuris kitas elektronikos projektas, turėsite gauti kai kuriuos pagrindinius įrankius:

1) Lituoklis

2) Kai kurie lydmetaliai

3) pjovimo pora

4) Adatos nosies replės

Neprivaloma: gaukite lydmetalį arba lydmetalį, kad būtų galima išspręsti litavimo klaidas

Kalbant apie elektroniką, detalių sąrašas yra šiek tiek ilgesnis, todėl jums reikia gauti:

1) ATmega328P su arduino įkrovikliu + 16 MHz kristalu su dviem 22pF dangteliais

* Jums reikės ką nors, kad programuotumėte lustą taip pat kaip arduino platformą arba FDTI adapterį

2) 4 x 74HC595 pamainų registrai

3) 2 x ULN2803 Darlington tranzistorių masyvas

4) 1 x DS1302 RTC + 32.768kHz Crystal

5) 1 x 3V monetų elementų laikiklis + baterija.

6) 4 x stačiakampiai mygtukai

7) 1 x Peizzo Buzzer

8) 4 x 8x8 LED matricos moduliai

9) 16 x 330Ohm rezistoriai (jums reikės apskaičiuoti matricos vertę)

10) 2 x eilutė iš 16 moterų kojelių antgalių

11) 2 x 16 eilių vyrų kaiščių antraštės

12) 1 x 4 moterų antraščių eilutė (programavimui)

13) 5 x 100nF dangtelis

14) 1 x 10uF dangtelis

15) 1 x 10K rezistorius

15) Maitinimo lizdo jungtis

16) 5V DC sienos karpos

17) Didelis protoboard gabalas

18) Kai kurie laidai prijungti

2 žingsnis: Aparatūros pusė

Net jei šis projektas, jei daugiausia programinė įranga orientuota, turėsime pirmiausia sukurti aparatūrą, kad gyvenimą rašant kodą būtų lengviau.

Techninę įrangą sudaro 2 pagrindinės dalys: mikrokontrolerio dalis ir LED ekranas.

Mikrokontrolerio dalis yra labai tiesiai į priekį, tai savarankiškas arduino (ATmega328 su arduino įkrovikliu) su

kai kurie periferiniai įrenginiai (4 mygtukai, signalizatorius ir RTC), bet tai yra pati svarbiausia dalis, kaip ir visa tai.

Šviesos diodų ekrano dalis yra šiek tiek sudėtingesnė ir užtrunka šiek tiek laiko. Šią grandinę sudaro 4 perjungimo registrai (74HC595), 2 darlingtono tranzistorių matricos (ULN2803) ir 4 8x8 LED matricos.

Kaip ir daugelis LED ekranų, nenuostabu, kad ekranas turi būti multipleksuotas (žiūrėkite jį gana vėsioje koncepcijoje), nes vairuojant 16x16 šviesos diodų atskirai, iš mikrokontrolerio bus 256 kaiščiai ir tai tiesiog kvaila.

Net ir naudojant multipleksavimo metodą, vis tiek reikės 32 (16 eilučių + 16 stulpelių) smeigtukų iš mikrokontrolerio, kad būtų rodomas ekranas, kurio dar neturime, todėl sprendimas yra naudoti perjungimo registrus kaip I / O išplėtimą, 4 8 bitų perkėlimo registrai suteikia mums 32 išėjimų ir užtrunka tik 3 eilutes.

Tačiau problemos čia nesibaigia, nes perjungimo registrai negali valdyti 16 LED šviesų srovės (jei visa eilutė yra apšviesta) vienoje kaištyje, todėl mums reikia suteikti jai ranką su darlingtono tranzistorių masyvo pagalba. veiks kaip buferis, kuris gali dirbti su didelėmis srovėmis, kurios gali pakepti pamainų registrus.

Taigi, norėdami atkurti, mes naudojame keturis grandininius perjungimo registrus, kad valdytume ekraną, pirmieji 2 vairuoja eilutes, o kiti 2 vairuoja stulpelius darlingtono masyvo pagalba.

Vienintelis dalykas, kurį reikia apskaičiuoti šiame projekte, yra rezistorių, kurie važiuos LED eilutes, vertė.

Formulė labai paprasta ir panaši į:

R = (Vsource - Vled) / Iled

Vsource yra 5V, Vled yra priekinė įtampa viename LED matricoje ir Iled yra tos pačios LED priekinė srovė.

Taip pat galite naudoti internetinius skaičiuotuvus, kad padėtų jums tai padaryti.

3 žingsnis: Statybos koncepcija - LED plokštė

Kai pradėjau statyti, norėjau gauti švarią išvaizdą nenaudojant atvejo (tinkamo atvejo suradimas yra košmaras), todėl nuėjau

dviejų dalių konstrukcija, t. y. viena plokštė, turinti LED matricą ir antroji su visa elektronika.

Tokiu būdu vienintelis dalykas, kurį matote, kai žiūrite į priekį, yra LED ekranas ir visi kiti dalykai paslėpti už ekrano.

Pirmoji plokštė su LED matrica diktuoja antrojo dydžio dydį, nes norite paslėpti kitą plokštę už ekrano. Taigi įdėkite matricos rinkinį ant lentos, pažymėkite, kur supjaustyti ir supjaustyti lentą. Iškirpkite antrą lentą, kad jis būtų toks pats, kaip ir pirmasis. Šio pastato stiliaus gudrybė yra turėti tokio paties dydžio proto plokštes, todėl gerą idėją šlifuoti lentas, kad jos būtų vienodo dydžio.

Kadangi aš turėjau 4 8x8 LED matricas, turėjau juos sujungti, kad gautumėte vieną 16x16 LED matricą, kuri yra gana paprasta ir šiek tiek laiko prijungti juos kartu. Tai, kaip jūs tai darote, yra horizontalių matricų eilių sujungimas su ir kitomis, o vertikalių matricų stulpelių sujungimas (aš sujungiau kai kuriuos plonus vielos vyniojimo laidus).

Dabar vienintelė dalis, kuri paliekama šiai lentai, jungia antraštes, kurios sujungs į lentas, šio jungties išdėstymas sprendžiamas per antrosios plokštės jungiklių padėtį. Jungikliai bus plokštės šonuose, todėl negalėsite įkišti jungčių prie lentos krašto, todėl jungtys yra išdėstytos maždaug 4 skylėse nuo krašto.

Yra dvi jungtys viena eilutėms ir kitos - stulpeliams.

Ir norėdami užbaigti išvaizdą, rekomenduojame ant matricos įdėti baltą popieriaus lapą, kad paslėpčiau surinkimą ir išvalytumėte.

Priklijuoju popierių prie matricos kraštų, kad ekranas būtų saugus nuo klijų.

4 etapas: statybos koncepcija - vairuotojų valdyba

Dabar vairuotojo lenta yra sudėtingiausia šio pastato dalis dėl erdvės suvaržymų ir aš tikrai negaliu jums pasakyti, kaip jį statyti, nes kiekvienas turi savo pastato stilių.

Ką galiu jums pasakyti, yra pagrindinių komponentų, tokių kaip mygtukai ir jungtys, išdėstymas. Dabar mygtukai turėtų būti lentos šonuose ir labiausiai būti stačiu kampu, kad jie būtų nepastebėti, bet vis tiek galite juos spausti.

Iš ten jūs įdėsite jungtis, kurios sujungs dvi lentas, jungtys turi būti kuo arčiau krašto, kad būtų užtikrintas geras ir tvirtas ryšys. įkiškite jungtis.

Pastaba: gana svarbu įsitikinti, kad abiejų plokščių jungtys puikiai susilieja, o plokščių kraštai yra lygūs.

Pasibaigus šioms kritinėms dalims, jūs galite laisvai statyti poilsį, kaip matote teisingai, bet įsitikinkite, kad nėra jokių dalių, kurios būtų „už borto“.

Rekomenduosiu statyti grupes ir išlaikyti visas tos grupės dalis artimas viena kitai, kad būtų lengviau laidus, pavyzdžiui:

Stulpelio jungtis turi būti prijungta prie dviejų „Darlington“ žetonų ir dviejų pamainų registrų, todėl tikslinga, kad ši kekė būtų artima viena kitai ir šiek tiek galvoti, kad čia ir ten galima išeiti tik keliais laidais.

Taip pat įsitikinkite, kad kai kuriuos programavimo antraštes, skirtas mikroprocesoriui, galite naudoti ateityje.

5 veiksmas: žaidimo taisyklės

Baigę techninės įrangos dalį laiko galvoti apie kodą ir žaidimo mechaniką.

Tai buvo man sunkiausia dalis, nes žiūriu nuo nulio ir turėjau sudaryti savo taisykles, kurios jokiu būdu nėra tobulos.

Žaidimas, kaip jis yra, yra labai lengva išnaudoti ir gerai atlikti, tačiau tai nėra rimtas žaidimas, o tai yra vėsioje mažoje programėlėje.

Taigi su šia maža atsakomybės atsisakymo priemone galima šiek tiek kalbėti apie žaidimo taisykles.

Gyvūnui yra 5 pagrindiniai statistiniai duomenys: sveikata, svoris, laimė, badas ir amžius.

Žaidėjų vaidmuo yra subalansuoti šią statistiką 4 veiksmais, kuriuos jis turi: maitinti naminį gyvūnėlį, žaisti su juo, valyti po jo ir medicininę priežiūrą.

Kiekvienas veiksmas turi teigiamą poveikį ir neigiamą poveikį, o žaidėjas turi stengtis pasirinkti geriausią kompromisą.

Kai žaidėjas pasirenka maitinti naminį gyvūnėlį, jis turi 3 variantus: duokite jam mėsos miltus, duokite jam vaisių ar saldainių.

Mėsos miltai sudaro daugiausiai bado taškų ir prideda daug svorio, vaisiai padidina augintinių sveikatą, tačiau sumažina naminių gyvūnų laimę ir saldainiai suteikia didelę laimę, bet mažina sveikatą ir padidina naminių gyvūnėlių svorį.

Kai žaidėjas pasirenka žaisti su augintiniu, prasideda Simono žaidimai ir, priklausomai nuo to, kaip gerai žaidėjas padarė laimės statą, tačiau jei žaidėjas labai blogai elgėsi, laimė sumažės.

Kartais gyvūnas nueis į tualetą, o žaidėjas turi išvalyti po jo, kiekvienas turnas, kurio žaidėjas praleidžia, sumažina naminių gyvūnų sveikatą ir kelia galimybę susirgti naminiais gyvūnais.

Taip pat yra atsitiktinė tikimybė, kad gyvūnas susirgus, ši galimybė yra didesnė, jei gyvūnas yra senas ar nešvarus. Yra 3 ligos lygiai, kurių kiekvienas turi neigiamą poveikį. Žaidėjas gali leisti gyvūnui išgydyti, bet tai sumažins naminių gyvūnų sveikatą (niekas nemėgsta fotografuoti: D).

Ir beprasmiškiausia dalis (man) yra ta, kad naminis gyvūnas automatiškai užmigsta 23.00 val. Ir atsibunda 8.00 val. Žinoma, jūs galite pakeisti šią dalį savo skoniui ir nustatyti naują miegą.

6 veiksmas: programinė įranga: meniu ir animacija

Čia mes esame labiausiai laiko reikalaujančioje projekto dalyje, priėmus sprendimą dėl visų žaidimo savybių ir būsenų, laikas atnešti juos į gyvenimą, sukuriant visas žaidimo animacijas, nustatymus, veiksmus ir būsenas.

Šiame etape aš naudoju dvi programas: paint.net ir excel.

Dažuose aš sukūriau visas piktogramas ir meniu ekranus po vieną. Dažų naudojimas yra puiki pagalba, nes galite lengvai kopijuoti, dažyti, ištrinti ir manipuliuoti vaizdu. Niekada mažiau ši dalis man buvo labai sunki, nes turėjau sunku ateiti su pasirinktomis piktogramomis, kurios atsistoja už kiekvieną veiksmą, nustatymą, maistą ir emocijas.

Pastaba: dažuose naudoju pikselių tinklelio parinktį, kad galėčiau lengvai suskirstyti skyrių į pikselius ir dažyti kiekvieną.

Baigę darbą su animacijomis ir piktogramomis, aš sunumeravau piktogramas grupėse ir pradėjau kurti piktogramų bitmap, kad tai padarytumėte naudodamas savo mėgstamą gudrybę excel'e, kad sukurtume bitmap.

Aš sukūriau „Excel“ skaičiuoklę, leidžiančią „dažyti“ su tam tikros srities ląstelėmis, o tada jis išspaudžia bitmap tą formatą, kurį noriu.

Po to visa tai padaryta, tai tik sprendžiant bitų žemėlapius į kodą ir pradedant rašyti programinę įrangą.

7 veiksmas: programinė įranga: galutinis kodas

Pagrindinė šio projekto dalis yra programinė įranga ir tai yra dalykas, suteikiantis šiam projektui charakterį.

Dabar aš nebesidomsiu kodo išsamiai čia, nes aš tai padariau pačiame kode, todėl tikiuosi, kad ten bus daug komentarų (kai kurie su baisiomis rašybos klaidomis: D).

Kodas naudoja 3 bibliotekas, bet visi jie yra su „Arduino IDE“, todėl nereikia jų atsisiųsti.

Užrašiau kodą be jokių specialių bibliotekų, kad būtų išsaugota problema, kad kodą būtų galima atnaujinti ir surasti šias bibliotekas ateityje.

tai kodėl kodas yra ilgas ir turi daug, jei skirtingos funkcijos.

Dabar pats jo kodas turi dvi pagrindines dalis: pagrindinę kilpą, kuri tvarko visas žaidimo taisykles ir „naminių gyvūnėlių“ elgesį bei laikmačio pertraukimo tvarką, kuri tvarko ekrano atnaujinimą.

Mano darbas su kodu vis dar nebaigtas, nes visada yra naujų dalykų, kuriuos reikia pridėti ir patobulinti, taigi kartais atnaujinsiu kodą. Bet dabar kodas yra jo darbo būsenoje ir pilnai matomas.

8 žingsnis. Kas toliau?

Valio! Mes baigėme! ar mes?

Mes turime pilnai veikiančią „Tamagotchi“ stendą su visomis pagrindinėmis funkcijomis, bet kodėl ten sustoti?

Yra daug dalykų, kuriuos reikia pridėti ir patobulinti. Taigi imkite kliūtis ir tobulinkite, keiskite ir smagiai su juo!

Ir nepamirškite pasididžiavti savo deniu ir parodyti savo naują kūrinį.

P.S.

Rūpinkitės jais ir nepamirškite ją maitinti kartais:)