Mündəricat:

Zombi Detektoru: 3 addım
Zombi Detektoru: 3 addım

Video: Zombi Detektoru: 3 addım

Video: Zombi Detektoru: 3 addım
Video: S.T.A.L.K.E.R. Возвращение в Зону #3. Завтрак для Зомби 2024, Noyabr
Anonim
Zombi Detektoru
Zombi Detektoru

Kollecə gedərkən Knott's Berry Farm -da işlədim və Halloween bir həftə sonu düşəndə böyük bir izdiham çəkdik. Hamımız geyinib onunla əyləndik və müştərilərin əksəriyyəti bu səyləri yüksək qiymətləndirdi. İşlədiyim "sikkə qızlarından" biri Morticia Addams kimi mükəmməl tərzdə gəldi. O vaxtlar Goth görünüşü icad edilməmişdi (Moona Lizanı hesablamadığınız halda), işə gedərkən, işıqforda yanındakı avtomobildə olan bir oğlandan şişirdilmiş göz oxşadı. Yenidən ona baxdı və böyük bir gülümsəmə verdi - dişləri və hamısı. Göründüyü kimi, üzündəki qiymət qiymətsiz idi.

Eyni ruhla bu yazını bir müddət Halloweenə qədər saxlamaq haqqında düşündüm, amma sonra xatırladım ki, Zombie Apocalypse hər an baş verə bilər. Bunu nəvələrə göstərəndə dedim ki, həyatda nəbzini aşkar edir, amma heç bir nəbz onların Zombi olduğunu ifadə etmir. Bir izdihamınız varsa, bir aradan qaldırma oyunu (musiqi stullarının qəribə bir versiyası) kimi istifadə edilə bilər. Oynamağımızın bir yolu onu masanın ətrafına ötürmək idi. Bir "insan" cavabı alsanız, bir sikkə alacaqsınız, əgər bir sikkə ödəməmisiniz. Uşaqlar həmişə sikkələr olan oyunları sevirlər.

Addım 1: Avadanlıq

Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq

Sxem yuxarıda göstərilən diaqramda göstərilmişdir. "Detektor" hissəsi, ümumiyyətlə TTP223 olaraq elan edilən sadə bir tutumlu toxunma açarıdır. Heç bir şey üçün 10 -dan ibarət bir dəsti aldım, amma onlarla bir az problem var. Modulların 2.5 voltdan 5 volta qədər işlədiyi elan edilir, amma işləmir. Tapdığım şey, 4.75 voltdan aşağı bir şeyin modulun "Açıq" vəziyyətdə kilidlənməsinə səbəb olması idi. Bütün layihəni bir cüt AAA batareya (təxminən 3 volt) istifadə etmək istədim, buna görə problemi həll etməli oldum. Moduldakı çipi yoxladıqdan sonra boş lehim yastıqlarının həssaslığını təyin edən bir kondansatör olması lazım olduğunu təyin etdim. Tövsiyə olunan diapazon 0 ilə 50 pf arasındadır və tutum azaldıqca həssaslıq artır. Yastiqcikləri (0pf) qısaldaraq işə sala bilmədim, amma 22pf və 47pf kondansatörlərlə yaxşı işləyirdi. 22pf dəyəri ilə asanlıqla modulu 2,5 voltda işlədim.

Bu layihənin digər əsas komponenti (PIC mikro nəzarətçisindən başqa) 8x8 LED matrisidir. Əvvəlcə düz bir matris istifadə etdim, lakin satır və sütunlara müraciət etmək üçün bir cüt keçid qeydləri əlavə etməli və tam bir ekran əldə etmək üçün onları çoxaltmalı idim. Daha sonra bir MAX7219 LED ekran sürücüsü çipi ilə bir dövrə lövhəsinə qoşulan ucuz bir LED modulu kəşf etdim. Sürücü çipi ardıcıl əmrləri qəbul edir, sonra istədiyiniz sətirləri və sütunları işə salır. Çip eyni zamanda avtomatik olaraq multipleksasiya edir ki, yük mikrokontrolördən çıxarılsın. Bu kəşf həm hardware, həm də proqram mürəkkəbliyini azaldıb.

Addım 2: Layihə qutusu

Layihə qutusu
Layihə qutusu
Layihə qutusu
Layihə qutusu

LED matrisini örtmək üçün şəffaf bir qırmızı filtr istədim. Sahib olduğum qırmızı pleksiglasdan bir parça kəsib sonra onu bir layihə qutusuna yapışdıra bilərdim, amma bunun əvəzinə bir az yenidən məqsəd qoymağı seçərdim. İçərisində qurduğum qutu, bir zamanlar.22 güllə tutan bir qabdır. Bu qabların çoxu şəffaf plastikdir, amma qırmızı rəngli bir cütüm var. Çox zərif deyil, amma nəvələr zərifliyə əhəmiyyət vermir.

Addım 3: Proqram təminatı

Proqram təminatı
Proqram təminatı
Proqram təminatı
Proqram təminatı

Proqram olduqca sadədir. Timer0 -in sərbəst işləməsinə icazə verilir və toxunma sensoru aşkar edildikdə dəyər yoxlanılır. Mən özbaşına Timer0 sayının 100-dən az olması halında Zombi ekranının ortaya çıxacağına qərar verdim. Timer0-un 8 bit olduğunu nəzərə alsaq, bu "insan" ekranının 100-255 arası dəyərlər üçün baş verəcəyi mənasına gəlir. Bu təxminən 3: 2 nisbətidir və proqramda asanlıqla dəyişdirilə bilər.

Bir toxunuş aşkar edildikdə və bir ekran növü təyin edildikdə, məlumatları LED matrisinə göndərmək üçün uyğun prosedur çağırılır. Bunun üçün bir sıra əmrlər 8 bitlik ünvan və 8 bitlik məlumat olaraq göndərilir. Ünvanlana biləcək qeydlər siyahının ön hissəsində müəyyən edilmişdir. Onlardan bir neçəsi matrisi işə salmaq üçün (məsələn: parlaqlıq), biri isə bütün matrisi açmaq/söndürmək üçün istifadə olunur. Matris, BCD (ikili kodlu onluq) uyğun nömrəni göstərəcəyi bir rejimdə işləyə bilər. Fərdi LED -ləri idarə edə biləcəyimiz üçün Init proqramı onu söndürür. Başlanğıcın digər hissəsi sütun limitini təyin etməkdir. Səkkiz sütunun hamısını istəyirik, beləliklə tarama limiti 7 olaraq təyin olunur.

İstənilən fərdi LEDləri işə salmaq üçün istifadə olunan səkkiz qeyd var - hər sütun üçün bir qeyd. Məlumat bitindəki "1" bu sütunun LEDini işə salacaq. Daha əvvəl də qeyd edildiyi kimi, proqramda multipleksləşdirmə tələb olunmur. "İnsan" ekranı döyünən bir ürəkdir. Uyğun bit nümunələri matrisə göndərildikdən sonra, toxunma sensoru aktiv olduğu müddətdə, matrisin açılması/söndürülməsi (aralarındakı gecikmələrlə) simulyasiya olunur. Zombi rutini, toxunuş aradan qaldırılana qədər sabit bir "X" nümunəsini göstərir.

Bu yazı üçün budur. Digər elektronika layihələrimə baxın: www.boomerrules.wordpress.com

Tövsiyə: