Sommario:

Dirottatore di switch generico: 3 passaggi
Dirottatore di switch generico: 3 passaggi

Video: Dirottatore di switch generico: 3 passaggi

Video: Dirottatore di switch generico: 3 passaggi
Video: #HackInBo2015 - Michele Garribba - IL TELEFONO, LA TUA VOCE: VOIP E SICUREZZA 2024, Luglio
Anonim
Dirottatore di switch generico
Dirottatore di switch generico

Questo articolo descrive come costruire un dispositivo a microcontrollore a stato solido che controlla gli interruttori fisici. È molto economico da realizzare (4$ o giù di lì), supponendo che tu abbia un programmatore di microcontrollori. Il circuito stesso è di banale complessità.

Questo progetto è molto semplice e non prevede nuove tecniche sorprendenti. Servirebbe come un buon primo progetto di microcontrollore. Il codice sorgente dell'assembly ti verrà fornito in questo articolo. Ho un capo davvero fantastico al lavoro. A volte ci piace fare scherzi l'uno con l'altro. Sfortunatamente per lui, io sono uno scienziato. Il mio scopo qui è far accendere misteriosamente vari dispositivi sul posto di lavoro per brevi periodi di tempo. Radio, stampanti rumorose, persino quei fastidiosi biglietti d'auguri musicali nascosti in qualche oggetto comune. Oltre a ciò, il progetto è un esempio di come si controllano carichi più pesanti con un AVR rispetto a quelli che i pin di uscita possono gestire da soli. Questa è un'ampia varietà di cose, poiché i pin di uscita ti danno solo una piccola tensione e una corrente molto limitata. Questo circuito potrebbe essere ampliato con un relè per controllare alcuni carichi davvero molto pesanti.

Passaggio 1: progettazione e circuito

Disegno e circuito
Disegno e circuito

Per questo progetto, puoi utilizzare quasi tutti i microcontrollori, regolatori di tensione 5v e transistor NPN. Ero solito:

1x ATtiny26L-8PU (~2$) 1x regolatore di tensione TL780 5v (~0.7$) 1x transistor N2222 (~0.07$) 1x batteria da 9v, o batteria del telecomando da 12v per risparmiare spazio…e ovviamente il mio fidato STK500, ora con ZIF prese aggiunte! Il design di base è questo: il microcontrollore passa attraverso due loop di temporizzazione. Un ciclo lungo per determinare quando accendere il dispositivo e un ciclo breve per determinare per quanto tempo tenere acceso il dispositivo. Quando è il momento di causare problemi, il microcontrollore invia un pin 14 di uscita logica (Least Significant Bit of PORTA). Questo accende il transistor. Se hai collegato i morsetti ai cavi di un interruttore, fa sì che la resistenza attraverso l'interruttore scenda improvvisamente da molto alta a meno di 1 ohm, il che è sufficiente per la maggior parte dei dispositivi per considerare l'interruttore acceso. Tieni presente che anche i transistor sono diodi, quindi se non funziona… probabilmente la polarità dei morsetti è sbagliata, cambiali! Inoltre, questo dispositivo richiede una batteria decente da 9 V, diciamo con un potenziale residuo di oltre 8 V … a parte questo, non consuma molta energia. Ci sono molti pin inutilizzati, quindi ovviamente potresti usarli per controllare più interruttori per più caos, ma questo era sufficiente per i miei scopi. Il prossimo passo è il codice sorgente che ho scritto per far funzionare questa cosa. Le durate predefinite per gli stati "on" e "off" sono rispettivamente di circa 10 secondi e 13 minuti. Ci sono commenti nel codice su come modificare questi valori. Infine, scusate l'uso estensivo della funzione "nop" (passa un ciclo della CPU a non fare nulla) per modificare i timer. È poco elegante poiché può interrompere la funzione rjmp se non stai attento a quanti ne usi!

Passaggio 2: codice sorgente

COMINCIARE:

. INCLUDE "tn26def.inc"; File di definizione. Google per questo se hai bisogno di una copia. clr r30 clr r29 clr r28 clr r27 ldi r28, 0b00000000 ldi r27, 0b11111111 ldi r26, 0b00000000 clr r25 out DDRA, r27 out PORTA, r28 TIMER: inc r30 nop no nop nop nop nop no no no nop nop nop nop cpi r30, 0b11111111 breq TIMER2 rjmp TIMER TIMER2: nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop inc r29 cpi TIMER r11MER: 0b111 nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop inc r25 cpi r25, 0b11111111;Abbassa questo numero per diminuire il tempo "off" breq FUNC rjmp FUNC TIMER: nop nop cpi, 0x00 breq FUNC2 dec r28 clr r30 clr r29 clr r25 out PORTA, r28 rjmp TIMER FUNC2: nop nop inc r28 out PORTA, r28 clr r25 clr r30 clr r29 rjmp TIMER4 nop nop nop TIMER4 TIMER4 no nop no nop nop nop nop nop nop nop nop cpi r30, 0b11111111 breq TIMER5 rjmp TIMER4 TIMER5: nop nop nop nop nop nop nop nop nop nop inc r29 cpi r29, 0b11111 111 breq TIMER6 rjmp TIMER4 TIMER6: inc r25 cpi r25, 0b00000011; Aumentare questo numero per aumentare il tempo "on" breq FUNC rjmp TIMER4

Passaggio 3: nota finale

Divertiti, ma ricorda che il transistor ha dei limiti in termini di quanta potenza puoi pompare attraverso di esso. Ciò significa che non c'è tensione di rete! Oltre al fatto che sovraccaricherebbe il transistor molto velocemente, questo dispositivo non controllerà bene i segnali alternati… a meno che non si applichi la modifica descritta di seguito *e* si aggiunga un relè: se preoccuparsi della polarità del morsetto ti dà fastidio, basta collegare un secondo transistor con la piastra di base collegata alla stessa sorgente del primo transistor, ma con collettore ed emettitore in configurazione opposta. In questo modo, indipendentemente da come si collegano i morsetti, un high logico che esce dal microcontrollore "accende" sempre l'interruttore. Tieni presente che la corrente di dispersione in questo sistema potrebbe essere sufficiente per attivare alcuni interruttori sensibili come le matrici della tastiera, potrebbe essere necessario aggiungere un resistore in serie per questa applicazione. Ricorda che puoi assorbire energia dal dispositivo di destinazione invece di utilizzare una batteria. Infine… ho installato il dispositivo all'interno di un'antica calcolatrice contabile, del tipo che ha funzioni di stampa. Ho decodificato la matrice della tastiera utilizzando una graffetta per determinare quali pin IC collegati avrebbero causato l'alimentazione della carta e ho collegato i pin corretti insieme al dispositivo. Quindi, ho disabilitato l'interruttore che permette di disattivare la funzione di stampa. Considero la macchina correttamente sovvertita. Accende l'alimentazione della carta piuttosto rumorosa ogni 10 minuti, per 10 secondi, ogni volta che il dispositivo è acceso. Ha funzionato bene anche con il circuito di uno di quegli odiosi biglietti d'auguri musicali. Il mio posto di lavoro ora è più bizzarro!

Consigliato: