Spisu treści:

Detektor wzdęć: 9 kroków (ze zdjęciami)
Detektor wzdęć: 9 kroków (ze zdjęciami)

Wideo: Detektor wzdęć: 9 kroków (ze zdjęciami)

Wideo: Detektor wzdęć: 9 kroków (ze zdjęciami)
Wideo: Ups. 2024, Listopad
Anonim
Detektor wzdęć
Detektor wzdęć
Detektor wzdęć
Detektor wzdęć

Im jestem starszy, tym mniejszy staje się mój boks. Właściwie to nie mam teraz nawet kabiny. Ale mój szef zwykł wchodzić niezauważony i przyłapywał mnie na robieniu badań do jakiegoś zadania (WWW - szefowi wyglądało to na surfowanie po Internecie) i kazał mi iść do pracy. Chciałem owinąć go krowim dzwonkiem, ale jestem pewien, że by na to nie poszedł, więc musiałem wymyślić coś innego. (uwaga - tytuł powinien brzmieć „Flatulent”).

Krok 1: Kupiłem ten fajny głośniczek za około 6 dolców w dziale zabawek w sklepie spożywczym

Kupiłem ten fajny terkotka za około 6 dolców w dziale zabawek w sklepie spożywczym
Kupiłem ten fajny terkotka za około 6 dolców w dziale zabawek w sklepie spożywczym

Możesz przeczytać paczkę dla siebie. Ma około 6 różnych losowych „melodii”. Ale kluczowym elementem jest mały przycisk pilota RF, który jest z nim dołączony.

Krok 2: I znalazłem ten mały klejnot w WalMart za około 5,00 USD

I znalazłem ten mały klejnot w WalMart za około 5,00 USD
I znalazłem ten mały klejnot w WalMart za około 5,00 USD

Oczywiście po wykryciu ruchu zapala się trochę światła (LED), a pomieszczenie jest ciemne. (Hmmmmm, zastanawiam się, czy mógłbym…)

Krok 3: Dobrze. Otwórzmy czujnik ruchu i zobaczmy…

W porządku. Otwórzmy czujnik ruchu i zobaczmy…
W porządku. Otwórzmy czujnik ruchu i zobaczmy…

Cóż, oznaczyłem wszystko. Fotokomórka (nie pokazana, ale uwierz mi, jest tam) ma zapobiegać zapalaniu się światła (LED) w ciągu dnia, a tym samym przedłuża żywotność baterii.

Soczewka Fresnela zapewnia szerokie pole widzenia dla czujnika ruchu. Fresnel wymawia się frie-nel, poszukaj go na Wikipedii, aby uzyskać więcej informacji.

Krok 4: Zróbmy trochę hakowania

Zróbmy trochę hakowania
Zróbmy trochę hakowania

Najpierw widzisz ten czujnik ruchu PIR. PIR oznacza „Pasywna podczerwień”. Niektórzy nazywają to „podczerwień Pyro”. Nie wiem dlaczego. Niezależnie od tego, nie zhakujemy tego. Może będziemy potrzebować czegoś później.

Następnie zakryliśmy (cóż, ja… ale królewską) tę fotokomórkę, o której ci mówiłem. Widzisz, chcę, żeby mój szef-detektor był aktywny dzień i noc. Tak więc, zakrywając go, myśli, że jest w ciemności, nawet gdy światła są włączone. Ale właśnie zamyliśmy mu oczy (właściwie jedno oko) i teraz jest trzymany w ciemności. I widać, że zainstalowaliśmy własną fotokomórkę tuż obok diody LED. Ta mała sztuczka pozwala nam wiedzieć, kiedy dioda LED zapala się, ponieważ wykryto ruch. Oczywiście moglibyśmy poprowadzić przewód od diody LED, aby osiągnąć ten sam cel, ale gdzie jest w tym zabawa. Fajną rzeczą w hakowaniu jest hakowanie go inaczej niż innych hakerów, tak jak w przypadku innych inżynierów elektryków. A to sprawia, że Twój hack jest prawdziwym oryginałem.

Krok 5: Obwód fotokomórki

Obwód fotokomórki
Obwód fotokomórki

Fotokomórka, jaką można kupić w Radio Shack, ma rezystancję około 50 kiloomów bez ekspozycji na światło i około 5 kiloomów lub mniej, gdy jest wystawiona na jasne światło. Jeśli więc użyjemy rezystora szeregowo z fotokomórką, który jest po prostu rezystorem i powiążemy go ze źródłem napięcia i masą, to mamy dzielnik napięcia. Stamtąd, stukanie pomiędzy dwoma rezystorami dostarcza sygnał napięciowy, który staje się wysoki lub niski i może być użyty do wyzwolenia urządzenia. W tym przypadku czujnik ruchu wykorzystuje 3 baterie AA, czyli 4,5 wolta. I w ten sposób obwód jest okablowany, aby dostarczyć sygnał potrzebny do wysterowania innej elektroniki. Przy wyłączonej diodzie sygnał obwodu wynosi około 1,7 V, przy włączonej diodzie sygnał wzrasta do około 3,5 V, co wystarcza do wyzwolenia mikrokontrolera

Krok 6: Zhakowanie przycisku Whoopee pilota

Zhakowanie przycisku pilota Whoopee
Zhakowanie przycisku pilota Whoopee

Jest przycisk, co oznacza, że gdzieś tam są dwa piny, które po zwarciu powodują, że poduszka piszcząca robi swoje. Piny są dość oczywiste, więc nie pokazywałem tej części. Ale wywierciłem mały otwór i pociągnąłem parę przewodów do kołków guzikowych. Używając kontaktronu 5V firmy Radio Shack, mogę połączyć dwa piny, zasilając kontaktron.

Krok 7: Teraz czas na trudną część

Teraz czas na trudną część
Teraz czas na trudną część

Nie jest to takie trudne, jeśli znasz się trochę na elektronice, ale chodzi o to, że musisz użyć sygnału wyzwalającego, aby aktywować system. Możesz użyć timera jednorazowego, komparatora lub timera 555, ale dla mnie najłatwiej jest użyć 8-pinowego mikrokontrolera. Użyłem PIC Micro 12F675. Dzięki temu mogłem wyzwolić się przy zmianie pinu na wejściu i migać czerwoną diodą LED. Poza tym, jeśli wejdzie 5 osób, nie chcę, żeby coś wariowało przez 15 sekund, więc włożyłem 30-sekundowe opóźnienie, aby móc nacisnąć wyłącznik i go wyłączyć. Więc po prostu przyspieszę i pokażę efekt końcowy tego urządzenia. Zauważ, że zasłoniłem diodę LED, aby były szef nie widział włączania się światła za każdym razem, gdy wpadał do mojej skromnej 1/4 boksu. To zdjęcie jest produktem końcowym. Zostawię elektronikę jako ćwiczenie dla ucznia. Oto kod do PIC Micro 12F675:;****************************** **************************************************; Nazwa pliku: Flatulant_Boss; Procesor: 12F675; Autor: Alan Mollick (alanmollick.com); Tryb: Przerwanie przy zmianie GP2;; ~ REJESTRY GPIO ~; GP0 = WEJŚCIE -- n/c; GP1 = WYJŚCIE -- przekaźnik; GP2 = INPUT -- High = wykryto ruch; GP3 = WEJŚCIE -- n/c; GP4 = WYJŚCIE -- Czerwona dioda LED;********************************************* ***********************************lista p=12F675; dyrektywa list definiująca procesor#include; definicje zmiennych specyficznych dla procesorapoziom błędu -302; wyłącz komunikat 302 z pliku listy CONFIG _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT; ~ Zmienne ~w_temp EQU 0x20; zmienna używana do zapisu kontekstu status_temp EQU 0x21; zmienna używana do zapisu kontekstu hiB EQU 0x21; MSBytelowB EQU 0x22; LSBytetemp EQU 0x23 zapasowy EQU 0x24 temp1 EQU 0x25; wyzwalacz przerwanie flagtemp2 EQU 0x26 opóźnienie EQU 0x27; opóźnienie timepins EQU 0x28; pin statespare1 EQU 0x29spare2 EQU 0x2acount EQU 0x2b; liczba pętli licznik1 EQU 0x2c; liczba pętli zewnętrznej countcount2 EQU 0x2d; pętla zewnętrzna countd1 EQU 0x2e; licznik opóźnieniad2 EQU 0x2f; licznik opóźnieniad3 EQU 0x30; licznik opóźnieńd4 EQU 0x31; licznik opóźnień;************************************************** ***********************RESET_VECTOR ORG 0x000; wektor resetowania procesora goto main; przejdź do początku programuINT_VECTOR ORG 0x004; lokalizacja wektora przerwań movwf w_temp; zapisz aktualną zawartość rejestru W movf STATUS, w; przenieś rejestr statusu do rejestru W movwf status_temp; zapisać zawartość rejestru STATUS; wywołanie kodu isr motion_detect; wysyłanie sygnałów alarmowych banksel INTCON bcf INTCON, INTF; wyczyść flagę GP2/INT movf status_temp, w; pobierz kopię rejestru STATUS movwf STATUS;przywróć zawartość rejestru sprzed isr STATUS swapf w_temp, f swapf w_temp, w; przywrócić zawartość rejestru sprzed isr W retfie; powrót z przerwania;************************************************** ******************Główny:; główny program; te pierwsze 4 instrukcje nie są wymagane, jeśli wewnętrzny oscylator nie jest używany call 0x3FF; odczytanie fabrycznej wartości kalibracji bsf STATUS, RP0; ustaw bank rejestru plików na 1 movwf OSCCAL; aktualizacja rejestru o fabryczną wartość kalibracyjną bcf STATUS, RP0; ustaw bank rejestru plików na 0;***********************************;* Inicjalizacja *;*** ********************************; GP0= nieużywane, GP1=wyjście przekaźnikowe, GP2=wejście (wykrywanie ruchu),; GP3=wejście do sterowania/odcięcia awaryjnego, GP4=wyjście do wskaźnika LED,; GP5= nie używany; ustawienie kierunku pinów we/wy banksel TRISIO movlw b'00000101'; xx------ nie zaimplementowano; -0----- 0=wyjście, GP5=n/c; ---0---- 0=wyjście, GP4=LED; ----x--- nieużywany, GP3, Dedykowany do MCLR; -----1-- 1=wejście, wykryto ruch GP2; ------0- 0=wyjście, GP1 = zawór elektromagnetyczny; -------1 1=wejście GP0=A/D movwf TRISIO; skonfigurować banksel konwertera A/D ANSEL movlw b'00010000'; x------- nie zaimplementowano; -001---- 001=Foks/8 Zegar konwersji; ----0--- 0=cyfrowe I/O, GP4, zegar Fosc/4 dla celów debugowania.; -----0-- 0=cyfrowe we/wy, GP2; ------0- 0=cyfrowe we/wy, GP1, przekaźnik/itp; -------0 0=cyfrowe I/O, 1=analogowe GP0 movwf ANSEL banksel ADCON0 movlw b'00000000'; 0------- 1=wyrównany do prawej wynik; -0------ 0=Vdd to napięcie odniesienia; --xx---- nie zaimplementowane; ----00-- 00=wybierz kanał 0 (GP0); ------0- 0=Konwersja A/D nie została rozpoczęta; -------0 0=moduł przetwornika A/D jest wyłączony movwf ADCON0; zainicjować wyjście pininit banksel GPIO movlw b'00000000' movwf GPIO; zainicjować przerwania banksel INTCON movlw b'00000000'; 0------- 0=globalne przerwania wyłączone; -0------ 1=włącz przerwania peryferyjne; -0----- 0=wyłącz przerwanie przepełnienia TMR0; ---1---- 1=włącz zewnętrzne przerwanie GP2/INT; ----0--- 0=wyłącz przerwanie zmiany portu GPIO; -----0-- 0=nie przy przepełnieniu TMR0; ------0- 1=; -------0 0=brak zmiany portu GPIO movwf INTCON; zainicjuj przerwanie przy zmianie pinów GP2 banksel IOC movlw b'00000100'; x------- nie zaimplementowano; -x------ nie zaimplementowano; -0----- 0=wyłącz GP5; ---0---- 0=wyłącz GP4; ----0--- 0=wyłącz GP3; -----1-- 1=włącz GP2/INTR *****; ------0- 0=wyłącz GP1; -------0 0=wyłącz GP0 movwf IOC banksel PIE1 movlw b'00000000'; 0------- 0=wyłącz pełne przerwanie zapisu EE; -0------ 0=wyłącz przerwanie przetwornika A/D; --xx---- nie zaimplementowano; ----0--- 0=przerwanie komparatora wyłączone; -----xx- nie zaimplementowano; -------0 1=włącz przerwanie przepełnienia TMR1 movwf PIE1 banksel PIR1 movlw b'00000000'; 0------- 0=brak zapisu EE zakończonego; -0------ 0=brak konwersji A/D ukończonej; --xx---- nie zaimplementowane; ----0--- 0=brak przerwania komparatora; -----xx- nie zaimplementowano; -------0 0=brak przepełnienia TMR1 movwf PIR1;*********************************** *************************; GP1=wyjście do przekaźnika; GP4=wyjście do LED;********************************************* ************** banksel INTCON bsf INTCON, INTE; włączyć przerwanie GP2 bsf INTCON, GIEMain_Loop:; jeśli GP2=1 to wysyła sygnały alarmowe na GP1, GP4 przez przerwanie uśpienia nop goto Main_Loop;*********************************** ***************************; Obsługa przerwań wykrywania ruchu;; GP1=wyjście do przekaźnika, GP4=wyjście do LED;************************************** ********************wykrywanie_ruchu: bsf GPIO, 1; pobudzenie przekaźnika na 100 ms połączenia pause_100ms bcf GPIO, 1; dezaktywacja przekaźnika bsf GPIO, 4; aktywuj diodę LED na 0,5 sek. wywołanie pauzy_500ms bcf GPIO, powrót 4;******************************************* ***************; Generator kodów opóźnień online; https://massmind.org/techref/piclist/codegen/delay.htm;*********************************** *************************pauza_100ms:; Opóźnienie = 0,1 sekundy; Częstotliwość zegara = 4 MHz movlw 0x1F;99998 cykli movwf d1 movlw 0x4F movwf d2Delay_100 decfsz d1, f goto $+2 decfsz d2, f goto Delay_100 goto $+1;2 cykle returnpause_500msec:; Opóźnienie = 0,5 sekundy; Częstotliwość zegara = 4 MHz movlw 0x03;499994 cykle 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 $+1;6 goto cykl $+1 przejdź do $+1 returnpause_1s; Opóźnienie = 1 sekunda; Częstotliwość zegara = 4 MHz movlw 0x08;999997 cykli movwf d1 movlw 0x2F movwf d2 movlw 0x03 movwf d3Delay_1s decfsz d1, f goto $+2 decfsz d2, f goto $+2 decfsz d3, f goto $+1 Delay _1s cykl powrót;************************************************ ******************************

Krok 8: Ostatnie słowa

Ostatnie słowa
Ostatnie słowa

Ten obrazek to jeden ze sposobów na ukrycie wszystkiego.

Uwaga - przy użyciu mikrokontrolera liczba wariacji tej instrukcji jest nieograniczona. Możesz ustawić głośnik tak, aby dźwięk dobiegał zza twojego szefa. Możesz też powiązać go z firmowym systemem PA. Możesz nawet wysłać ping systemu do komputera i wyświetlić stronę związaną z pracą w ciągu 1/10 sekundy, dzięki czemu za każdym razem, gdy twój były szef lub ktokolwiek inny wejdzie na twoją granicę, zawsze pojawi się arkusz kalkulacyjny lub dokument techniczny nad którym powinieneś popracować. I 24/7… każdy, kto wchodzi do twojego boksu lub z niego, może powiedzieć, że masz nos przy kamieniu szlifierskim w każdej sekundzie dnia. To sprawia, że jesteś wysoko cenionym pracownikiem. Jesteś cholernym pracoholikiem. Ponadto tak naprawdę nie potrzebujesz soczewki Fresnela. W rzeczywistości, w celu wykrycia bossa, lepiej jest go usunąć, w przeciwnym razie ludzie w twoim boksie poruszający się po okolicy wywołają to. Możesz zdjąć soczewkę Fresnela i umieścić 1-calowy kawałek rurki PCV (średnica 1/2 cala z Home Depot) na detektorze PIR, co da ci bardzo wąskie pole widzenia, takie jak bezpośrednio przy drzwiach (zakładając masz drzwi), ale czujnik działa równie dobrze. Jego zasięg wynosi około 5-10 stóp bez soczewki Fresnela. Możesz również usunąć czujnik PIR i za pomocą 3 przewodów możesz umieścić czujnik w dowolnym miejscu, aby go ukryć. Możesz nawet kupić moduł dźwiękowy za 6 dolców i nagrywać własne dźwięki. Możesz użyć międzynarodowego sygnału dla "boss zbliża się", co oznacza chrząknięcie. I możesz to zmienić każdego ranka. Albo nagraj dźwięk gorączkowego pisania na klawiaturze itp. Oto efekt dźwiękowy, który zrobiłem z tej poduszki, wrzuciłem go na mój komputer, zmontowałem za pomocą Audacity i użyłem go do hackowania Easy Button, które pewnego dnia mogę umieścić.

Krok 9: Odmiana

Wariacja
Wariacja

Oto kolejny wykrywacz bossów oparty na tej samej koncepcji. Poza tym ktoś chciał nagrać film, więc wkrótce go zamieszczę. Detektor dla tego to oczywiście Robo Sapien połączony z detektorem ruchu z Home Depot. Po wykryciu ruchu robot wysyła sygnał IR do klatki dla ptaków, w której znajduje się ukryty detektor 38 kHz. Mechanizm ptaka ma kilka opcji. Wszystkie opcje są indywidualnie wybierane, ale gdy wszystko jest włączone, ptak zaczyna się kręcić, ćwierkać, z migającą diodą LED. Dodałem również superjasną czerwoną diodę LED zamontowaną pod spodem, która miga 4 razy, aby wiedzieć, że ktoś nadchodzi bez całej rakiety. Ten ma również 30-sekundowe opóźnienie i możesz wyłączyć całość po prostu podnosząc ołówek. Ołówek ma na końcu magnes, który po włożeniu do karmnika umożliwia obwody za pomocą małego magnetycznego kontaktronu. Jedyną prawdziwą różnicą w tym systemie jest to, że nie użyłem sztuczki z fotokomórką. W detektorze ruchu jest poczwórny wzmacniacz operacyjny, a ja właśnie odpiąłem pin wyjściowy ostatniego stopnia. Kupiłem kilka takich ptasich rzeczy w aptece, ponieważ były wyprzedane po 5 dolców za sztukę. Następnie dodałem kamienie i roślinność, aby ukryć detektor podczerwieni, i zrobiłem małe pudełko z drewna wiśniowego i polakierowałem je, aby ukryć dodatkową baterię AA, której potrzebowałem. Urządzenie działa na 2 baterie AA i jest aktywowane dźwiękiem. Sprawiłem, że jest mniej czuły na dźwięk i potrzebowałem dodatkowej baterii, ponieważ detektor 38 kHz, którego użyłem, potrzebował co najmniej 4,5 wolta, co oznacza 3 baterie. Detektor ruchu został stworzony do podłączenia do gniazdka ściennego, więc odciąłem duże rzeczy z płytki drukowanej i teraz działa z baterii 9 V zainstalowanej w miejscu, w którym znajdowała się żarówka.

Oto link do filmu z this.video

Zalecana: