Turinys:

„Arduino“ir „Touchpad Tic Tac Toe“: 8 žingsniai (su nuotraukomis)
„Arduino“ir „Touchpad Tic Tac Toe“: 8 žingsniai (su nuotraukomis)

Video: „Arduino“ir „Touchpad Tic Tac Toe“: 8 žingsniai (su nuotraukomis)

Video: „Arduino“ir „Touchpad Tic Tac Toe“: 8 žingsniai (su nuotraukomis)
Video: Arduino - Tic Tac Toe Game with Touchpad 2024, Rugsėjis
Anonim
„Arduino“ir „Touchpad Tic Tac Toe“
„Arduino“ir „Touchpad Tic Tac Toe“

Arba, įvesties ir išvesties multipleksavimo pratimas ir darbas su antgaliais. Ir pateikimas „Arduino“konkursui.

Tai tikrojo tac toe žaidimo įgyvendinimas, naudojant 3x3 dviejų spalvų LED šviesos diodų ekraną, paprastą atsparų jutiklinį kilimėlį ir „Arduino“, kad viskas būtų sujungta. Norėdami pamatyti, kaip tai veikia, peržiūrėkite vaizdo įrašą: Ko reikia šiam projektui: Dalys ir eksploatacinės medžiagos Viena perf plokštė (arba juostinė plokštė) Devyni dviejų spalvų šviesos diodai, bendras katodas Devyni identiški rezistoriai, 100–220 omų diapazone Šeši vienodi rezistoriai 10–hm - 500 khm diapazonas Vienas vienas polis, dvigubo mėtymo jungiklis Daugybė antgalių kaiščių Elektros laidų krūva Vienas mažas kvadratinis skaidraus akrilo lakštas, ~ 1 mm storio, 8 cm šone Išvalyti lipnią juostą Šilumos susitraukimai (neprivaloma) yra gana paplitę daiktai, kurių bendra kaina neturėtų viršyti 20 USD. Įrankiai „One Arduino“sąranka („Arduino Duemilanove“, „Arduino IDE“, kompiuteris, USB kabelis) Įprasti elektriniai įrankiai (multimetras, litavimo litavimo pistoletas, vielos atraižos, vielos pjaustytuvas) Viskas, kas susiję su „Arduino“rasti https://www.arduino.cc. Tęskite statybą!

1 žingsnis: LED matricos prijungimas

LED matricos prijungimas
LED matricos prijungimas
LED matricos prijungimas
LED matricos prijungimas

Kad šviesos diodas užsidegtų, abu jo laidai turi būti prijungti. Jei kiekvienam iš 18 šviesos diodų (9 raudonos, 9 žalios spalvos) skirtume porą kaiščių, „Arduino“kaiščių greitai pritrūktų. Tačiau naudojant multipleksavimą, mes galėsime kreiptis į visus šviesos diodus tik 9 kaiščiais! Norėdami tai padaryti, šviesos diodai yra prijungti skersiniu būdu, kaip parodyta pirmame paveikslėlyje. Šviesos diodai yra sugrupuoti į trijų stulpelius, o jų katodai sugrupuoti į šešių eilučių eilutes. Nustatydami tam tikrą anodo liniją aukštą, o tam tikrą katodo liniją žemą ir turėdami didelę varžą visoms kitoms anodo ir katodo linijoms, galime pasirinkite, kurį šviesos diodą norime uždegti, nes yra tik vienas galimas srovės kelias. Pavyzdžiui, antrame paveikslėlyje nustatant žalią anodą 1 eilutę aukštai, o 1 katodo eilutę žemai, šviečia apatinis kairysis žalias šviesos diodas. Dabartinis kelias šiuo atveju rodomas mėlyna spalva. Bet ką daryti, jei norite įjungti daugiau nei vieną šviesos diodą skirtingose linijose? Tam pasitelksime vizijos atkaklumą. Labai greitai pasirenkant LED linijų poras, susidaro iliuzija, kad visi pasirinkti šviesos diodai dega vienu metu.

2 žingsnis: LED matricos išdėstymas

LED matricos išdėstymas
LED matricos išdėstymas
LED matricos išdėstymas
LED matricos išdėstymas

Žemiau esančioje schemoje parodyta, kaip fiziškai prijungti šviesos diodai (G1-G9: žali šviesos diodai, R1-R9: raudoni šviesos diodai). Ši diagrama skirta atskiriems raudoniems ir žaliems šviesos diodams, jei naudojate dvispalvius bendrus katodo raudonos/žalios spalvos šviesos diodus, vienoje raudonos/žalios spalvos poroje yra tik viena katodo kojelė, kurią turite prijungti. Raudona ir žalia anodo linijos eina į PWM kaiščius „Arduino“(3, 5, 6, 9, 10, 11 kaiščiai „Duemilanove“), kad vėliau galėtume turėti tokių efektų kaip išblukimas. Katodo linijos eina į 4, 7 ir 8 kaiščius. Kiekvienoje katodo ir anodo linijoje yra 100 omų atsparumo.

3 žingsnis: kreipkitės į LED matricą

Norėdami gauti tikrojo tako kodo kodą, turėsime sugebėti išsaugoti šią informaciją apie šviesos diodus: - ar šviesos diodas dega, ar ne - jei šviečia, ar jis raudonas ar žalias. Vienas iš būdų tai padaryti yra išsaugoti būseną. 9 langelių masyve, naudojant tris skaitmenis, vaizduojančius būseną (0 = išjungta, 1 = raudona, 2 = žalia). Kiekvieną kartą, kai turime patikrinti šviesos diodo būsenas, pavyzdžiui, norėdami patikrinti, ar yra laimėjimo sąlyga, turėsime pereiti per masyvą. Tai yra veiksmingas metodas, tačiau gana nepatogus. Paprastesnis metodas būtų naudoti dvi devynių bitų grupes. Pirmoje devynių bitų grupėje saugoma šviesos diodų įjungimo būsena, o antroje devynių bitų grupėje-spalva. Tada manipuliavimas šviesos diodų būsenomis tiesiog tampa bitų aritmetikos ir poslinkio reikalas. Štai dirbtas pavyzdys. Tarkime, grafiškai nubraižome savo tikrojo tako pirštų tinklelį ir pirmiausia įjungimo-išjungimo būsenai parodyti naudojame 1s ir 0s (1 yra įjungta, 0 išjungta): 000 000 = matrica su apatiniu kairiuoju šviesos diodo apšvietimu 100 100 010 = matrica su įstrižaine Šviesos diodai šviečia 001 Jei išvardysime langelius iš apačios kairėje, aukščiau pateiktus vaizdus galime parašyti kaip bitų seriją. Pirmuoju atveju tai būtų 100000000, o antruoju atveju - 001010100. Jei mes manome, kad tai yra dvejetainiai vaizdai, tada kiekviena bitų serija gali būti sutraukta į vieną skaičių (pirmuoju atveju - 256, 84) antruoju atveju). Taigi, užuot naudoję masyvą matricos būsenai saugoti, galime naudoti tik vieną skaičių! Panašiai LED spalvą galime pavaizduoti taip pat (1 yra raudona, 0 - žalia). Pirmiausia tarkime, kad visi šviesos diodai dega (taigi įjungimo-išjungimo būsena žymima 511). Žemiau esanti matrica parodys šviesos diodų spalvų būseną: 010 žalia, raudona, žalia 101 raudona, žalia, raudona 010 žalia, raudona, žalia Dabar, kai rodome LED matricą, turime tik pereiti kiekvieną bitą, pirmiausia įjungimo ir išjungimo būsenoje, o paskui spalvos būsenoje. Pvz., Tarkime, kad mūsų įjungimo ir išjungimo būsena yra 100100100, o spalvos būsena-010101010. Štai mūsų algoritmas, skirtas šviesos diodų matricai įžiebti: 1 veiksmas. Po truputį pridėkite įjungimo-išjungimo būseną su dvejetainiu 1 (ty maskavimas). 2 veiksmas. Jei tai tiesa, šviesos diodas šviečia. Dabar pridėkite spalvų būseną bitiniu būdu dvejetainiu būdu. 3. 3 žingsnis. Jei tai tiesa, užsidega raudonas šviesos diodas. Jei tai klaidinga, užsidega žalias šviesos diodas. Žingsnis 4. Perkelkite ir įjungimo, ir spalvų būseną, vieną bitą į dešinę (ty bitų poslinkis). 5 veiksmas. Kartokite 1–4 veiksmus, kol bus perskaityti visi devyni bitai. Atminkite, kad užpildome matricą atgal - pradedame nuo 9 langelio, tada grįžtame prie 1 langelio. Be to, įjungimo ir išjungimo ir spalvų būsenos saugomos kaip nepasirašytas sveikojo skaičiaus tipas (žodis), o ne pasirašytas sveikasis skaičius. Taip yra todėl, kad keisdami bitus, jei nebūsime atsargūs, galime netyčia pakeisti kintamojo ženklą. Pridedamas LED matricos apšvietimo kodas.

4 žingsnis: jutiklinio kilimėlio sukūrimas

Jutiklinio kilimėlio konstravimas
Jutiklinio kilimėlio konstravimas
Jutiklinio kilimėlio konstravimas
Jutiklinio kilimėlio konstravimas
Jutiklinio kilimėlio konstravimas
Jutiklinio kilimėlio konstravimas
Jutiklinio kilimėlio konstravimas
Jutiklinio kilimėlio konstravimas

Jutiklinė plokštė pagaminta iš plono akrilo lakšto, pakankamai didelio, kad galėtų uždengti LED matricą. Tada užklijuokite eilių ir stulpelių laidus ant akrilo lakšto, naudodami skaidrią juostą. Skaidri juosta taip pat naudojama kaip izoliacinė tarpinė tarp laidų sankryžose. Būtinai naudokite švarius įrankius, kad pirštų riebalai nepatektų į lipnią juostos pusę. Pirštų atspaudų dėmės ne tik atrodo negražiai, bet ir daro juostą mažiau lipnią. Nupjaukite vieną kiekvienos linijos galą, o kitą - lituokite prie ilgesnės vielos. Prieš lituodami ant jungčių, lituokite rezistorių kartu su laidais. Čia naudojami rezistoriai yra 674k, tačiau bet kokia vertė nuo 10k iki 1M turėtų būti tinkama. Sujungimai su "Arduino" atliekami naudojant 6 analoginius kaiščius, 14-16 kaiščiai prijungti prie vielos tinklo eilių, o 17-19 kaiščiai prijungti prie stulpelius.

5 žingsnis: jutiklinis kilimėlis - kaip tai veikia

Jutiklinis kilimėlis - kaip tai veikia
Jutiklinis kilimėlis - kaip tai veikia
Jutiklinis kilimėlis - kaip tai veikia
Jutiklinis kilimėlis - kaip tai veikia

Lygiai taip pat, kaip mes naudojome skersinį multiplekserį, kad nustatytume LED matricą su minimaliais kaiščiais, mes galime naudoti panašų skersinį multiplekserį, kad nustatytume jutiklinį jutiklių masyvą, kurį mes galime naudoti suaktyvinti šviesos diodus. Šio jutiklinio kilimėlio koncepcija yra paprasta. Iš esmės tai yra vielos tinklelis, kuriame trys pliki laidai eina eilėmis, o trys pliki laidai - stulpeliuose virš eilučių. Kiekviename susikirtimo taške yra nedidelis izoliacijos kvadratas, neleidžiantis dviem laidams liestis. Pirštas, liečiantis sankryžą, palies abu laidus, todėl tarp dviejų laidų atsiras didžiulis, bet baigtinis pasipriešinimas. Todėl per vieną laidą į kitą per pirštą gali tekėti nedidelė, bet aptinkama srovė. Norint nustatyti, kuri sankryža buvo paspausta, buvo naudojamas toks metodas: 1 žingsnis: nustatykite visas stulpelių linijas į OUTPUT LOW. 2 veiksmas: nustatykite eilučių eilutes į ĮVESTI, suaktyvinus vidinius prisitraukimus. 3 žingsnis: paimkite analoginį nuskaitymą kiekvienoje eilutės eilutėje, kol vertė nukris žemiau nurodytos ribos. Tai nurodo, kurioje eilutėje yra suspausta sankryža. 4 žingsnis: pakartokite 1–3 veiksmus, bet dabar su stulpeliais kaip įėjimais ir eilutėmis kaip išėjimais. Tai nurodo, kuriame stulpelyje yra suspausta sankryža. Siekiant sumažinti triukšmo poveikį, imami keli rodmenys ir tada apskaičiuojamas vidurkis. Tada vidutinis rezultatas lyginamas su slenksčiu. Kadangi šis metodas tikrinamas pagal slenkstį, jis netinka aptikti vienu metu paspaudimus. Tačiau, kadangi „Tic Tac Toe“vyksta paeiliui, pakanka perskaityti vieną paspaudimą. Pridedamas eskizas, iliustruojantis, kaip veikia jutiklinė planšetė. Kaip ir LED matricoje, bitai naudojami paspaudus sankryžą.

6 žingsnis: viską sudėkite

Viską sujungti
Viską sujungti

Dabar, kai visi atskiri komponentai yra pagaminti, atėjo laikas juos visus sujungti. Uždenkite vielos tinklelį ant LED matricos. Jums gali tekti pertvarkyti kaiščių numeravimą LED matricos kode, kad jis būtų sinchronizuotas su vielos tinklo jutikliu. Pritvirtinkite vielos tinklelį pasirinktomis tvirtinimo detalėmis ar klijais ir klijuokite ant gražios žaidimų lentos. Pridėkite jungiklį tarp 12 kaiščio ir „Arduino“žemės. Šis jungiklis skirtas perjungti 2 ir 1 žaidėjų režimus (palyginti su mikrovaldikliu).

7 žingsnis: „Tic Tac Toe“programavimas

Pridedamas žaidimo kodas. Pirmiausia suskaidykime „tac tac toe“žaidimą į kelis jo veiksmus dviejų žaidėjų režimu: 1 veiksmas: žaidėjas A parenka neužpildytą langelį, paliesdamas sankryžą. 2 veiksmas: tos ląstelės šviesos diodas šviečia spalva A. 3 žingsnis: patikrinkite, ar žaidėjas A laimėjo. 4 žingsnis: žaidėjas B pasirenka neužpildytą langelį. 5 žingsnis: tos ląstelės šviesos diodas šviečia B spalva. 6 veiksmas: patikrinkite, ar žaidėjas B laimėjo. 7 žingsnis: kartokite 1–6, kol bus laimėjimo sąlyga arba jei visos ląstelės bus užpildytos. Ląstelių skaitymas: programa eina tarp tinklelio skaitymo ir LED matricos rodymo.. Kol tinklelio jutiklis neužregistruos ne nulinės vertės, ši kilpa tęsis. Paspaudus sankirtą, spaudžiamas kintamasis išsaugo išspaustos ląstelės padėtį. Tikrinimas, ar langelis neužpildytas: Kai gaunamas padėties rodmuo (kintamasis spaudžiamas), jis lyginamas su esama langelio būsena (saugoma kintamajame GridOnOff) naudojant bitų papildymą. Jei paspaustas langelis neužpildytas, tada užsidega šviesos diodas, kitu atveju grįžkite prie langelių skaitymo. Spalvų perjungimas: loginis kintamasis „Turn“naudojamas įrašyti, kieno eilė. LED spalva, pasirinkta renkant langelį, nustatoma pagal šį kintamąjį, kuris keičiasi kiekvieną kartą, kai pasirenkamas langelis. Laimėjimo sąlygos tikrinimas: yra tik 8 galimos laimėjimo sąlygos, kurios yra saugomos kaip žodžio kintamieji masyve (winArray). Du bitų papildymai naudojami žaidėjo užpildytų langelių pozicijų palyginimui su laimėjimo sąlygomis. Jei yra rungtynės, tada programa parodo laimėjimo tvarką, po kurios ji pradeda naują žaidimą. Lygiosios sąlygos tikrinimas: Kai įrašyti devyni apsisukimai ir vis dar nėra laimėjimo sąlygų, žaidimas yra lygus. Tada šviesos diodai užgęsta ir pradedamas naujas žaidimas. Perjungimas į vieno žaidėjo režimą: Jei jungiklis yra įjungtoje padėtyje, programa pereina į vieno žaidėjo režimą, o pirmasis žaidėjas pradeda veikti. Žaidėjo eilės pabaigoje programa tiesiog parenka atsitiktinę langelį. Akivaizdu, kad tai nėra pati protingiausia strategija!

8 žingsnis: pastabos ir tolesni patobulinimai

Čia yra vaizdo įrašas, rodantis vieno žaidėjo režimą, kai programa leidžia visiškai atsitiktinius judesius: Čia parodyta programa yra tik minimali, plikų kaulų versija. Su tuo galima padaryti daug kitų dalykų: 1) Šviečia šviesos diodai po tris vienu metu Dabartinis kodas vienu metu rodo tik vieną šviesos diodą. Tačiau naudojant čia parodytus laidus, vienu metu galima uždegti visus šviesos diodus, prijungtus prie vienos katodo linijos. Taigi, užuot važiavę dviračiu per visas devynias pozicijas, viskas, ką jums reikia padaryti, tai važiuoti per tris katodo linijas. 2) Šviesos diodams rodyti naudokite pertraukas mirgėjimas. Naudojant pertraukas, šviesos diodų laikas gali būti tiksliai valdomas, todėl ekranas bus tolygesnis. pirštų žaidėjas. Tikiuosi, kad jums patiko skaityti šį pamokomą dalyką, kaip man buvo smagu dirbti!

Rekomenduojamas: