Агуулгын хүснэгт:
- Алхам 1: Тойм
- Алхам 2: Материал
- Алхам 3: Тоглоом хийх
- Алхам 4: Ирээдүйн өөрчлөлтүүд
- Алхам 5: Дүгнэлт
Видео: Уурхайчин: 5 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:05
CPE 133-ийн эцсийн төслийн хувьд Чейз бид хоёр "Minesweeper" тоглоомыг бүтээхээр шийдсэн бөгөөд үүнд Basys-3 самбараас оруулсан оролт, VHDL кодыг ашигласан болно. Тоглоомын илүү сайн нэр нь "Оросын рулет" байж болох ч бид илүү гэр бүлд ээлтэй нэрээр явахыг хүссэн юм. Тоглоом нь хэрэглэгчийг Basys самбар дээрх дунд товчлуурыг дарахад бөмбөг ашиглах боломжтой 16 унтраалгын аль нэгийг санамсаргүй байдлаар хуваарилах явдал юм. Хоёр тоглогч ээлжлэн ээлжлэн ээлжлэн ээлжлэн ээлжлэн тоглогчдын нэгийг нь "бөмбөг" -өөр солих хүртэл ээлжлэн эргүүлнэ. Ийм зүйл тохиолдвол долоон сегментийн дэлгэц нь тоглогч дөнгөж хожигдсон тухай тоглогчдод анхааруулдаг.
Алхам 1: Тойм
Төсөл нь энэ улиралд ашигласан олон VHDL модулийг ашигласан болно. Дөрвөн битийн тоолуурыг нэг ирмэгийг идэвхжүүлэхийн тулд санамсаргүй дөрвөн битийн тоог дуурайх зорилгоор цагны ирмэгийг ашигласан. Долоон сегментийн дэлгэц дээр тоглогчид тоглолтын дунд байх үед 'PLAY', тоглогчдын нэг нь идэвхтэй унтраалгыг эргүүлэх үед 'LOSE' хүртэл янз бүрийн үг оруулахын тулд төлөв байдлын диаграммыг ашигласан болно.
Алхам 2: Материал
- Digilent, Inc -ийн Basys3 хөгжлийн зөвлөл.
- Vivado Design Suite BC_DEC.vhd (Энэ файлыг Polylearn дээр бидэнд өгсөн бөгөөд Брайан Мийли бичсэн)
- T флип флопоор хийсэн 4 битийн тоолуур
- FSM
Алхам 3: Тоглоом хийх
Энэ тоглоомыг хийх эхний алхам бол бидний ашиглах бүх бүрэлдэхүүн хэсгүүдийн схемийг зурах явдал байв. Энэ системийн оролтууд нь 1 товч, 16 унтраалга, Цаг байв. Гаралт нь долоон сегментийн дэлгэц ба анодууд байв. Хэлхээний диаграмыг зурсны дараа бид Vivado -д бүрэлдэхүүн хэсэг бүрийн хувьд тусдаа эх файлуудыг бичиж, үндсэн эх файлын дор порт газрын зургийг ашиглан нэгтгэв.
Тоглоомын бүх үндэс нь 16 унтраалгын аль нэгийг тэсрэх бөмбөгөөр санамсаргүй байдлаар хуваарилах явдал бөгөөд тоглогчид энэ түлхүүрийг эргүүлэх хүртэл аль унтраалга идэвхтэй байгааг мэдэхгүй байх явдал юм. Бид онлайнаар санамсаргүй болон хуурамч санамсаргүй тоо үүсгэгчийг хайж үзсэн боловч эцэст нь 4 битийн тоолуур ашиглаж, холбогдох унтраалгыг идэвхжүүлсэн байх нь бидний хайж байсан зүйлд хангалттай санамсаргүй байдлаар шийдсэн юм. Бид энэ даалгаварт ажиллахын тулд өмнөх төсөл дээр бүтээсэн 4 битийн тоолуураа дахин ашиглаж чадсан. Бид тоолуур ашиглан 0-15 хооронд санамсаргүй тоо үүсгэсэн; Дараа нь main1 бүрэлдэхүүн хэсэгт бид санамсаргүй тооны аравтын эквивалентийг самбар дээрх харгалзах унтраалга руу хуваарилав. Схемд үзүүлсэн шиг main1 бүрэлдэхүүн хэсгийн X гаралт (идэвхтэй бөмбөг) болон тоглогчдын асаасан унтраалга хоёулаа FSM1 рүү очдог. Мужийн машин нь нэг битийн Z утгыг гаргадаг бөгөөд үүнийг BC_DEC1 уншдаг. Бидний ашигладаг Finite State Machine нь хоёр өөр төлөвтэй: А төлөвт, долоон сегментийн дэлгэц нь 'PLAY' гаргадаг бөгөөд идэвхжүүлсэн унтраалгыг эргүүлэхийг хүлээн зөвшөөрөх хүртэл машин энэ төлөвт үлддэг. Нэгэнт ийм зүйл болсны дараа FSM нь "LOSE" гэсэн долоон сегментийн дэлгэц дээр гараад бүх 16 унтраалгыг "0" болгон эргүүлэх хүртэл энэ төлөвт байх болно. Энэ нөхцөл хангагдсан тохиолдолд FSM дахин А төлөвт орж тоглогчдыг өөр тоглоом эхлүүлэхийг хүлээж байна. Энэхүү FSM -ийг ойлгоход туслах Мур диаграммыг дээр үзүүлэв.
Алхам 4: Ирээдүйн өөрчлөлтүүд
Бидний тоглоомд хийх гэж байсан хэд хэдэн өөрчлөлтийн хүрээнд бөмбөгийг талбайд нэмж оруулах (магадгүй нэгээс гурав хүртэл нэмэгдэх магадлалтай), онооны тоолуур болон олон тойрог оруулах зэрэг орно. Эцэст нь бид эдгээр сайжруулалтын эсрэг шийдсэн бөгөөд урт, сунгасан тоглоом тоглох нь ихэвчлэн гурав, дөрвөн удаа эргүүлсний дараа дуусдаг тоглоомоос илүү хурцадмал, эцэст нь илүү хөгжилтэй байдгийг олж мэдсэн.
Алхам 5: Дүгнэлт
Энэ төслийн эцсийн үр дүнд бид маш их баяртай байсан; Тоглоомын эцсийн хувилбар тоглох нь зугаатай байсан төдийгүй төслийг бүтээх, програмчлах нь биднээс энэ улиралд сурч мэдсэн бүх зүйлээ ашиглахыг шаардсан юм. Бид Flip Flops, тоолуур, FSMs, цаг, самбараас хэрэглэгчийн оролт, долоон сегментийн дэлгэцийн гаралтыг ашигласан.
Хэд хэдэн синтаксийн алдаа нь програмыг хэрхэн бүрмөсөн эвдэж болохыг (Python эсвэл Java гэх мэт бусад програмчлалын хэл дээр сайн гэж тооцогддог байсан ч гэсэн) зөвхөн кодын олон симуляци болон олон давталтын дараа байршуулж, туршиж үзсэний дараа л олж мэдсэн. Удирдах зөвлөл, та эцэст нь кодынхоо бүх алдааг арилгах боломжтой болно.
Зөвлөмж болгож буй:
Arduino Uno ашиглан акустик левитаци Алхам алхам (8 алхам): 8 алхам
Arduino Uno-тай акустик Levitation Алхам алхамаар (8 алхам): хэт авианы дууны дамжуулагч L298N Dc эмэгтэй адаптерийн эрэгтэй тэжээлийн тэжээлийн хангамж Arduino UNOBreadboard Энэ нь хэрхэн ажилладаг вэ: Нэгдүгээрт, та кодыг Arduino Uno-д байршуулдаг (энэ нь дижитал төхөөрөмжөөр тоноглогдсон микроконтроллер юм. кодыг хөрвүүлэх аналог портууд (C ++)
Болт - DIY утасгүй цэнэглэх шөнийн цаг (6 алхам): 6 алхам (зурагтай)
Болт - DIY утасгүй цэнэглэх шөнийн цаг (6 алхам): Индуктив цэнэглэгч (утасгүй цэнэглэх эсвэл утасгүй цэнэглэх гэж нэрлэдэг) нь утасгүй цахилгаан дамжуулах төрөл юм. Энэ нь цахилгаан соронзон индукцийг ашиглан зөөврийн төхөөрөмжүүдийг цахилгаан эрчим хүчээр хангадаг. Хамгийн түгээмэл програм бол Qi утасгүй цэнэглэгч юм
Arduino автомат сүүдэрлэх дэлгэцийн төсөлд алхам алхмаар мотор, жолооч сонгох: 12 алхам (зурагтай)
Arduino автоматжуулсан сүүдэртэй дэлгэцийн төслийн алхам ба моторыг сонгох: Энэхүү зааварчилгаанд би Автомат Сүүдэрт Дэлгэцийн прототипийн төслийн хувьд шаталсан мотор ба драйверыг сонгох алхамуудыг хийх болно. Сүүдэр дэлгэц нь гараар хийсэн хамгийн алдартай, хямд Coolaroo загварууд бөгөөд би үүнийг солихыг хүссэн
Хялбар алхам, зураг бүхий компьютерийг хэрхэн задлах вэ: 13 алхам (зурагтай)
Энгийн алхам, зураг бүхий компьютерийг хэрхэн задлах вэ: Энэ бол компьютерийг хэрхэн задлах тухай заавар юм. Ихэнх үндсэн бүрэлдэхүүн хэсгүүд нь модульчлагдсан бөгөөд амархан арилдаг. Гэсэн хэдий ч үүнийг зохион байгуулах нь чухал юм. Энэ нь эд ангиудыг алдахаас сэргийлж, мөн угсрах ажлыг хялбарчлах болно
Уурхайчин бялуу - RoboPasty - Pasties: 4 алхам
Уурхайчин бялуу - RoboPasty - Пасти: Энэ төрлийн хоол нь уурхайчинд зориулагдсан бөгөөд эдгээр нь пастер биш (үзэгчдийн уналт), тогоогүй тогоо (мөн үзэгчдийн тоо буурдаг), уурхайчдад зориулж боловсруулсан гар хийцийн бүрэн хоол юм. бүх төрлийн уурхайг тэдэнтэй хамт гүн гүнзгий авч явах