Мазмуну:

Warhammer сыйкырчысы магниттик кошулган мотору жана дисктеги дискте: 4 кадам
Warhammer сыйкырчысы магниттик кошулган мотору жана дисктеги дискте: 4 кадам

Video: Warhammer сыйкырчысы магниттик кошулган мотору жана дисктеги дискте: 4 кадам

Video: Warhammer сыйкырчысы магниттик кошулган мотору жана дисктеги дискте: 4 кадам
Video: МЕСТЬ ДВАРФОВ! - ПРОХОЖДЕНИE-ОБЗОР DWARVES: GLORY, DEATH AND LOOT 2024, Декабрь
Anonim
Warhammer сыйкырчысы магниттик кошулган мотор жана LED менен дискте
Warhammer сыйкырчысы магниттик кошулган мотор жана LED менен дискте

PITZAZZти көркөм долбоорлоруңузга кошкуңуз келеби? Моторлор жана Светодиоддор - бул жол!

Сиз Warhammer оюн ышкыбозусузбу? Бул сиз үчүн! Бул менин дисктеги Tzeentch сыйкырчы Теңирим, 3 LED, мотор, микро (PIC) жана кичинекей батарея менен кайра каралат. Бул көрсөтмө аяктаган курулушту жана маселелерди камтыйт.

1 -кадам: Circuit

Circuit
Circuit

Биринчиден, бул эмне деп ойлонушуңуз мүмкүн. Бул менин атайын жасалган миниатюрам, стол үстүндөгү Warhammer деп аталган стол үстүндөгү согуштук оюн. Жогорудагы адам - бул оюндун (Gamesworkshop) жаратуучусунун кадимки модели, бирок диск менен базанын баары меники. Анын курулушу башка үйрөтүлө турган тема, андыктан мен бул жерге кирбейм. Бул жердеги негизги идея 3 LED жана моторду көзөмөлдөө үчүн кичинекей, 8 пин микро алуу болгон. "Жардам колдорун" колдонуу, ар дайым, жакшы идея. Бул нерселердин үстүндө иштеп жаткан нерсеңизди кармоо үчүн эки клип бар. Эч кандай схемага муктаждык болгон жок, анткени имплантация абдан жөнөкөй; 8 чыккычтуу микро (Microchip PIC) 3 чыгуучу казык менен түздөн -түз светодиодго, жана 2 чыгуу казыгы 1 моторго барат. Колдонулган LEDлер - бул Көк, Ак жана Кызыл бетке орнотулган тип. Колдонулган мотор сынган ички микро вертолёттон айрылган. Батарейканы (кичинекей Липо) да велосипедден айрып салышкан, бирок мен дагы башка булакты колдонууну пландап жатам. күйгүзүү/өчүрүү үчүн которгуч кошулду.

2 -кадам: Код

Code
Code

PICтин коду батарейканын иштөө мөөнөтүн оптималдаштыруу жана көптөгөн кокустук "окуяларды" колдонуу үчүн жасалган. Батареяны мүмкүн болушунча көбүрөөк убакытка жеткирүү үчүн, схема идеяны сактап калуу менен бирге мен ойлогон эң аз күчтү колдонушу керек болчу.. Ошентип, мен баштапкы активдүүлүктү орточо 1 LED жарыгы же мотордун кыймылын 6 секунд сайын азайтууну чечтим. Коддо 12 диоддук диоддун күйгүзүлүшүнөн, мотордун ар кандай мезгилдерге же багыттарга күйүшүнө чейин, туш келди күтүү абалына чейин 12 кокустук "иш -аракеттери" бар. Окуялар жаратылган кокустук окуяга негизделген 3 секундадан 40 секундага чейин айырмаланат. CODE; ==================================================; Диск контролери;; -----------; Vcc-> | 1 8 | <-Vss; MGPIO5 | 2 7 | GPIO0 -LED1; MGPIO4 | 3 6 | GPIO1 -LED2; GPIO3-> | 4 5 | GPIO2 -LED3; -----------;; ==================================== ==========================================; Revision History & Notes:; V1.0 Баштапкы Баш аты, Code 5/19/09;;; (C) 5/2009; Бул код жеке үйрөнүү/колдонуу/өзгөртүү үчүн колдонулушу мүмкүн.; Бул кодду коммерциялык продукцияда колдонуу бул бекер чыгарууну бузат..; ------------------------------------------------ -------------------------------#P12C672. INC кирет; ============= ================================================= =================; Аныктайт; ------------------------------------------------ -------------------------------; ================== ================================================= ===========; Маалымат; ------------------------------------------------ -------------------------------; Убакытты сактоо өзгөрмөлөрү1 тең 20 эсеп 2 барабар 21 кечигүү 22 Рандло барабар 23 ================================================== ===; Векторлорду кайра коюу;; Конфигурацияны текшерүү. КҮЙГӨНГӨ ЧЕЙИН !!!; INTOSC; MCLR: ENABLED; PWRUP: ENABLED; БАШКАЛАР: ӨЧҮРҮҮ !!;; ------------------------------------------ ------------------------------------- RESET_ADDR EQU 0x00 org RESET_ADDR баштоо керек; ===== ================================================== =========================; Бул жерден башта!;---------------------------------------------- --------------------------------- баштоо; I/O портторун конфигурациялоо bcf STATUS, RP1 bsf STATUS, RP0 movlw h'08 '; RA Outputs, PGIO3 дайыма GPO movlw h'07' киргизет; GPIOну Digital режимине коюңуз movwf ADCON1; Ички таймерди movlw h'CF 'коюу; Tmr0 Ички булак, алдын ала баа TMR0 1: 256 movwf OPTION_REG movlw h'00 'movwf INTCON; TMR0 үзгүлтүктөрүн, bcf STATUS, RP0 өчүрүү; Регистрлерди баштоо clrf GPIO clrf count1 clrf count2 movlw 045h movwf Randlo movlw 030h movwf Randhi; 1 сек күтө туруңуз. чалуу чалуу; 0,2 сек. Чалуу чалуу =========================================; Негизги; ------------------------------------------------ ------------------------------- негизги чалуу twosec; Ар бир аракеттин ортосунда 2 сек. Мүнөт Rrf, W xorwf Randlo, W movwf Wtemp swapf Wtemp rlf Randhi, W xorwf Ранди, W; LSB = xorwf (Q12, Q3) xorwf Wtemp rlf Wtemp rlf Randlo rlf Randhi movfw Wtemp; туш келди 16дан 7ге чейин andlw 0x0F movwf rand; туш келди күнүмдүк тандоо xorlw 0x00; 0? btfsc STATUS, Z goto flash1; Ооба. 0th movfw rand xorlw 0x01ге чалыңыз; 1? btfsc STATUS, Z goto flash2; Ооба. Чалуу 1 -movfw rand xorlw 0x02; 2? btfsc STATUS, Z goto flash3; Ооба. Чалуу 2 -movfw rand xorlw 0x03; 3? btfsc STATUS, Z goto flashall; Ооба. Чалуу 3 -movfw rand xorlw 0x04; 4? btfsc STATUS, Z goto movels; Ооба. Чалуу 4 -movfw rand xorlw 0x05; 5? btfsc STATUS, Z goto movell; Ооба. Чалуу 5 -movfw rand xorlw 0x06; 6? btfsc STATUS, Z goto movers; Ооба. 6 -movfw rand xorlw 0x07ге чалыңыз; 7? btfsc STATUS, Z goto moverl; Ооба. Чалуу 7 -movfw rand xorlw 0x08; 8? btfsc STATUS, Z goto moveburst; Ооба. Чалуу 8th movfw rand xorlw 0x09; 9? btfsc STATUS, Z goto Wait1; Ооба. Чалуу 9 -movfw rand xorlw 0x0A; А? btfsc STATUS, Z goto Wait2; Ооба. Ath movfw rand xorlw 0x0B чалуу; B? btfsc STATUS, Z goto Wait3; Ооба. Чалуу Bth goto эч нерсе; 1/4 убакыт, 10 сек. Эч нерсе кылбаңыз. Flash 1 bsf GPIO, 0 call debounce bcf GPIO, 0 goto mainflash2 bsf GPIO, 1 call debounce bcf GPIO, 1 goto mainflash3 bsf GPIO, 2 call debounce bcf GPIO, 2 goto mainflashall bsf GPIO, 0 bsf GPIO, 1 bsf GPIO, 2 call debounce call debounce bcf GPIO, 0 bcf GPIO, 1 bcf GPIO, 2 goto mainmovels bsf GPIO, 4 bcf GPIO, 5 call debounce bcf GPIO, 4 goto mainmovell bsf GPIO, 4 bcf GPIO, 5 чалуу дебунс чалуу дебунс bcf GPIO, 4 goto mainmovers bcf GPIO, 4 bsf GPIO, 5 call debounce bcf GPIO, 5 goto mainmoverl bcf GPIO, 4 bsf GPIO, 5 call call debounce bcf GPIO, 5 goto mainmoveburst bcf GPIO, 4 bsf GPIO, 5 чалуудан чыгуу; оңго 3 жолу жылуу, кыска жарылуу. bcf GPIO, 5 call call debounce bsf GPIO, 5 call call debounce call debounce bcf GPIO, 5 call call debounce bsf GPIO, 5 call debounce bcf GPIO, 5 call debounce call debounce call debounce bsf GPIO, 4; солго 3 жолу жылуу, кыска жарылуулар. bcf GPIO, 5 call call debounce bcf GPIO, 4 call debounce call debounce bsf GPIO, 4 call debounce call debounce bcf GPIO, 4 call debounce call debounce bsf GPIO, 4 call debounce call debounce bcf GPIO, 4 call debounce call debounce goto mainWait1; Күтүү 1 секунд movlw.255; 2/10 экинчи дебюнду кечиктирүү. movwf count2 чакыруу pon_wait movlw.255; 2/10 экинчи дебюнду кечиктирүү. movwf count2 чакыруу pon_wait movlw.255; 2/10 экинчи дебюнду кечиктирүү. movwf count2 чакыруу pon_wait movlw.255; 2/10 экинчи дебюнду кечиктирүү. movwf count2 чакыруу pon_wait movlw.255; 2/10 экинчи дебюнду кечиктирүү. movwf count2 чалуу pon_wait goto mainWait2; Күтө туруңуз 0.6 секунд movlw.255; 2/10 экинчи дебюнду кечиктирүү. movwf count2 чакыруу pon_wait movlw.255; 2/10 экинчи дебюнду кечиктирүү. movwf count2 чакыруу pon_wait movlw.255; 2/10 экинчи дебюнду кечиктирүү. movwf count2 чалуу pon_wait goto mainWait3; 4 секунд күтө туруңуз twosec чалуу twosec goto mainnothing movlw.50; 10 секундга кечиктирүү Total movwf count3nothing_loop movlw.255; 2/10 экинчи дебюнду кечиктирүү. movwf count2 чалуу pon_wait decfsz count3, F goto nothing_loop goto main; ================================== ==========================================; 2 секунд күтүү; ---------------------------------------------- --------------------------------- twosec movlw.10; 2 секундга кечиктирүү Total movwf count3twosec_loop movlw.255; 2/10 экинчи дебюнду кечиктирүү. movwf count2 чалуу pon_wait decfsz count3, F goto twosec_loopreturn; ===================================== =========================================; Сигналды ажыратуу; Жүктөө жана чалуу үчүн 4 цикл, кайтуу үчүн 2 цикл.; 4Mhz Tc:: count2 = 255-> 0.2 сек; -------------------------------------- ----------------------------------------- debounce movlw.127; 1/10 секунданын кечигүүсү. movwf count2 чалуу pon_wait кайтаруу; -------------------------------------------- -----------------------------------; count1 = 255d:: 775 цикл 0ге чейин, + 3 цикл кайтып келет.; --------------------------------- ---------------------------------------------- pon_waitbig_loopS movlw.255 movwf count1short_loopS decfsz count1, F goto short_loopS decfsz count2, F goto big_loopSreturnend

3 -кадам: Бөлүктөр

Бөлүктөр
Бөлүктөр

Бул сүрөттө мен бул кишинин астына туура келген компоненттерди алуу үчүн канчалык кичинекей болгонумду көрсөтүп турат.1 8-пин Microchip (PIC) 3 SMT LED's (Blue, Red, White) 1 Motor in micro micro heli.1 LIPO battery from heli. 1 кубат которгуч1 2,5 мм жыгач дубел (2 узун) 2 1мм сейрек кездешүүчү магниттер

4 -кадам: куруу

Build
Build

Алгач бүт нерсенин массалык борбору табылган. Бул мотор орнотуу аймагы болмок. Мотор Greenstuff (миниатюралар дүйнөсүндө колдонулган) деп аталган гуптун жардамы менен орнотулган. 3 LED алдын ала орнотулган. Микро четине жакын эмес, жолдун сыртына жабыштырылган. Кубат которгуч жана батарея тең салмактуулукту сактоо үчүн микро (кичинекей) салмагын жабуу үчүн орнотулган. Зымдар soldered болчу. Чындап эле сонун бөлүгү кийинки болуп саналат. Мотор боюнча ротор тиштүү учунда Superglue (бул кийин караган болмок) сейрек кездешүүчү магнит орнотулган. Кыска (~ 2 ) узундугу 2,5 мм диаметри жыгач дюбель 5мм тереңдиктеги 1мм тешик үчүн (кол менен битти колдонуу менен) тешилген. Бул тешикке дагы 1мм сейрек кездешүүчү магнит чапталган. Эми менин фигуранын негизи магниттик түрдө Кыймылдаткыч роторго кошулган. Мотор тең салмактуулук борборунан айланганда, фигуранын үстүнкү бөлүгүн бурат. Моторду жана жыгач дубелди жабуу үчүн кызыл саман кесилген. LIPO батарейкасынын кубаттуулугу 3.4В кубатталбай жатат. Бул моторду күйгүзүү үчүн жана светодиоддорду күйгүзүү үчүн жетиштүү, бирок фигуранын негизине орнотулганда, ал өзү эле айланбайт. Менин кийинки версиям көбүрөөк кубат үчүн 5V жөндөгүч менен 12V алыскы батареяны колдонуңуз!

Сунушталууда: