Cuprins:
- Pasul 1: Luați acest Nifty Noise Maker pentru aproximativ 6 dolari în secțiunea de jucării din magazinul alimentar
- Pasul 2: Și am găsit această mică bijuterie în WalMart pentru aproximativ 5,00 USD
- Pasul 3: Bine. Să deschidem senzorul de mișcare și să vedem …
- Pasul 4: Să facem niște hackin '
- Pasul 5: Circuitul fotocelulei
- Pasul 6: Hackarea butonului Whoopee al telecomenzii
- Pasul 7: Acum pentru partea dificilă
- Pasul 8: Cuvinte finale
- Pasul 9: o variație
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
Cu cât îmbătrânesc, cu atât cabina mea devine mai mică. De fapt, nici acum nu am o cabină. Dar șeful meu obișnuia să meargă nedetectat și mă prindea făcând cercetări pentru o anumită misiune (WWW - pentru șef părea să navigheze pe web) și îmi spunea să mă apuc de treabă. Am vrut să pun un clopot în jurul lui, dar sunt sigur că el nu va merge după el, așa că a trebuit să vin cu altceva. (notă - titlul trebuie să fie „Flatulent”.)
Pasul 1: Luați acest Nifty Noise Maker pentru aproximativ 6 dolari în secțiunea de jucării din magazinul alimentar
Puteți citi pachetul pentru dvs. Are aproximativ 6 „melodii” aleatorii diferite. Dar elementul cheie este micul buton la distanță RF care vine cu acesta.
Pasul 2: Și am găsit această mică bijuterie în WalMart pentru aproximativ 5,00 USD
Evident, aprinde puțină lumină (LED) când se detectează mișcare, iar camera este întunecată. (Hmmmmm, mă întreb dacă aș putea …)
Pasul 3: Bine. Să deschidem senzorul de mișcare și să vedem …
Ei bine, am etichetat totul. Fotocelulă (nu este afișată, dar credeți-mă, este acolo) este pentru a preveni aprinderea luminii (LED) în timpul zilei și, prin urmare, prelungește durata de viață a bateriei.
Obiectivul Fresnel este acolo pentru a oferi un câmp vizual larg pentru senzorul de mișcare. Fresnel se pronunță frie-nel, căutați-l pe Wikipedia pentru mai multe informații.
Pasul 4: Să facem niște hackin '
Mai întâi, vedeți acel detector de mișcare PIR. PIR înseamnă „infraroșu pasiv”. Unii oameni îl numesc „infraroșu Pyro”. Nu știu de ce. Indiferent, nu vom sparge asta. S-ar putea să avem nevoie de ceva mai târziu.
Apoi, noi (bine, eu … dar noi regali) am acoperit fotocelula despre care v-am spus. Vedeți, vreau ca șeful meu-detector să fie activ zi și noapte. Deci, acoperind-o, crede că este în întuneric chiar și atunci când luminile sunt aprinse. Dar, tocmai i-am tras lâna peste ochi (de fapt un ochi), iar el / ea este acum ținut în întuneric. Și puteți vedea că am instalat propria noastră fotocelula chiar lângă LED. Micul truc ne anunță când LED-ul se aprinde, deoarece mișcarea a fost detectată. Desigur, am fi putut rula un fir de la LED pentru a atinge același scop, dar unde este distracția în asta. Interesant despre hacking este să-l piratezi diferit față de ceilalți hackeri, ca și în ceilalți ingineri electrici. Și asta face din hack-ul tău un adevărat original.
Pasul 5: Circuitul fotocelulei
Fotocelulă, cum puteți cumpăra de la Radio Shack, are o rezistență de aproximativ 50k ohmi fără expunere la lumină și de aproximativ 5k ohmi sau mai puțin atunci când este expusă la o lumină puternică. Deci, dacă folosim un rezistor în serie cu fotocelula, care este doar un rezistor, și le legăm la o sursă de tensiune și la masă, atunci avem un divizor de tensiune. De acolo, atingerea dintre cele două rezistențe oferă un semnal de tensiune care crește sau scade și poate fi utilizat pentru a declanșa un dispozitiv. În acest caz, detectorul de mișcare folosește baterii 3xAA, care este de 4,5 volți. Și acesta este modul în care circuitul este cablat pentru a furniza semnalul necesar pentru a conduce unele alte electronice. Cu LED-ul oprit, semnalul circuitului este de aproximativ 1,7 volți, cu LED-ul aprins, semnalul crește la aproximativ 3,5 volți, ceea ce este suficient pentru a declanșa un microcontroler
Pasul 6: Hackarea butonului Whoopee al telecomenzii
Există un buton, care înseamnă undeva acolo doi pini, care, atunci când sunt închise în circuit, determină perna whoopee să facă asta. Știfturile sunt destul de evidente, așa că nu am arătat acea parte. Dar, am făcut o mică gaură și am trecut o pereche de fire la știfturile butonului. Și, folosind un releu de reed de 5v de la Radio Shack, pot conecta cei doi pini prin alimentarea releului de reed.
Pasul 7: Acum pentru partea dificilă
Nu este chiar atât de complicat dacă știți puțin despre electronică, dar afacerea este că trebuie să utilizați semnalul de declanșare pentru a activa sistemul. Puteți utiliza un temporizator one-shot, sau un comparator, sau un temporizator 555, dar, pentru mine, cel mai ușor lucru este să folosiți un microcontroler cu 8 pini. Am folosit un PIC Micro 12F675. Cu aceasta, aș putea declanșa la schimbarea intrării unui pin și să aprind un LED roșu. De asemenea, dacă intră 5 persoane, nu vreau ca lucrurile să fie înnebunite timp de 15 secunde, așa că am pus o întârziere de 30 de secunde, astfel încât să pot lovi un comutator kill și să-l opresc. Deci, voi repeta rapid și voi arăta rezultatul final al contravenției. Rețineți, am acoperit LED-ul, astfel încât fostul șef să nu vadă o lumină aprinsă de fiecare dată când arunca în umilul meu 1/4 de cabină. Această imagine este produsul final. Voi lăsa electronica ca exercițiu pentru student. Iată codul pentru PIC Micro 12F675:; *************************** ***************************************************; Numele fișierului: Flatulant_Boss; Procesor: 12F675; Autor: Alan Mollick (alanmollick.com); Mod: întrerupere la schimbarea GP2;; ~ REGISTRURI GPIO ~; GP0 = INPUT - n / c; GP1 = OUTPUT - releu; GP2 = INPUT - Înalt = mișcare detectată; GP3 = INPUT - n / c; GP4 = OUTPUT - LED roșu; ******************************************* ************************************ lista p = 12F675; directivă listă pentru a defini procesorul # include; definiții variabile specifice procesorului nivel de eroare -302; suprimați mesajul 302 din fișierul listă CONFIG _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT; ~ Variabile ~ w_temp EQU 0x20; variabilă utilizată pentru salvarea contextului status_temp EQU 0x21; variabilă utilizată pentru salvarea contextului hiB EQU 0x21; MSBytelowB EQU 0x22; LSBytetemp EQU 0x23 rezervă EQU 0x24 temp1 EQU 0x25; declanșare întrerupere flagtemp2 EQU 0x26 întârziere EQU 0x27; timepins de întârziere EQU 0x28; starea pinilorpare1 EQU 0x29spare2 EQU 0x2count EQU 0x2b; bucle countcount1 EQU 0x2c; număr buclă exterioară2 EQU 0x2d; bucla externa countd1 EQU 0x2e; delay counterd2 EQU 0x2f; delay counterd3 EQU 0x30; delay counterd4 EQU 0x31; contor de întârziere; ************************************************ *********************** RESET_VECTOR ORG 0x000; vectorul de resetare procesor merge la principal; mergeți la începutul programuluiINT_VECTOR ORG 0x004; întrerupe locația vectorului movwf w_temp; salvați conținutul actual al registrului W movf STARE, w; mutați registrul de stare în registrul W movwf status_temp; salvați conținutul registrului STATUS; cod ISR motion_detect; trimite semnale de alarmă banksel INTCON bcf INTCON, INTF; ștergeți steagul GP2 / INT movf status_temp, w; preluați o copie a registrului STATUS movwf STATUS; restaurați conținutul înregistrării pre-isr STATUS swapf w_temp, f swapf w_temp, w; restabiliți pre-isr W registru conținut retfie; întoarcere de la întrerupere; *********************************************** ****************** principal:; programul principal; aceste primele 4 instrucțiuni nu sunt necesare dacă nu este utilizat oscilatorul intern sunați la 0x3FF; preluați valoarea de calibrare din fabrică bsf STATUS, RP0; setați banca registru fișier la 1 movwf OSCCAL; actualizați registrul cu valoarea calității din fabrică bcf STATUS, RP0; setați banca de înregistrare a fișierelor la 0; ***********************************; * Inițializare *; *** *********************************; GP0 = neutilizat, GP1 = ieșire releu, GP2 = intrare (detectare mișcare); GP3 = intrare pentru cntrl / cutoff de urgență, GP4 = ieșire la indicator LED; GP5 = neutilizat; setați direcția pinilor I / O banksel TRISIO movlw b'00000101 '; xx ------ neimplementat; --0 ----- 0 = ieșire, GP5 = n / c; --- 0 ---- 0 = ieșire, GP4 = LED; ---- x --- neutilizat, GP3, dedicat MCLR; ----- 1-- 1 = intrare, mișcare GP2 detectată; ------ 0- 0 = ieșire, GP1 = electrovalvă; ------- 1 1 = intrare GP0 = A / D movwf TRISIO; configurați convertorul A / D banksel ANSEL movlw b'00010000 '; x ------- neimplementat; -001 ---- 001 = Focs / 8 Conversion Clock; ---- 0 --- 0 = I / O digitală, GP4, Fosc / 4 clockout în scopuri de depanare.; ----- 0-- 0 = I / O digitală, GP2; ------ 0- 0 = I / O digitală, GP1, releu / etc; ------- 0 0 = I / O digital, 1 = analog GP0 movwf ANSEL banksel ADCON0 movlw b'00000000 '; 0 ------- 1 = rezultat justificat corect; -0 ------ 0 = Vdd este referință de tensiune; --xx ---- neimplementat; ---- 00-- 00 = selectați canalul 0 (GP0); ------ 0- 0 = Conversia A / D nu a început; ------- 0 0 = modulul convertor A / D este oprit movwf ADCON0; inițializați pinul de ieșire bankel GPIO movlw b'00000000 'movwf GPIO; inițializează întreruperile banksel INTCON movlw b'00000000 '; 0 ------- 0 = întreruperi globale dezactivate; -0 ------ 1 = activați întreruperile periferice; --0 ----- 0 = dezactivează întreruperea de revărsare TMR0; --- 1 ---- 1 = activați întreruperea externă GP2 / INT; ---- 0 --- 0 = dezactivează întreruperea modificării portului GPIO; ----- 0-- 0 = nu la depășirea TMR0; ------ 0- 1 =; ------- 0 0 = fără schimbarea portului GPIO movwf INTCON; inițializați întreruperea schimbării pinului GP2 banksel IOC movlw b'00000100 '; x ------- neimplementat; -x ------ neimplementat; --0 ----- 0 = dezactivează GP5; --- 0 ---- 0 = dezactivează GP4; ---- 0 --- 0 = dezactivează GP3; ----- 1-- 1 = activa GP2 / INTR *****; ------ 0- 0 = dezactivează GP1; ------- 0 0 = dezactivează GP0 movwf IOC banksel PIE1 movlw b'00000000 '; 0 ------- 0 = dezactivează întreruperea completă a scrierii EE; -0 ------ 0 = dezactivează întreruperea convertorului A / D; --xx ---- neimplementat; ---- 0 --- 0 = întrerupere comparator dezactivată; ----- xx- neimplementat; ------- 0 1 = activate TMR1 overflow interrupt movwf PIE1 banksel PIR1 movlw b'00000000 '; 0 ------- 0 = fără scriere EE completă; -0 ------ 0 = fără conversie A / D finalizată; --xx ---- neimplementat; ---- 0 --- 0 = nicio întrerupere a comparatorului; ----- xx- neimplementat; ------- 0 0 = fără TMR1 overflow movwf PIR1; ********************************** ************************; GP1 = ieșire la releu; GP4 = ieșire la LED; ********************************************* ************** banksel INTCON bsf INTCON, INTE; activați întreruperea GP2 bsf INTCON, GIEMain_Loop:; dacă GP2 = 1, atunci emite semnale de alarmă pe GP1, GP4 prin întrerupere sleep nop goto Main_Loop; ******************************* ***************************; Handler de întrerupere a detectării mișcării;; GP1 = ieșire la releu, GP4 = ieșire la LED; ************************************** ******************** motion_detect: bsf GPIO, 1; releu de energie pentru pauză de apel de 100 msec_100ms bcf GPIO, 1; dezactivați releul bsf GPIO, 4; activați LED-ul timp de 0,5 sec. apel pause_500ms bcf GPIO, 4 return; ****************************************** ****************; Generator de cod de întârziere online; https://massmind.org/techref/piclist/codegen/delay.htm;******************************** ************************** pause_100msec:; Întârziere = 0,1 secunde; Frecvența ceasului = 4 MHz movlw 0x1F; 99998 cycles movwf d1 movlw 0x4F movwf d2Delay_100 decfsz d1, f go $ + 2 decfsz d2, f goto Delay_100 go $ + 1; 2 cycles returnpause_500msec:; Întârziere = 0,5 secunde; Frecvența ceasului = 4 MHz movlw 0x03; 499994 cicluri 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; $ + 1 merge $ + 1 returnpause_1sec; Întârziere = 1 secundă; Frecvența ceasului = 4 MHz movlw 0x08; 999997 cycles 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 Delay_1sec gotoop $ + 1 întoarcere;************************************************ *****************************
Pasul 8: Cuvinte finale
Această imagine este o modalitate de a ascunde totul.
Notă - prin utilizarea unui microcontroler, numărul de variații pe acest instructable este nelimitat. Puteți plasa difuzorul astfel încât sunetul să provină din spatele șefului. Sau îl puteți conecta la sistemul PA de companie. Puteți chiar să faceți ca sistemul să pingă computerul și să apară o pagină de lucru în 1/10 dintr-o secundă, astfel încât de fiecare dată când fostul șef sau oricine altcineva pătrunde în perimetrul dvs., există întotdeauna o foaie de calcul sau un document tehnic la care ar trebui să lucrați. Și 24/7 … oricine intră în cabina ta sau poate ieși din ea, poate spune că ai nasul la piatră de măcinat în fiecare secundă a zilei. Asta te face să fii un angajat foarte apreciat. Ești un nenorocit de muncitor. De asemenea, nu prea aveți nevoie de obiectivul Fresnel. De fapt, pentru detectarea șefilor, este mai bine să-l îndepărtați, altfel persoanele din interiorul cabinei care se deplasează în jurul său îl vor declanșa. Puteți scoate obiectivul Fresnel și puteți pune o bucată de 1 inch de tub din PVC (1/2 inch diametru de la Home Depot) pe detectorul PIR și care vă va oferi un câmp vizual foarte îngust, cum ar fi direct la ușă (presupunând ai o ușă), dar senzorul funcționează la fel de bine. Raza de acțiune este de aproximativ 5-10 picioare fără obiectivul Fresnel. De asemenea, puteți scoate detectorul PIR și, folosind 3 fire, puteți plasa detectorul oriunde pentru a-l ascunde. Puteți chiar cumpăra un modul de sunet pentru 6 dolari și puteți înregistra propriile sunete. Puteți utiliza semnalul internațional pentru „se apropie șeful”, care vă curăță gâtul. Și îl poți schimba în fiecare dimineață. Sau înregistrați sunetul în care tastați febril, etc. Iată un efect sonor pe care l-am făcut din acea pernă whoopee și l-am introdus în computerul meu, l-am editat cu Audacity și l-am folosit pentru un hack Easy Button pe care aș putea să-l pun într-o zi.
Pasul 9: o variație
Iată un alt detector de șef bazat pe același concept. De asemenea, cineva și-a dorit un videoclip, așa că voi pune un videoclip pentru asta în curând. Detectorul pentru acesta este evident un Robo Sapien cuplat la un detector de mișcare de la Home Depot. Când este detectată mișcarea, robotul trimite un semnal IR la cușca păsărilor unde există un detector ascuns de 38 kHz. Mecanismul păsărilor are mai multe opțiuni. Toate opțiunile pot fi selectate individual, dar cu totul pornit, pasărea începe să se învârtă, să ciripească, cu un LED intermitent. De asemenea, am adăugat un LED roșu superbrill montat dedesubt, care clipește de 4 ori, astfel încât să știți că cineva vine fără toată racheta. Aceasta are, de asemenea, o întârziere de 30 de secunde și puteți dezactiva totul pur și simplu ridicând creionul. Creionul are un magnet la capăt, care, atunci când este introdus în alimentatorul de păsări, permite circuitul prin intermediul unui mic releu magnetic de stuf. Singura diferență reală în acest sistem este că nu am folosit trucul fotocelulei. Există un op-amp quad în detectorul de mișcare și tocmai am apăsat pinul de ieșire din etapa finală. Am cumpărat mai multe dintre aceste lucruri de păsări la un magazin de droguri pentru că erau la vânzare cu 5 dolari fiecare. Apoi am adăugat pietre și vegetație pentru a ascunde detectorul IR și am făcut o cutie din lemn de cireș și l-am lăcuit pentru a ascunde bateria AA suplimentară de care aveam nevoie. Lucrul funcționează cu 2 baterii AA și este activat cu sunet. Am făcut-o mai puțin sensibilă la sunet și aveam nevoie de baterie suplimentară, deoarece detectorul de 38 kHz pe care l-am folosit avea nevoie de cel puțin 4,5 volți, ceea ce înseamnă 3 baterii. Detectorul de mișcare a fost făcut să se conecteze la o priză de perete, așa că am tăiat lucrurile mari de pe placa de circuit și acum funcționează dintr-o baterie de 9v instalată unde se afla becul.
Iată un link către un videoclip al acestui video