Índice:
- Passo 1: Compre este fabricante de ruído bacana por cerca de 6 dólares na seção de brinquedos da loja de alimentos
- Etapa 2: E eu encontrei esta pequena joia no WalMart por cerca de US $ 5,00
- Etapa 3: OK. Vamos abrir o sensor de movimento e dar uma olhada, veja …
- Etapa 4: vamos fazer alguns hackers
- Etapa 5: o circuito de fotocélula
- Etapa 6: hackear o botão Whoopee do controle remoto
- Etapa 7: agora para a parte complicada
- Etapa 8: Palavras finais
- Etapa 9: uma variação
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Quanto mais velho fico, menor fica meu cubículo. Na verdade, eu nem tenho um cubículo agora. Mas meu chefe costumava entrar sem ser detectado e me pegava fazendo pesquisas para alguma tarefa (WWW - para o chefe parecia navegar na web) e me dizia para trabalhar. Eu queria colocar um sino de vaca ao redor dele, mas tenho certeza de que ele não aceitaria, então tive que pensar em outra coisa. (note - o título deve ser "Flatulento".)
Passo 1: Compre este fabricante de ruído bacana por cerca de 6 dólares na seção de brinquedos da loja de alimentos
Você pode ler o pacote por si mesmo. Tem cerca de 6 "melodias" aleatórias diferentes. Mas, o item principal é o pequeno botão remoto RF que vem com ele.
Etapa 2: E eu encontrei esta pequena joia no WalMart por cerca de US $ 5,00
Obviamente, ele acende uma pequena luz (LED) quando o movimento é detectado e a sala fica escura. (Hmmmmm, eu me pergunto se eu poderia …)
Etapa 3: OK. Vamos abrir o sensor de movimento e dar uma olhada, veja …
Bem, eu rotulei tudo. A fotocélula (não mostrada, mas acredite, ela está lá) serve para evitar que a luz (LED) acenda durante o dia e, portanto, prolonga a vida útil da bateria.
A lente Fresnel existe para fornecer um amplo campo de visão para o sensor de movimento. Fresnel é pronunciado frie-nel, procure na Wikipedia para mais informações.
Etapa 4: vamos fazer alguns hackers
Primeiro, você vê aquele detector de movimento PIR. PIR significa "infravermelho passivo". Algumas pessoas o chamam de "Pyro infravermelho". Não sei por quê. Independentemente disso, não vamos hackear isso. Podemos precisar de algo mais tarde.
Em seguida, nós (bem, eu … mas o nós da realeza) cobrimos aquela fotocélula de que falei. Veja, eu quero que meu detector de chefe esteja ativo dia e noite. Então, ao cobri-lo, ele pensa que está no escuro mesmo quando as luzes estão acesas. Mas, acabamos de puxar a lã sobre seus olhos (na verdade, um olho) e ele / ela agora é mantido no escuro. E você pode ver que instalamos nossa própria fotocélula bem ao lado do LED. Esse pequeno truque nos permite saber quando o LED acende porque um movimento foi detectado. Claro que poderíamos ter instalado um fio do LED para atingir o mesmo propósito, mas onde está a graça nisso. A coisa divertida sobre hackear é hackear de forma diferente de outros hackers, como nos outros engenheiros elétricos. E isso torna seu hack um verdadeiro original.
Etapa 5: o circuito de fotocélula
A fotocélula, como a que você pode comprar na Radio Shack, tem uma resistência de cerca de 50k ohms sem exposição à luz e cerca de 5k ohms ou menos quando exposta a uma luz forte. Portanto, se usarmos um resistor em série com a fotocélula, que é apenas um resistor, e os ligarmos a uma fonte de tensão e aterrar, teremos um divisor de tensão. A partir daí, batendo entre os dois resistores fornece um sinal de tensão que vai alto ou baixo e pode ser usado para acionar um dispositivo. Neste caso, o detector de movimento usa 3 baterias AA, que é de 4,5 volts. E é assim que o circuito é conectado para fornecer o sinal necessário para acionar alguns outros componentes eletrônicos. Com o LED apagado, o sinal do circuito é de cerca de 1,7 volts, com o LED ligado, o sinal sobe para cerca de 3,5 volts, o que é suficiente para acionar um microcontrolador
Etapa 6: hackear o botão Whoopee do controle remoto
Há um botão, o que significa em algum lugar lá dois pinos, que quando em circuito fechado, faz com que a almofada whoopee faça a coisa. Os pinos são bastante óbvios, então não mostrei essa parte. Mas, eu fiz um pequeno orifício e passei um par de fios para os pinos do botão. E, usando um relé de palheta de 5v da Radio Shack, posso conectar os dois pinos energizando o relé de palheta.
Etapa 7: agora para a parte complicada
Não é tão complicado se você conhece um pouco de eletrônica, mas o negócio é que você precisa usar o sinal de gatilho para ativar o sistema. Você pode usar um cronômetro de disparo único, ou um comparador, ou um cronômetro 555, mas, para mim, a coisa mais fácil é usar um microcontrolador de 8 pinos. Usei um PIC Micro 12F675. Com isso, eu poderia acionar na mudança de entrada de um pino e piscar um LED vermelho. Além disso, se 5 pessoas entrarem, eu não quero que a coisa enlouqueça por 15 segundos, então coloquei um atraso de 30 segundos para que eu pudesse acionar um botão de desligamento e desligá-lo. Então, vou apenas avançar e mostrar o resultado final da engenhoca. Observe, cobri o LED para que o ex-chefe não visse uma luz acender toda vez que invadisse meu humilde 1/4 de cubículo. Esta foto é o produto final. Vou deixar a eletrônica como um exercício para o aluno. Aqui está o código do PIC Micro 12F675:; *************************** ***************************************************; Nome do arquivo: Flatulant_Boss; Processador: 12F675; Autor: Alan Mollick (alanmollick.com); Modo: Interromper na mudança de GP2;; ~ GPIO REGISTERS ~; GP0 = ENTRADA - n / c; GP1 = SAÍDA - relé; GP2 = ENTRADA - Alta = movimento detectado; GP3 = ENTRADA - n / c; GP4 = SAÍDA - LED vermelho; ****************************************** ************************************ lista p = 12F675; a diretiva list para definir o processador # include; definições de variáveis específicas do processador; nível de erro -302; suprimir a mensagem 302 da lista fileCONFIG _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT; ~ Variáveis ~ w_temp EQU 0x20; variável usada para salvar o contexto status_temp EQU 0x21; variável usada para salvar o contexto hiB EQU 0x21; MSBytelowB EQU 0x22; LSBytetemp EQU 0x23 EQU sobressalente 0x24 temp1 EQU 0x25; disparar interrupção flagtemp2 EQU 0x26 atraso EQU 0x27; timepins de atraso EQU 0x28; pin statespare1 EQU 0x29spare2 EQU 0x2acount EQU 0x2b; loop countcount1 EQU 0x2c; contagem de loop externo2 EQU 0x2d; loop externo countd1 EQU 0x2e; atraso counterd2 EQU 0x2f; atraso contadord3 EQU 0x30; atraso counterd4 EQU 0x31; contador de atrasos; ************************************************ ************************ RESET_VECTOR ORG 0x000; vetor de redefinição do processador goto principal; vá para o início do programaINT_VECTOR ORG 0x004; interromper a localização do vetor movwf w_temp; salvar o conteúdo do registro W atual movf STATUS, w; move o registrador de status para o registrador W movwf status_temp; salvar o conteúdo do registro STATUS; código isr chamada motion_detect; enviar sinais de alarme banksel INTCON bcf INTCON, INTF; limpar o sinalizador GP2 / INT movf status_temp, w; recuperar cópia do registro STATUS movwf STATUS; restaurar o conteúdo do registro STATUS pré-isr swapf w_temp, f swapf w_temp, w; restaurar o conteúdo do registro W pré-isr retfie; retornar da interrupção; ********************************************** ******************a Principal:; programa principal; essas 4 primeiras instruções não são necessárias se o oscilador interno não for usado, ligue para 0x3FF; recuperar o valor de calibração de fábrica bsf STATUS, RP0; definir banco de registro de arquivo para 1 movwf OSCCAL; atualizar o registro com o valor de calibração de fábrica bcf STATUS, RP0; definir banco de registro de arquivo para 0; ***********************************; * Inicialização *; *** ********************************; GP0 = não usado, GP1 = saída do relé, GP2 = entrada (detecção de movimento),; GP3 = entrada para cntrl / corte de emergência, GP4 = saída para o indicador LED; GP5 = não usado; configurar a direção dos pinos de I / O banksel TRISIO movlw b'00000101 '; xx ------ não implementado; --0 ----- 0 = saída, GP5 = n / c; --- 0 ---- 0 = saída, GP4 = LED; ---- x --- não usado, GP3, dedicado ao MCLR; ----- 1-- 1 = entrada, movimento GP2 detectado; ------ 0- 0 = saída, GP1 = válvula solenóide; ------- 1 1 = entrada GP0 = A / D movwf TRISIO; configurar o banco do conversor A / D ANSEL movlw b'00010000 '; x ------- não implementado; -001 ---- 001 = Relógio de conversão Focs / 8; ---- 0 --- 0 = E / S digital, GP4, Fosc / 4 clockout para fins de depuração.; ----- 0-- 0 = E / S digital, GP2; ------ 0- 0 = E / S digital, GP1, relé / etc; ------- 0 0 = E / S digital, 1 = GP0 analógico movwf ANSEL banksel ADCON0 movlw b'00000000 '; 0 ------- 1 = resultado justificado à direita; -0 ------ 0 = Vdd é a referência de tensão; --xx ---- não implementado; ---- 00-- 00 = selecione o canal 0 (GP0); ------ 0- 0 = conversão A / D não iniciada; ------- 0 0 = Módulo conversor A / D desligado movwf ADCON0; inicializar a saída pinsinit banksel GPIO movlw b'00000000 'movwf GPIO; inicializar interrupções banksel INTCON movlw b'00000000 '; 0 ------- 0 = interrupções globais desabilitadas; -0 ------ 1 = habilita interrupções periféricas; --0 ----- 0 = desabilita a interrupção de overflow TMR0; --- 1 ---- 1 = habilitar interrupção externa GP2 / INT; ---- 0 --- 0 = desativa a interrupção de mudança de porta GPIO; ----- 0-- 0 = não no overflow TMR0; ------ 0- 1 =; ------- 0 0 = nenhuma mudança de porta GPIO movwf INTCON; inicializar interrupção na alteração do pino GP2 banksel IOC movlw b'00000100 '; x ------- não implementado; -x ------ não implementado; --0 ----- 0 = desabilitar GP5; --- 0 ---- 0 = desabilitar GP4; ---- 0 --- 0 = desabilitar GP3; ----- 1-- 1 = habilitar GP2 / INTR *****; ------ 0- 0 = desabilitar GP1; ------- 0 0 = desabilitar GP0 movwf IOC banksel PIE1 movlw b'00000000 '; 0 ------- 0 = desabilita a interrupção completa da escrita EE; -0 ------ 0 = desabilita a interrupção do conversor A / D; --xx ---- não implementado; ---- 0 --- 0 = interrupção do comparador desabilitada; ----- xx- não implementado; ------- 0 1 = habilitar interrupção de estouro de TMR1 movwf PIE1 banksel PIR1 movlw b'00000000 '; 0 ------- 0 = nenhuma gravação EE completa; -0 ------ 0 = nenhuma conversão A / D concluída; --xx ---- não implementado; ---- 0 --- 0 = sem interrupção do comparador; ----- xx- não implementado; ------- 0 0 = nenhum estouro TMR1 movwf PIR1; *********************************** ************************; GP1 = saída para relé; GP4 = saída para LED; ******************************************** ************** banksel INTCON bsf INTCON, INTE; habilitar interrupção GP2 bsf INTCON, GIEMain_Loop:; se GP2 = 1 então emitir sinais de alarme em GP1, GP4 via interrupção do sono nop goto Main_Loop; ******************************* ***************************; Manipulador de interrupção de detecção de movimento;; GP1 = saída para relé, GP4 = saída para LED; ************************************* ******************** motion_detect: bsf GPIO, 1; energizar o relé por 100 mseg chamada pause_100ms bcf GPIO, 1; desativar relé bsf GPIO, 4; ativar o LED por 0,5 seg. chamar pause_500ms bcf GPIO, 4 return; ******************************************* ****************; Gerador de código de atraso online; https://massmind.org/techref/piclist/codegen/delay.htm;********************************** ************************** pause_100msec:; Atraso = 0,1 segundos; Frequência de clock = 4 MHz movlw 0x1F; 99998 ciclos movwf d1 movlw 0x4F movwf d2Delay_100 decfsz d1, f goto $ + 2 decfsz d2, f goto Delay_100 goto $ + 1; 2 ciclos returnpause_500msec:; Atraso = 0,5 segundos; Frequência de relógio = 4 MHz movlw 0x03; 499994 ciclos movwf d1 movlw 0x18 movwf d2 movlw 0x02 movwf d3Delay_500 decfsz d1, f goto $ + 2 decfsz d2, f goto $ + 2 decfsz d3, f goto Delay_500 goto $ + 1; 6 ciclos goto $ + 1 ir para $ + 1 returnpause_1sec; Atraso = 1 segundo; Frequência de relógio = 4 MHz movlw 0x08; 999997 ciclos movwf d1 movlw 0x2F movwf d2 movlw 0x03 movwf d3Delay_1sec decfsz d1, f goto $ + 2 decfsz d2, f goto $ + 2 decfsz d3, f goto atrasa_1sec goto $ + 1; 3 ciclos nop Retorna;************************************************ *****************************
Etapa 8: Palavras finais
Esta foto é uma forma de esconder tudo.
Nota - usando um microcontrolador, o número de variações neste instrutível é ilimitado. Você pode posicionar o alto-falante de forma que o som saia por trás de seu chefe. Ou você pode vinculá-lo ao sistema de PA da empresa. Você pode até mesmo fazer o sistema pingar seu computador e ter uma página relacionada ao trabalho aparecendo em 1/10 de segundo para que sempre que seu ex-chefe, ou qualquer outra pessoa entrar em seu perímetro, haja sempre uma planilha ou documento técnico que você deveria estar trabalhando. E 24 horas por dia, 7 dias por semana … qualquer pessoa que entre no seu cubículo, ou saia dele, pode dizer que você está ferrado a cada segundo do dia. Isso o torna um funcionário de alto valor. Você é um maldito workaholic. Além disso, você realmente não precisa da lente Fresnel. Na verdade, para detecção de chefe, é melhor removê-lo, caso contrário, as pessoas dentro do seu cubículo se movendo irão detoná-lo. Você pode tirar a lente de Fresnel e colocar um pedaço de 1 polegada de tubo de PVC (1/2 polegada de diâmetro de Home Depot) no detector PIR e isso lhe dará um campo de visão muito estreito, como diretamente em sua porta (assumindo você tem uma porta), mas o sensor funciona tão bem. Seu alcance é de cerca de 5-10 pés sem a lente Fresnel. Você também pode remover o detector PIR e, usando 3 fios, colocar o detector em qualquer lugar para ocultá-lo. Você pode até comprar um módulo de som por 6 dólares e gravar seus próprios sons. Você pode usar o sinal internacional para "o chefe está se aproximando", que está limpando sua garganta. E você pode alterá-lo todas as manhãs. Ou grave o som de você digitando febrilmente, etc. Aqui está um efeito sonoro que fiz com aquela almofada whoopee, e executei no meu computador, editei com o Audacity e usei para um hack Easy Button que eu poderia fazer um dia.
Etapa 9: uma variação
Aqui está outro detector de boss baseado no mesmo conceito. Além disso, alguém queria um vídeo, então colocarei um vídeo para isso em breve. O detector para este é obviamente um Robo Sapien acoplado a um detector de movimento da Home Depot. Quando o movimento é detectado, o robô envia um sinal IR para a gaiola onde há um detector de 38 kHz escondido. O mecanismo do pássaro tem várias opções. Todas as opções são selecionáveis individualmente, mas com tudo ligado, o pássaro começa a girar, chilrear, com um LED piscando. Também adicionei um LED vermelho superbrilhante montado embaixo que pisca 4 vezes para que você saiba que alguém está vindo sem toda a raquete. Este também tem um atraso de 30 segundos e você pode desativar tudo simplesmente levantando o lápis. O lápis tem um ímã na extremidade que, quando inserido no comedouro para pássaros, ativa o circuito por meio de um pequeno relé magnético de palheta. A única diferença real neste sistema é que eu não usei o truque da fotocélula. Há um amplificador operacional quádruplo no detector de movimento, e acabei de desligar o pino de saída do estágio final. Comprei várias dessas coisas de pássaros em uma farmácia porque estavam à venda por 5 dólares cada. Em seguida, adicionei pedras e vegetação para esconder o detector de infravermelho, fiz uma caixinha de cerejeira e apliquei verniz para esconder a bateria AA extra de que precisava. A coisa funciona com 2 pilhas AA e é ativada por som. Eu o tornei menos sensível ao som e precisava da bateria extra porque o detector de 38 kHz que usei precisava de pelo menos 4,5 volts, o que significa 3 baterias. O detector de movimento foi feito para ser conectado a uma tomada de parede, então cortei a parte grande da placa de circuito e agora ele funciona com uma bateria de 9v instalada onde a lâmpada estava localizada.
Aqui está um link para um vídeo deste. Vídeo