Агуулгын хүснэгт:

Arduino Space Rocks тоглоом: 3 алхам
Arduino Space Rocks тоглоом: 3 алхам

Видео: Arduino Space Rocks тоглоом: 3 алхам

Видео: Arduino Space Rocks тоглоом: 3 алхам
Видео: Как заработать $ 90,00 в день с нулевыми деньгами на старт... 2024, Долдугаар сарын
Anonim
Arduino Space Rocks тоглоом
Arduino Space Rocks тоглоом

Тэд компьютер дээр, утсан дээр, тоглоомын консол эсвэл бие даасан хайрцаг дээр тоглосон эсэхээс үл хамааран олон видео тоглоомд саад бэрхшээлээс зайлсхийх элемент багтдаг. Мэдээжийн хэрэг, жетон цуглуулах эсвэл төөрдөг байшинд замаа олохын тулд оноо авсан байж магадгүй, гэхдээ тоглоомд цорын ганц зорилго нь үүнийг хийхээс урьдчилан сэргийлэх зорилготой зүйл байгаа гэдэгт итгэлтэй байгаарай. Анхны видео тоглоом нь Понг байсан боловч үүний дараа хамгийн алдартай тоглоом бол "Астероидууд" эсвэл "Pac-Man" гэх мэт тоглоомууд байв. Хамгийн сүүлийн үеийн хувилбар бол "Flappy Birds" энгийн боловч донтуулдаг тоглоом байх болно.

Саяхан би хэн нэгэн нийтлэг 1602 LCD дэлгэц дээр тоглодог "Flappy Bird" -ийн хоёр түвшний энгийн хувилбарыг хийсэн болохыг олж харсан. Энэ нь ач зээ нарт таалагдах байх гэж бодож байсан тул эхнээс нь өөрийн хувилбараа хийхээр шийдлээ. 1602 хувилбар нь зөвхөн хоёр түвшинтэй тул тоглолтын хүндрэлийг бага зэрэг нэмэгдүүлэхийн тулд 2004 оны LCD (20х4) ашиглахаар шийдсэн. Мөн тоглогчийг "сансрын чулуулгийн" төөрөгдөл дундуур "хөлөг онгоц" чиглүүлэх замаар би үүнийг "Астероид" шиг болгохоор шийдсэн. Тоглоом бүтээх сонирхолгүй байсан ч гэсэн та өөрийн төсөлд ашиглах програм хангамжийн зарим элементүүд байж магадгүй юм.

Алхам 1: Техник хангамж

Техник хангамж
Техник хангамж
Техник хангамж
Техник хангамж
Техник хангамж
Техник хангамж

Тоног төхөөрөмжийг бараг ямар ч Arduino хувилбар дээр үндэслэж болно. Би нано ашиглан прототип хийж, дараа нь кодыг ATMega328 чип болгон шатаасан. Энэ бол нано дээр ашиглагддаг чип юм, гэхдээ үүнийг өөрөө ашиглах нь илүү нягт бүтэцтэй, эрчим хүч бага зарцуулдаг. Таны харж байгаагаар би хэлхээг жижиг модон самбар дээр барьсан бөгөөд энэ нь LCD модуль дээр байрладаг. Нано нь гадна талст ашиглан 16 МГц давтамжтайгаар ажилладаг боловч би ATMega328 чипийн хувьд 8 МГц давтамжтай осцилляторыг ашиглахаар шийдсэн нь өөр юм. Энэ нь эд анги, хүчийг хэмнэдэг.

2004 оны LCD дэлгэц нь 1602 LCD дэлгэцтэй адил Arduino -той харьцдаг. Сонирхолтой ялгаа нь дэлгэцийн байршлын хаягшил юм. Мэдээжийн хэрэг, хоёр мөрийн оронд дөрвөн мөр байдаг боловч 2004 онд гурав дахь мөр нь эхний мөрийн өргөтгөл, дөрөв дэх мөр нь хоёр дахь шугамын өргөтгөл юм. Өөрөөр хэлбэл, хэрэв та LCD дэлгэц дээр хэд хэдэн тэмдэгт илгээсэн туршилтын програмтай бол 21 дэх тэмдэгт нь гурав дахь мөрийн эхэнд гарч ирэх бөгөөд 41 дэх тэмдэгт нь эхний мөрийн эхэнд эргэн ирнэ. Би энэ шинж чанарыг програм хангамжид ашиглаж, лабиринтын уртыг хоёр дахин үр дүнтэйгээр уртасгадаг.

Би хувилбарынхаа батерейг цэнэглэхээр шийдсэн тул нийт 18650 ли-ион, 3.6 вольтын батерей ашигласан. Энэ нь USB цэнэглэх боломжийг олгодог жижиг самбар, LCD болон ATMega чипийн батерейны хүчдэлийг 5 вольт хүртэл нэмэгдүүлэхийн тулд өөр нэг жижиг самбар нэмэх шаардлагатай болсон. Зураг дээр миний ашигласан модулиудыг харуулсан боловч хоёуланг нь хоёуланг нь багтаасан модулиуд байдаг.

Алхам 2: Програм хангамж

Програм хангамж нь Nano болон ATMega328 чип хоёуланд нь адилхан байдаг. Цорын ганц ялгаа нь програмчлалын арга юм. Би өөрийн 1602 LCD програм хангамжийн өөрийн нүцгэн хувилбарыг ашигладаг бөгөөд энэ төслийн LCD програм хангамж нь үүн дээр үндэслэсэн болно. Би 2004 оны дэлгэцийн нэмэлт мөрүүдийг шийдвэрлэх чадварыг нэмж, дэлгэцийг өөрчлөх горимыг нэмж оруулах шаардлагатай болсон. Дэлгэцийн шилжилт нь "хөлөг онгоцны" хажуу дахь "чулуулаг" -ын хөдөлгөөний эффектийг өгдөг.

Өмнө дурьдсанчлан, 1 ба 3 -р мөрүүд нь дугуй дараалал үүсгэж, 2 ба 4 -р мөрүүд мөн адил хийдэг. Энэ нь 20 ээлжийн дараа 1, 3 -р мөрийг сольж, 2 ба 4 -р шугамыг солино гэсэн үг юм. 40 ээлжийн дараа шугамууд анхны байрлалдаа эргэж орно. Ийм зан авирын улмаас 20 тэмдэгт бүхий анхны лабиринт нь шугам солигдоход огт өөр болдог. Энэ нь намайг төөрдөг газар бүтээхийг оролдоход амьдралыг сонирхолтой болгосон юм. Эцэст нь би Excel -ийн хүснэгтийг нээсэн тул програм хангамжийг байнга өөрчлөх шаардлагагүй замыг зааж өгөх боломжтой болсон. Энд өгсөн програм хангамж нь лабиринтын хоёр хувилбартай (нэгийг нь тайлбарласан байгаа) тул та хүссэн хувилбараа сонгох эсвэл өөрөө хийх боломжтой.

Анх би үүнийг залуу ач зээ нар тоглож болохуйц энгийн байдлаар хийхийг хүсч байсан, гэхдээ тэд (эсвэл өөр хэн нэгэн) үүнийг хэт сайн хийж чадвал нэмэлт сорилт хийхийг хүсч байсан. Тоглоом нь ээлжийн хурдыг 1 секундээр тогтоодог. Дотоод tic -ийн хурд нь 50ms байдаг тул дээш/доош товчлуурыг дарах боломжтой 20 интервал байдаг гэсэн үг юм. Бодит байдал дээр дарагдсан товчлуур нь 2 tics -ийг зарцуулдаг, учир нь даралтыг илрүүлэхийн тулд 50ms интервал, өөр 50ms интервал нь гарахыг хүлээхэд ашигладаг. Анхдагч төөрдөг бол дараагийн ээлжийн өмнө шаардагдах хамгийн их даралтын тоо гурван байна. Тоглоомын хүндрэлийг нэмэгдүүлэх энгийн арга бол ээлжийн хоорондох хугацааг богиносгох явдал юм, ингэснээр оноо нэмэгдэх тусам хэдэн мөр код хийх шаардлагатай болно. Ээлжийн хурдыг 20 ээлж тутамд 50 мс -ээр хурдасгахаар тогтоосон бөгөөд хамгийн бага хурдыг 500 м -ээр хязгаарлана. Эдгээр параметрүүдийг өөрчлөхөд хялбар байдаг.

Ээлжийн хурдыг өөрчлөхөөс гадна програм хангамжийн үндсэн логик нь "хөлөг онгоц" -ыг хөдөлгөж, "хөлөг онгоц" "хад" -тай мөргөлдсөн эсэхийг тодорхойлох явдал юм. Эдгээр функцууд нь "rock/space" гэж тодорхойлогдсон массив болон дэлгэц дээрх санах ойн байршлыг тодорхойлдог массивын давуу талыг ашигладаг. Шилжүүлгийн тоо нь LCD (0-19) шугамын урттай тохирч байгаа бөгөөд эдгээр массивуудын индекс болгон ашиглана. Логик нь 20 ээлж тутамд шугам солигддог тул зарим талаар төвөгтэй байдаг. Үүнтэй төстэй логикийг дөрвөн шугамын аль нэг дээр байж болох "хөлөг онгоц" -ны байрлалыг тодорхойлоход ашигладаг.

Тоглолт бүрийн оноо нь гарсан ээлжийн тоог тоолж, өндөр оноог дотоод EEROM микроконтроллерт хадгалдаг. EEPROM номын сан нь энэ санах ойд унших, бичихэд ашиглагддаг. Боломжтой горимууд нь хөвөгч цэгийн утгыг нэг байт унших/бичих, унших/бичих боломжийг олгодог. 0xA5 утгыг EEROM -ийн эхний байршилд хадгалж, өндөр оноо хадгалагдсаныг илтгэнэ. Хэрэв энэ утгыг асаахад байгаа бол өндөр онооны хөвөгч цэгийн утгыг уншиж харуулна. Хэрэв 0xA5 утга байхгүй бол өндөр оноог 1 болгож эхлэх горимыг дуудна. Өндөр оноог дахин тохируулах шаардлагатай бол мөн адил горимыг дуудна. Дээд/доош товчлууруудын аль нэгийг дарж, дараа нь дахин тохируулах товчлуурыг дарж өндөр оноог 1 болгож буцаана.

Алхам 3: Тоглоом тоглох

Тоглоом тоглож байна
Тоглоом тоглож байна
Тоглоом тоглож байна
Тоглоом тоглож байна

Эрчим хүч ашиглах үед одоогийн өндөр оноог харуулна. Өндөр оноо гарсны дараа "хад", "хөлөг онгоц" -ын төөрөгдөл гарч ирэн тоглоом хэдхэн секундын дараа эхэлнэ. "Хөлөг онгоц" "хаданд" цохиход тоглолтын оноог харуулахаас өмнө "CRASH AND BURN" гэсэн мессеж хэд хэдэн удаа анивчдаг. Хэрэв шинэ өндөр оноо авсан бол тэр мессежийг мөн харуулна. Дахин тохируулах товчийг дарж шинэ тоглоом эхлүүлнэ.

Зөвлөмж болгож буй: