Cov txheej txheem:

Lego Mini Memory Game: 5 Kauj Ruam (nrog Duab)
Lego Mini Memory Game: 5 Kauj Ruam (nrog Duab)

Video: Lego Mini Memory Game: 5 Kauj Ruam (nrog Duab)

Video: Lego Mini Memory Game: 5 Kauj Ruam (nrog Duab)
Video: Playstation 5 | Astro's Playroom | Augmented reality controller 2024, Hlis ntuj nqeg
Anonim
Image
Image
Lego Mini Memory Game
Lego Mini Memory Game

Ib xyoos lossis li ntawd dhau los, Kuv tau sau Cov Lus Qhia txog kev teeb tsa ib pawg ntawm LEDs hauv Lego Mini Cooper. Kev hloov pauv tshiab, xws li nws yog, yog tias LEDs tuaj yeem tswj tau nrog lub xov tooj smartphone (lossis los ntawm ib lub vev xaib, rau qhov teeb meem ntawd).

Raws li kuv tau siv zog piav qhia hauv Cov Lus Qhia, feem ntau ntawm kev rau siab rov qab los cuam tshuam txog kev txuas lub Mini yam tsis muaj txhua yam poob sib nrug. Me ntsis rau kuv xav tsis thoob, Mini tom qab tau dim txoj kev taug los ntawm Connecticut mus rau Toronto thiab tau ua haujlwm, ntau dua lossis tsawg dua, txij li ntawd los.

"Yog tias nws tsis tawg, nws kho nws kom txog thaum nws yog" yuav yog kuv tus epitaph, qhov zoo tshaj plaws, yog li thaum Mini rov qab los tsev rau Christmas, nws yog lub sijhawm rau Lego Mini 2.0. Tom qab tag nrho, yog Tesla tuaj yeem thawb software hloov tshiab rau nws lub tsheb, nws nyuaj npaum li cas?

Kuv muaj ob peb lub tswv yim:

  • Txhim kho qhov yooj yim clunky neeg siv interface
  • Ntxiv lub suab!
  • Txhim kho qhov "teeb pom kev zoo"; thiab, tseem ceeb tshaj plaws
  • Ntxiv qhov kev ua si (txawm tias kuv tau lees paub tias qhov tshiab ntawm tig Mini lub teeb qhib thiab kaw nrog koj lub xov tooj yuav ploj mus sai dua lossis tom qab)

Qhov kev ua si yog lub luag haujlwm loj tshaj plaws, tsis tsawg vim tias nws tsis tau pom meej tam sim rau kuv yam kev ua si twg nws tuaj yeem yog. Lub Mini yog qhov tsis yooj yim heev los txhawb nqa qhov kev ua si uas nws tau ua (tshwj tsis yog qhov ua rau muaj kev hloov pauv ntawm Jenga). Lwm qhov teeb meem yog qhov uas kuv tsis tau ua qhov program hauv kuv lub neej.

Tom qab ib xyoos uas tsis muaj qhov xav txog, kuv tau hla txoj haujlwm ntawm Hackster, uas Arduino Uno tau siv los ua raws li lub cim xeeb game qho khoom ua si txij thaum xyoo 1970 hu ua Simon. Hauv qhov ua piv txwv, Simon ntaus ntawv tau ua ntu ntu ntawm cov teeb uas cov neeg ua si tom qab ntawd yuav tsum nco qab thiab ua si rov qab los ntawm nias lub pob. Tom qab txhua qhov kev vam meej puag ncig ntu tau nce ntxiv hauv qhov ntev.

Txawm hais tias yog qhov tsim nyog vintage, kuv yeej tsis tau hnov dua ntawm qhov kev ua si no, thiab kuv yuav tsum tau hais tias nws yog qhov txaus ntshai dab tsi dhau rau kev lom zem rov qab rau hauv ib hnub. Txawm tias qhov xav tsis thoob yog tias Simon game tseem tab tom muag, thiab khaws cov tshuaj xyuas rave, ntawm Amazon. Kom meej meej, qhov no yuav tsum yog tus neeg sib tw tseem ceeb los hloov kho rau kuv lub hom phiaj. Tom qab tag nrho, Mini twb muaj lub teeb pom kev, yog li txhua yam kuv yuav tsum tau ua yog thim cov nyees khawm lub cev thiab muaj cov neeg siv tswv yim muab los ntawm lub xov tooj smartphone. Ntawm sab software, yog li ntawd, nws zoo li qhov no tsuas yog qhov txiav thiab muab tshuaj txhuam txoj haujlwm.

Tab sis ua ntej, Kuv yuav tsum tau ua qee qhov kev hloov kho me me rau cov kho vajtse.

Kauj Ruam 1: Cheeb Tsam, Cov Cuab Yeej & Cov peev txheej

Cheebtsam, Cov Cuab Yeej & Cov peev txheej
Cheebtsam, Cov Cuab Yeej & Cov peev txheej

Yog tias koj rov ua qhov haujlwm no nrog Lego Mini, koj yuav xav tau txhua yam khoom teev hauv kuv li Kev Qhia Ua Ntej Ua Ntej. Tsuas yog ib yam ntxiv uas koj xav tau yog lub suab nrov nrov, uas yog siv rau lub suab nrov thiab ua rau cov suab nrov tsis txaus siab thaum ua si (uas tuaj yeem xiam oob qhab).

Raws li yuav dhau los meej thaum tham txog software, tsis muaj qhov xav tau tiag tiag los siv Lego Mini rau kev ua si. Koj tuaj yeem siv lwm yam khoom siv Lego, lossis qhov tseeb ib pawg ntawm LEDs ntawm lub khob cij txuas rau ib qho ESP8266 pawg thawj coj loj. Nrog qee qhov txuas, koj tuaj yeem siv koj lub tsev chav teeb pom kev zoo. Cov menyuam, nug koj niam thiab txiv ua ntej ntawm qhov ntawd.

Ib yam li ntawd, tsis xav tau cov cuab yeej lossis cov peev txheej ntxiv uas dhau ntawm cov npe rau thawj qhov haujlwm.

Yog tias koj nyob ntawm cov neeg tsawg uas tau nyeem cov lus piav qhia thawj qhov haujlwm, koj yuav paub tias Lego Mini tau xub yuav los ua khoom plig rau kuv tus ntxhais hlob, uas muaj yuav luag zoo ib yam "tiag tiag" Mini, lossis zoo li yuav luag zoo ib yam li nws tuaj yeem muab nws yog Mini Tshiab, tsis yog "Classic". Qhov tsis muaj cov ntsiab lus tseem ceeb ntxiv ua rau txoj haujlwm tshiab no zoo dua qub vim tias nws yuav ua rau kuv muaj txiaj ntsig zoo rov qab khoom plig Lego Mini 2.0 ua khoom plig Christmas tshiab yam tsis tau them nyiaj tsawg. Ntse heev!

Kauj Ruam 2: Kev Kho Kho Vajtse

Kho vajtse hloov kho
Kho vajtse hloov kho

Thawj qhov haujlwm tau tswj tus kheej RGB sab hauv LEDs. Cov no tau siv peb tus lej ntawm NodeMCU, uas kuv tau siv los ua pawg tswj hwm kev txhim kho. Tom qab kev sib tham tsis sib xws nrog tus tswv Lego Mini, nws tau txiav txim siab RGB LEDs yog qhov tsis siv. Qhov no yog qhov kev txawj ntse tseem ceeb vim tias kuv xav tau tso tus pin rau lub suab nrov/suab nrov.

Daim duab qhia chaw saum toj no yog los ntawm thawj qhov haujlwm. Tsuas yog kev hloov pauv uas xav tau rau txoj haujlwm no yog tshem tawm RGB LEDs thiab siv peb tus pin tso tawm raws li hauv qab no:

  • D1 rau lub tswb tswj lub teeb liab (uas tseem yog txuas ncaj qha rau 5VDC fais fab mov)
  • D7 rau sab hauv LED dawb
  • D8 rau ib qho ntawm cov flashing xim LEDS, uas kuv tau dubbed lub teeb "disco"

Lub buzzer nws tus kheej tucks tseg kom zoo nyob hauv qab lub cav cav kom khiav cov xov hlau rov qab mus rau NodeMCU yog qhov nrawm.

Kauj ruam 3: Hloov kho GUI

Hloov kho GUI
Hloov kho GUI
Hloov kho GUI
Hloov kho GUI
Hloov kho GUI
Hloov kho GUI

Thawj kauj ruam hauv kev hloov kho GUI yog los tsim plaub nplooj ntawv sib cais:

  • Ib "lub vijtsam txaws" uas nthuav tawm ntawm lub cim kev cai ntawm koj lub smartphone thiab txuas rau lwm nplooj ntawv
  • Nplooj ntawv "Tswj" uas, zoo, tswj lub teeb (thiab tam sim no, tau kawg, lub suab raj)
  • Nplooj ntawv "Game"
  • Ib nplooj ntawv teeb tsa uas muaj cov kev xaiv teeb tsa xws li:

    • Tig lub suab qhib thiab kaw
    • Teeb tsa lub sijhawm sijhawm (Mini tau txais sijhawm los ntawm internet yog li nws tuaj yeem nyem nws lub teeb nyob rau teev nrog lub sijhawm tsim nyog)
    • Kho thaum "lub teeb pib" yuav tig lub teeb taws rau thiab tua raws qhov pom kev ib puag ncig
    • Rov pib dua Cov Qhab Nia Siab thiab Lub Npe Lub Npe Tau Zoo (khaws hauv EEPROM)

Kev cais tawm cov haujlwm hauv txoj kev no ua rau muaj kev paub ntau dua li app. Qhov tau txais NodeMCU los ua haujlwm ntau nplooj ntawv yog ib qho ntawm cov teeb meem rau txoj haujlwm no. Tom qab sim ob peb txoj kev sib txawv kuv tau hla txoj cai koj pom hauv kab 232 txog 236 ntawm daim duab Arduino loj. Qhov no ua haujlwm tau zoo - tsuas yog tsim koj cov ntawv txheeb xyuas lub npe tom qab nplooj ntawv page1, page2 thiab lwm yam. Kuv tau pom tias kuv yuav tsum tau muab tag nrho cov peev txheej cov ntaub ntawv (CSS thiab cov duab) hauv cov hauv paus cov ntaub ntawv tab sis qhov no tsis yog qhov teeb meem tiag tiag rau cov chaw ntawm qhov loj me.

Tom ntej no, Kuv yuav tsum tau ua haujlwm nrog CSS thiab Javascript kom ua qee yam uas zoo li nws koom nrog Lego Mini. Txij li thaum kuv paub tom ntej-rau-tsis muaj dab tsi txog ib qho kev kawm muaj ntau ntawm Googling ntawm no ua ntej tau txais qee yam uas kuv zoo siab nrog. Kuv pib los ntawm kev txaj muag luam ib CSS-styled lego cib ntawm CodePen ntawm no. Kuv kuj xav txav deb ntawm kev sau cov nyees khawm nrog cov ntawv thiab xaus nrog siv cov duab yooj yim los ntawm Icons8, uas zoo rau kuv lub hom phiaj. Tus so ntawm qhov poob ntawm qhov chaw los ntawm qhov ntawd. Cov nplooj ntawv ua tau zoo heev ntawm txhua iPhone uas kuv tau sim lawv. Cia siab tias tib yam muaj tseeb rau Android xov tooj ib yam (zoo li ntawm lub desktop Chrome browser).

Kauj Ruam 4: Txoj Cai Game

Game Code
Game Code

Kev sib txuas lus ntawm NodeMCU server thiab lub smartphone browser yog ntawm Websockets. Tom qab lub pob nyem los ntawm tus neeg siv, qhov browser xa cov ntawv sau mus rau NodeMCU uas sib haum rau ib lossis ntau dua ntawm Mini lub teeb. Cov cim ntxiv raug xa los tswj kev ua si. Tus lej Arduino mam li nqis tes ua raws tus cim tau txais. Kev sib txuas lus Websocket tsuas tuaj yeem lis cov ntawv binary thiab cov ntawv yog li qee qhov hloov pauv xav tau rau cov lej (piv txwv li thaj tsam sijhawm).

Raws li kuv tau hais, Kuv tau xub xav tias yuav siv tus lej los ntawm qhov txuas Hackster project rau cov haujlwm tseem ceeb hauv kev ua si. Qhov kuv cia siab tias yuav tshwm sim yog tias, tom qab tus neeg uas ua ntawv nias lub pob, qhov sib xws LED yuav ci thiab cov cai yuav ua digitalRead ntawm txhua lub LEDs kom pom tias yog ib qho raug teeb (Hackster qhov project tshawb xyuas lub cev khawm khawm tab sis nws yog tib lub tswv yim). Qhov no tau ua haujlwm, zoo ib yam, tab sis rau qhov laj thawj uas tseem tsis meej rau kuv, tsis zoo tag nrho. Kwv yees li 10% ntawm lub sijhawm Mini xav hais tias khawm tsis raug raug nias thaum, qhov tseeb, qhov raug yog lawm. Txhua yam zoo li ua tau raws li qhov kuv tuaj yeem pom hauv kab ntawv saib thiab hauv qhov browser console yog li kuv tsis muaj lub tswv yim vim li cas nws tsis ua haujlwm.

Tom qab ntau qhov kev sib tham nrog sim ua qee qhov yuam kev tshuaj xyuas, Kuv ditched tag nrho lub tswv yim ntawm kev nyeem LED lub xeev thiab tsim "cov lus teb" array uas txheeb xyuas seb cov ntawv Websocket tau txais sib raug rau tus pin raug nyob hauv "ntu" array uas ua lub teeb ua ntu zus kom nco qab. Qhov no zoo li 100% ntseeg tau txawm tias txoj kev kuv tau siv nws yog me ntsis plodding. Tom qab los nrog txoj hauv kev no, Kuv tau tshwm sim rau qhov no, uas yog qhov kev tshawb nrhiav nthuav dav ntawm txoj hauv kev qee qhov ntsuas phoo digital ua haujlwm thiab zoo ib yam rau txoj hauv kev siv hauv kev ua si.

Lub sijhawm khawm khawm nkag tam sim no tau ua haujlwm nrog Javascript ntawm lub browser sab (Kuv tso cai rau siab heev 10 vib nas this nruab nrab ntawm cov khawm nkag) thiab qhov ntws ntawm qhov kev ua si yog tam sim no tswj tau los ntawm cov neeg siv ntau dua li nyuaj-coded. Cov zaub suav nrog lub qhov rai qhia lub sijhawm tseem tshuav kom ua rau lub pob tom ntej nyem thiab tus lej ntawm cov tswv yim tseem tshuav ua ntej qhov ua ntu zus raug xa los ntawm tus neeg uas ua ntawv.

Cov qhab nia siab tau khaws cia hauv EEPROM (lossis qhov dhau mus rau EEPROM hauv ESP8266 lub ntiaj teb) thiab yog tias ib tus neeg ua si ntaus tus qhab nia siab tshiab lub thawv pop-up tso cai rau lawv nkag mus rau lub npe ntawm lawv xaiv, uas tseem khaws hauv EEPROM. Cov txiaj ntsig no tuaj yeem rov pib dua ntawm nplooj ntawv teeb tsa (Kuv paub tseeb tias yuav muaj qhov laj thawj raug cai rau qhov no).

Nrog txhua yam uas tau hais, Kuv tau rov siv ib qho tsim nyog ntawm Hackster game code uas ua kom nrawm dua.

Kauj Ruam 5: Qhov seem ntawm Txoj Cai

Qhov seem ntawm Txoj Cai
Qhov seem ntawm Txoj Cai

Piv rau Hackster txoj cai, kuv daim duab Arduino zoo li loj heev, txawm tias tsis muaj tag nrho HTML, CSS thiab Javascript hauv cov ntaub ntawv. Tab sis feem ntau ntawm cov duab kos yog pawg ua haujlwm ntsig txog kev ua haujlwm yooj yim xws li tsim thiab tswj hwm tus neeg rau zaub mov, tau txais NTP lub sijhawm, mDNS, muab rau kev hloov pauv huab cua, tswj WiFi, SPIFFS kev tswj hwm cov ntaub ntawv thiab zoo li.

Javascript hauv HTML cov ntaub ntawv yog qhov tseem ceeb rau kev tuav Websocket lus (tau txais thiab xa) thiab nce kev sib cuam tshuam ntawm GUI.

Raws li kuv tau hais, Kuv xav txhim kho kev ua haujlwm ntawm "pib teeb" lub ntsej muag, uas siv lub teeb nyob ntawm tus tiv thaiv ntawm NodeMCU tus tib tus pin sib piv txhawm rau pom lub teeb ib puag ncig thiab qhib Mini lub teeb ntawm qib ua ntej (thaum tsis nyob hauv Game Game), tau kawg). Thaum qhov no yog qhov tsis txaus ntseeg heev hauv qhov haujlwm tsis tseem ceeb, nws ua rau kuv txhawj xeeb tias hauv thawj qhov haujlwm kuv tau nyuaj-coded tus lej qhib-rau thiab tus neeg siv tsis muaj txoj hauv kev pom li cas lub teeb pom kev thoob plaws cuam tshuam nrog qhov pib ntawd. Tam sim no lub teeb nyeem ntawv raug xa mus rau nplooj ntawv teeb tsa txhua tsib vib nas this thiab nplooj ntawv ntawd tseem qhia txog qhov pib tam sim no rau qhib thiab tua (uas tuaj yeem teeb tsa los ntawm tus neeg siv). Yog li txoj haujlwm tau ua tiav ntawm qhov ntawd.

Auj, yuav luag tsis nco qab lawm. Cov cai nyob ntawm GitHub ntawm no. Tom qab rub tawm, muab tag nrho pob rau hauv daim nplaub tshev tshiab, xa daim duab Arduino, tom qab ntawd cov ntsiab lus ntawm cov ntawv tais ceev tseg rau hauv SPIFFS.

Pom zoo: