Gumawa ng Desktop Tamagotchi: 8 Mga Hakbang (na may Mga Larawan)

Gumawa ng Desktop Tamagotchi: 8 Mga Hakbang (na may Mga Larawan)

Talaan ng mga Nilalaman:

Anonim

Isang araw ay nakaupo ako sa likod ng aking mesa sa trabaho at nakuha ko ang kakaibang pangangailangan na magtayo ng isang bagay, pagkatapos na tumingin sa paligid para sa isang bit Nakakuha ko ang aking mata sa isang LED matrix at na sparked isang ideya sa aking ulo: "I WANNA GUMAGAWA NG TAMAGOTCHI".

Kaya para sa mga mo na hindi alam kung ano ang ano ba ay isang Tamagotchi dito ay isang maliit na snip-ito mula sa wikipedia:

"Ang Tamagotchi (た ま ご っ ち Tamagocchi?) Ay isang handheld digital na alagang hayop, na nilikha sa Japan ni Akihiro Yokoi ng WiZ at Aki Maita ng Bandai, na unang ibinebenta ni Bandai noong 1996 sa Japan.

Kaya ang pagkuha ko sa klasikong laruan na ito ay gawin ito sa isang gadget na may isang LED matrix para sa isang display, at isang Arduino para sa talino upang gawing mas madaling makuha ang mga tao. Gamit ang sinabi na sumali sa akin habang kami ay nagtatayo, nagtatayo at nag-program sa unang World (Bilang malayo alam ko) desktop Tamagotchi.

Mga Kagamitan:

Hakbang 1: Pagkuha ng Tamang Bagay-bagay

Kaya tulad ng anumang iba pang proyekto sa elektronika kakailanganin mong makakuha ng ilang mga pangunahing tool:

1) Paghihinang Iron

2) Ang ilang mga solder wire

3) Ang isang pares ng mga cutter

4) Isang pares ng karayom ​​na pang-ilong na pang-ilong

Opsyonal: Kumuha ng ilang panghinang na tirador o isang pump ng panghinang upang ayusin ang mga pagkakamay na panghinang

Tulad ng para sa electronics ang mga bahagi ay nakalista ng kaunti na, narito ang kailangan mong makuha:

1) Isang ATmega328P may arduino bootloader + 16Mhz kristal na may dalawang 22pF takip

* Kakailanganin mo ng isang bagay na programa ang maliit na tilad pati na rin ang isang arduino platform o isang adaptor ng FDTI

2) 4 x 74HC595 shift registers

3) 2 x ULN2803 Darlington transistor array

4) 1 x DS1302 RTC + 32.768kHz Crystal

5) 1 x 3V coin cell battery holder + ang baterya.

6) 4 x right angled push buttons

7) 1 x Peizzo Buzzer

8) 4 x 8x8 LED matrix modules

9) 16 x 330Ohm resistors (kakailanganin mong kalkulahin ang halaga para sa iyong matris)

10) 2 x row of 16 female pin headers

11) 2 x row of 16 male pin headers

12) 1 x row of 4 female headers (Para sa programming)

13) 5 x 100nF cap

14) 1 x 10uF cap

15) 1 x 10K risistor

15) Power jack connector

16) 5V DC wall wart

17) Ang isang malaking piraso ng protoboard

18) Ang ilang mga wires para sa mga koneksyon

Hakbang 2: Ang Hardware Side

Kahit na kung ang proyektong ito kung karamihan ay nakatuon sa software ay kailangan namin na bumuo ng hardware unang upang gumawa ng code sa pagsulat ng buhay at pag-debug ito nang mas madali.

Binubuo ang hardware ng 2 pangunahing bahagi: Ang bahagi ng microcontroller at ang LED display.

Ang bahagi ng microcontroller ay napaka-tuwid forward, ito ay isang standalone arduino (ATmega328 kasama ang arduino bootloader) kasama

ang ilang mga peripheral (4 na mga pindutan, isang buzzer at isang RTC), ngunit ito ang pinaka-kritikal na bahagi dahil ginagawa nito ang lahat ng pag-iisip.

Ang bahagi ng LED display ay medyo mas kumplikado at tumatagal ng ilang oras upang maghinang. Ang circuit na ito ay binubuo ng 4 shift registers (74HC595), 2 darlington transistors arrays (ULN2803) at 4 8x8 LED matrices.

Tulad ng karamihan sa mga LED ay nagpapakita na ito ay walang sorpresa na ang display ay kailangang multiplexed (tingnan ito ito ay isang medyo cool na konsepto) dahil sa pagmamaneho 16x16 LEDs isa-isa ay dadalhin 256 Pins mula sa microcontroller at iyan ay lamang ulok.

Kahit na may multiplexing diskarte kailangan pa rin namin 32 (16 mga hilera + 16 haligi) Pins mula sa microcontroller upang himukin ang display na muli hindi namin ay may, kaya ang solusyon ay ang paggamit shift shift bilang I / O expansion, 4 8 bit shift registers bigyan kami ng 32 output at ito ay tumatagal ng 3 linya upang kontrolin ang lahat ng mga ito.

Ngunit ang mga problema ay hindi nagtatapos dito dahil ang shift registers ay hindi maaaring panghawakan ang paglubog sa kasalukuyang ng 16 LEDs (kung ang isang buong hilera ay naiilawan) sa isang pin kaya kailangan namin upang bigyan ito ng isang kamay sa tulong ng darlington transistor array na ay kumikilos tulad ng isang buffer na maaaring hawakan ang malaking alon na maaaring magprito ng shift registers.

Kaya sa recap gumagamit kami ng 4 daisy chained shift registers upang kontrolin ang display, ang unang 2 drive ang mga hilera at ang iba pang mga 2 drive ang mga haligi sa tulong ng darlington array.

Ang tanging bagay na kailangang kalkulahin sa proyektong ito ay ang halaga ng resistors na humimok ng mga LED row.

Ang formula ay napaka-simple at napupunta tulad nito:

R = (Vsource - Vled) / Iled

Vsource ay 5V, Vled ay ang pasulong boltahe sa isang solong LED sa matrix at Iled ay ang pasulong kasalukuyang ng parehong LED.

Maaari ka ring gumamit ng mga online calculators upang makatulong sa iyo sa ito.

Hakbang 3: Ang Konstruksiyon Konsepto - LED Board

Kapag sinimulan ko ang build gusto kong makakuha ng isang malinis na hitsura nang hindi gumagamit ng isang kaso (paghahanap ng tamang kaso ay isang bangungot) kaya nagpunta ako para sa

isang dalawang piraso konstruksiyon i.e. isang board na humahawak ng LED matris at ang pangalawang isa sa lahat ng electronics.

Sa ganitong paraan ang tanging bagay na nakikita mo kapag tinitingnan mo sa harap ay ang LED display mismo at lahat ng iba pang mga bagay ay nakatago sa likod ng display.

Ang unang board na may LED matrix ay magdikta sa laki ng ikalawang isa dahil gusto mong itago ang iba pang mga board sa likod ng display. Kaya ilagay ang matris pagpupulong sa board, markahan kung saan i-cut at i-cut ang board. Gupitin ang ikalawang board upang ito ay magkapareho ang sukat ng una. Ang lansihin sa estilo ng gusali na ito ay kailangang magkaroon ng mga proto-boards ng parehong laki, kaya magandang ideya na buhisan ang mga board upang makuha ang mga ito sa parehong laki.

Dahil ako ay may 4 8x8 LED matrices ako ay upang ikonekta ang mga ito nang sama-sama upang makakuha ng isang 16x16 LED matris, na medyo simple at tumagal lamang ng isang piraso ng oras upang ikonekta ang mga ito nang sama-sama. Ang paraan ng iyong gawin ito ay sa pamamagitan ng pagkonekta sa mga hanay ng mga pahalang na matrices na may sa at iba pa at pagkonekta sa mga haligi ng vertical matrices (ginawa ko ang mga koneksyon sa ilang mga manipis wire-wrapping wires).

Ngayon ang tanging bahagi na naiwan sa board na ito ay ang pagkonekta sa mga header na makakonekta sa mga board sa magkasama, ang pagkakalagay ng konektor na ito ay pinasiyahan ng posisyon ng mga switch sa pangalawang board. Ang switch ay nasa mga gilid ng board kaya hindi mo maaaring ilagay ang mga konektor sa gilid ng board na ang dahilan kung bakit ang mga konektor ay nakalagay tungkol sa 4 na butas mula sa gilid.

Mayroong dalawang konektor para sa mga hanay at ang iba pang para sa mga haligi.

At upang tapusin ang hitsura inirerekumenda ko ang paglagay ng isang sheet ng puting papel sa ibabaw ng matris upang itago ang pagpupulong at makakuha ng malinis na hitsura.

Inilagay ko ang papel sa mga gilid ng matris upang ang display ay ligtas mula sa kola.

Hakbang 4: Ang Konstruksiyon Konsepto - Driver Board

Ngayon ang driver board ay ang pinaka-kumplikadong bahagi ng build na ito dahil sa ang espasyo ay pumipigil at hindi ko talaga masasabi sa iyo kung paano itatayo ito dahil ang bawat isa ay may nito sa estilo ng gusali.

Ang maaari kong sabihin sa iyo ay ang paglalagay ng mga pangunahing bahagi tulad ng mga pindutan at ang mga konektor. Ngayon ang mga pindutan ay dapat na sa gilid ng board at ang pinaka-tama angled upang ang mga ito ay sa labas ng paningin ngunit maaari mo pa rin pindutin ang mga ito.

Mula doon ilagay mo ang mga konektor na sumali sa dalawang board, ang mga konektor ay dapat na mas malapit sa gilid hangga't maaari upang magbigay ng isang mahusay at matibay na koneksyon, na ang paraan mong ilagay ang mga pindutan muna sa gilid at mula doon ka magpasya kung saan ilagay ang mga konektor.

tandaan: Mahalaga na siguraduhin na ang mga konektor sa parehong lupon ay magkakasamang sumasama at ang mga gilid ng mga board ay kapantay.

Matapos ang mga kritikal na bahagi ay tapos ka na libre upang bumuo ng pahinga tulad ng nakikita mo ng tama, ngunit siguraduhin na walang mga bahagi na pumunta "sa dagat".

Magrerekomenda ako na magtayo sa mga grupo at pinapanatili ang lahat ng mga bahagi sa pangkat na malapit sa isa't isa para sa kadalian ng mga kable halimbawa:

Ang haligi connector ay dapat na konektado sa dalawang darlington chips at ang dalawang shift registers kaya ito ang akma upang ilagay bungkos na malapit sa bawat isa at may isang maliit na ng pag-iisip posible upang makakuha ng layo na may lamang ng ilang mga wires dito at doon sa pangkat na ito.

Gayundin siguraduhin na ilagay ang ilang mga header ng programming para sa micro-controller para sa hinaharap na mga mod.

Hakbang 5: Mga Panuntunan ng Laro

Pagkatapos ng pagtatapos ng bahagi ng hardware oras na iniisip ang tungkol sa code at ang mekanika ng laro.

Ito ang pinakamahirap na bahagi para sa akin dahil tinitigan ko ang simula at kinailangan kong gumawa ng sarili kong mga tuntunin na hindi perpekto sa anumang paraan.

Ang laro na ito ay, napakadaling gamitin at magaling sa ngunit ito ay hindi isang seryosong laro at ito ay sinadya upang maging isang cool na maliit na gadget.

Kaya sa maliit na disclaimer na ito sa labas ng paraan ay nagbibigay-daan sa isang bit tungkol sa mga panuntunan ng laro.

Ang alagang hayop ay may 5 pangunahing istatistika: kalusugan, timbang, kaligayahan, gutom at edad.

Ang papel ng mga manlalaro ay upang balansehin ang mga istatistika na ito sa pamamagitan ng 4 na aksyon na mayroon siya: pakainin ang alagang hayop, makipaglaro sa kanya, malinis pagkatapos niya at pangangalagang medikal.

Ang bawat aksyon ay may positibong epekto at isang negatibong epekto at ang manlalaro ay kailangang gumawa ng pagsisikap na piliin ang pinakamahusay na kompromiso.

Kapag pinipili ng manlalaro ang alagang hayop na mayroon siyang 3 pagpipilian: bigyan siya ng pagkain ng karne, bigyan siya ng prutas o kendi na itinuturing.

Ang pagkain ng karne ay gumagawa ng pinakamaraming punto sa gutom at nagdaragdag ng timbang sa timbang, bunga ng mga alagang hayop na pinalaki ang kalusugan ng mga alagang hayop ngunit pinabababa ang mga alagang hayop na kaligayahan at ang kendi ay nagbibigay ng isang malaking tulong sa kaligayahan ngunit pinababa ang kalusugan at itinataas ang mga alagang hayop na timbang.

Kapag pinipili ng manlalaro na maglaro kasama ang alagang hayop ng isang laro ng Simon ay nagsisimula at depende sa kung gaano kahusay ang ginawa ng manlalaro ang istorya ng kaligayahan, ngunit kung ang manlalaro ay napakasama ang kaligayahan ay bababa.

Paminsan-minsan ang alagang hayop ay pupunta sa banyo at ang manlalaro ay kailangang linisin pagkatapos niya, bawat turn ang manlalaro ay hindi nagpapababa sa mga alagang hayop at nagpapalaki ng pagkakataong gawing may sakit ang alagang hayop.

Gayundin mayroong isang random na pagkakataon na ang alagang hayop ay magkakasakit, ang pagkakataong iyon ay mas mataas kung ang alagang hayop ay luma o marumi. May 3 antas ng pagkakasakit ang bawat isa ay may sariling mga negatibong epekto. Ang player ay maaaring magbigay ng isang pagbaril sa alagang hayop upang gamutin siya ngunit ito ay babaan ang mga alagang hayop kalusugan (walang katulad tulad ng pagkuha ng mga pag-shot: D).

At ang pinaka-impotent bahagi (para sa akin) ay na ang mga alagang hayop ay awtomatikong matulog sa 23:00 at wakes up sa 8:00 upang hindi ito mamatay sa paglipas ng gabi. Siyempre maaari mong baguhin ang bahaging ito para sa iyong kagustuhan at magtakda ng isang bagong oras ng pagtulog para sa alagang hayop.

Hakbang 6: Software: Mga Menu at mga animation

Narito kami ay nasa pinakamahabang bahagi ng proyekto sa proyekto, pagkatapos ng pagpapasya sa lahat ng mga tampok at estado ng laro oras na magdala sa kanila sa buhay sa pamamagitan ng paglikha ng lahat ng mga animation, mga setting, mga aksyon at mga estado ng laro.

Para sa hakbang na ito ginamit ko ang isang kumbinasyon ng dalawang programa: paint.net at excel.

Sa pintura nilikha ko ang lahat ng mga icon at menu screen isa-isa. Ang paggamit ng pintura ay isang malaking tulong dahil maaari mong madaling kopyahin, pintura, tanggalin at manipulahin ang imahe. Hindi kailanman mas kaunti ang bahaging ito para sa akin dahil mahirap akong dumarating sa mga pasadyang icon na tumayo para sa bawat aksyon, setting, pagkain at emosyon.

Tandaan: Sa pintura ginamit ko ang pagpipiliang pixel grid upang payagan ako madali upang hatiin ang isang seksyon sa pixel at pintahan ang bawat isa.

Pagkatapos tapos na ang trabaho sa mga animation at mga icon na binilang ko ang mga icon sa mga grupo at nagsimulang magtrabaho sa paglikha ng bitmap ng mga icon, upang gawin ito Ginamit ko ang aking paboritong bilis ng kamay sa excel upang lumikha ng bitmap.

Gumawa ako ng isang excel spreadsheet na nagbibigay-daan sa akin na "magpinta" sa mga cell sa isang partikular na lugar at pagkatapos ay palaboy ang bitmap sa format na gusto ko.

Pagkatapos ng lahat ng ito ay tapos na ito ay lamang ng isang bagay ng pagkaya sa bitmaps sa sa code at simulan ang pagsusulat ng software.

Hakbang 7: Software: Final Code

Ang pangunahing bahagi ng proyektong ito ay ang software at ito ang bagay na nagbibigay sa proyektong ito ito ay karakter.

Ngayon ay hindi ko mapupunta ang code sa detalye dito dahil ginawa ko na sa code mismo kaya inaasahan upang makita ang maraming mga komento doon (ang ilang mga may ilang kakila-kilabot na mga pagkakamali spelling: D).

Ang code ay gumagamit ng 3 mga aklatan ngunit lahat sila ay may Arduino IDE kaya hindi na kailangang mag-download ng anumang.

Isinulat ko ang code nang walang anumang mga espesyal na aklatan upang i-save ang problema ng pagsunod sa code ng up to date at paghahanap ng mga aklatan sa hinaharap, ito ang dahilan kung bakit ang code ay mahaba at may maraming kung iba't ibang mga function.

Ngayon ang code na ito sa sarili ay may dalawang pangunahing bahagi: ang pangunahing loop na humahawak sa lahat ng mga panuntunan ng laro at ang "mga alagang hayop" na pag-uugali at isang timer makagambala na gawain na pinangangasiwaan ang pag-update ng display.

Ang aking trabaho sa code ay hindi pa natapos dahil palaging may mga bagong bagay na idaragdag at mapabuti dito, kaya't i-update ko ang code mula sa oras-oras. Ngunit sa ngayon ang code ay nasa ito ng estado ng pagtatrabaho at ganap na itinampok.

Hakbang 8: Tapos ka na! Anong sunod?

Yay! Tapos na kami! o tayo ba?

Mayroon kaming isang ganap na nagtatrabaho bench tuktok Tamagotchi sa lahat ng mga pangunahing pag-andar ngunit bakit tumigil doon?

Mayroong maraming mga bagay upang idagdag at mapabuti sa at ito ay nasa sa iyo upang gawin ito. Kaya tumagal ang mga hadlang at pagbutihin, baguhin at magsaya sa mga ito!

At huwag kalimutan na ilagay sa iyong kubyerta sa pagmamataas at ipakita ang iyong bagong paglikha.

P.S.

Dalhin ang mahusay na pag-aalaga ng mga ito at huwag kalimutan na feed ito mula sa oras-oras:)