Kazalo:

Arduino in sledilna ploščica Tic Tac Toe: 8 korakov (s slikami)
Arduino in sledilna ploščica Tic Tac Toe: 8 korakov (s slikami)

Video: Arduino in sledilna ploščica Tic Tac Toe: 8 korakov (s slikami)

Video: Arduino in sledilna ploščica Tic Tac Toe: 8 korakov (s slikami)
Video: Raspberry Pi An excellent tool for learning Programming, Linux and more! 2024, November
Anonim
Arduino in sledilna ploščica Tic Tac Toe
Arduino in sledilna ploščica Tic Tac Toe

Ali pa vaja pri vhodnem in izhodnem multipleksiranju ter delo z bitovi. In prispevek za natečaj Arduino.

To je izvedba igre tac tae toe, ki uporablja 3x3 dvobarvne LED diode za zaslon, preprosto uporovno sledilno ploščico in Arduino, da poveže vse skupaj. Če želite videti, kako deluje, si oglejte video: Kaj potrebuje ta projekt: Deli in potrošni material Ena perf plošča (ali tračna plošča) Devet dvobarvnih LED, skupna katoda Devet enakih uporov, v območju 100-220 ohmov Šest enakih uporov, v 10kohm - 500kohmsko območje Enopolni, dvojno stikalo za hrbet kup zatičev za glavo Kup električne žice En majhen kvadratni list prozornega akrila, debeline ~ 1 mm, 8 cm na strani Prozoren lepljiv trak Toplotne hlače (neobvezno) Vse zgoraj navedeno so precej pogosti izdelki, skupni stroški ne smejo presegati 20 USD. Orodja Ena nastavitev Arduina (Arduino Duemilanove, Arduino IDE, računalnik, kabel USB) Običajna električna orodja (multimeter, spajkalna pištola za spajkanje, odrezki za žice, rezalnik žice) Vse, kar je povezano z Arduinom najdete na https://www.arduino.cc. Nadaljujte z gradnjo!

1. korak: Priključite LED matriko

Ožičenje LED matrike
Ožičenje LED matrike
Ožičenje LED matrike
Ožičenje LED matrike

Da LED zasveti, morata biti priključena oba kabla. Če bi vsakemu od 18 LED (9 rdečih, 9 zelenih) namenili par zatičev, bi na Arduinu hitro zmanjkalo zatičev. Vendar pa bomo z multipleksiranjem lahko osvetlili vse LED z zgolj 9 zatiči! Če želite to narediti, so LED diode povezane na prečko, kot je prikazano na prvi sliki. Svetleče diode so združene v tri stolpce, njihove katode pa v šestice. Z nastavitvijo določene anodne črte visoko in določeno nizko katodno linijo ter visoko impedanco na vseh drugih anodnih in katodnih linijah lahko izberite, katero LED želimo prižgati, saj obstaja le ena možna pot, ki jo tok lahko prepere. Na primer na drugi sliki, ko zeleno anodo 1 postavimo visoko, nizko pa katodo 1, zasveti spodnja leva zelena LED. Trenutna pot je v tem primeru prikazana modro. Kaj pa, če želite prižgati več kot eno LED na različnih linijah? Za to bomo uporabili vztrajnost vizije. Če zelo hitro izberete pare LED linij, si ustvarite iluzijo, da vse izbrane LED svetijo hkrati.

2. korak: Postavitev matrike LED

Postavitev matrike LED
Postavitev matrike LED
Postavitev matrike LED
Postavitev matrike LED

Spodnji diagram vezja prikazuje fizično ožičenje LED (G1-G9: zelene LED, R1-R9: rdeče LED). Ta diagram je za posamezne rdeče in zelene LED diode, če uporabljate dvobarvne rdeče/zelene LED z običajno katodo, morate povezati le eno katodno nogo na rdeče/zeleni par. Arduina (zatiči 3, 5, 6, 9, 10, 11 na Duemilanovem), tako da lahko imamo učinke, kot je poznejše bledenje. Katodne črte gredo v zatiče 4, 7 in 8. Vsaka katodna in anodna črta ima 100 ohmskih uporov za zaščito.

3. korak: Naslavljanje matrike LED

Za kodo kljukice bomo morali shraniti naslednje podatke o LED: - ali LED sveti ali ne - če sveti, ali je rdeča ali zelena Eden od načinov za to je shranjevanje stanja v matriki z 9 celicami, ki s tremi številkami predstavlja stanje (0 = izklopljeno, 1 = rdeče vklopljeno, 2 = zeleno vklopljeno). Vsakič, ko moramo preveriti stanje LED, na primer, če želimo preveriti, ali obstaja pogoj zmage, bomo morali krožiti po nizu. To je učinkovita metoda, vendar precej nerodna. Bolj racionalizirana metoda bi bila uporaba dveh skupin po devet bitov. Prva skupina devetih bitov shrani stanje vklopa in izklopa LED, druga skupina devetih bitov pa barvo. Nato manipulacija stanja LED preprosto postane bitna aritmetika in premik. Tukaj je uporabljen primer. Recimo, da grafično narišemo mrežico, tako da najprej prikažemo 1s in 0s za prikaz stanja vklopa (1 je vklopljeno, 0 je izklopljeno): 000 000 = matrika z levo spodaj sveti LED 100 100 010 = matrika z diagonalo LED diode svetijo 001 Če celice naštejemo spodaj levo, lahko zgornje predstavitve zapišemo kot niz bitov. V prvem primeru bi bilo to 100000000, v drugem primeru pa bi bilo 001010100. Če nanje gledamo kot na binarne predstavitve, lahko vsako serijo bitov zgostimo v eno samo številko (v prvem primeru 256, 84 v drugem primeru). Tako lahko namesto matrike za shranjevanje stanja matrike uporabimo samo eno številko! Podobno lahko na enak način predstavimo barvo LED (1 je rdeča, 0 je zelena). Najprej predpostavimo, da svetijo svetleče diode (torej stanje vklopa in izklopa predstavlja 511). Spodnja matrika bo nato predstavljala barvno stanje LED: 010 zelena, rdeča, zelena 101 rdeča, zelena, rdeča 010 zelena, rdeča, zelena Zdaj, ko prikažemo LED matrico, moramo samo krožiti po vsakem od bitov, najprej v stanju vklopa in izklopa, nato pa v stanju barve. Recimo, da je naše stanje vklopa in izklopa 100100100, barvno stanje pa 010101010. Tukaj je naš algoritem za osvetlitev LED matrike: 1. korak Naredite bitovno stanje vklopa in izklopa z binarnim 1 (tj. maskiranje). Korak 2. Če drži, LED sveti. Zdaj naredite bitovno dodajanje barvnega stanja z binarnim 1. Korak 3. Če je res, prižgite rdečo LED. Če je napačno, prižgite zeleno LED. Korak 4. Premaknite stanje vklopa in izklopa ter stanje barve, za en bit v desno (tj. Premik bitov). Korak 5. Ponovite korake 1 - 4, dokler ne preberete vseh devet bitov. Upoštevajte, da matrico polnimo nazaj - začnemo s celico 9, nato nadaljujemo navzdol do celice 1. Prav tako sta stanja vklopa in izklopa ter barvna stanja shranjena kot brezznačna cela vrsta (beseda) namesto podpisane vrste celih števil. To je zato, ker lahko pri premiku bitov, če nismo previdni, nenamerno spremenimo znak spremenljivke. Priložena je koda za osvetlitev LED matrike.

4. korak: Izdelava sledilne ploščice

Izdelava sledilne ploščice
Izdelava sledilne ploščice
Izdelava sledilne ploščice
Izdelava sledilne ploščice
Izdelava sledilne ploščice
Izdelava sledilne ploščice
Izdelava sledilne ploščice
Izdelava sledilne ploščice

Sledilna ploščica je izdelana iz lista tankega akrila, dovolj velikega, da se prekriva preko matrike LED. Nato z akrilnim trakom nalepite žice vrstice in stolpca s prozornim trakom. Prozoren trak se uporablja tudi kot izolacijski distančnik med žicami na križiščih. Uporabljajte čista orodja, da preprečite, da bi mast prstov prišla na lepljivo stran traku. Madeži prstnih odtisov niso le videti grdi, ampak naredijo trak manj lepljiv. Odrežite en konec vsake črte in drugi konec spajkajte na daljšo žico. Pred spajkanjem na konektorjih spajkajte upor z žicami. Tukaj uporabljeni upori so 674 k, vendar bi morala biti v redu vsaka vrednost med 10 k in 1 M. Povezave z Arduinom se izvedejo s 6 analognimi zatiči, pri čemer so zatiči 14-16 povezani z vrstami žične mreže, zatiči 17-19 pa na. stolpce.

5. korak: Sledilna ploščica - kako deluje

Sledilna ploščica - Kako deluje
Sledilna ploščica - Kako deluje
Sledilna ploščica - Kako deluje
Sledilna ploščica - Kako deluje

Tako kot smo uporabili prečni multiplekser za nastavitev LED matrike z minimalnimi zatiči, lahko s podobnim prečnim multiplekserjem nastavimo matriko senzorja na dotik, ki jo nato lahko uporabimo za aktiviranje LED. Koncept te sledilne ploščice je preprost. To je v bistvu žična mreža s tremi golimi žicami, ki potekajo v vrstah, in tremi golimi žicami, ki tečejo v stolpcih nad vrsticami. Na vsakem križišču je majhen kvadrat izolacije, ki preprečuje dotik dveh žic. S prstom, ki se dotakne križišča, pride v stik z obema žicama, kar povzroči velik, vendar omejen upor med obema žicama. Majhen tok, ki pa ga je mogoče zaznati, lahko s prstom teče od ene žice do druge. Če želite ugotoviti, na katerem presečišču je bilo pritisnjeno, je bila uporabljena naslednja metoda: 1. korak: Vse vrstice stolpcev nastavite na IZHOD NIZKA. Korak 2: Vrstice vrstic nastavite na INPUT z aktiviranimi notranjimi vdolbinami Korak 3: Na vsaki vrstici vrstice opravite analogno branje, dokler vrednost ne pade pod določen prag. To vam pove, v kateri vrstici je pritisnjeno presečišče. Korak 4: Ponovite korake 1-3, zdaj pa s stolpci kot vhodi in vrsticami kot izhodi. To vam pove, kateri stolpec je pritisnjeno presečišče. Da bi zmanjšali učinke hrupa, se vzamejo številni odčitki in nato povprečijo. Povprečni rezultat se nato primerja s pragom. Ker ta metoda samo preveri prag, ni primeren za zaznavanje hkratnih pritiskov. Ker pa ključavnica napreduje po vrsti, zadostuje branje enega samega pritiska. Priložena je skica, ki ponazarja delovanje sledilne ploščice. Tako kot pri matriki LED se za prikaz križišča, ki je bilo pritisnjeno, uporabljajo biti.

Korak 6: Vse združite

Združevanje vsega skupaj
Združevanje vsega skupaj

Zdaj, ko so vse posamezne komponente končane, je čas, da jih sestavite skupaj. Prekrijte žično mrežo na matriki LED. Za sinhronizacijo s senzorjem žične mreže boste morda morali preurediti oštevilčenje pinov v matrični kodi LED. Žično mrežo pritrdite s pritrdilnimi sredstvi ali lepili po vaši izbiri in lepite na lepo igralno desko. Dodajte stikalo med zatičem 12 in maso Arduina. S tem stikalom lahko preklapljate med načinom za 2 igralca in 1 za igralca (v primerjavi z mikrokrmilnikom).

7. korak: Programiranje Tic Tac Toe

Priložena je koda za igro. Najprej razstavimo igro tac toe na različne korake v načinu za dva igralca: 1. korak: Igralec A izbere nezapolnjeno celico tako, da se dotakne križišča. 2. korak: LED za to celico zasveti z barvo A. Korak 3: Preverite, ali je zmagal igralec A. Korak 4: Igralec B izbere nenapolnjeno celico. 5. korak: LED za to celico zasveti z barvo B. Korak 6: Preverite, ali je zmagal igralec B. Korak 7: Ponavljajte 1-6, dokler ni pogoj za zmago, ali če so vse celice zapolnjene.. Dokler omrežni senzor ne zabeleži vrednosti, ki ni nič, se bo ta zanka nadaljevala. Ko pritisnete presečišče, spremenljiva spremenljivka shrani položaj stisnjene celice. Preverjanje, če je celica nezapolnjena: Ko dobimo odčitavanje položaja (spremenljivka pritisnjeno), jo primerjamo s trenutnim stanjem celice (shranjeno v spremenljivki GridOnOff) z uporabo bitnega seštevka. Če stisnjena celica ni napolnjena, nadaljujte s prižiganjem LED, sicer se vrnite k branju celic. Preklapljanje barv: Logična spremenljivka Turn se uporablja za beleženje, kdo je na vrsti. Barva LED, izbrana pri izbiri celice, je določena s to spremenljivko, ki se menja vsakič, ko je celica izbrana.). Za primerjavo igralčevih zapolnjenih celic v pogojih za zmago se uporabljata dva bitna dodatka. Če pride do ujemanja, program prikaže rutino zmag, nakar začne novo igro. Preverjanje pogoja neodločenosti: Ko je zabeleženih devet obratov in še vedno ni pogoja za zmago, je igra neodločena. LED diode nato zbledijo in začne se nova igra. Preklop na način za enega igralca: Če je stikalo v položaju za vklop, program preide v način za enega igralca, pri čemer se prvi zažene človeški igralec. Na koncu poteze človeškega igralca program preprosto izbere naključno celico. Očitno to ni najpametnejša strategija!

8. korak: Opombe in nadaljnje izboljšave

Tu je videoposnetek, ki prikazuje način za enega igralca s programom, ki predvaja popolnoma naključne poteze: Tu prikazan program je le minimalna različica golih kosti. S tem je mogoče storiti še veliko drugih stvari: 1) Prižiganje LED -diod tri naenkrat Trenutna koda prikazuje samo eno LED naenkrat. S prikazanim ožičenjem pa je mogoče hkrati prižgati vse LED, priključene na eno katodno linijo. Torej, namesto da bi krožili po vseh devetih položajih, morate samo prečkati tri katodne črte. 2) Uporabite prekinitve za prikaz LED diod. Odvisno od rutine prikaza LED in količine obdelave lahko LED prikažejo določeno stopnjo utripanje. Z uporabo prekinitev lahko natančno nadzirate čas delovanja LED -diod in pripeljete do gladkejšega prikaza. Upam, da ste uživali v branju tega pouka, tako kot sem se jaz zabaval pri tem!

Priporočena: