Spisu treści:

Warhammer Sorcerer na dysku z silnikiem sprzężonym magnetycznie i diodami LED: 4 kroki
Warhammer Sorcerer na dysku z silnikiem sprzężonym magnetycznie i diodami LED: 4 kroki

Wideo: Warhammer Sorcerer na dysku z silnikiem sprzężonym magnetycznie i diodami LED: 4 kroki

Wideo: Warhammer Sorcerer na dysku z silnikiem sprzężonym magnetycznie i diodami LED: 4 kroki
Wideo: Специальный гость TimKandyGAMES @TiTiguyM #поговорим #livestream 2024, Lipiec
Anonim
Warhammer Sorcerer na dysku z magnetycznie sprzężonym silnikiem i diodami LED
Warhammer Sorcerer na dysku z magnetycznie sprzężonym silnikiem i diodami LED

Chcesz dodać PIZZAZZ do swoich projektów artystycznych? Silniki i diody LED są do zrobienia!

Czy jesteś entuzjastą gier Warhammer? Ten jeden jest dla Ciebie! To jest mój Tzeentch Sorcerer Lord na dysku, poprawiony z dodanymi 3 diodami LED, silnikiem, mikro (PIC) i małą baterią. Ta instrukcja obejmuje ukończoną kompilację i problemy.

Krok 1: Obwód

Okrążenie
Okrążenie

Po pierwsze, możesz się zastanawiać, co to jest. To jest moja wykonana na zamówienie miniatura do stołowej gry wojennej o nazwie Warhammer. Facet na górze to zwykły model od twórcy gry (Gamesworkshop), ale dysk i podstawa są moje. Konstrukcja dla niego jest tematem innej instrukcji, więc nie będę się tym tutaj zajmował. Obwód Podstawową ideą tutaj było zabranie małego, 8-pinowego mikro do sterowania 3 diodami LED i silnikiem, przy jak najmniejszym zasilaniu. Korzystanie z „pomocnych dłoni”, jak zawsze, jest dobrym pomysłem. Te rzeczy mają dwa klipsy do przechowywania wszystkiego, nad czym pracujesz. Nie był potrzebny żaden schemat, ponieważ implementacja jest bardzo prosta; 8-pinowy mikro (Microchip PIC) z 3 pinami wyjściowymi prowadzącymi bezpośrednio do diod LED i 2 pinami wyjściowymi prowadzącymi do 1 silnika Zastosowane diody LED to niebieski, biały i czerwony typ montażu powierzchniowego. Zastosowany silnik został wyrwany ze zepsutego wewnętrznego mikro helikoptera. Akumulator (mały Lipo) również został wyrwany z helikoptera, ale już planuję użyć innego źródła, power. A przełącznik został dodany do włączania/wyłączania.

Krok 2: Kod

Kod
Kod

Kod PIC został stworzony, aby zoptymalizować żywotność baterii i wykorzystać wiele losowych „zdarzeń”. Aby bateria działała tak długo, jak to możliwe, obwód musiał zużywać najmniejszą moc, jaką mogłem wyliczyć, przy jednoczesnym utrzymaniu pomysłu przy życiu. Postanowiłem więc ograniczyć początkową aktywność do średnio 1 błysku diody LED lub ruchu silnika co 6 sekund. Kod ma 12 losowych "aktywności", począwszy od włączenia 1 diody LED, włączenia silnika na różne okresy czasu lub kierunki, do losowego stanu oczekiwania. Zdarzenia różnią się od 3 sekund do ponad 40 sekund, w zależności od wygenerowanego losowego zdarzenia. CODE;============================== ===========================================================;Kontroler płyt;; -----------; Vcc-> |1 8| <-Vss; MGPIO5 |2 7| GPIO0 -LED1; MGPIO4 |3 6| GPIO1 -LED2; GPIO3-> |4 5| GPIO2 -LED3; -----------;;======================================= ==================================================; Historia zmian i notatki:; V1.0 początkowy nagłówek, kod 19.05.09;;;(C) 5/2009;Ten kod może być używany do osobistego uczenia się/zastosowania/modyfikacji.;Każde użycie tego kodu w produktach komercyjnych narusza tę wersję freeware.;W przypadku pytań/komentarzy skontaktuj się z obwodem dot mag na yahoo dot com.;------------------------------------------------ -------------------------------#zawiera P12C672. INC;============= =========================================================== ================; Definiuje;------------------------------------------------ -------------------------------;=================== =========================================================== ===========; Dane;------------------------------------------------ -------------------------------; Zmienne utrzymywania czasu count1 equ 20 count2 equ 21 opóźnienie equ 22Randlo equ 23Randhi equ 24Wtemp equ 25Temp2 equ 26rand equ 27count3 equ 28;=================== =========================================================== ===; Resetuj wektory;; SPRAWDŹ KONFIG. BITY PRZED PALENIEM !!!; INTOSC; MCLR: WŁĄCZONE; PWRUP: WŁĄCZONE; WSZYSTKIE POZOSTAŁE: WYŁĄCZ!!;;------------------------------------------ -------------------------------------RESET_ADDR EQU 0x00 org RESET_ADDR goto start;===== =========================================================== ========================; Zacznij tutaj!;---------------------------------------------- ---------------------------------początek; Konfiguracja portów I/O bcf STATUS, RP1 bsf STATUS, RP0 movlw h'08';RA Wyjścia, PGIO3 zawsze wejście tris GPIO movlw h'07'; Ustaw GPIO na tryb cyfrowy movwf ADCON1; Ustaw wewnętrzny zegar movlw h'CF'; Tmr0 Źródło wewnętrzne, preskalowanie TMR0 1:256 movwf OPTION_REG movlw h'00' movwf INTCON; Wyłącz przerwania TMR0, bcf STATUS, RP0; Zainicjuj rejestry clrf GPIO clrf count1 clrf count2 movlw 045h movwf Randlo movlw 030h movwf Randhi; czekaj 1 sek. wywołanie debounce; 0,2 sek. wywołanie odbicia, wywołanie odbicia, wywołanie odbicia, wywołanie odbicia, ========================================; Główny;------------------------------------------------ -------------------------------główne połączenie dwie sekundy; 2 s min między każdą akcją 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;strip random 16 down to 7 andlw 0x0F movwf rand; losowy wybór procedury xorlw 0x00; 0? btfsc STATUS, Z goto flash1; Tak. Zadzwoń do 0th movfw rand xorlw 0x01; 1? btfsc STATUS, Z goto flash2; Tak. Zadzwoń do pierwszego movfw rand xorlw 0x02; 2? btfsc STATUS, Z goto flash3; Tak. Zadzwoń do drugiego movfw rand xorlw 0x03; 3? btfsc STATUS, Z goto flashall; Tak. Zadzwoń do trzeciego movfw rand xorlw 0x04; 4? btfsc STATUS, Z goto movels; Tak. Zadzwoń 4th movfw rand xorlw 0x05; 5? btfsc STATUS, Z goto movell; Tak. Zadzwoń do 5. movfw rand xorlw 0x06; 6? btfsc STATUS, Z goto movers; Tak. Zadzwoń do 6. movfw rand xorlw 0x07; 7? btfsc STATUS, Z goto moverl; Tak. Zadzwoń do 7. movfw rand xorlw 0x08; 8? btfsc STATUS, Z goto moveburst; Tak. Zadzwoń do 8. movfw rand xorlw 0x09; 9? btfsc STATUS, Z goto Wait1; Tak. Zadzwoń do 9. movfw rand xorlw 0x0A; A? btfsc STATUS, Z goto Wait2; Tak. Zadzwoń do Ath movfw rand xorlw 0x0B; B? btfsc STATUS, Z przejdź do Wait3; Tak. Call Bth nie ma nic; 1/4 czasu, nic nie rób przez 10 sekund.flash1 bsf GPIO, 0 wywołanie debounce bcf GPIO, 0 goto mainflash2 bsf GPIO, 1 wywołanie debounce bcf GPIO, 1 goto mainflash3 bsf GPIO, 2 wywołanie 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 call debounce call debounce bcf GPIO, 4 call debounce goto mainmovers bcf GPIO, 4 bsf GPIO, 5 call debounce bcf GPIO, 5 call debounce bcf GPIO, 4 bsf GPIO, 5 call debounce call debounce bcf GPIO, 5 goto mainmoveburst bcf GPIO 4 bsf GPIO, 5 odrzuceń wywołań; przesuń się w prawo 3 razy, krótkie serie. bcf GPIO; przesuń się 3 razy w lewo, krótkie serie. bcf GPIO, odrzucenie 5 połączeń bcf GPIO, odrzucenie 4 połączeń bsf GPIO, odrzucenie 4 połączeń bcf GPIO, odrzucenie 4 połączeń; Poczekaj 1 sekundę movlw.255; Opóźnienie o 2/10 sekund odbicia. movwf count2 wywołanie pon_wait movlw.255; Opóźnienie o 2/10 sekund odbicia. movwf count2 wywołanie pon_wait movlw.255; Opóźnienie o 2/10 sekund odbicia. movwf count2 wywołanie pon_wait movlw.255; Opóźnienie o 2/10 sekund odbicia. movwf count2 wywołanie pon_wait movlw.255; Opóźnienie o 2/10 sekund odbicia. movwf count2 call pon_wait goto mainWait2; Czekaj 0,6 sekundy movlw.255; Opóźnienie o 2/10 sekund odbicia. movwf count2 wywołanie pon_wait movlw.255; Opóźnienie o 2/10 sekund odbicia. movwf count2 wywołanie pon_wait movlw.255; Opóźnienie o 2/10 sekund odbicia. movwf count2 call pon_wait goto mainWait3; Poczekaj 4 sekundy zadzwoń dwie sekundy zadzwoń dwie sekundy goto mainnothing movlw.50; Opóźnienie 10 sekund Całkowity movwf count3nothing_loop movlw.255; Opóźnienie o 2/10 sekund odbicia. movwf count2 call pon_wait decfsz count3, F goto nic_loop goto main;===================================== ==================================================; 2 sekundy czekać;---------------------------------------------- ---------------------------------twosec movlw.10; Opóźnienie przez 2 sekundy Całkowity movwf count3twosec_loop movlw.255; Opóźnienie o 2/10 sekund odbicia. movwf count2 call pon_wait decfsz count3, F goto twosec_loopreturn;======================================= ========================================; sygnał odbicia; 4 cykle do załadowania i wywołania, 2 cykle do powrotu.; 4Mhz Tc:: liczba2=255 -> 0,2 sek;-------------------------------------- -----------------------------------------debounce movlw.127; Opóźnienie dla odbicia 1/10 sekundy. movwf count2 wywołanie pon_wait return;----------------------------------------------- -----------------------------------; count1=255d:: 775 cykli do 0, + 3 cykle do powrotu.;--------------------------------- ----------------------------------------------pon_waitbig_loopS movlw.255 movwf count1short_loopS decfsz count1, F goto short_loopS decfsz count2, F goto big_loopSreturnend

Krok 3: Części

Części
Części

To zdjęcie pokazuje, jak małe musiałem zmieścić komponenty pod tym facetem.1 8-pinowy mikrochip (PIC)3 Diody LED SMT (niebieskie, czerwone, białe)1 Silnik z wewnętrznego mikro heli.1 Akumulator LIPO z tego samego heli. 1 wyłącznik zasilania1 kołek drewniany 2,5 mm (długość 2 )2 magnesy ziem rzadkich 1 mm

Krok 4: Buduj

Budować
Budować

Najpierw znaleziono środek masy dla całej sprawy. To byłby obszar mocowania silnika. Silnik został zamontowany za pomocą mazi o nazwie Greenstuff (używanej w świecie miniatur). 3 diody LED zostały wstępnie okablowane. Mikrosklejkę przyklejono na uboczu, nie za blisko krawędzi. Wyłącznik zasilania i akumulator zostały zamontowane, aby zrównoważyć (niewielką) wagę mikro, aby zachować równowagę. Druty zostały przylutowane. Następna jest naprawdę fajna część. Superklej na czubku koła zębatego wirnika na silniku (który później będzie skierowany w dół) został zamontowany magnes ziem rzadkich. Krótki (~2 ) drewniany kołek o średnicy 2,5 cala został wywiercony (ręcznie i wiertłem) do otworu o głębokości 5 mm i średnicy 1 mm. W tym otworze został wklejony kolejny magnes ziem rzadkich o średnicy 1 mm. Teraz moja podstawa do figury jest magnetycznie sprzężony z wirnikiem silnika. Gdy silnik się kręci, od środka równowagi, obraca całą górną część figury. Czerwona słomka została wycięta, aby przykryć silnik i drewniany kołek. Zostało to zmierzone przed zamontowaniem drewnianego kołka zamontowany, aby upewnić się, że pasuje. Wyjście akumulatora LIPO aktualnie odczytuje 3,4V bez ładowania. To wystarczy, aby zakręcić silnikiem i zapalić diody LED, ale z figurą zamontowaną na podstawie, nie kręci się sama. Moja następna wersja będzie użyj zdalnej baterii 12 V z regulatorem 5 V, aby uzyskać więcej mocy!

Zalecana: