Sommario:
Video: Warhammer Sorcerer su disco con motore ad accoppiamento magnetico e LED: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:06
Vuoi aggiungere un po' di PIZZAZZ ai tuoi progetti artistici? Motori e LED sono la strada da percorrere!
Sei un appassionato di giochi di Warhammer? Questo è per te! Questo è il mio Tzeentch Sorcerer Lord on Disc, revisionato con l'aggiunta di 3 LED, un motore, un micro (PIC) e una piccola batteria. Questa istruzione copre la build completata e i problemi.
Passaggio 1: circuito
Innanzitutto, potresti chiederti di cosa si tratta. Questa è la mia miniatura su misura per un wargame da tavolo chiamato Warhammer. Il ragazzo in cima è un modello normale del creatore del gioco (Gamesworkshop), ma il disco e la base sono tutti miei. La build per lui è oggetto di un'altra istruzione, quindi non ne parlerò qui. Circuito L'idea di base qui era di prendere un piccolo micro a 8 pin per controllare 3 LED e un motore, con un'alimentazione il più piccola possibile. L'uso delle "mani che aiutano", come sempre, è una buona idea. Queste cose hanno due clip per contenere tutto ciò su cui stai lavorando. Non è stato necessario alcuno schema, poiché l'impementazione è molto semplice; un micro a 8 pin (Microchip PIC) con 3 pin di uscita che vanno direttamente ai LED e 2 pin di uscita che vanno a 1 motore. I LED utilizzati sono di tipo blu, bianco e rosso a montaggio superficiale. Il motore utilizzato è stato strappato da un micro elicottero da interno rotto. Anche la batteria (piccolo Lipo) è stata strappata dall'elicottero, ma ho già intenzione di utilizzare un'altra fonte per altro power. Un interruttore è stato aggiunto per On/Off.
Passaggio 2: codice
Il codice per il PIC è stato creato per ottimizzare la durata della batteria e utilizzare molti "eventi" casuali. Per far durare la batteria il più a lungo possibile, il circuito doveva utilizzare la minor quantità di energia che potessi immaginare, mantenendo viva l'idea. Quindi, ho deciso di ridurre l'attività iniziale a una media di 1 flash LED o movimento del motore ogni 6 secondi. Il codice ha 12 "attività" casuali, che vanno dall'accensione di 1 LED, all'accensione del motore per periodi di tempo o direzioni differenti, a uno stato di attesa casuale. Gli eventi variano da 3 secondi di distanza a più di 40 secondi di distanza, in base all'evento casuale generato. CODE;============================= ==================================================;Controllore del disco;; -----------; Vcc-> |1 8| <-Vss; MGPIO5 |2 7| GPIO0 -LED1; MGPIO4 |3 6| GPIO1 -LED2; GPIO3-> |4 5| GPIO2 -LED3; -----------;;===================================== ==========================================; Cronologia e note delle revisioni:; Intestazione iniziale V1.0, codice 19/05/09;;;(C) 5/2009;Questo codice può essere utilizzato per apprendimento/applicazione/modifica personali.;Qualsiasi utilizzo di questo codice in prodotti commerciali viola questa versione freeware.;Per domande/commenti, contattare circuit dot mage at yahoo dot com.;------------------------------------------------ -----------------#include P12C672. INC;============= ================================================== ================; Definisce;------------------------------------------------ -----------------;================== ================================================== ===========; Dati;------------------------------------------------ -----------------; Variabili cronometraggiocount1 equ 20 count2 equ 21 delay equ 22Randlo equ 23Randhi equ 24Wtemp equ 25Temp2 equ 26rand equ 27count3 equ 28;========================== ================================================== ===; Ripristina vettori;; VERIFICA CONFIG. PUNTE PRIMA DI BRUCIARE!!!; INTOSC; MCLR: ABILITATO; PWRUP: ABILITATO; TUTTI GLI ALTRI: DISABILITA!!;;------------------------------------------ -------------------------------------RESET_ADDR EQU 0x00 org RESET_ADDR goto start;===== ================================================== ========================; Comincia qui!;---------------------------------------------- ---------------------------------cominciare; Configurazione porte I/O bcf STATUS, RP1 bsf STATUS, RP0 movlw h'08';Uscite RA, ingresso PGIO3 sempre tris GPIO movlw h'07'; Imposta GPIO in modalità digitale movwf ADCON1; Imposta timer interno movlw h'CF'; Tmr0 Sorgente interna, prescala TMR0 1:256 movwf OPTION_REG movlw h'00' movwf INTCON; Disabilita gli interrupt TMR0, bcf STATUS, RP0; Inizializza Registri clrf GPIO clrf count1 clrf count2 movlw 045h movwf Randlo movlw 030h movwf Randhi;attendere 1 sec. chiamata antirimbalzo; 0.2 sec chiamata antirimbalzo chiamata antirimbalzo chiamata antirimbalzo chiamata antirimbalzo;======================================= ========================================; Principale;------------------------------------------------ ----------------chiamata principale due sec; 2 sec min tra ogni azione 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 da 16 a 7 elw 0x0F movwf rand; selezione casuale di routine xorlw 0x00; 0? btfsc STATUS, Z goto flash1; Sì. Chiama 0th movfw rand xorlw 0x01; 1? btfsc STATUS, Z goto flash2; Sì. Chiama 1st movfw rand xorlw 0x02; 2? btfsc STATUS, Z goto flash3; Sì. Chiama 2nd movfw rand xorlw 0x03; 3? btfsc STATUS, Z goto flashall; Sì. Chiama 3° movfw rand xorlw 0x04; 4? btfsc STATUS, Z goto movels; Sì. Chiama 4th movfw rand xorlw 0x05; 5? btfsc STATUS, Z goto movell; Sì. Chiama 5th movfw rand xorlw 0x06; 6? btfsc STATUS, Z goto movers; Sì. Chiama 6th movfw rand xorlw 0x07; 7? btfsc STATUS, Z goto moverl; Sì. Chiama 7th movfw rand xorlw 0x08; 8? btfsc STATUS, Z goto moveburst; Sì. Chiama 8th movfw rand xorlw 0x09; 9? btfsc STATUS, Z goto Wait1; Sì. Chiama 9th movfw rand xorlw 0x0A; UN? btfsc STATUS, Z goto Wait2; Sì. Chiama Ath movfw rand xorlw 0x0B; B? btfsc STATUS, Z goto Wait3; Sì. Chiama Bth goto niente; 1/4 del tempo, non fare nulla per 10 secondi.flash1 bsf GPIO, 0 call antirimbalzo bcf GPIO, 0 goto mainflash2 bsf GPIO, 1 call antirimbalzo bcf GPIO, 1 goto mainflash3 bsf GPIO, 2 call antirimbalzo bcf GPIO, 2 goto mainflashall bsf GPIO, 0 bsf GPIO, 1 bsf GPIO, 2 chiamate antirimbalzo chiamate antirimbalzo bcf GPIO, 0 bcf GPIO, 1 bcf GPIO, 2 vai a movimenti principali bsf GPIO, 4 bcf GPIO, 5 chiamate antirimbalzo bcf GPIO, 4 vai a movimento principale bsf GPIO, 4 bcf GPIO, 5 chiamate antirimbalzo chiamata antirimbalzo bcf GPIO, 4 chiamate antirimbalzo bcf GPIO, 4 bsf GPIO, 5 chiamate antirimbalzo bcf GPIO, 5 chiamate antirimbalzo bcf GPIO, 4 bsf GPIO, 5 chiamate antirimbalzo chiamate antirimbalzo bcf GPIO, 5 chiamate antirimbalzo bcf GPIO, 4 bsf GPIO, 5 chiamate antirimbalzo; muovi a destra 3 volte, brevi raffiche. bcf GPIO, 5 chiamata antirimbalzo chiamata antirimbalzo bsf GPIO, 5 chiamate antirimbalzo chiamata antirimbalzo bcf GPIO, 5 chiamate antirimbalzo chiamata antirimbalzo bsf GPIO, 5 chiamate antirimbalzo bcf GPIO, 5 chiamate antirimbalzo chiamata antirimbalzo chiamata antirimbalzo chiamata antirimbalzo bsf GPIO, 4; muovi a sinistra 3 volte, brevi raffiche. bcf GPIO, 5 chiamate antirimbalzo chiamate antirimbalzo bcf GPIO, 4 chiamate antirimbalzo chiamate antirimbalzo bsf GPIO, 4 chiamate antirimbalzo chiamate antirimbalzo bcf GPIO, 4 chiamate antirimbalzo chiamate antirimbalzo bsf GPIO, 4 chiamate antirimbalzo chiamate antirimbalzo bcf GPIO, 4 chiamate antirimbalzo chiamate antirimbalzo goto mainWait1; Attendi 1 secondo movlw.255; Ritardo per antirimbalzo di 2/10 di secondo. movwf count2 chiama pon_wait movlw.255; Ritardo per antirimbalzo di 2/10 di secondo. movwf count2 chiama pon_wait movlw.255; Ritardo per antirimbalzo di 2/10 di secondo. movwf count2 chiama pon_wait movlw.255; Ritardo per antirimbalzo di 2/10 di secondo. movwf count2 chiama pon_wait movlw.255; Ritardo per antirimbalzo di 2/10 di secondo. movwf count2 call pon_wait goto mainWait2; Attendi 0,6 secondi movlw.255; Ritardo per antirimbalzo di 2/10 di secondo. movwf count2 chiama pon_wait movlw.255; Ritardo per antirimbalzo di 2/10 di secondo. movwf count2 chiama pon_wait movlw.255; Ritardo per antirimbalzo di 2/10 di secondo. movwf count2 call pon_wait goto mainWait3; Attendi 4 secondi chiama twosec chiama twosec goto mainnothing movlw.50; Ritardo per 10 secondi Totale movwf count3nothing_loop movlw.255; Ritardo per antirimbalzo di 2/10 di secondo. movwf count2 call pon_wait decfsz count3, F goto nothing_loop goto main;===================================== ==========================================; 2 secondi di attesa; ----------------------------------------------- ---------------------------------- due secondi movlw.10; Ritardo per 2 secondi Totale movwf count3twosec_loop movlw.255; Ritardo per antirimbalzo di 2/10 di secondo. movwf count2 call pon_wait decfsz count3, F goto twosec_loopreturn;======================================= ========================================; Segnale antirimbalzo; 4 cicli per caricare e chiamare, 2 cicli per tornare.; 4Mhz Tc:: conteggio2=255 -> 0,2 sec;-------------------------------------- ------------------------------------------debounce movlw.127; Ritardo per antirimbalzo di 1/10 di secondo. movwf count2 call pon_wait return;---------------------------------------------------------- -----------------------------------; count1=255d:: 775 cicli a 0, + 3 cicli per tornare.;--------------------------------- ------------------pon_waitbig_loopS movlw.255 movwf count1short_loopS decfsz count1, F goto short_loopS decfsz count2, F goto big_loopSreturnend
Passaggio 3: parti
Questa immagine mostra quanto piccolo dovevo far entrare i componenti sotto questo ragazzo.1 Microchip a 8 pin (PIC)3 LED SMT (blu, rosso, bianco)1 Motore da un micro elicottero da interno.1 Batteria LIPO dallo stesso elicottero. 1 interruttore di alimentazione1 tassello in legno da 2,5 mm (2 pollici di lunghezza)2 magneti in terre rare da 1 mm
Passaggio 4: costruire
Per prima cosa è stato trovato un centro di massa per l'intera cosa. Questa sarebbe l'area di montaggio del motore. Il motore è stato montato utilizzando un goop chiamato Greenstuff (usato nel mondo delle miniature). I 3 LED erano precablati. Il micro era super incollato in una zona fuori mano, non troppo vicino al bordo. L'interruttore di alimentazione e la batteria sono stati montati per compensare il (piccolo) peso del micro, per mantenere l'equilibrio. I fili sono stati saldati. La parte davvero interessante è la prossima. È stato montato un magnete di terre rare sulla punta dell'ingranaggio del rotore sul motore (questo sarebbe rivolto verso il basso). Una breve (~2 ) di tassello di legno del diametro di 2,5 è stata perforata (usando la mano e la punta) per un foro di 5 mm di profondità di 1 mm di diametro. In questo foro è stato incollato un altro magnete di terre rare da 1 mm. Ora, la mia base per la figura è magneticamente accoppiato al rotore del motore. Quando il motore gira, dal suo centro di equilibrio, fa girare tutta la parte superiore della figura. Una cannuccia rossa è stata tagliata per coprire il motore e il tassello di legno. Questo è stato premisurato prima che il tassello di legno fosse montato, per assicurarsi che corrisponda. L'uscita della batteria LIPO attualmente sta leggendo 3,4V senza ricarica. Questo è sufficiente per far girare il motore e accendere i LED, ma con la figura montata sulla base, non gira da solo. La mia prossima versione lo farà usa una batteria remota da 12 V con regolatore da 5 V per una maggiore potenza!
Consigliato:
Pompa dell'acqua ad accoppiamento magnetico: 10 passaggi (con immagini)
Pompa dell'acqua ad accoppiamento magnetico: In questo ISTRUZIONI ti spiego come ho realizzato una pompa dell'acqua con accoppiamento magnetico. In questa pompa dell'acqua non esiste un collegamento meccanico tra la girante e l'asse del motore elettrico che la fa funzionare. Ma come si ottiene questo risultato e
Motore passo-passo controllato da motore passo-passo - Motore passo-passo come encoder rotativo: 11 passaggi (con immagini)
Motore passo-passo controllato da motore passo-passo | Motore passo-passo come encoder rotativo: hai un paio di motori passo-passo in giro e vuoi fare qualcosa? In questo Instructable, utilizziamo un motore passo-passo come encoder rotativo per controllare la posizione di un altro motore passo-passo utilizzando un microcontrollore Arduino. Quindi, senza ulteriori indugi, ge
GENERATORE ELETTRICO CON ACCOPPIAMENTO MAGNETICO: 9 Passi
GENERATORE ELETTRICO CON ACCOPPIAMENTO MAGNETICO: "Il mondo è cambiato. Lo sento nell'acqua. Lo sento nella terra. Lo sento nell'aria. Molto di ciò che era è perduto…" - Il Signore degli Anelli. Certamente… parlando di Petrolio ed Energie Non Rinnovabili, molto di quello che era è andato perduto
Accoppiamento magnetico fai-da-te per laptop con motore a corrente continua di piccole dimensioni: 5 passaggi
Accoppiamento magnetico fai-da-te per laptop con un piccolo motore a corrente continua: alcuni mesi fa la batteria del mio laptop si è scaricata, quindi devo essere collegato 24 ore su 24, 7 giorni su 7, altrimenti il mio laptop si spegne. Quindi, stanco di essere scollegato dai leggeri movimenti del mio laptop, ho deciso di creare un accoppiatore magnetico per farlo rimanere al suo posto
Vecchio disco rigido Xbox 360 + kit di trasferimento disco rigido = disco rigido USB portatile!: 4 passaggi
Vecchio disco rigido Xbox 360 + kit trasferimento disco rigido = disco rigido USB portatile!: Allora… Hai deciso di acquistare l'HDD da 120 GB per la tua Xbox 360. Ora hai un vecchio disco rigido che probabilmente non userai usare più, così come un cavo inutile. Potresti venderlo o regalarlo… o farne buon uso