Агуулгын хүснэгт:
Видео: ATtiny85 ба OLED дэлгэц дээрх Flappy Bird SSD1306: 6 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:03
Хөөе бүгдээрээ, Өнөөдөр би танд өөрийн үүсгэсэн шувууны анхан шатны клон болон түүнтэй ижил төстэй тоглоомыг хэрхэн яаж хийхийг харуулах болно. Би үндсэндээ тантай хамт кодоо ажиллуулж, алхам тутамд хэрхэн ажилладаг талаар тайлбарлах болно. Энэхүү тоглоомыг 1MHz давтамжтай, I2C OLED дэлгэцтэй ATtiny85 дээр ажиллахаар бүтээжээ. Урагшаа!
Алхам 1: Тоног төхөөрөмж
Хэрэв та тоглоомын схемийг бий болгох сонирхолгүй байгаа боловч түүний онолыг ойлгох юм бол энэ алхамыг алгасаж болно.
Миний тоглоомонд хоёр товчлуур, ATtiny85, I2C OLED 128x64px дэлгэц, зарим тэжээлийн эх үүсвэр шаардлагатай. Миний зааварчилгаа бүхий нэрийн хуудас/тоглоомын консол: ATtiny85 ба OLED дэлгэц нь танд хэрэгтэй бүх зүйлээ агуулсан самбарыг хэрхэн яаж хийхийг танд харуулав! Хэрэв та миний хавтанг хийх сонирхолгүй байгаа бол талхны тавцангаа гаргаад өгөөч, би техникийн үзүүлэлтийг хэлье. Та ATtiny85 -ийн дурын хувилбарыг ашиглаж болно. Би иймэрхүү OLED дэлгэцийг санал болгож байна.
- ATtiny85 дээрх 2 ба 3 -р зүү дээр хоёр товчлуурын нэг талыг утсаар холбоно уу. Эдгээр утсан дээр мөн газардуулгатай холбогдсон 10 к ом эсэргүүцэл (татах эсэргүүцэл) нэмнэ.
- Эдгээр товчлуурын нөгөө талыг хүчдэлд холбоно уу. Товчлуур дарагдаагүй үед зүү төлөв бага байх болно. Үүнийг дарахад зүү төлөв өндөр байх болно.
- 7 -р зүүг дэлгэц дээрх SCL зүү, 5 -р зүүг дэлгэц дээрх SDA зүү рүү холбоно уу. Цахилгаан тээглүүрийг (VCC ба GND) зохих ёсоор утсаар холбоно уу.
- Эцэст нь ATtiny дээрх 4 -р зүүг газардуулж, 8 -р зүүг хүчдэлд холбоно уу.
Алхам 2: Програм хангамж
Тоглоомыг ажиллуулахад шаардлагатай бүх файлыг хавтас хавсаргав. FlappyBird.ino болон WallFunctions.h гэсэн хоёр файлыг уншихад таатай байх үүднээс маш сайн тайлбарласан байгаа. Та FlappyBird.ino ноорогыг ATtiny85 дээрээ (1МГц дээр) байршуулж, хол тоглож болно! Хэрэв энэ тоглоомын онолыг сурч мэдэх нь танд сонирхолтой байгаа бол, эсвэл та өөрөө тоглоом хийхийг хүсч байвал үргэлжлүүлэн уншаарай!
Миний тоглоомонд цөөн хэдэн асуудал байсаар байна. I2C бол өгөгдлийг ямар ч аргаар дамжуулах хамгийн сайн арга биш юм. Энэхүү бичлэгийн дагуу дэлгэц нь зөвхөн 100 кГц давтамжтай өгөгдлийг хүлээн авах боломжтой тул ATtiny цагны хурдыг 8 МГц хүртэл өсгөсөн ч гэсэн I2C суваг гацсан хэвээр байх болно. Дэлгэц нь хамгийн ихдээ 10 кадр / сек хурд гаргах чадвартай. Дэлгэц тус тусад нь тусад нь зурах шаардлагатай бол бүх үйл явц удааширна. Тиймээс, ханыг дэлгэцэн дээр маш хурдан хөдөлгөж чадахгүй тул миний тоглоом маш хялбар боллоо! Хэрэв та даалгавраа амжилттай биелүүлж байна гэж бодож байвал танд дараах бэрхшээлүүд тулгарч байна.
- Тоглоомыг хүндрүүлэхийн тулд хананы хоорондох зайг 4 -ийн оронд 2 болгож авах боломжтой эсэхийг шалгаарай. Миний програм хэрхэн ажилладагийг ойлгосон бол энэ нь тийм ч хэцүү биш байх болно:). Үүнийг ажиллуулах боломжтой бол коммент хэсэгт бичнэ үү!
- Миний тоглоомонд дутагдаж байгаа бас нэг зүйл бол онооны систем, оноог харуулах, хадгалах арга юм. Та үүнийг хэрэгжүүлж чадах эсэхээ шалгаарай!
- Эцэст нь хэлэхэд, хана нь нэг баганыг нэг нэгээр нь хөдөлгөж байхын оронд хана бүрийг нэг пикселээр хөдөлгөж, жигд хөдөлгөөнтэй болгохыг хичээгээрэй.
Алхам 3: Flappy Bird ATtiny85: Онол
Хэдийгээр бидний ашиглаж буй дэлгэц нь тоглоомонд ашиглах 64 пиксел өндөртэй боловч элементүүдийг зөвхөн 8 пиксел хэмжээтэй блокуудад байрлуулах боломжтой. Тиймээс зөвхөн 8 у-координат байж болно. Илүү хялбар болгохын тулд програм хангамж дээр би дэлгэцийг бүхэлд нь хувааж, блок бүрийг 8х8 пикселээр 16 блокоор 8 блокоор хийсэн. Блок бүрийг бөглөхийн тулд тоглоомын спрайт бүр 8х8 пиксел байна. Энэ нь бүх зүйлийг удирдахад илүү хялбар болгодог. Хэрэв та дээрх зургийг харвал миний дэлгэцийг хэрхэн хуваасан болохыг харж болно. Хана бүр нь 6 блокоос бүрдэх бөгөөд 2 блок өндөртэй нүхтэй бөгөөд хана тус бүрийн нийт өндрийг 8 блок болгоно.
Хөтөлбөрт хана бүрийг Wall гэж нэрлэгддэг бүтэц хэлбэрээр дүрсэлсэн байдаг. Ханын бүтэц бүр нь holePosition ба багана гэсэн хоёр шинж чанартай байдаг. 2 блок өндөртэй нүхний хувьд 8 блок бүхий хананд зөвхөн 7 боломжит байрлал байдаг тул 'holePosition' нь 0-6 тоо юм. 'багана' нь 0-15 тоо бөгөөд дэлгэц дээр 16 багана байрлуулах боломжтой байдаг.
Зөвлөмж болгож буй:
Visuino -той SSD1331 OLED Дэлгэц (SPI) дээрх Bitmap Animation: 8 алхам
Visuino -той SSD1331 OLED Дэлгэц (SPI) дээрх Bitmap Animation: Энэхүү гарын авлагад бид BituD дүрсийг Visuino ашиглан SSD1331 OLED Display (SPI) дээр энгийн хөдөлгөөнт дүрс хэлбэрээр харуулах, шилжүүлэх болно
Een Slim дэлгэц дээрх Verander Een Ongebruikte ухаалаг гар утас: 6 алхам (зурагтай)
Een Slim Display дээрх ухаалаг гар утас. Google -ийн хүснэгтийг үзэхэд хамгийн нарийн дэлгэцтэй автомашинууд нь гарын авлага, гарын авлага, сургалтын товчлууруудтай танилцсан болно
OLED SPI дэлгэц ба ширхэгийн фотоны самбар дээрх жиргээ: 6 алхам
OLED SPI дэлгэц ба ширхэгийн фотоны самбар дээрх жиргээ: Сайн байцгаана уу, бүгдээрээ. Энэхүү хялбар заавар нь IFTTT болон Photon самбар ашиглан жиргээгээ хэрхэн уншихыг харуулах болно. Та үүнийг сургамжтай гэж үзэх хэрэгтэй байж магадгүй юм
Arduino Flappy Bird - Arduino 2.4 "TFT мэдрэгчтэй дэлгэц SPFD5408 шувууны тоглоомын төсөл: 3 алхам
Arduino Flappy Bird | Arduino 2.4 "TFT мэдрэгчтэй дэлгэц SPFD5408 шувууны тоглоомын төсөл: Flappy Bird нь хэдхэн жилийн дараа маш алдартай тоглоом байсан бөгөөд олон хүмүүс үүнийг өөрийнхөөрөө бүтээсэн тул би Arduino -тай flappy шувууны хувилбарыг бүтээсэн бөгөөд 2.4" TFT Мэдрэгчтэй дэлгэц SPFD5408, Тиймээс эхэлцгээе
Itybitsy M4 Express ашиглан SSD1306 I2C OLED 128x64 дэлгэц дээрх график: 13 алхам (зурагтай)
Itybitsy M4 Express ашиглан SSD1306 I2C OLED 128x64 дэлгэц дээрх график: SSD1306 OLED дэлгэц нь жижиг хэмжээтэй (0.96 "), хямд, өргөн хэрэглэгддэг, I2C, 128х64 пиксел хэмжээтэй, нэг интерфэйстэй, нэг өнгийн график дэлгэц юм. утаснууд) Raspberry Pi, Arduino гэх мэт микропроцессор хөгжүүлэх самбарууд руу