Агуулгын хүснэгт:
- Алхам 1: Танд юу хэрэгтэй вэ?
- Алхам 2: Прототипийг хурдан гаргах
- Алхам 3: Бүрхүүл хийх
- Алхам 4: LED матриц хийх
- Алхам 5: Тоглоомын код бичих, тоног төхөөрөмжийг дибаг хийх
- Алхам 6: Бүх зүйлийг нэгтгэх
Видео: Stackers аркад тоглоом: 6 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:03
Сайн байна уу залуусаа, өнөөдөр би та бүхэнтэй Ws2812b LED болон микроконтроллер/FPGA ашиглан хийж болох энэхүү гайхалтай аркад тоглоомыг хуваалцахыг хүсч байна. Stack Overflow -ийг сонгоорой - бидний сонгодог аркад тоглоомын техник хангамжийн хэрэгжилт. Сургуулийн төслөөс эхэлсэн зүйл нь бид тоглоомоо хөгжүүлэх, түүнээс илүү ихийг сурахад илүү их цаг зарцуулж эхэлснээр (мөн xD процессын явцад хичээлээ үл тоомсорлох) эхэлснээр маш хурдан хайрын хөдөлмөр болж хувирсан. Эцэст нь манай тоглоомыг манай сургууль маш сайн зохион байгуулж, маш сайн хүлээж авсан тул хурааж авлаа (дараагийн оюутнуудын демо материал болгон). За, бид үргэлж хоёр дахь хэсгийг барьж болно. Эхэлцгээе!
Тоглоомын онлайн хувилбар:
Алхам 1: Танд юу хэрэгтэй вэ?
Материал:
1. Микроконтроллер/Микрокомпьютер/FPGA - FPGA нь манай тоглоомын логикийг хэрэгжүүлэхэд ашиглагддаг. Самбараа сонгоорой, манай төслийн хувьд бид Mojo FPGA хавтанг ашиглах шаардлагатай болно. Анхан шатны бус хүмүүсийн хувьд энэ нь код гэхээсээ илүү чиг үүргээ хэрэгжүүлэхийн тулд техник хангамж ашигладаг самбар юм. Тиймээс, та Arduino эсвэл Pi ашиглаж байгаагаас хамаагүй доогуур түвшинд байгаа гэж би хэлэх болно. Хэрэв та өөр самбар ашигладаг бол та өөрөө код бичих ёстой, гэхдээ энэ тоглоомыг кодлоход маш хялбар байдаг. Одоо та код бичиж сурах боломжтой боллоо!
2. Ws2812b LED - Энд бид LED -ийг ашиглан тоглоомынхоо дэлгэцийг бүтээж байна. Хэрэв та xD -ээс өмнө Ws2812b -т хүрээгүй бол үйлдвэрлэгч байж чадахгүй. Энэ бол ганц LED -г тасалж, дуртай формац руу буулгах гэсэн утгатай. Мөн энэ нь RGB гэсэн утгатай бөгөөд та хүссэн өнгөөрөө гарч болно. Цаашилбал, FastLED - Ws2812b -ийг удирдах Arduino номын сан маш сайн хөгжсөн. Хэрэв танд байхгүй бол FPGA -ийн оронд Arduino ашиглахыг хүмүүст зөвлөж байна. Та LED -ийг Taobao/Amazon -оос худалдаж авч болно, гэхдээ бид Сингапурын Sim Lim tower -аас худалдаж авсан.
3. Мод-Гадна бүрхүүлийн хувьд 1см зузаантай фанер, LED матрицад 0.3см зузаантай фанер ашигласан. Манай сургуулийн хаягдал модны нөөцийг сургуулийнхаа үйлдвэрлэх лаборатороос олсон.
4. Хөнгөн сарнисан нийлэг - Бидний дэлгэцийн хувьд бид янз бүрийн төрлийн нийлэгийг туршиж үзсэн бөгөөд энэ нь гэрлийг сарниулахад үнэхээр тохиромжтой PL -422 нэртэй царцсан нийлэгийг олсон. Хэрэв та яг загварыг нь олж чадаагүй бол царцсан нийлэгийг хайж үзээрэй. Бид өөрсдийнхөө бүтээгдэхүүнийг Сингапурын Dama Plastics -ээс худалдаж авсан.
5. Хөөс хавтан - Гэрлийн тус бүрийн пиксел тус бүрийг салгахын тулд бидэнд сүлжээний бүтэц хэрэгтэй байсан бөгөөд энэ хөөс нь үүнийг хийхэд хамгийн тохиромжтой материал юм. Бид сургуулийнхаа номын дэлгүүрээс 0.5см зузаантай хөөсөнцөр хавтан худалдаж авсан.
6. Том улаан товчлуур - За, бидэнд ийм том улаан товчлуур байх шаардлагагүй, гэхдээ хүмүүс дарах товчлууртай байх нь үргэлж сайн байдаг! xD Бид үүнийг Сингапур дахь Sim Lim tower -аас худалдаж авсан.
Хэрэгсэл:
1. Модны цавуу
2. Гагнуурын төмөр
3. Гагнуур
4. Утаснууд. Хатуу утастай харьцуулахад зөөлөн утастай байвал сайн. Мөн олон судалтай харьцуулахад нэг цөмтэй.
5. Утас хуулагч
6. Утас таслагч
7. 1мм -ийн өрмийн битээр өрөмдөх
8. Гүйлгэх хөрөө
9. Туузан хөрөө
Дебаг хийх:
1. Хувьсах цахилгаан хангамжийн нэгж
2. Осциллограф
Алхам 2: Прототипийг хурдан гаргах
Төслийнхөө хувьд бид LED матрицаа бүтээж, тоглоомоо програмчлахаасаа өмнө хурдан загварчлах аргыг ашигласан. Үүнийг хийх болсон шалтгаан нь бид код ажиллахгүй байгаа эсвэл тоглоомын логик ямар нэгэн байдлаар алдаатай байгааг ойлгохын тулд LED матрицыг бүтээхийг хүсэхгүй байгаа явдал юм.
Тоног төхөөрөмжийн хувьд эхний шатанд бид гэрлийн хэв маягийг өөрийн энгийн LED матриц руу шилжүүлэх логикоо туршиж үзсэн. Логик сайн ажиллаж байгааг туршиж үзсэнийхээ дараа бид тоглоомын логикоо өөр өөр мөрөөр шалгахын тулд 5 Ws2812b LED -ийн тууз хайчлахаар гарлаа. Үүнийг хийсний дараа бид LED матрицыг бүрэн хэмжээгээр үйлдвэрлэх ажлыг үргэлжлүүлнэ.
Бид мөн LED-ээр янз бүрийн нийлэг дээжийг туршиж үзээд PL-422-ийг хамгийн сайн гэрлийн сарниулагч болгон ашиглахаас өмнө туршиж үзсэн. Мөн тусгаарлагчийн бүтцийн хувьд бид LED -ийг бүрэн сарниулахын тулд өөр өөр өндрийг туршиж үзсэн. Эцэст нь бид 4см өндөртэй 3см*3см хэмжээтэй дөрвөлжин хэлбэрийг хамгийн сайн тархсан болохыг олж мэдэв. Энэхүү оновчтой хэмжээс дээр үндэслэн квадратын хоорондох хөөсөнцөрт 0.5см зай үлдээж 5х11 хэмжээтэй LED матрицад ямар хэмжээтэй фанер хэрэгтэй болохыг шийдсэн.
Програм хангамжийн хувьд бид аль болох модульчлагдсан байхыг хичээдэг. Эхлээд ээлжийн функцийг нэмж оруулахаасаа өмнө LED -үүдийг асааж болох эсэхийг шалгадаг бөгөөд хэрэв та үүнийг хийхгүй бол үр дүн нь сүйрэлд хүргэж болзошгүй юм. Бид үүнийг дибаг хийх боломжгүй гэдгээ ухаарахаасаа өмнө бүхэл бүтэн тоглоомыг том хэмжээтэй кодлохыг оролдож байхдаа үүнийг маш хэцүү аргаар сурсан. Өө!
Алхам 3: Бүрхүүл хийх
Суултын яндангийн хувьд бид сонгодог аркад машины мэдрэмж, дүр төрхийг сонгосон. Нэгдүгээрт, бид нимгэн фанерыг хайчилж, хэлбэрийг нь хурдан гаргахын тулд нимгэн фанер хайчилж, турших нь илүү хялбар бөгөөд хурдан байдаг. Хэмжээ, хэлбэртээ сэтгэл хангалуун болмогц бид бүрээсийг бүтээхдээ зузаан фанер ашиглаж эхлэв. Бид зузаан фанерыг хайчилж авахын тулд туузан хөрөө, нимгэн хэсгийг хайчилж авахын тулд хайчаар хийсэн. Үүний дараа бид модон цавуугаар хооронд нь наалдуулсан.
Фанерын арын хувьд бид доторх электрон төхөөрөмжид хялбархан хандахыг хүссэн тул үүнийг хүссэн үедээ амархан арилгаж болох цоожтой хэсэг болгон хийв.
Товчлуурыг холбохын тулд бид эхлээд товчлуурын микро түлхүүрийн диаметртэй тэнцэх тойргийг зурсан (товчлуурын доод урт хэсэг). Дараа нь бид ирмэгийн ойролцоо цооног өрөмдөж, гүйлгэх хөрөөг ашиглан тойрог харав. Дараа нь бид товчлуурыг тавиад шургуулав.
Мөн бид өмнө нь тооцоолсон хэмжээгээрээ LED матрицын суурь болгон нимгэн фанер хайчилж авдаг.
Тэмдэглэл: Алхам алхамаар хийгдээгүйд хүлцэл өчье. Бид алхамуудыг бүхэлд нь баримтжуулаагүй бөгөөд алхмуудыг баримтжуулах шаардлагатай гэдгийг ойлгосноор бүрхүүл нь аль хэдийн хийгдсэн байсан. Диаграм нь мөн эцсийн хэмжээс биш юм.
Алхам 4: LED матриц хийх
Өмнө нь хайчилж авсан нимгэн хэсгийг ашиглан бид хөөсөнцөр бүтэц дээрээ үндэслэн дөрвөлжин зурж, LED -ийг наах ёстой газрыг дөрвөлжин дунд хөндлөн зурж LED тус бүрийн байрлалыг тэмдэглэнэ. Дараа нь бид LED -ийн тал бүр дээр 3 жижиг нүх өрөмдөж, утсыг дамжуулж, LED бүрт гагнана.
Бид LED-ийн мөр бүрийг Data In and Data Out тээглүүрээр холбож, GND ба VCC тус бүрийг нийтлэг утсаар гагнана. Тэргүүлэх Data In нь эгнээ тус бүрийн гэрлийн хэв маягийг үүсгэх бөгөөд бид үүнийг микроконтроллер/FPGA -ийн холбогч руу холбосон. Та мөн нэг мөрийн сүүлчийн өгөгдлийг нөгөө эгнээний тэргүүлэх өгөгдөл болгон гагнах боломжтой. Ws2812b LED -ийн ажиллах арга нь LED тус бүр нь IC -ийг агуулдаг бөгөөд энэ нь утаснаас шаардлагатай өгөгдлийг авч, үлдсэн хэсгийг гинжин хэлхээгээр дамжуулдаг. Бид LED -ээ өөр гайхалтай зааварчилгаанд суурилсан (Үнэндээ бид үүнийг яг хуулсан! XD)
Энд бид зөөлөн утас ашиглахын ач холбогдлыг онцлон тэмдэглэхийг хүсч байна. Хэрэв та тэргүүлэгч Data In зүүг ашиглахын тулд хатуу, хатуу утас ашигладаг бол утсыг татах бүртээ Ws2812b дээрх зэс бүрээсийг гаргаж авахад юу болох вэ. Энэ төсөлд бид зөөлөн утас руу шилжихээсээ өмнө манай төсөлд шаардлагатай LED -ийн 1/3 нь болох нийт 40 LED -ийг устгасан.
Зааварлах боломжтой:
Алхам 5: Тоглоомын код бичих, тоног төхөөрөмжийг дибаг хийх
Mojo нь Lucid HDL дээр ажилладаг бөгөөд энэ нь хамгийн алдартай хэл биш юм. Бид Lucid -ээс Ws2812b LED номын сан олж чадахгүй байгаа тул бид өөрсдийн номын санг бичихээр шийдсэн нь маш сонирхолтой туршлага юм. Үүнийг хийхийн тулд бид эхлээд Arduino FastLED номын санг ашиглан дамжуулж буй дохиог шинжилж, үүнийг хуулбарлах код бичжээ. Тоног төхөөрөмжийн дибаг хийх нэг арга бол осциллограф нь дохиог шинжлэхэд маш их хэрэгтэй байдаг.
Ws2812b -ийн номын санг бичсэний дараа бид тоглоомын кодыг үргэлжлүүлж, Bit shift функцийг ашиглан блок бүрийг зүүн, баруун тийш шилжүүлж, Bitwise AND to AND квадратуудыг өмнөх эгнээнд шилжүүлэв. Та үүнийг Arduino дээр хэрэгжүүлэх талаар бодож болно, энэ нь тийм ч хэцүү биш байх ёстой. Бид хөгжилтэй байхын тулд тоглоомын дэлгэцийг хүртэл кодлодог байсан!
Манай тоглоом 2 шаттай байсан бөгөөд энэ нь харагдах стек тоглоом (Ногоон), хоёр дахь түвшний үл үзэгдэх стек тоглоом (Цэнхэр) байв.
Ажиллах код, ажлын LED матрицтай байсан ч гэсэн заримдаа гэрэл гялалзах, асахгүй байх үед гэрэл асах гэх мэт асуудалтай тулгардаг. Асуудал нь ихэвчлэн буруу газардуулга, цахилгаан хангамжийн түвшин эсвэл хөндлөнгийн оролцооноос болдог. Энд Mojo/Arduino -ийн цахилгаан хангамж хангалттай эсвэл хэт өндөр байгаа эсэхийг шалгахын тулд танд хувьсах тэжээлийн хангамж гэх мэт тоног төхөөрөмжийн дибаг хийх бусад хэрэгслүүд хэрэгтэй болно. Миний туршлагаас харахад Ws2812b нь маш өргөн хүрээний 2.8v - 5v хүчдэлтэй. Энд би хүчийг нэмэгдүүлсний дараа гэрэл галзуурч байгааг харуулсан видео байна.
Гэсэн хэдий ч цаашдын шалгалтаар бид зохисгүй гагнууртай байсан нь тогтоогдсон тул дахин гагнуурын дараа бидний асуудал шийдэгдсэн. Түүнчлэн хөндлөнгөөс оролцох, хөндлөн юм ярихад асуудал үүсч болох боловч аз болоход бид тэдний нэг нь ч тулгарч байгаагүй.
Github кодууд:
Arduino Bitwise Shift:
Arduino Bitwise AND:
Алхам 6: Бүх зүйлийг нэгтгэх
Танд бүрхүүл ба LED матриц байна. Одоо бүх зүйлийг нэгтгэх цаг болжээ. Эхлээд бид хөөсийг урд талд, LED матрицыг ар талд байрлуулж, байрлалыг нь тохируулав. Хөөс нь маш их үрэлттэй тул LED матрицыг халуун цавуугаар наасан байхад зүгээр л үрэлтийг суурилуулсан болно. Үүний дараа бид дэлгэцийг сүлжээний урд байрлуулав. Дараа нь бид мөр бүрийн зүүг микроконтроллерт залгаад тоглож эхлэв!: D
Энэ төслийн надад таалагдсан нэг зүйл бол уян хатан чанар юм, та микроконтроллерийг өөр тоглоомын нэг хэсэг болгон дахин програмчилж, анимаци хийх эсвэл хариу үйлдэл үзүүлэх тоглоомыг туршиж үзэх боломжтой. Залуус та үүнийг хийх дуртай бөгөөд үүнийг хийхийн тулд ямар нэгэн зүйл сурч авна гэж найдаж байна. GgEz!
Зөвлөмж болгож буй:
Энэхүү өндөр хүчдэлийн клик-тоглоом тоглоом: 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. -ээр үүсгэсэн шоо утгыг гар утсан дээр эсвэл компьютер дээр тоглоорой. шоо биетэй тоглож, зоосыг гар утас эсвэл компьютер дээр зөөж болно
Arduino LED лазер аркад тоглоом: 3 алхам (зурагтай)
Arduino LED лазер аркад тоглоом: Энэхүү зааварчилгаанд би LED болон гэрлийн мэдрэгч ашиглан лазер аркад тоглоомыг хэрхэн хийхийг үзүүлэх болно. Кодыг оруулсан бөгөөд үүнийг бүтээхийн тулд танд маш их хэсэг хэрэггүй болно. Би хэргийг яаж хийснээ танд хэлэхгүй, та өөрөө үүнийг хийх ёстой! T
20 цаг 20 долларын үнэтэй, олон зуун тоглоом бүхий аркад тоглоом: 7 алхам (зурагтай)
20 цаг 20 долларын үнэтэй хэдэн зуун тоглоом бүхий ширээний тоглоомын тоглоом: Би ийм зүйл хийхийг хэсэг хугацаанд хүсч байсан боловч бусад олон төслийг үргэлж хийх гэж яардаггүй байсан. Би яарч байгаагүй тул би барилгын ажилд шаардлагатай бүх эд ангиудыг хямд үнээр цуглуулах хүртэл хүлээв. Энд