Përmbajtje:
Video: Magjistari Warhammer në disk me motor të lidhur me magnet dhe LED: 4 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:32
Dëshironi të shtoni disa PIZZAZZ në projektet tuaja artistike? Motorët dhe LED janë rruga për të shkuar!
A jeni një entuziast i lojërave Warhammer? Ky eshte per ty! Ky është Zoti im Tzeentch Magjistar në Disk, i rishikuar me 3 LED të shtuar, një motor, një mikro (PIC) dhe bateri të vogël. Ky udhëzues mbulon ndërtimin dhe çështjet e përfunduara.
Hapi 1: Qarku
Së pari, ju mund të pyesni se çfarë është kjo. Kjo është një miniaturë e bërë me porosi për një tavolinë lufte tavoline të quajtur Warhammer. Djaloshi në krye është një model i rregullt nga krijuesi i lojës (Gamesworkshop), por disku dhe baza janë të gjitha të miat. Ndërtimi për të është subjekt i një udhëzimi tjetër, kështu që unë nuk do të hyj këtu në atë. Përdorimi i "duarve ndihmëse", si gjithmonë, është një ide e mirë. Këto gjëra kanë dy kapëse për të mbajtur çfarëdo që po punoni. Asnjë skematik nuk ishte i nevojshëm, pasi nënkuptimi është shumë i thjeshtë; Një mikro 8 pin (Microchip PIC) me 3 kunja dalës që shkojnë drejtpërdrejt në LED, dhe 2 kunja dalje që shkojnë në 1 motor. LED -të e përdorura janë të tipit të montimit në sipërfaqe Blu, të Bardhë dhe të Kuqe. Motori i përdorur u shqye nga një mikrolekopter i prishur i brendshëm. Bateria (Lipo e vogël) gjithashtu u hoq nga heli, por unë tashmë planifikoj të përdor një burim tjetër për më shumë fuqia. Një çelës u shtua për On/Off.
Hapi 2: Kodi
Kodi për PIC është bërë për të optimizuar jetëgjatësinë e baterisë dhe për të përdorur shumë "ngjarje" të rastësishme. Në mënyrë që bateria të zgjasë sa më gjatë, qarku duhej të përdorte sasinë më të vogël të energjisë që mund të kuptoja, duke e mbajtur idenë gjallë Me Kështu, vendosa ta zvogëloj aktivitetin fillestar në një mesatare prej 1 blic LED ose lëvizje motorike çdo 6 sekonda. Kodi ka 12 "aktivitete" të rastësishme, duke filluar nga 1 LED i ndezur, motori i ndezur për periudha ose drejtime të ndryshme kohore, në një gjendje pritjeje të rastësishme. Ngjarjet ndryshojnë nga 3 sekonda larg deri në më shumë se 40 sekonda, në bazë të ngjarjes së krijuar rastësisht. KODI; =========================== ==================================================; Kontrolluesi i diskut;; -----------; Vcc-> | 1 8 | <-Vss; MGPIO5 | 2 7 | GPIO0 -LED1; MGPIO4 | 3 6 | GPIO1 -LED2; GPIO3-> | 4 5 | GPIO2 -LED3; -----------;; ====================================== ===========================================; Historia e Rishikimit dhe Shënimet:; V1.0 Titulli Fillestar, Kodi 5/19/09;;; (C) 5/2009; Ky kod mund të përdoret për mësim/aplikim/modifikim personal.; Çdo përdorim i këtij kodi në produktet komerciale shkel këtë lëshim të programit freeware.; Për pyetje/komente, kontaktoni qark dot mage në yahoo dot com.; ---------------------------------------------------- -------------------------------#përfshijnë P12C672. INC; ============== ================================================== =================; Përcakton; ---------------------------------------------------- -------------------------------; ================== ================================================== ============; Të dhëna; ---------------------------------------------------- -----------------------------------; Variablat e mbajtjes së kohës numërimi 1 i barabartë me 20 numër 2 i barabartë me 21 vonesa të barabarta me Randlo me 23 i Randhi i barabartë me temperaturën e barabartë me 25 Temp2 i barabartë me 26 dhe baras 27 me numër 3 me 28; ========================== ================================================== ===; Rivendosni vektorët;; KONTROLLONI KONFIG. PJESA PARA T B Djegur !!!; INTOSC; MCLR: ANALIZUAR; PWRUP: AKTIVIZUAR; T ALL GJITH T OTHER TJERT: TIS PAKTUAR !!;; ------------------------------------------ ------------------------------------- RESET_ADDR EQU 0x00 org RESET_ADDR fillova; ===== ================================================== =========================; Fillo Ketu!;---------------------------------------------- --------------------------------- fillimi; Konfiguro portat hyrëse/dalëse bcf STATUS, RP1 bsf STATUS, RP0 movlw h'08 '; Daljet RA, PGIO3 gjithmonë futin tris GPIO movlw h'07'; Vendosni GPIO në modalitetin dixhital movwf ADCON1; Vendosni kohëmatësin e brendshëm movlw h'CF '; Tmr0 Burimi i brendshëm, i parashkruar TMR0 1: 256 movwf OPTION_REG movlw h'00 'movwf INTCON; Çaktivizo ndërprerjet TMR0, bcf STATUS, RP0; Filloni regjistrat clrf GPIO clrf count1 clrf count2 movlw 045h movwf Randlo movlw 030h movwf Randhi; prisni 1 sek. thirrje debounce; 0.2 sekondë thirrje debounce thirrje debounce thirrje debounce debounce; ======================================= ==========================================; Kryesore; ---------------------------------------------------- ------------------------------- thirrja kryesore twosec; 2 sekonda min në mes çdo veprimi 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; shirit i rastësishëm 16 deri në 7 andlw 0x0F movwf rand; përzgjedhje e rastësishme rutinë xorlw 0x00; 0? btfsc STATUS, Z goto flash1; Po. Telefononi 0th movfw rand xorlw 0x01; 1? btfsc STATUS, Z goto flash2; Po. Thirrni 1 movfw rand xorlw 0x02; 2? btfsc STATUS, Z goto flash3; Po. Thirr 2 movfw rand xorlw 0x03; 3? btfsc STATUS, Z goto flashall; Po. Thirrni 3 -të movfw rand xorlw 0x04; 4? btfsc STATUS, Z goto lëviz; Po. Thirr 4 movfw rand xorlw 0x05; 5? btfsc STATUS, Z goto movell; Po. Thirrni 5 -të movfw rand xorlw 0x06; 6? btfsc STATUS, Z goto lëvizës; Po. Thirr 6 movfw rand xorlw 0x07; 7? btfsc STATUS, Z goto moverl; Po. Telefononi movfw rand xorlw 0x08; 8? btfsc STATUS, Z goto moveburst; Po. Thirrni movfw rand xorlw 0x09; 9? btfsc STATUS, Z goto Prit 1; Po. Thirrni 9 -të movfw rand xorlw 0x0A; A? btfsc STATUS, Z goto Prit2; Po. Telefononi Ath movfw rand xorlw 0x0B; B? btfsc STATUS, Z goto Prit3; Po. Thirrja Bth nuk mori asgjë; 1/4 e kohës, mos bëni asgjë për 10 sekonda. Flash1 bsf GPIO, 0 thirrje debounce bcf GPIO, 0 goto mainflash2 bsf GPIO, 1 thirrje debounce bcf GPIO, 1 goto mainflash3 bsf GPIO, 2 thirrje debounce bcf GPIO, 2 goto bsf kryesore GPIO, 0 bsf GPIO, 1 bsf GPIO, 2 thirrje debounce thirrje debounce bcf GPIO, 0 bcf GPIO, 1 bcf GPIO, 2 goto mainmovels bsf GPIO, 4 bcf GPIO, 5 thirrje debounce bcf GPIO, 4 goto mainmovell bsf GPIO, 5 thirrje debounce call debounce bcf GPIO, 4 goto mainmovers bcf GPIO, 4 bsf GPIO, 5 thirrje debounce bcf GPIO, 5 goto mainmoverl bcf GPIO, 4 bsf GPIO, 5 call debounce call debounce bcf GPIO, 5 goto mainmove, 5 goto mainmove 4 bsf GPIO, 5 thirrje debounce; lëviz drejt 3 herë, shpërthime të shkurtra. bcf GPIO, 5 thirrje debounce call debounce bsf GPIO, 5 call call debounce call debounce bcf GPIO, 5 call call debounce call bounce bsf GPIO, 5 call call debounce bcf GPIO, 5 call call debounce call debounce call debounce call debounce bsf GPIO, 4; lëviz 3 herë majtas, shpërthime të shkurtra. bcf GPIO, 5 thirrje debounce call debounce bcf GPIO, 4 call call debounce call debounce bsf GPIO, 4 call call debounce call debounce bcf GPIO, 4 call call debounce call debounce bsf GPIO, 4 call call debounce call debounce bcf GPIO, 4 thirrje debounce thirrje debounce debounce; Prisni 1 sekonda movlw.255; Vonesë për debutimin 2/10 të dytë. movwf count2 thirrje pon_wait movlw.255; Vonesa për debutimin 2/10 të dytë. movwf count2 thirrje pon_wait movlw.255; Vonesa për debutimin 2/10 të dytë. movwf count2 thirrje pon_wait movlw.255; Vonesa për debutimin 2/10 të dytë. movwf count2 thirrje pon_wait movlw.255; Vonesa për debutimin 2/10 të dytë. movwf count2 telefononi pon_wait goto mainWait2; Prisni 0,6 sekonda movlw.255; Vonesa për debutimin 2/10 të dytë. movwf count2 thirrje pon_wait movlw.255; Vonesa për debutimin 2/10 të dytë. movwf count2 thirrje pon_wait movlw.255; Vonesa për debutimin 2/10 të dytë. movwf count2 telefononi pon_wait goto mainWait3; Prisni 4 sekonda thirrje twosec thirrje twosec goto mainnothing movlw.50; Vonesë për 10 sekonda Gjithsej movwf count3nothing_loop movlw.255; Vonesa për debutimin 2/10 të dytë. movwf count2 thirrje pon_wait decfsz count3, F goto something_loop goto kryesore; ==================================== ===========================================; 2 sekonda pritje; ---------------------------------------------- ------------------------------------- twosec movlw.10; Vonesë për 2 sekonda Gjithsej movwf count3twosec_loop movlw.255; Vonesa për debutimin 2/10 të dytë. movwf count2 thirrje pon_wait decfsz count3, F goto twosec_loopreturn; ====================================== ==========================================; Sinjali i debitimit; 4 cikle për t'u ngarkuar dhe thirrur, 2 cikle për t'u kthyer.; 4Mhz Tc:: numërimi2 = 255-> 0.2 sek; ------------------------------------------ ----------------------------------------- debounce movlw.127; Vonesa për 1/10 sekondë debounce. movwf count2 telefononi pon_pritni kthimin; -------------------------------------------- ---------------------------------------; numërimi 1 = 255d:: 775 cikle në 0, + 3 cikle për t'u kthyer.; --------------------------------- --------------------------------------------------- pon_waitbig_loopS movlw.255 movwf count1short_loopS decfsz count1, F goto short_loopS decfsz count2, F goto big_loopSreturnend
Hapi 3: Pjesët
Kjo fotografi tregon se sa i vogël më duhej që komponentët të përshtaten nën këtë djalë. 1 Mikroçip 8-pin (PIC) 3 SMT LED (Blu, e kuqe, e bardhë) 1 Motor nga një mikro heli i brendshëm. 1 bateri LIPO nga e njëjta heli. 1 çelës energjie 1 kunj druri 2.5 mm (2 i gjatë) 2 magnete 1 mm të rrallë të tokës
Hapi 4: Ndërtoni
Së pari u gjet një qendër masive për të gjithë gjënë. Kjo do të ishte zona e montimit të motorit. Motori ishte montuar duke përdorur goop të quajtur Greenstuff (e përdorur në botën e miniaturave). 3 LED -të ishin të lidhur paraprakisht. Mikroja ishte e mbivendosur në një zonë jashtë rrugës, jo shumë afër buzës. Çelësi i energjisë dhe bateria janë montuar për të kompensuar peshën (e vogël) të mikro, për të mbajtur ekuilibrin. Telat u ngjitën. Pjesa me të vërtetë e ftohtë është e ardhshme. Ngjitës në majë të ingranazhit të rotorit në motor (kjo do të përballej më vonë) ishte montuar një magnet i rrallë i tokës. Një gjatësi e shkurtër (~ 2 ) e shufrës prej druri me diametër 2.5 u shpua (duke përdorur dorën dhe bitin) për një vrimë të thellë 5 mm me diametër 1 mm. Në këtë vrimë u ngjit një magnet tjetër i rrallë 1 mm. Tani, baza ime për figurën është magnetikisht e lidhur me rotorin e motorit. Kur motori rrotullohet, nga qendra e ekuilibrit të tij, ai kthen pjesën e sipërme të figurës. Një kashtë e kuqe ishte prerë për të mbuluar motorin dhe kunjin prej druri. Kjo ishte e para -matur para se të mbërthehej shufra prej druri montuar, për të siguruar që ai përputhet. Dalja e baterisë LIPO aktualisht po lexon 3.4V pa rimbushje. Kjo është e mjaftueshme për të rrotulluar motorin dhe për të ndezur LED -të, por me figurën e montuar në bazë, nuk po rrotullohet vetë. Versioni im i ardhshëm do të përdorni një bateri të largët 12V me rregullator 5V për më shumë energji!
Recommended:
Zgjidhësi i Rubikut të Rubikut në kohë reale me sy të lidhur duke përdorur Raspberry Pi dhe OpenCV: 4 hapa
Zgjidhësi i Rubikut të Rubikut me Sy të Shikuar në kohë Reale duke përdorur Raspberry Pi dhe OpenCV: Ky është versioni i dytë i mjetit kubik të Rubikut i bërë për zgjidhjen me sy të mbyllur. Versioni i parë u zhvillua nga javascript, ju mund ta shihni projektin RubiksCubeBlindfolded1 Ndryshe nga versioni i mëparshëm, ky version përdor bibliotekën OpenCV për të zbuluar ngjyrat dhe
Sistemi i Kontrollit të Lagështisë së Tokës të Kontrolluar me Internet të Lidhur me Sistemin e Ujitjes me Pika (ESP32 dhe Blynk): 5 Hapa
Sistemi i Kontrollit të Lagështisë së Tokës i Sistemit të Ujitjes me Pika (ESP32 dhe Blynk): Shqetësohuni për kopshtin ose bimët tuaja kur shkoni në pushime të gjata, ose harroni të ujisni bimën tuaj çdo ditë. Epo këtu është zgjidhja Itsshtë një sistem i kontrolluar nga lagështia e tokës dhe i lidhur globalisht me sistemin e ujitjes me pika të kontrolluar nga ESP32 në pjesën e përparme të softuerit
Bëni termostatin tuaj të ngrohjes të lidhur dhe bëni kursime me ngrohje: 53 hapa (me fotografi)
Bëni Termostatin tuaj të Ngrohjes të Lidhur dhe Bëni Kursime Me Ngrohje: Cili është qëllimi? Rritni komoditetin duke ngrohur shtëpinë tuaj saktësisht si dëshironi Bëni kursime dhe zvogëloni emetimet e gazrave serë duke ngrohur shtëpinë tuaj vetëm kur keni nevojë Mbani kontroll mbi ngrohjen tuaj kudo që të jeni Jini krenarë që e keni bërë atë
Kontrolli i një televizori dhe Raspberry Pi i lidhur me të njëjtën telekomandë: 4 hapa
Kontrolli i një televizori dhe Raspberry Pi i lidhur me të njëjtën telekomandë: Për të kontrolluar një Raspberry Pi me telekomandë Infrared, ne ishim në gjendje të përdorim LIRC. Kjo funksiononte deri në Kernel 4.19.X kur u bë shumë më sfiduese të vinte LIRC në punë. Në këtë projekt ne kemi një Raspberry Pi 3 B+ të lidhur me një televizor dhe ne
Magjistari i vogël - Lojë PC/Android Si Projekti Babai dhe Biri me Fëmijët (unit3d): 5 hapa
Little Wizard - PC/Android Game Si Babai dhe Biri Projekt Me Fëmijët (unit3d): Unë do të doja të tregoja sa e lehtë dhe argëtuese është të bësh një lojë. Unë e kam krijuar lojën time si projekt babë e bir, për të kaluar ca kohë me djali im dhe për ta mësuar atë diçka të lezetshme. Para së gjithash dua të them, se unë nuk jam një zhvillues i lojërave dhe së dyti, se është