Satura rādītājs:

AVR montētāja apmācība 11: 5 soļi
AVR montētāja apmācība 11: 5 soļi

Video: AVR montētāja apmācība 11: 5 soļi

Video: AVR montētāja apmācība 11: 5 soļi
Video: 30 Days Natural Body Transformation 🔥🔥🔥 #fitness #transformation #gym #75hardchallenge 2024, Novembris
Anonim
AVR montētāja apmācība 11
AVR montētāja apmācība 11
AVR montētāja apmācība 11
AVR montētāja apmācība 11
AVR montētāja apmācība 11
AVR montētāja apmācība 11

Laipni lūdzam 11. apmācībā!

Šajā īsajā apmācībā mēs beidzot izveidosim mūsu gala projekta pirmo daļu.

Pirmā lieta, kas jums jādara, ir doties uz šīs apmācības pēdējo soli un noskatīties videoklipu. Tad atgriezies šeit. [pauze, kamēr jūs to darāt …] Labi. Tagad turpiniet.

Ja vēl neesat uzminējis, mēs veidojam Craps spēli! Protams, tikai tāpēc, ka es veidoju craps spēli, tas nenozīmē, ka jums tas ir jādara. Es ceru, ka tas ir pats par sevi saprotams. Jebkurā gadījumā ir lietderīgi izmantot mikrokontrollerus, lai kontrolētu segmentētus displejus utt., Un sazināties savā starpā - galvenokārt mēs šeit to darām. Jūs varat rakstīt kodu, lai tos izmantotu jebkurā gadījumā. Pagaidām es viņus kodēšu, lai spēlētu craps, lai gan vēlāk var nolemt pārveidot segmentētos displejus, lai darītu kaut ko citu.

Iemesls, kāpēc es to būvēju, ir tāpēc, ka es domāju, ka es galu galā varētu vēlēties pilna izmēra Vegas craps galdu savā "vīriešu alā" manas mājas pagrabā. Tomēr nevienam no maniem draugiem nav ne mazākās nojausmas, kā rīkoties, gūt vārtus vai izmaksāt craps likmes un metienus. Tāpēc es izdomāju, ka būtu forši, ja galds visu tirgotāja darbu veiktu mūsu vietā! Kad mēs izdarām likmi uz galda, mēs varam arī nospiest nelielu spiedpogu blakus laukumam, uz kura atrodas mūsu mikroshēmas, lai parādītu, cik daudz tur ir ievietots, tad mikrokontrolleris var aprēķināt izmaksu par šo kvadrātu pēc kauliņu metiena un parādīt to. Tomēr es joprojām neesmu pārliecināts, kā es organizēšu šo aspektu. Viena doma man bija tāda, ka katrai personai tiks lūgts likt visas savas likmes pēc kārtas, lai kontrolieris pirms nākamā spēlētāja ierakstīšanas ierakstītu, kur atrodas katras personas nauda utt. Tad pēc iemetiena dators var parādīt izmaksas katrā kvadrātā, kā arī var saglabāt tekošo "kopējo naudu" katram spēlētājam.

Vienam no šīs apmācības vāka attēliem man vienkārši bija jāizmanto attēls, kurā šovasar Vegasā pie pokera galda velku 5 dūžus. Heheh. Palutiniet mani.

Šeit ir saite uz visu manu AVR montāžas apmācību kolekciju:

1. solis: Craps

Craps!
Craps!
Craps!
Craps!
Craps!
Craps!

Šajā apmācībā mēs veidosim tikai vienkāršāko Craps spēles pēdējo daļu. To sauc par "The Pass Line", un jūs varat uz to likt likmes. Jūs varat uzzināt visu, kas jums jāzina par spēles "pārejas līnijas" daļu, noskatoties īsu 2 minūšu mācību video, ko esmu pievienojis šim solim.

Mēs izveidosim vēl 4 ciparu displeju, kas sekos Dīlera naudai tāpat kā mūsu pašreizējais 4 ciparu displejs izseko spēlētāja naudu. Tirgotājs sāks ar 20 ASV dolāriem, bet spēlētājs-ar 20 ASV dolāriem (kopējā iespējamā naudas summa spēlē ir 9999 ASV dolāri-maksimālais mūsu četrciparu displejs, bet mums būs nepieciešami tikai 20 ASV dolāri par šo pirmo spēles daļu vai citādi) tas būtu nogurdinoši un grūti uzvarēt vai zaudēt pienācīgā laikā). Ja spēlētājs paņem visu dīlera naudu, spēlētājs uzvar. Ja spēlētājs zaudē visu savu naudu, uzvar dīleris.

Kā jūs laimējat vai zaudējat naudu? Nu, tie no jums, kuri ir spēlējuši Craps, redzējuši, kā cilvēki "šauj kauliņus" uz ielas vai redzējuši, kā tā spēlē pret kazino Vegasā, jau zinās. Pārējiem jums ļaujiet man īsi aprakstīt spēles "caurlaides līnijas" daļu, kuru mēs šodien kodēsim.

Craps ir spēlēts simtiem gadu, sākot ar krusta kariem. To spēlēja karaspēks Otrā pasaules kara ierakumos, to spēlēja uz ielām, spēlēja kazino un spēļu zālēs. Tas sākās tikai ar piespēles līniju, un visas pārējās lietas tam tika pievienotas vēlāk. Mēs sekosim tam pašam progresam.

Pārejas līnijas darbība ir šāda. Jūs veicat likmi un tad metat kauliņus. Pirmo rullīti sauc par "iznākošo ruļļu". Ja jūs saņemat 2 (čūskas acis), 3 (ace deuce) vai 12 (box box) uz izlaišanas ruļļa, jūs zaudējat savu likmi un to sauc par "craps". Ja tu met 7 (dabisks) vai 11 (yo vai yo-leven), tu uzvari. Ja izmetat citu skaitli, šis skaitlis kļūst par jūsu "punktu". Kad "punkts" ir izveidots, jūs turpiniet mest kauliņus ar mērķi vēlreiz trāpīt punktā, pirms izmetāt 7. Ja saņemsiet savu punktu pirms septiņu metiena, jūs laimēsit pat naudu. Tātad dolāra likme jums uzvar dolāru no dīlera. Ja jūs saņemat 7, pirms jūsu punkts tiek izmests, to sauc par "septiņi out" un jūs zaudējat savu likmi dīlerim.

Pēc tam jūs sākat no jauna. Novietojiet likmi uz piespēles līniju un izmetiet kauliņus, 7 vai 11 uzvaras, 2, 3 vai 12 zaudējumi.

Ir daudz citu veidu likmes: "nepāriet", "piespēlēt koeficientu", "neizlaist koeficientu", "nākt derēt", "nenonākt likmē", "lauks", "rags", " grūti veidi "utt. utt. utt. Sīkāku informāciju varat atrast šeit:

en.wikipedia.org/wiki/Craps

Kā jau teicu iepriekš, pagaidām mēs kodēsim tikai spēles ieejas līnijas daļu, kas viņiem bija viss tajā laikā, kad bērni viens otram par pusdienu naudu meta kauliņus pret sienu, un tā mēs sāksim.

Tomēr, pirms sākam kodēt lietas, ļaujiet izveidot tirgotāja naudas displeju. Šim nolūkam es vēlos izmantot vienu no lielākajiem 4 ciparu displejiem, ko varat iegūt no Sparkfun vai citur. Turpmāk es neuzskaitīšu materiālus par šīm apmācībām. Ja jūs faktiski visu esat būvējis kopā ar mani, tad jūs jau zināt, kur iegūt materiālus un kādi tie ir. Man ir bezjēdzīgi tos uzskaitīt vai cik tie maksā.

Ļaujiet mums paņemt vienu no mūsu prototipēšanas dēļiem, lielu 4 ciparu displeju, otru ATmega328p, lai kontrolētu šo displeju, un izveidot to, kā mēs to darījām ar kauliņu rullīti, un spēlētāja displeju iepriekš. Tāpat kā citi, mēs pievienosim galvenes jaudai, programmēšanai un TWI sakariem.

2. solis: izplatītāja naudas displejs

Dīlera naudas displejs
Dīlera naudas displejs
Dīlera naudas displejs
Dīlera naudas displejs
Tirgotāja naudas displejs
Tirgotāja naudas displejs

Mēs izveidojam dīlera displeju tāpat kā ar spēlētāja četrciparu displeju pēdējā apmācībā. Vienīgās atšķirības ir tādas, ka tas ir lielāks un tam ir mazāk tapu, tāpēc mēs to sakārtosim un savienosim savādāk.

Esmu pievienojis šī displeja elektroinstalācijas attēlu. Jūs varat redzēt, ka tas ir lielāks un tajā ir mazāk tapu nekā mūsu spēļu naudas displejs. Attēls ir no dzirksteles lapas, kur es saņēmu displeju, un tas parāda, kuras tapas ir katras ciparu jaudas un kuras tapas kontrolē katru cipara segmentu.

Kā parasti, jums vajadzētu sākt, pievienojot displeju prototipa maizes plāksnei un pārbaudīt katru segmentu, lai pārliecinātos, ka saprotat, kā tas ir savienots. Tad jums vajadzētu to savienot ar AVR mikrokontrollera tapām uz jūsu maizes dēļa un palaist to no turienes, līdz viss mūsu kods darbojas šajā apmācībā. Visbeidzot, beigās jums vajadzētu izveidot ārējo dēli un pielodēt to. Tad, pārbaudot galaproduktu, jūs zināt, ka visas problēmas rodas no jūsu lodēšanas un griešanas darba, nevis no koda. Tāpat neaizmirstiet no galdniecības labi zināmo aksiomu "izmērīt divreiz un griezt vienu reizi", vai, ja tiek izgatavotas shēmas plates: "sagriež divas reizes, lodē vienu reizi". Kā redzams attēlā, es beidzot sabojājos un nopirku ideālu Dremel stiprinājumu šāda veida darbam. "Dimanta punktu komplekts". Tas maksāja 5 dolārus, bet tas ir daudz mazāk nekā dusmu pārvaldības terapijas izmaksas, kas rodas, veicot manu griešanas darbu pārāk daudzas reizes pēc kārtas.

Šim displejam izmantoju 330 omu rezistorus. COM tapas iet caur rezistoru uz GND, un jauda nonāk jebkurā segmentā, kuru vēlaties parādīt. Es izmantošu PC0 līdz PC3 COM tapām un PB0, PB1, PB2, PB3, PB4, PD5, PD6 un PD7 segmentiem.

Šeit ir galvenais, lai maksimāli palielinātu izredzes to izdarīt pareizi:

  1. kartē ķēdi
  2. nogrieziet ķēdi
  3. pārbaudiet savu vadu
  4. pievienojiet rezistorus, vāciņus un kristāla oscilatoru
  5. vēlreiz pārbaudiet savienojumus un vadus
  6. pievienojiet ārējos vadus
  7. pievienojiet mikrokontrolleru
  8. vēlreiz pārbaudiet vadu
  9. pievienojiet 4 ciparu displeju
  10. pārbaudiet katru ciparu ar vadu pāri no maizes dēļa
  11. nolieciet to malā un uzrakstiet kodu, zinot, ka jums, iespējams, vēlāk būs jāpielāgo lietas, un cerot, ka neesat slēpis savienojumu, kas ir jāpārtrauc.

Esmu parādījis sava elektroinstalācijas darba attēlu sēriju. Lūdzu, apzinieties, ka varat brīvi pieslēgt savējo, kā vēlaties. Ļoti iespējams, ka jūs varat atrast labāku karti nekā es, un jums tas jāizmanto. Šajās apmācībās nekas nav atkarīgs no jūsu komponentu vadu savienojuma, ja vien tiem ir pareizie izejas porti. Kas man atgādina. Ievērojiet, ka tagad SDA ir divas galvenes un SCL - divas galvenes. Kāpēc, jūsuprāt, mēs to darījām?

Tagad, kā jūs varat redzēt ar pievienoto kodu apmācības beigās, es vienkārši izgriezu un ielīmēju kodu no pēdējās apmācības atskaņotāja displeja uz jaunu failu izplatītāja displejam. Tad es izgāju un mainīju uzmeklēšanas tabulu "segmenti", lai tā atbilstu jaunajai tapas kartei, atzīmējot, ka šim displejam "com" tapas ir noslīpētas un segmenta tapas ir 5 V, nevis otrādi, kā tas bija citam displejam. Es arī mainīju portu inicializāciju, lai atspoguļotu jauno elektroinstalāciju, es nomainīju dīlera kases displeja adresi uz 0b1000000, lai kauliņu rullītis spētu ar viņu runāt, es nomainīju "cikla" apakšprogrammu, lai tā izslēgtu PC0 caur PC3 "com" tapas, kad tas vēlas barot konkrētu segmentu, un es mainīju "ciparu", kas tiek parādīts, jo jaunajā elektroinstalācijā cipari ir pretējā secībā (ja atstājāt to tādu, kāds tas bija un mēģinājāt parādīt 1234) vietā būtu parādīts kā 4321).

Šeit ir jaunā reģistra karte:

(PD7, PD6, PD5, PB4, PB3, PB2, PB1, PB0) = (aiz komata, c, g, b, f, a, e, d)

kur 1 ir ieslēgts un 0 ir izslēgts.

Tagad pārbaudiet displeju, vispirms iestatot displeja inicializēto vērtību uz dažādiem skaitļiem, lai, ieslēdzoties, tie tiktu parādīti. Tas jums pateiks, vai viss darbojas pareizi.

Pēc tam mainiet diceroller kodu tā, lai tas izmantotu jauno verga adresi, salieciet tos kopā un palaidiet to. Tam vajadzētu rīkoties tieši tāpat kā iepriekšējā apmācībā, izņemot to, ka kauliņu ruļļi tagad parādās jaunajā displejā.

Lieliski! Tagad mēs esam gatavi uzrakstīt jauno kauliņu rullīšu kodu, lai tas sazinātos gan ar spēlētāja displeju, gan ar dīlera displeju.

3. darbība: programmas izklāsts

Programmas izklāsts
Programmas izklāsts
Programmas izklāsts
Programmas izklāsts
Programmas izklāsts
Programmas izklāsts

Tas, kā kods darbosies mūsu spēlē, ir tas, ka mēs paturēsim kauliņu rullīti kā galveno un pievienosim dīlera displeju kā papildu vergu. Kauliņu rullītis kontrolēs spēli, un tas nosūtīs izmainītās naudas izmaiņas dīlerim, un spēlētājs parādīs pēc katra metiena. Pagaidām mums būs tikai likme uz piespēles līniju katru reizi 10 ASV dolāru apmērā, tāpēc mums vēl nav jākļūst pārāk sarežģītai, spēlētājam mainot likmi. Vēlāk, kad strādāsim mehāniķiem, mēs pievienosim vēl vienu kontrolieri, kas būs papildu meistars, kurš kontrolēs derības un izmaksas, un mūsu kauliņu rullītis paliks kapteinis, bet tiks izmantots tikai kauliņu ripināšanai. Tas ļaus mums iekļūt TWI šķīrējtiesā, sadursmēs un citos svarīgos seriālās komunikācijas aspektos, ja jums ir vairāki saimnieki un vergi. Mēs pievienosim arī vairākus atsevišķus 7 ciparu displejus ar spiedpogām zem tiem, kas ļaus mums veikt likmes uz cita veida ruļļiem, taču tas viss tiks sniegts turpmākajās apmācībās. Pagaidām mēs tikai gribam kauliņu rullīti kā saimnieku un abus displejus kā vergus. Kad mēs nospiežam pogu, kods izlems, vai izmaksāt dabisko naudu, ņemt naudu no craps vai atzarot līdz “punktu” ruļļu sērijai, līdz tiek gūta uzvara vai septiņas reizes.

Vispirms uzrakstīsim vergu rutīnas. Tie ir vienkārši, jo viss, ko viņi darīs, būs noskatīties SDA rindiņu pēc adreses, ja viņiem tiks piezvanīts, viņi nolasīs jauno numuru, lai to parādītu un parādītu. Tas ir viss! Viņiem pat nav jārunā ar kapteini, jo kapteinis sekos līdzi viņu summām un veiks visus izmaksu aprēķinus pirms to atjaunināšanas. Turpmākajās apmācībās vergi rakstīs atpakaļ kapteinim (piemēram, ja mums ir viens 7 ciparu displejs ar spiedpogām par derību summu, viņiem būs jāpasaka kapteinim, cik tiek likts uz katru displeju, un tāpēc mēs to darīsim uzrunājiet tos ar adresi + lasiet zvanu ar kapteini "galvenā uztvērēja režīmā"), bet mēs pie tā nonāksim savlaicīgi.

Pagaidām viss tiek pamudināts ar kauliņu izmešanas pogas nospiešanu, kam seko aprēķins vai turpmāka pogas nospiešana, un visbeidzot ziņojums katram displejam ar savu jauno kopsummu. Pēc katras izmaksas tiks veikts tests, lai noskaidrotu, vai spēlētājs ir uzvarējis vai zaudējis, citiem vārdiem sakot, vai dīlera nauda pēc nulles kļūst nulle vai spēlētāja nauda pēc nulles kļūst nulle (ne dīleris, ne spēlētājs) var kļūt negatīvs, jo viņiem būs atļauts veikt likmes tikai 10 ASV dolāru apmērā vai citam, kas paliek, ja tas ir mazāks par 10 ASV dolāriem).

Tātad tieši tā tas darbosies. Pieņemsim kodēšanu.

4. solis: galvenais sakaru kods

Galvenais sakaru kods
Galvenais sakaru kods

Tagad mēs varam uzrakstīt kauliņu ruļļa sakaru rutīnu. Tas ir arī gandrīz identisks tam, ko mēs rakstījām pagājušajā reizē, izņemot to, ka mēs sazināsimies ar diviem dažādiem vergiem, nevis tikai ar vienu. Ņemiet vērā, ka katram vergam mēs izmantojam atšķirīgu adresi. Jums pašam ir jāmaina kods un pēc tam vienkārši jāpārbauda tas ar katru adresi un jāpārliecinās, vai tas darbojas tāpat kā pēdējā apmācība, izņemot katru atsevišķu displeju.

Es pievienošu katras sastāvdaļas kodu, kas vienkārši parāda ruļļa rezultātu, lai to varētu izmantot, lai displeji darbotos pareizi un pārbaudītu elektroinstalāciju.

Spēles kodēšana neievieš neko jaunu, ciktāl tas attiecas uz montāžas valodas komandām vai AVR mikrokontrollera komponentiem, un tāpēc es nejūtu, ka man tas jāiet pa rindām. Jūs droši vien pamanījāt, ka, ieviešot kaut ko jaunu, es katru rindiņu sīki un detalizēti pārdzīvoju, līdz pat apbēdināšanai, ja ne iemidzināšanai. No otras puses, es to nedarīšu, ja netiks ieviests nekas jauns. Tā tas ir šodien. Tāpēc es domāju, ka līdz šim esat gatavs spēlēt ar kodu, izlasīt kodu, analizēt kodu, saprast kodu, kritizēt kodu, ņirgāties par kodu un smieties par puisi, kurš kodu uzrakstījis. Tāpēc es ļaušu jums iet uz priekšu un darīt to. Gandrīz droši, ka jūs atradīsiet daudzas vietas, kuras varat uzlabot vai vismaz vienkāršot manis rakstīto.

Es, kā parasti, esmu pievienojis abu displeju koda galīgo versiju un diceroller nākamajā darbībā kopā ar video, kurā es pārbaudu šo lietu.

5. darbība: gala kods un video

Esmu pievienojis video un 3 programmas. Jūs ievērosiet, ka jūs varat noteikt likmi un sākuma tirgotāju un spēlētāja naudu programmas augšdaļā ar.equ paziņojumiem.

Nākamajā apmācībā mēs pievienosim iespēju likt likmes uz dažādām lietām, kas padarīs spēli aizraujošāku. Mūsdienu Craps interesanta lieta ir tā, ka jums ir daudz dažādu veidu, kā veikt likmes un mēģināt palielināt izredzes. Faktiski Craps ir visaugstāko izredžu spēle kazino! … JA jūs zināt, kā to spēlēt. No otras puses, ja jūs nezināt, kā spēlēt, tā kļūst par vienu no zemāko koeficientu spēlēm.

Tiklīdz mums būs vairāk lietu, uz kurām likt likmes, tad es palielināšu spēles kopējo naudas summu.

Man vajadzētu būt jautram!

Tiksimies nākamreiz!

Ieteicams: