Satura rādītājs:

Arduino kaujas kuģa spēle: 3 soļi
Arduino kaujas kuģa spēle: 3 soļi

Video: Arduino kaujas kuģa spēle: 3 soļi

Video: Arduino kaujas kuģa spēle: 3 soļi
Video: fifteen 2024, Novembris
Anonim
Arduino kaujas kuģa spēle
Arduino kaujas kuģa spēle

Atceros, ka bērnībā spēlēju kaujas kuģu spēles papīra un zīmuļa versiju. Patiesībā tas ir bijis aptuveni kopš Pirmā pasaules kara. Man bija arī “elektronisks” variants 1960. gadu sākumā ar nosaukumu “Sonar Sub Hunt”, kurā bija gaismas un skaņas un slēptās mīnas. Pēc šodienas videospēļu standartiem kaujas kuģis ir diezgan garlaicīgs, bet es domāju, ka es to uztaisīšu, lai tikai redzētu, ko mazbērni par to domā. Galu galā dažreiz retro var būt foršs.

Ir daži šī projekta fragmenti, kas būtu noderīgi citur, pat ja jūs neinteresē Battleship spēles veidošana. Tam ir vienkāršs 4 bitu 1602 LCD interfeiss, kas ietver rutīnu noteiktas rakstzīmju atrašanās vietas iestatīšanai. Ir arī saskarne 4x4 slēdža matricas dekodēšanai. Šīs divas saskarnes ir pieejamas kā atsevišķi iekļauti faili, lai tās būtu viegli pārvietojamas. Spēlei ir arī dažādas skaņas efektu procedūras un vienkārša viena tranzistora audio pastiprinātāja shēma.

1. darbība. Aparatūra

Aparatūra
Aparatūra
Aparatūra
Aparatūra

Šeit sniegtā shēma ir paredzēta vienam spēlētājam, tāpēc būs jāizveido divas vienības. Vienības sazinās, izmantojot 3 vadu saskarni, kas ietver UART TX un RX līnijas un zemējuma vadu. Es izvēlējos izmantot standarta 1/8 collu stereo austiņu ligzdu un standarta kabeli ar vīriešu kontaktdakšām abos galos. RX no vienas kastes iet uz otras kastes TX un otrādi. To var izdarīt, samainot vadus, kas pielodēti austiņu ligzdā kastes iekšpusē, vai apmainot tos uz shēmas plates, kad to veidojat.

Klasiskā spēle tika izklāstīta kā matrica, bet es nolēmu veikt vienkāršu ieviešanu, displejam izmantojot 1602 LCD. Pirmajā rindā ir redzamas spēlētāja kuģu atrašanās vietas un pretinieka metieni. Otrajā rindā tiek parādīti spēlētāja metieni un visi trāpījumi pretinieka kuģos. Tas nodrošina 16 iespējamās kuģu atrašanās vietas. Kuģu skaits ir noteikts programmatūrā, un es patvaļīgi izvēlējos 5.

16 kuģu atrašanās vietas labi atbilst slēdža prasībām, jo tas ļauj izveidot 4x4 matricu. Ir pieejami 4x4 matricas slēdžu paliktņi, bet es izvēlējos izmantot atsevišķus slēdžus vienā rindā, lai tie atbilstu lineārajam displejam. Tomēr es vadu slēdžus kā 4x4 matricu, lai būtu vajadzīgas tikai astoņas Arduino tapas. Pareizus savienojumus skatiet slēdža elektroinstalācijas shēmā un shēmā.

LCD displejs ir savienots ar 4 bitu saskarni. Es arī pievienoju ārēju gaismas diodi uz tapas D13, lai norādītu, kuram spēlētājam vajadzētu fotografēt. Sākotnēji spēlētāji izlemj, kurš uzņem pirmo metienu, un pēc tam programmatūra automātiski kontrolē spēles turp un atpakaļ.

Es gribēju pievienot vienkāršus skaņas efektus kadram, sprādzieniem, spēlei gatavu un uzvarētājam/zaudētājam. Es mēģināju izmantot vienkāršu pjezo skaņas signālu, bet tā vietā es saņēmu nelielu skaļruni. Skaļrunim nepieciešamā strāva pārsniedz Arduino spēju tikt galā, tāpēc tika pievienots vienkāršs tranzistora pastiprinātājs. Skaņa joprojām nav lieliska, taču tā ir labāka nekā ar skaņas signālu. Mans skaļrunis ir 4 omi, bet, ja jums ir 8 omi, tad shematiski nomainiet rezistoru no 39 omiem uz 33 omiem. Ja izmantojat pjezo skaņas signālu, jums vajadzētu būt iespējai to vadīt tieši no Arduino tapas, bet skaņas signāla otra puse ir savienota ar zemi.

Iekļauts arī ārējs atiestatīšanas slēdzis, kas ir pieslēgts tieši starp zemi un Arduino “atiestatīšanas” tapu. Tas nodrošina līdzekļus spēles restartēšanai.

2. darbība: programmatūra

Programmatūrā ir iekļauts iekļaut fails manam LCD interfeisam, un es arī izveidoju iekļaušanas failu 4x4 slēdža matricas skenēšanai. Inicializācija liek spēlētājam izvēlēties savu kuģu atrašanās vietas un pēc tam pāriet stāvoklī “Gatavs”. Kad abi spēlētāji ir gatavi, viens no viņiem sāk spēli, nospiežot slēdzi.

Metiena atrašanās vieta tiek pārraidīta caur UART otram spēlētājam, un atbilstošais rezultāts tiek nosūtīts atpakaļ spēlētājam, kurš izdarīja šāvienu. Kā minēts iepriekš, pēc pirmā kadra uzņemšanas programmatūra nosaka, kurš uzņem nākamo kadru. Pirms šāviena pārraides tas tiek pārbaudīts, salīdzinot ar iepriekšējo kadru atrašanās vietām. Ja šī vieta jau ir izmantota, kadrs netiks pārraidīts. Gaismas diode “My_Shot” nosaka, kuram ir kārta. Ir arī šāviena skaņa, kas tiek ģenerēta derīgai atlasei, un sprādziena skaņa, ja tiek trāpīts kuģim. Skaņas efekti ir iegūti no piemēriem, kas atrodami tiešsaistē ar modifikācijām atbilstoši spēlei.

Tiklīdz visi pretinieka kuģi ir trāpīti, uz katra LCD tiek parādīts ziņojums - viens kā uzvarētājs, otrs kā zaudētājs. Ziņojumā arī norādīts, ka spēli var atsākt, nospiežot atiestatīšanas pogu. Uzvarētājam un zaudētājam ir arī atsevišķi skaņas efekti.

3. darbība. Ekrānuzņēmumi

Ekrānuzņēmumi
Ekrānuzņēmumi
Ekrānuzņēmumi
Ekrānuzņēmumi
Ekrānuzņēmumi
Ekrānuzņēmumi
Ekrānuzņēmumi
Ekrānuzņēmumi

Šeit ir daži ekrānuzņēmumi no spēles. Tas ir šim ierakstam. Apskatiet citus manu pamācību materiālus un arī manu vietni: www.boomerrules.wordpress.com

Ieteicams: