Агуулгын хүснэгт:
- Алхам 1: Тойм
- Алхам 2: Материал
- Алхам 3: Тоглоом хийх
- Алхам 4: Үр дүнг харуулах
- Алхам 5: Бүгдийг нэгтгэх
- Алхам 6: Ирээдүйн өөрчлөлтүүд
- Алхам 7: Дүгнэлт
Видео: FPGA астероидын тоглоом: 7 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:05
CPE 133-ийн эцсийн төслийн хувьд бид FPGA дээр хоёр товчлууртай унтраалга, 7 сегментийн дэлгэц ашиглан астероидын тоглоом бүтээхээр шийдсэн. Энэхүү тоглоом нь санамсаргүй байдлаар сонгосон гурван эгнээний аль нэгэнд астероид үүсч, 7 сегментийн дэлгэцийн нөгөө талд хөлөг онгоц руу дайрч ирдэг. Дээд ба доод товчлуурыг ашиглан таны хөлөг онгоцыг астероидын замаас гаргах боломжтой. Үүнийг хийж чадаагүй тохиолдолд дэлгэц дээр 'BAnG' гэж хэсэг хугацаанд уншиж, тоглоомыг хурдан дахин эхлүүлэх тул хэрэглэгч дахин оролдож болно. Дараахь зүйл бол ямар ч хэрэглэгч бидний загварыг хуулбарлах эсвэл сайжруулахын тулд уг төслийг хэрхэн хийсэн тухай товч тайлбар юм.
Алхам 1: Тойм
Төсөл нь ихэвчлэн хөлөг онгоц, хадны байрлалуудын өөр өөр утгыг хадгалж, харуулдаг мужуудын хооронд логикийг ашиглан логикийг ашигладаг Finite State Machines (FSMs) -ээс бүрддэг. Хоёр үндсэн модуль бол рок ба усан онгоцны FSM тоглоом бөгөөд VHDL-ийн маш энгийн бүтцийн загварыг ашиглан нэгтгэсэн 7 сегментээс хоёр сегментийн дэлгэц декодлогч FSM юм.
FSMs нь хөлөг онгоцны байрлал, хадны байрлал, 7 сегментийн декодерын зориулалтаар бүтээгдсэн. Усан онгоцны FSM -ийн зорилго нь тоглогч дээш эсвэл доош товчлуурыг дарахад хөлөг онгоц зөв байрлал руу шилжих боломжтой юм. Зөв байрлалд шилжихийн тулд аль байрлалд хамгийн сүүлд байснаа санах хэрэгтэй тул FSM шаардлагатай байна.
Чулуулгийн FSM -ийн зорилго нь чулууг аль эгнээнд байгаа болон тухайн эгнээний хамгийн сүүлийн байрлалд үндэслэн зөв байрлалд шилжүүлэх явдал юм. Нэмж дурдахад, энэ нь үүнийг харуулах модулийн байрлалыг хянаж, дараа нь гарч ирэх шинэ мөрийг хуурамчаар санамсаргүй байдлаар сонгоно.
7 сегментийн дэлгэцийн декодерын FSM нь зөвхөн хөлөг онгоц, хад чулууг харуулахаас гадна хөлөг онгоцны байрлал ба хадны байрлал ижил байх үед "BAnG" -ийг харуулахад ашиглагддаг байв.
Алхам 2: Материал
Төсөлд дараахь материалыг ашигласан болно.
- Digilent, Inc -ийн Basys3 хөгжлийн зөвлөл.
- Vivado загварын иж бүрдэл
- sseg_dec.vhd (Энэ файлыг Polylearn дээр бидэнд өгсөн бөгөөд Брайан Мийли бичсэн)
- Clk_div.vhd (Энэ файлыг Polylearn дээр бидэнд өгсөн бөгөөд Брайан Мийли бичсэн)
- Гурван хязгаарлагдмал төлөвт машин (FSMs)
Алхам 3: Тоглоом хийх
Тоглоомын модулийг бие даасан FSM -үүдийнхээ хувьд хөлөг онгоц, рокийн байдлыг дүрслэхийн тулд зан төлөвийн загварчлал ашиглан бүтээсэн болно. Үүний давуу тал нь тоног төхөөрөмжийг зохион бүтээхэд шаардлагатай бүх бүрэлдэхүүн хэсгүүдийг олж мэдэхийн оронд юу хийж байгааг тайлбарлах замаар зан үйлийн загварыг гаргахад илүү хялбар байдаг.
Хадны төлөв байдлыг рокын анхны байрлалыг санамсаргүй тооны генератор ашиглан хийжээ. Үүнийг хийхийн тулд бид генераторт тоглоомын хурдтай харьцуулахад маш хурдан байсан өөрийн цагийг өгсөн. Өсөн нэмэгдэж буй ирмэг бүрт гурван битийн тоог нэмэгдүүлж, түүний бүх утга нь хөлөг онгоцны гурван эхлэх төлөвийн аль нэгтэй тохирч байна. Тиймээс гурван утга нь 3 -р байр (баруун дээд), гурав нь 7 -р байр (төв), хоёр нь 11 -р байрлалтай (баруун доод) харгалзана.
Санамсаргүй байдлаар үүсч, астероидыг анхны төлөвт оруулсны дараа хөлөг онгоц руу чиглэсэн хөндлөн огтлолгүйгээр урсана.
0 ← 1 ← 2 ← 3
4 ← 5 ← 6 ← 7
11 ← 10 ← 9 ← 8
Дараагийн рок логикод ашигладаг цаг нь тоглоомын хурдыг хянадаг; 9999999 нь хамгийн их тооны хувьд сайн үнэ болохыг туршилт, алдааны тусламжтайгаар олж мэдсэн.
Усан онгоцны логик нь зүүн талын төвийн байрлал (4 -р байр) руу шилжих замаар ажилладаг. Хэрэв дээд товчлуур эсвэл доод товчлуур дарагдсан бол хөлөг дарагдсан товчлууртай тохирох 0 ба 11 байрлал руу дээш доош хөдөлнө.
Усан онгоцны хөдөлгөөнийг хэрэглэгчдэд таатай байлгахын тулд бид түүний хөдөлгөөнийг асинхрон байдлаар хийгээгүй. Бид цагийг төлөв байдлын өөрчлөлтөд ашиглаж, хамгийн ихдээ 5555555 тоог ашигласан.
Алхам 4: Үр дүнг харуулах
Хоёртын 7 сегментийн декодер нь хөлөг онгоц болон астероидын 4 битийн байрлалын хувьсагчдыг авч, зохих дүрсийг (усан онгоц, хад эсвэл "BAnG" гэсэн мессеж) харуулдаг.
Үүнийг эхлээд хоёулаа тэнцүү эсэхийг шалгаж, дараа нь чек үнэн бол "BAnG" гэсэн мессежийг харуулна.
Хэрэв энэ нь үнэндээ эргэж ирэхгүй бол декодер нь хөлөг онгоц, чулууг маш өндөр цагийн давтамжтайгаар сольж, нүдийг хуурч, тэдгээрийг нэгэн зэрэг үзүүлж байгаа мэт харагдуулна.
Алхам 5: Бүгдийг нэгтгэх
Бид усан онгоц, рокын FSM -ийг FSM дэлгэц дээр холбосон нэг том FSM -д хамруулсан. Тоглоомын оролт бол BASYS3 самбар дээрх дээш, доош товчлуур ба системийн цаг юм. Үр дүн нь сегмент ба анодын долоон сегментийн дэлгэц юм.
Эдгээр оролт, гаралтыг портын зураглал бүхий хязгаарлалтын файлд харах болно.
Алхам 6: Ирээдүйн өөрчлөлтүүд
Ирээдүйд төсөлд хөлөг онгоцны хөдөлгөөний функцийг нэмж оруулах нь сайжруулалт болно. Дахиад 2 товчлуурын оролт өгч, хөлөг онгоцонд 0, 4, 8 -аас өөр байрлал (төлөв) авах боломжийг олгосноор үүнийг хийж болно. Өөр нэг өөрчлөлт бол астероидын дараагийн төлөв байдлын цаг хугацааг хянах бөгөөд ингэснээр аажмаар эхэлж, хурдыг нэмэгдүүлнэ. Усан онгоцыг цохих хүртлээ алгасах тоолондоо 1.5 дахин ихэсч, дахин эхлүүлээд дахин удаашрах болно. Энэ нь тоглоомын хүндрэлийг нэмэгдүүлж, үүнийг хэрэгжүүлсэн тохиолдолд хэрэглэгчдэд илүү хөгжилтэй болгоно, мөн рокын дараагийн төлөвийн цагийн хамгийн их тоонд хувьсагч үүсгэж, астероид унахгүй байх бүрт энэ хувьсагчийг 1.5 -аар үржүүлж болно. цохихгүй бөгөөд рок цохих бүрт үүнийг анхны утга болгоно.
Алхам 7: Дүгнэлт
Энэхүү төсөл нь хязгаарлагдмал төлөвт байгаа машин, цаг, долоон сегментийн дэлгэц дээр интерактив байдлаар харуулахыг илүү сайн ойлгоход бидэнд тусалсан юм.
Хязгаарлагдмал төлөв байдлын машинуудын хамгийн том зүйл бол дараагийн хүссэн төлөв рүү шилжихийн тулд яг одоо ямар байдалд байгаагаа мэдэх (санах) чухал юм. Хачирхалтай нь, амьдралын сайн зөвлөгөө; Та хаашаа явж байгаагаа мэдэж байх ёстой.
Цагны янз бүрийн тохиолдлуудыг өөрчилснөөр бид санамсаргүй байдлаар тоо үүсгэх, чулууг дараагийн байрлалд шилжүүлэх, усан онгоц, хад, тоглоомын төгсгөлийн зурвасыг удирдах боломжтой болсон.
Нэгээс олон анодыг нэгэн зэрэг харуулах боломжгүй гэдгийг бид мэдсэн. Бидэнд өгсөн модуль нь хүний нүд зөвхөн тодорхой давтамж хүртэлх ялгааг харж чаддаг давуу талтай байв. Тиймээс анод солих илүү өндөр давтамжийг сонгосон. Хөлөг онгоц, хад чулууг нэгэн зэрэг харж байгаа нь үнэн хэрэгтээ тус тусад нь харуулсан тул маш хурдан дүрслэн харуулсан болно. Энэхүү үзэл баримтлалыг хөлөг онгоц, хадны хөдөлгөөн, "BAnG" мессежийг харуулахад ашигласан болно.
Зөвлөмж болгож буй:
Энэхүү өндөр хүчдэлийн клик-тоглоом тоглоом: 11 алхам (зурагтай)
Энэхүү өндөр хүчдэлийн клик-тоглоом тоглоомын чулуу: 70-аад оны үед ахлах сургуулиудад түгээмэл хэрэглэгддэг чимэг Click-Clack тоглоомын хоёр цахилгаан статик хувилбарыг энд оруулав. Хувилбар 1.0 бол хэт төсвийн загвар юм. Эд анги (цахилгаан хангамжийг оруулаагүй) бараг юу ч биш юм. Илүү үнэтэй, илүү үнэтэй зүйлийн тайлбар
ESP32 VGA аркад тоглоом ба тоглоомын тоглоом: 6 алхам (зурагтай)
ESP32 VGA аркад тоглоом ба джойстик: Энэхүү зааварчилгаанд би VGA дэлгэцийн гаралттай ESP32 ашиглан дөрвөн тоглоомын тоглоом - Tetris - Snake - Breakout - Bomber - ийг хэрхэн яаж хуулбарлахыг үзүүлэх болно. Нарийвчлал нь 320 х 200 пиксел бөгөөд 8 өнгөөр хийгдсэн. Би өмнө нь хувилбарыг нь хийж байсан
MIT програм зохион бүтээгчийн тусламжтайгаар зөөлөн тоглоом бүхий Bluetooth шоо, Android тоглоом хөгжүүлэх: 22 алхам (зурагтай)
MIT App Inventor ашиглан зөөлөн тоглоом бүхий Bluetooth Dice болон Android тоглоом хөгжүүлэх: Шоо тоглох нь өөр өөр арга хэлбэртэй байдаг 1) Уламжлалт модон эсвэл гуулин шоогаар тоглодог.2) Гар утас эсвэл pc. -ийн гараар эсвэл pc. -ээр үүсгэсэн шоо утгыг гар утсан дээр эсвэл компьютер дээр тоглоорой. шоо биетэй тоглож, зоосыг гар утас эсвэл компьютер дээр зөөж болно
Саймон тоглоом - Хөгжилтэй тоглоом: 5 алхам
Саймон Тоглоом - Хөгжилтэй Тоглоом !: Лавлах: Энд Амралтын өдрүүд өнгөрсний дараа та хариуцсан бүх ажил, ажлаа дуусгахын тулд үнэхээр хичээх ёстой. Бид тархиа сургах цаг болсон, тийм үү? Эдгээр уйтгартай, утгагүй тоглоомуудаас гадна Simon Game нэртэй тоглоом байдаг
20 цаг 20 долларын үнэтэй, олон зуун тоглоом бүхий аркад тоглоом: 7 алхам (зурагтай)
20 цаг 20 долларын үнэтэй хэдэн зуун тоглоом бүхий ширээний тоглоомын тоглоом: Би ийм зүйл хийхийг хэсэг хугацаанд хүсч байсан боловч бусад олон төслийг үргэлж хийх гэж яардаггүй байсан. Би яарч байгаагүй тул би барилгын ажилд шаардлагатай бүх эд ангиудыг хямд үнээр цуглуулах хүртэл хүлээв. Энд