Spisu treści:

Wykrywacz zombie: 3 kroki
Wykrywacz zombie: 3 kroki

Wideo: Wykrywacz zombie: 3 kroki

Wideo: Wykrywacz zombie: 3 kroki
Wideo: POWIESZ TO SAMO SŁOWO WYGRYWASZ!! 2024, Lipiec
Anonim
Wykrywacz zombie
Wykrywacz zombie

Kiedy szedłem do college'u, pracowałem w Knott's Berry Farm, a kiedy w weekend wypadało Halloween, przyciągnęliśmy tłumy. Wszyscy się przebraliśmy i dobrze się przy tym bawiliśmy, a większość klientów doceniła ten wysiłek. Jedna z „dziewczynek na monety”, w których pracowałam, wyszła doskonale stylizowana jako Morticia Addams. W tamtych czasach wygląd goth nie został wymyślony (chyba że liczyłeś Moonę Lisę), więc w drodze do pracy przesadnie przewróciła oczami facet w samochodzie obok niej na światłach stopu. Spojrzała na niego i posłała mu szeroki uśmiech – kły i tak dalej. Najwyraźniej wyraz jego twarzy był bezcenny.

W tym samym duchu myślałem o zachowaniu tego posta do około Halloween, ale wtedy przypomniałem sobie, że Apokalipsa Zombie może się wydarzyć w każdej chwili. Kiedy pokazałem to wnukom, powiedziałem im, że wykrywa puls, jeśli żyją, ale brak pulsu oznacza, że są Zombie. Może być używany jako gra eliminacyjna (coś w rodzaju dziwnej wersji krzesełek muzycznych), jeśli masz tłum. Jednym ze sposobów, w jaki graliśmy, było podawanie go wokół stołu. Jeśli otrzymałeś odpowiedź „ludzką”, dostałeś monetę, jeśli nie, zapłaciłeś monetę. Dzieci zawsze lubią gry z monetami.

Krok 1: Sprzęt

Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy
Sprzęt komputerowy

Schemat przedstawiony jest na powyższym schemacie. Część „detektora” to prosty pojemnościowy przełącznik dotykowy powszechnie reklamowany jako TTP223. Kupiłem zestaw 10 za prawie nic, ale jest z nimi pewien problem. Moduły reklamowane są jako pracujące od 2,5 V do 5 V, ale tak nie jest. Odkryłem, że napięcie poniżej 4,75 wolta powoduje zablokowanie modułu w stanie „Włączony”. Chciałem uruchomić cały projekt za pomocą pary baterii AAA (około 3 V), więc musiałem rozwiązać problem. Po sprawdzeniu układu na module ustaliłem, że pusta para pól lutowniczych ma mieć kondensator określający czułość. Zalecany zakres wynosi od 0 do 50 pf, przy czym czułość wzrasta wraz ze zmniejszaniem się pojemności. Nie mogłem go uruchomić przez zwarcie padów (0pf), ale działało dobrze z kondensatorami 22pf i 47pf, które mam. Dzięki wartości 22pf z łatwością udało mi się uruchomić moduł przy napięciu 2,5 wolta.

Drugim głównym elementem tego projektu (poza mikrokontrolerem PIC) jest matryca LED 8x8. Początkowo używałem zwykłej matrycy, ale musiałem dodać parę rejestrów przesuwnych, aby adresować wiersze i kolumny, i musiałem je multipleksować, aby uzyskać pełny wyświetlacz. Następnie odkryłem niedrogi moduł LED, który był dołączony do płytki drukowanej z chipem sterownika wyświetlacza LED MAX7219. Chip sterownika akceptuje polecenia szeregowe, które następnie wykorzystuje do włączania żądanych wierszy i kolumn. Układ wykonuje również multipleksowanie automatycznie, dzięki czemu obciążenie jest usuwane z mikrokontrolera. To odkrycie zmniejszyło zarówno złożoność sprzętu, jak i oprogramowania.

Krok 2: Pole projektu

Pudełko projektu
Pudełko projektu
Pudełko projektu
Pudełko projektu

Chciałem, aby półprzezroczysty czerwony filtr zakrył matrycę LED. Mógłbym wyciąć kawałek z jakiegoś czerwonego pleksiglasu, który mam, a następnie przykleić go do pudełka projektowego, ale zamiast tego postanowiłem trochę zmienić przeznaczenie. Pudełko, w którym go zbudowałem, to pojemnik, w którym kiedyś znajdowało się kilka naboi kalibru 22. Większość tych pojemników jest z przezroczystego plastiku, ale mam kilka, które są czerwone. Niezbyt elegancki, ale wnukom nie zależy na elegancji.

Krok 3: Oprogramowanie

Oprogramowanie
Oprogramowanie
Oprogramowanie
Oprogramowanie

Oprogramowanie jest dość proste. Timer0 może działać swobodnie, a wartość jest sprawdzana za każdym razem, gdy zostanie wykryty czujnik dotykowy. Zdecydowałem arbitralnie, że wyświetlacz Zombie pojawi się, jeśli licznik Timer0 będzie mniejszy niż 100. Biorąc pod uwagę, że Timer0 jest 8-bitowy, oznacza to, że wyświetlanie „ludzkiego” nastąpi dla wartości od 100 do 255. To stosunek około 3:2 i można go łatwo zmienić w oprogramowaniu.

Po wykryciu dotyku i określeniu typu wyświetlacza wywoływana jest odpowiednia procedura w celu wysłania danych do matrycy LED. W tym celu wysyłana jest seria poleceń jako 8-bitowy adres i 8-bitowe dane. Rejestry, które mogą być adresowane, są określone w przedniej części wykazu. Kilka z nich służy do inicjalizacji matrycy (np.: jasność), a jeden służy do włączania/wyłączania całej matrycy. Matryca może pracować w trybie, w którym BCD (binary coded decimal) wyświetli odpowiednią liczbę. Procedura Init wyłącza to, dzięki czemu możemy kontrolować poszczególne diody LED. Drugą częścią inicjalizacji jest ustawienie limitu kolumn. Chcemy mieć wszystkie osiem kolumn, więc limit skanowania jest ustawiony na 7.

Istnieje osiem rejestrów, które służą do włączania żądanych indywidualnych diod LED – jeden rejestr dla każdej kolumny. „1” w bicie danych włączy tę kolumnę LED. Jak wspomniano wcześniej, oprogramowanie nie wymaga multipleksowania. Wyświetlacz „ludzki” to bijące serce. Po przesłaniu odpowiednich wzorców bitowych do matrycy, dudnienie jest symulowane przez proste włączanie/wyłączanie matrycy (z opóźnieniami pomiędzy nimi) tak długo, jak aktywny jest czujnik dotyku. Procedura Zombie wyświetla stały wzór „X”, dopóki dotyk nie zostanie usunięty.

To tyle w tym poście. Sprawdź moje inne projekty elektroniki na: www.boomerrules.wordpress.com

Zalecana: