Satura rādītājs:
Video: Warhammer burvis diskā ar magnētiski savienotu motoru un gaismas diodēm: 4 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 11:00
Vai vēlaties saviem mākslas projektiem pievienot kādu PIZZAZZ? Motori un gaismas diodes ir īstais ceļš!
Vai esat Warhammer spēļu entuziasts? Šis ir priekš jums! Šis ir mans Tzeentch burvju kungs diskā, pārskatīts, pievienojot 3 gaismas diodes, motoru, mikro (PIC) un mazu akumulatoru. Šī pamācība aptver pabeigto uzbūvi un problēmas.
1. darbība: ķēde
Pirmkārt, jums var rasties jautājums, kas tas ir. Šī ir mana pēc pasūtījuma izgatavota miniatūra galda kaujas spēlei uz galda ar nosaukumu Warhammer. Augšpusē esošais puisis ir parasts spēles veidotāja (Gamesworkshop) modelis, bet disks un bāze ir mans. Viņa uzbūve ir cita pamācāma tēma, tāpēc es šeit neiedziļināšos. Shēma Šeit galvenā ideja bija ņemt nelielu, 8 kontaktu mikro, lai kontrolētu 3 gaismas diodes un motoru ar pēc iespējas mazāku piegādi. "Palīdzīgu roku" izmantošana, kā vienmēr, ir laba ideja. Šīm lietām ir divi klipi, lai noturētu visu, pie kā strādājat. Shēma nebija nepieciešama, jo iespiešana ir ļoti vienkārša; 8 kontaktu mikro (mikroshēmas PIC) ar 3 izejas tapām, kas virzās tieši uz gaismas diodēm, un 2 izejas tapas uz 1 motoru. Izmantotās gaismas diodes ir zilā, baltā un sarkanā virsmas stiprinājuma veids. Izmantotais motors tika izvilkts no salauzta iekštelpu mikro helikoptera. Akumulators (mazais Lipo) tika izvilkts arī no heli, bet es jau plānoju izmantot citu avotu, lai iegūtu vairāk barošana. Ieslēgšanai/izslēgšanai tika pievienots slēdzis.
2. darbība: kods
PIC kods tika izveidots, lai optimizētu akumulatora darbības laiku un izmantotu daudzus nejaušus "notikumus". Lai akumulators darbotos pēc iespējas ilgāk, ķēdei bija jāizmanto vismazākais enerģijas daudzums, ko es spēju saprast, vienlaikus saglabājot ideju dzīvu. Tātad, es nolēmu samazināt sākotnējo aktivitāti līdz vidēji 1 LED zibspuldzei vai motora kustībai ik pēc 6 sekundēm. Kodam ir 12 nejaušas "darbības", sākot no 1 gaismas diodes ieslēgšanās, motora ieslēgšanās dažādiem laika periodiem vai virzieniem līdz pat nejaušam gaidīšanas stāvoklim. Notikumi atšķiras no 3 sekundēm līdz vairāk nekā 40 sekunžu intervālam, pamatojoties uz nejauši radīto notikumu. KODS; ============================= ==================================================; Disku kontrolieris;; -----------; Vcc-> | 1 8 | <-Vss; MGPIO5 | 2 7 | GPIO0 -LED1; MGPIO4 | 3 6 | GPIO1 -LED2; GPIO3-> | 4 5 | GPIO2 -LED3; -----------;; ====================================== ==========================================; Pārskatīšanas vēsture un piezīmes:; V1.0 Sākotnējā galvene, kods 5/19/09;;; (C) 5/2009; Šo kodu var izmantot personīgai apmācībai/lietojumprogrammai/pārveidošanai.; Jebkura šī koda izmantošana komerciālos produktos pārkāpj šo bezmaksas programmatūras laidienu.; Jautājumu/komentāru gadījumā, sazinieties ar ķēdes punktu magu vietnē yahoo dot com.; ------------------------------------------------ -------------------------------#ietver P12C672. INC; ============= ================================================== ================; Definē; ------------------------------------------------ -------------------------------; ================== ================================================== ===========; Dati; ------------------------------------------------ -------------------------------; Laika saglabāšanas mainīgie skaitļi ================================================== ===; Atiestatīt vektorus;; PĀRBAUDIET KONFIGURĀCIJU. BITS PIRMS DEGŠANAS !!!; INTOSC; MCLR: ENABLED; PWRUP: ENABLED; VISI CITI: IZSLĒGT !!;; ------------------------------------------ ------------------------------------- RESET_ADDR EQU 0x00 org RESET_ADDR sākās; ===== ================================================== ========================; Sāc šeit!;---------------------------------------------- ---------------------------------sākt; Konfigurēt I/O portus bcf STATUS, RP1 bsf STATUS, RP0 movlw h'08 '; RA izejas, PGIO3 vienmēr ievada tris GPIO movlw h'07'; Iestatiet GPIO uz digitālo režīmu movwf ADCON1; Iestatiet iekšējo taimeri movlw h'CF '; Tmr0 Iekšējais avots, iepriekšēja mēroga TMR0 1: 256 movwf OPTION_REG movlw h'00 'movwf INTCON; Atspējot TMR0 pārtraukumus, bcf STATUS, RP0; Initialize Registers clrf GPIO clrf count1 clrf count2 movlw 045h movwf Randlo movlw 030h movwf Randhi; pagaidiet 1 sek. zvanu debounce; 0,2 sekunžu zvana debounce zvans debounce call debounce call debounce; ============================================ ========================================; Galvenais; ------------------------------------------------ ------------------------------- galvenais zvans twosec; 2 sekundes min starp katru darbību rrf Randhi, W xorwf Randlo, W movwf Wtemp swapf Wtemp rlf Randhi, W xorwf Randhi, W; LSB = xorwf (Q12, Q3) xorwf Wtemp rlf Wtemp rlf Randlo rlf Randhi movfw Wtemp; sloksnes izlases 16 līdz 7 un lw 0x0F movwf rand; nejauša rutīnas atlase xorlw 0x00; 0? btfsc STATUS, Z goto flash1; Jā. Zvanīt 0th movfw rand xorlw 0x01; 1? btfsc STATUS, Z goto flash2; Jā. Zvaniet 1. movfw rand xorlw 0x02; 2? btfsc STATUS, Z goto flash3; Jā. Zvanīt 2. movfw rand xorlw 0x03; 3? btfsc STATUS, Z goto flashall; Jā. Zvanīt 3. movfw rand xorlw 0x04; 4? btfsc STATUS, Z goto movels; Jā. Zvanīt 4. movfw rand xorlw 0x05; 5? btfsc STATUS, Z goto movell; Jā. Zvaniet 5. movfw rand xorlw 0x06; 6? btfsc STATUS, Z goto pārvietotāji; Jā. Zvanīt 6. movfw rand xorlw 0x07; 7? btfsc STATUS, Z goto moverl; Jā. Zvanīt 7. movfw rand xorlw 0x08; 8? btfsc STATUS, Z goto moveburst; Jā. Zvanīt 8. movfw rand xorlw 0x09; 9? btfsc STATUSS, Z goto Wait1; Jā. Zvaniet 9. movfw rand xorlw 0x0A; A? btfsc STATUSS, Z goto Wait2; Jā. Zvaniet Ath movfw rand xorlw 0x0B; B? btfsc STATUS, Z goto Wait3; Jā. Zvanīt Bth goto neko; 1/4 laika, nedariet neko 10 sekundes. Flash1 bsf GPIO, 0 zvana debounce bcf GPIO, 0 goto mainflash2 bsf GPIO, 1 zvana debounce bcf GPIO, 1 goto mainflash3 bsf GPIO, 2 zvana debounce bcf GPIO, 2 goto mainflashall bsf GPIO, 0 bsf GPIO, 1 bsf GPIO, 2 zvana atcelšanas zvana atcelšana bcf GPIO, 0 bcf GPIO, 1 bcf GPIO, 2 goto mainmovels bsf GPIO, 4 bcf GPIO, 5 zvanu atcelšanas bcf GPIO, 4 goto mainmovell bsf GPIO, 4 bcf GPIO, 5 zvanu pārtraukšanas zvanu atcelšana bcf GPIO, 4 goto mainmovers bcf GPIO, 4 bsf GPIO, 5 zvanu debounce bcf GPIO, 5 goto mainmoverl bcf GPIO, 4 bsf GPIO, 5 zvana debounce call debounce bcf GPIO, 5 goto mainmoveburst b 4 bsf GPIO, 5 zvanu debounce; pārvietoties pa labi 3 reizes, īsi pārrāvumi. bcf GPIO, 5 zvanu pārtraukšanas zvana debounce bsf GPIO, 5 zvanu debounce call debounce bcf GPIO, 5 zvanu debounce call debounce bsf GPIO, 5 call debounce bcf GPIO, 5 call debounce call debounce call debounce call debounce bsf GPIO; 3 reizes virzieties pa kreisi, īsi pārrāvumi. bcf GPIO, 5 zvanu atcelšanas zvana debounce bcf GPIO, 4 zvanu debounce call debounce bsf GPIO, 4 zvanu debounce call debounce bcf GPIO, 4 call debounce call debounce bsf GPIO, 4 call debounce call debounce bcf GPIO, 4 call debounce; Pagaidiet 1 sekundi movlw.255; Aizkavēšanās par 2/10 sekundēm. movwf count2 zvanīt pon_wait movlw.255; Aizkavēšanās par 2/10 sekundēm. movwf count2 zvanīt pon_wait movlw.255; Aizkavēšanās par 2/10 sekundēm. movwf count2 zvanīt pon_wait movlw.255; Aizkavēšanās par 2/10 sekundēm. movwf count2 zvanīt pon_wait movlw.255; Aizkavēšanās par 2/10 sekundēm. movwf count2 zvanīt pon_wait goto mainWait2; Pagaidiet 0,6 sekundes movlw.255; Aizkavēšanās par 2/10 sekundēm. movwf count2 zvanīt pon_wait movlw.255; Aizkavēšanās par 2/10 sekundēm. movwf count2 zvanīt pon_wait movlw.255; Aizkavēšanās par 2/10 sekundēm. movwf count2 zvanīt pon_wait goto mainWait3; Pagaidiet 4 sekundes zvaniet divreiz, zvaniet divās sekundēs, dodieties uz mainnothing movlw.50; Kavēšanās 10 sekundes Kopējais movwf skaits3nothing_loop movlw.255; Aizkavēšanās par 2/10 sekundēm. movwf count2 zvanīt pon_wait decfsz count3, F goto nothing_loop goto main; ===================================== ==========================================; 2 sekundes jāgaida; ---------------------------------------------- --------------------------------- twosec movlw.10; Kavēšanās 2 sekundes Kopējais movwf skaits3twosec_loop movlw.255; Aizkavēšanās par 2/10 sekundēm. movwf count2 zvanīt pon_wait decfsz count3, F goto twosec_loopreturn; ======================================= ========================================; Atkāpšanās signāls; 4 cikli, lai ielādētu un izsauktu, 2 cikli, lai atgrieztos.; 4Mhz Tc:: skaits2 = 255-> 0,2 sek.; -------------------------------------- ----------------------------------------- debounce movlw.127; Kavēšanās par 1/10 sekunžu atkāpšanos. movwf count2 zvans pon_wait return; -------------------------------------------- -----------------------------------; count1 = 255d:: 775 cikli līdz 0, + 3 cikli, lai atgrieztos.; --------------------------------- ---------------------------------------------- pon_waitbig_loopS movlw.255 movwf count1short_loopS decfsz count1, F goto short_loopS decfsz count2, F goto big_loop
3. solis: detaļas
Šis attēls parāda, cik mazs man vajadzēja, lai komponenti ietilptu zem šī puiša. 1 8 kontaktu mikroshēma (PIC) 3 SMT gaismas diodes (zila, sarkana, balta) 1 motors no iekštelpu mikro heli. 1 barošanas slēdzis1 2,5 mm koka dībelis (2 garš) 2 1 mm retzemju magnēti
4. solis: izveidojiet
Vispirms tika atrasts masas centrs visai lietai. Tā būtu motora stiprinājuma zona. Motors tika uzstādīts, izmantojot Goenstuff (izmantots miniatūru pasaulē). Trīs gaismas diodes bija iepriekš pieslēgtas. Mikro tika pielīmēts ārpus ceļa, ne pārāk tuvu malai. Barošanas slēdzis un akumulators tika uzstādīti, lai kompensētu (mazo) mikro svaru, lai saglabātu līdzsvaru. Vadi tika pielodēti. Patiešām foršā daļa ir nākamā. Superlīme uz rotora pārnesuma gala uz motora (tas vēlāk būtu vērsts uz leju) tika uzstādīts retzemju magnēts. Īss (~ 2 collu) garumā 2,5 diametra koka dībelis tika izurbts (izmantojot roku un uzgali) 5 mm dziļam 1 mm diametra caurumam. Šajā caurumā tika pielīmēts vēl 1 mm retzemju magnēts. Tagad mana figūras pamatne ir magnētiski savienots ar motora rotoru. Kad motors griežas, no līdzsvara centra tas pagriež visu figūras augšējo daļu. Sarkanie salmi tika sagriezti, lai pārklātu motoru un koka dībeli. Tas tika iepriekš izmērīts pirms koka tapas uzstādīts, lai nodrošinātu tā atbilstību. LIPO akumulatora jauda pašlaik tiek rādīta 3,4 V. izmantojiet 12 V tālvadības akumulatoru ar 5 V regulatoru, lai iegūtu lielāku jaudu!
Ieteicams:
Ballītes Bluetooth skaļrunis ar RGB gaismas diodēm: 7 soļi
Ballītes Bluetooth skaļrunis ar RGB gaismas diodēm: Sveiki, šī ir mana pirmā pamācība. Es jums parādīšu, kā es izveidoju šo ballītes skaļruni ar RGB gaismas diodēm. Šo projektu iedvesmojis JBL Pulse un šīs pamācības, taču tas ir ļoti lēts un viegli izgatavojams projekts ar lielāko daļu lietu
Kā izveidot savu WIFI vārteju, lai savienotu savu Arduino ar IP tīklu?: 11 soļi (ar attēliem)
Kā izveidot savu WIFI vārteju, lai savienotu savu Arduino ar IP tīklu?: Kā tik daudzi cilvēki jūs domājat, ka Arduino ir ļoti labs risinājums mājas automatizācijai un robotizēšanai! Bet komunikācijas ziņā Arduinos ir tikai sērijas saites. Es strādāju pie robota, kuram jābūt pastāvīgi savienotam ar serveri, kas darbojas
Magnētiski savienots ūdens sūknis: 10 soļi (ar attēliem)
Magnētiski savienots ūdens sūknis: Šajā INSTRUKCIJĀ es paskaidrošu, kā es izveidoju ūdens sūkni ar magnētisko savienojumu. Šajā ūdens sūknī starp lāpstiņriteni un elektromotora asi nav mehāniska savienojuma, kas liek tam darboties. Bet kā tas tiek panākts un
Magnētiski fiksējams daudzinstrumentu apvalks: 10 soļi
Magnētiski fiksējams daudzinstrumentu apvalks: man darbā vienmēr ir daudzfunkcionāls instruments. Problēma ir tāda, ka pēc gada Velcro aizvēršanas cilne zaudē savu "lipīgumu". Mans risinājums ir izmantot spēcīgus magnētus no vecā cietā diska, lai aizvietotu aizdares velcro. Ar aizvērtu vāku
Izveidojiet tīmeklī savienotu robotu (par aptuveni 500 USD) (izmantojot Arduino un Netbook): 6 soļi (ar attēliem)
Izveidojiet tīmeklī savienotu robotu (par aptuveni 500 ASV dolāriem) (izmantojot Arduino un Netbook): šī pamācība parādīs, kā izveidot savu tīmekļa savienoto robotu (izmantojot Arduino mikrokontrolleri un Asus eee datoru). Kāpēc vēlaties Web Savienots robots? Protams, lai spēlētu. Vadiet savu robotu no visas istabas vai pāri skaitam