Orodha ya maudhui:

BloodBowl Turn Counter Kutumia sehemu za 7 za LED: Hatua 5
BloodBowl Turn Counter Kutumia sehemu za 7 za LED: Hatua 5

Video: BloodBowl Turn Counter Kutumia sehemu za 7 za LED: Hatua 5

Video: BloodBowl Turn Counter Kutumia sehemu za 7 za LED: Hatua 5
Video: (Terence Hill & Bud Spencer) Trinity: Good Guys and Bad Guys (1985) Action, Comedy, Crime 2024, Julai
Anonim
BloodBowl Turn Counter Kutumia LEDs za sehemu 7
BloodBowl Turn Counter Kutumia LEDs za sehemu 7

Mradi huu ulikuwa wa kaunta ya mchezo wa BloodBowl ukitumia LEDs za sehemu sita za Charlieplexed 7.

Hatua ya 1: Dhana

Dhana
Dhana

Rafiki yangu aliniuliza juu ya maoni ya kujenga Bloodbowl Turn counter kwa mchezo wake wa bodi. Bila kujua hii ni nini, na anachotaka, ilichukua muda kuamua ikiwa nitafanya hii na jinsi gani. Kwanza ilibidi niwe na wazo la anachotaka, kwa hivyo nilianza na sanaa ya dhana (picha). Wazo la kimsingi ni kuwa na vifungo 3 vya kushinikiza, kudhibiti 3 LED kila moja na itawekwa ndani ya mnara uliojengwa kwa kawaida. Ombi kubwa tu lilikuwa kuwa na maonyesho 4 ya juu kuhesabu kutoka 0 hadi 8 na kuweka upya, na kuwa na 2 ya chini maonyesho huhesabu chini kutoka 8 hadi 0 na kurudi nyuma. Ningekamilisha mzunguko, na angekamilisha mnara.

Hatua ya 2: Orodha ya Kubuni na Sehemu

Orodha ya Kubuni na Sehemu
Orodha ya Kubuni na Sehemu

Kwa kuwa dhana hiyo ilihitaji LED za sehemu 6 7, na nilikuwa na 8-bit Microchip PICs inayofaa, nilitafiti njia za kutumia PICs kudhibiti LEDs. /picbook/7_08chapter.htm ambayo inasema "Hadi maonyesho 6 yanaweza kupatikana kama hii bila mwangaza wa kila onyesho kuathiriwa." Nilichukulia hii kuwa changamoto na kitu cha kuchunguza kama sehemu ya mradi wangu. Jambo la kwanza nililofanya, ni kunyakua maonyesho ya sehemu 7 za incandescent kutoka kwenye sanduku langu na kuona jinsi watafanya kazi. Habari mbaya. Sehemu haswa nilizochagua hazikuwa na tabia kama vile nilitaka. Sehemu hiyo ingewaka wakati inahitajika, kwenye ubao wa mkate, lakini sasa ya kuvuja iligawanywa kwa sehemu zingine 6. Niligundua maonyesho ya incandescent inaweza kuwa sio njia ya kwenda, au nilihitaji kuyatumia kwa njia tofauti. Kwa hivyo kwa unyenyekevu nilithibitisha sehemu za 7 za LED nilizokuwa nazo zingefanya kazi kwa upigaji mkate, na nikaamuru maonyesho ya kawaida ya anode. Jambo la pili nililohitaji kufanya ni kupanga muundo wangu na kuanza kazi kwa nambari. Pichani ni mzunguko wangu. Sio mengi kwake, kwani nambari katika PIC inachukua huduma ya kuzidisha… makosa Charlieplexing. Kumbuka: Onyesho zote 6 zina laini sawa kutoka kwa dereva IC. Kichaguzi IC inawezesha kila onyesho, 1 kwa wakati mmoja, na laini za sehemu 7 zinasasishwa na PIC ipasavyo. Wazo rahisi sana. Baada ya hapo, kukamilisha nambari na vifaa ndio yote ambayo ilihitajika. Orodha ya Sehemu Baada ya maagizo madogo 3 kutoka kwa Digi-Key wakati wa kuamua juu ya vifaa maalum, nilikuwa na kila kitu ninachohitaji (na vitu kadhaa kwa mkono); 1 ~ 3 "x4 "PCB6 swichi ndogo za kushinikiza (HAPANA) 1 74LS47, onyesho la sehemu 7 IC1 PIC16F627 1 CD4028, 1 kati ya 10 ya kiteuzi IC 6 10KOhm resistors 1 470Ohm resistor1 spool ya waya. Nilitumia rangi na miongozo anuwai, lakini hiyo ilikuwa ni mimi tu. ubao wa mkate 3) Uboreshaji wa muundo. Hakuna ya maswala haya yenyewe ni ngumu kupita kiasi, lakini kuyachukua yote bila uzoefu wowote inaweza kuwa muhimu kwa anayeanza. Programu ya vifaa inahitajika kuchoma kifaa, kituo cha kutengenezea, n.k … MTU wa KWANZA mtu anaweza kugundua ni kwamba sehemu-7 za LED HAZINA vipinga mfululizo. Acha nizungumzie hilo haraka, kwa kusema muundo wangu wa asili ulikuwa nao… lakini soma hatua inayofuata kwa ufafanuzi!

Hatua ya 3: Breadboarding & Micro Code

Bodi ya mkate na Nambari ndogo
Bodi ya mkate na Nambari ndogo

Bodi ya mkate ilikuwa lazima kwa hii. Imeonyeshwa ni mkate wangu wa kawaida, lakini kwa saizi ya mradi huu nilitumia ubao mmoja na ndogo, kwani kulikuwa na waya nyingi ambazo zinahitaji kutengwa. Kwanza, nilijaribu LED moja ya sehemu 7 kwa kutumia nambari ya kwanza. Hii ilithibitisha vitu 3; 1) Wiring wa IC ilithibitishwa vizuri! 2) Ikaniongoza kuboresha na kumaliza nambari yangu. kufanya kazi na nambari yangu, kwani LED ingezunguka kupitia nambari kwa kutumia kitufe kimoja cha kitufe, ili kuthibitisha nambari yangu na mpangilio. Haikuhitajika sana lakini ubao wa mkate ulithibitisha kuwa nilikuwa katika hali nzuri. Baada ya vipimo vya ubao wa mkate, nilibadilisha utaratibu, kwa hivyo wakati mwingi ulikuwa ukionyesha nambari na ISR kila siku kuangalia vifungo. Sababu nilifanya hivi, ilikuwa tu kuwa na onyesho la kila wakati, kwani PIC inaendesha na saa ya ndani ya 4Mhz, ninapoteza skanning ya muda mfupi sana kwa vifungo. Hakuna mpango mkubwa… inategemea tu jinsi unataka kufanya nambari hiyo na ni nini kinachofanya maana zaidi kwa kila programu. Kwa hili, onyesho ni muhimu, kwa hivyo niliiweka katika utaratibu kuu. Wakati sehemu zangu za kwanza zilipofika (maonyesho yote 6!), Nilikamilisha wiring ya ubao wa mkate na nikapata toleo lingine. Wakati wa kushinikiza kitufe nambari yangu ilikuwa na rejista zingine ambazo hazikuwa zikisafishwa na ISR ilikuwa ikisababisha glitches ndogo za kuonyesha.; ================================================= =====; Turn Turn;; -----------; Dsply3 Dsply2; Dsply4 Dsply1; Led1 Led3; A5 | 4 15 | A6 - Led2; Aya | 5 14 | Vdd; Kifungo1 B0 | 6 13 | B7; B1 | 7 12 | B6; B2 | 8 11 | B5; B3 | 9 10 | B4; -----------;; LED1-3 - BCD-dec IC -LEDSeg's1-6; Dsply1-3 - BCD-7seg IC -Dsply # 1-9;; ======================= =============================================; Historia ya Marekebisho na Vidokezo:; V1.0 Kichwa cha Mwanzo, Msimbo 3/30/09;;.; ---------------------------------- ------------------------------- # ni pamoja na P16F627A. INC; ============= ================================================= ================; Inafafanua; ------------------------------ -------------------------------; ================== ================================================= ===========; Takwimu; ---------------------- -------------------------------; Wakati wa kuweka anuwai hesabu1 sawa 20 hesabu2 sawa 21 dis1 sawa 22dis2 sawa 23dis3 equ 24dis4 equ 25dis5 equ 26dis6 equ 27w_temp equ 28status_temp equ 29ISRCNTR equ 2A; ====================== ================================================= =======; Weka upya Vectors;; ANGALIA UBUNIFU. VIDOGO KABLA YA KUCHOMA !!!; INTOSC; MCLR: Imewezeshwa; PWRUP: Imewezeshwa; WENGINE WOTE: WALEMAVU !!;; ------------------------------------------ -------------------------- ================================================= ===========================; ISR;; --------------------------------------- ---------------------- ISR HAPA; Angalia Swichi za PB0-PB5 btfsc PORTB, 0; Angalia SW1 piga sw1debounce btfsc PORTB, 1; Angalia SW1 piga sw2debounce btfsc PORTB, 2; Angalia SW1 piga sw3debounce btfsc PORTB, 3; Angalia SW1 simu sw4debounce btfsc PORTB, 4; Angalia SW1 piga sw5debounce btfsc PORTB, 5; Angalia SW1 simu sw6debounce goto endisrsw1debounce call debounce; Subiri simu 0,2 sec debounce incf dis1; Sasisha counter movf dis1, W; Angalia kufurika xorlw 0x1A; 10 kwenye 7-seg? STATUS ya btfss, Z kurudi; Hapana, rudi kuchanganua. movlw h'10 '; Ndio, weka upya onyesho. movwf dis1 inarudiw2debounce wito wa kufuta; Subiri simu 0,2 sec debounce incf dis2; Sasisha counter movf dis2, W; Angalia kufurika xorlw 0x4A; 10 kwenye 7-seg? STATUS ya btfss, Z kurudi; Hapana, rudi kuchanganua. movlw h'40 '; Ndio, weka upya onyesho. movwf dis2 inarudiw3debounce kupiga simu kushuka; Subiri simu 0,2 sec debounce incf dis3; Sasisha counter movf dis3, W; Angalia kufurika xorlw 0x5A; 10 kwenye 7-seg? STATUS ya btfss, Z kurudi; Hapana, rudi kuchanganua. movlw h'50 '; Ndio, weka upya onyesho. movwf dis3 inarudiw4debounce kupiga simu kushuka; Subiri simu 0,2 sec debounce incf dis4; Sasisha counter movf dis4, W; Angalia kufurika xorlw 0x8A; 10 kwenye 7-seg? STATUS ya btfss, Z kurudi; Hapana, rudi kuchanganua. movlw h'80 '; Ndio, weka upya onyesho. movwf dis4 inarudiw5debounce kupiga simu kushuka; Subiri simu 0,2 sec debounce incf dis5; Sasisha counter movf dis5, W; Angalia kufurika xorlw 0x9A; 10 kwenye 7-seg? STATUS ya btfss, Z kurudi; Hapana, rudi kuchanganua. movlw h'90 '; Ndio, weka upya onyesho. movwf dis5 inarudiw6debounce kupiga simu kushuka; Subiri simu 0,2 sec debounce incf dis6; Sasisha counter movf dis6, W; Angalia kufurika xorlw 0xCA; 10 kwenye 7-seg? STATUS ya btfss, Z kurudi; Hapana, rudi kuchanganua. movlw h'C0 '; Ndio, weka upya onyesho. movwf dis6 returnendisr bcf INTCON, T0IF swapf status_temp, w movwf STATUS swapf w_temp, f swapf w_temp, mnyonge; ============================= ================================================= =; Anza Hapa! --------------------------------- kuanza; Sanidi bandari za I / O clrf PORTA movlw 0x07 movwf CMCON bcf STATUS, RP1 bsf STATUS, RP0 movlw h'00 '; Matokeo ya RA, RA5 Hakuna pato movwf TRISA bcf STATUS, RP0 clrf PORTB bsf STATUS, RP0 movlw; RP0 movlw; Pembejeo za RB movwf TRISB; Weka kipima muda cha ndani bsf PCON, 3; Weka kwa 4Mhz. movlw h'CF '; Chanzo cha ndani cha TM0, kielelezo TMR0 1: 256 movwf OPTION_REG movlw h'A0 'movwf INTCON; Wezesha usumbufu wa TMR0, bcf STATUS, RP0; Anzisha sajili clrf PORTA; Futa PortA clrf PORTB; Futa matokeo ya PortB clrf count1 clrf count2 movlw h'10 'movwf dis1 movlw h'40' movwf dis2 movlw h'50 'movwf dis3 movlw h'80' movwf dis4 movlw h'90 'movwf dis5 movlw h'C0' movwf dis6 call dharau; Sekunde 0.2; LED za mtihani, onyesha 8 ???; ============================= =========================================; Kuu; Inapata pembejeo kutoka kwa swichi, matoleo na maonyesho.;; Hii inasasisha maonyesho, @ 4Mhz na TMR0 prescal 1: 4, kwa kiwango cha 1Khz. Kwanza, BCD-7Seg IC imejaa thamani ya kuonyesha, NA BCD-Dec IC imeamilishwa; onyesha uteuzi. Pili, ucheleweshaji wa ms unafanywa kwa onyesho.; Tatu, BCD-Des IC imezimwa… onyesho0 imechaguliwa kuzima onyesho;; Hii inarudiwa kwa kila moja ya maonyesho 6, na imefungwa. -------------------------------------------------- --------------- kuu; Disp1 movf dis1, 0 movwf PORTA piga ledon goto kuu; ===================== ================================================= ========; Ledon; Kuweka wakati wa kuwasha umeme wa LED.; Maonyesho 6 -> 1/6 mzunguko wa ushuru kwa 1Khz = mizunguko 166; -------------------------------- --------------------------------------------- ledon movlw.54 movwf count1ledloop decfsz count1, F goto ledloopreturn; ===================================== ==================================; Ishara ya kujiondoa; Mizunguko 4 ya kupakia na kupiga simu, mizunguko 2 kurudi.; 4Mhz TC:: hesabu2 = 255 -> sekunde 0.2; ---------------------- ----------------------------- Kuchelewesha kwa 1/5 ya pili ya kurudisha nyuma. movwf count2 simu pon_wait kurudi; ---------------------------------------- -----------------------------------; hesabu1 = 255d:: mizunguko 775 hadi 0, + mizunguko 3 kurudi.; -------------------------------- ----------------------------------- pon_waitbig_loopS movlw.255 movw count1short_loopS decfsz count1, F goto short_loopS decfsz count2, F goto big_loopSreturnend3 CIRCUITI awali ilikuwa na vipinga 470Ohm kutoka kwa kila mstari wa dereva wa onyesho kutoka kwa laini ya 74LS47 na CD4028. Walakini, nilijaribu sare ya sasa ya mzunguko wangu na kugundua ilikuwa inavuta tu ~ 31mA. Na kwa kuwa dereva halisi wa maonyesho ni moja kwa moja kutoka kwa 74LS47 na kuwezeshwa ni kutoka kwa IC nyingine, kukimbia haraka kwa mahitaji ya wastani na kilele, na hati za data zinazohusika…. ! Inaonekana kwamba kuendesha gari moja kwa moja kwenye laini ya CA kutoka 4028 wakati unaendesha moja kwa moja sehemu zote ni sawa! … Aina ya. NILIKUWA na glitch katika nambari yangu ambayo haikufungua sajili zangu wakati kifungo kilibanwa, na kusababisha onyesho la mwisho kuwa na sehemu 2 zilizoangazwa sana wakati kifungo kilibanwa. Hii ilikuwa mbaya. Walakini, kusafisha rejista kulirekebisha shida hii, na ukaguzi wa nguvu unaoendelea unathibitisha kuwa iko karibu na sare ya 30mA. Hii inapaswa kunipa (kulingana na uzoefu wa hapo awali na mizunguko sawa) ~ saa 20 za muda wa kukimbia ukitumia betri 1 9V (500mAH / 30mAH chini ya kanuni ya 5V)… Natumai! Niliamua kuweka mwendo wa LED moja kwa moja, lakini uziweke kwenye soketi. kisa kitu kilitokea, muda mrefu.

Hatua ya 4: Ufungaji wa PCB

Ufungaji wa PCB
Ufungaji wa PCB

Kila wakati ninapofikia hatua hii katika mradi wangu mimi huchelewesha kufuata. Mwanzoni nilikuwa nikifunga waya kwa kitu hiki, lakini haraka niliacha wazo hilo. Mwanzoni nadhani "waya chache za kutengenezea, hakuna mpango mkubwa"… basi, wakati mradi wangu uko tayari kuuzwa ninafikiria, " Ningelipaswa kupelekwa nje kuwa na bodi ya proto iliyotengenezwa, au kuweka ubao wangu mwenyewe ". Siko kwenye mwangaza wa PCB (bado), na sikutaka kulipa $ $ ili bodi iwe imetengenezwa, kwa hivyo…. Ndio ….. Nilitumia masaa 3 kuuza kitu hiki. Ni waya zipatazo 150, kwa hivyo hiyo ni alama 300 za kuuza, pamoja na kugusa kwa madaraja ya solder. Hata hivyo, hapa kuna upande wa nyuma wa bodi iliyoonyeshwa….ndio… ubaya wa fujo, lakini wakati ilifanywa yote nilikuwa na 1 solder fupi. Nilichukua dakika 20 za kufikiria tangu onyesho lilionyesha makosa # kuonyeshwa kwa muundo wa kimantiki ambao nilipaswa kufafanua. Baada ya hapo, nilipata kifupi, na bam! Ilifanya kazi kikamilifu.

Hatua ya 5: Hitimisho

Hitimisho
Hitimisho

ILIFANYA KAZI! Mradi huu ulichukua karibu; ~ wiki 2 za kufikiria na kutuma barua pepe alama nzuri kwa mwombaji, ~ saa 3 za kukamilika kwa nambari na utatuzi, ~ saa 4 za kuweka mkate na utatuzi, ~ masaa 3 ya kuuza kwa kutumia 3 IC tu inawezekana Charlieplex 6 za sehemu za 7 7. Mchoro wa nguvu uko karibu 30mA na muundo huu, ambayo sio mbaya nikisema hivyo mwenyewe. Ninashuku LED nyingi za sehemu 7 zinaweza kutumiwa, lakini hazijasukuma bahasha. Wazo hili linaweza kutumika kwa karibu maombi yoyote kwa kutumia LEDs za sehemu 7; kipima joto, saa, onyesho la maandishi, n.k Kwa nambari fulani ngumu, unaweza kuwa na onyesho la kusonga, au picha… labda hata msingi wa mradi wa POV (kuendelea kwa maono). Utekelezaji wa mwisho umebaki kwa rafiki yangu kujenga Mnara wake na uweke ubao ndani, kama anavyoona inafaa. Ikiwa / Wakati hiyo imefanywa, nitapata picha iliyopakiwa. Lakini kwa mzunguko, hii inaonekana kujengwa ili!

Ilipendekeza: