İçindekiler:

Rootin', Tootin', Shootin' Game: 4 Adım
Rootin', Tootin', Shootin' Game: 4 Adım

Video: Rootin', Tootin', Shootin' Game: 4 Adım

Video: Rootin', Tootin', Shootin' Game: 4 Adım
Video: 7 Rootin' Tootin' Top-Down Run-and-Shootin' NES Games (Mostly) 2024, Temmuz
Anonim
Rootin', Tootin', Shootin' Oyunu
Rootin', Tootin', Shootin' Oyunu

California, Orange County'de yaşadığımda, kolej çocuklarının en büyük işverenlerinden ikisi Disneyland ve Knott's Berry Farm'dı. Ordudan elektronik eğitimi aldığım için komik bir kostüm giymek yerine Knott'un atış galerisinde iş bulabildim. Tüfekler, odaklama lensli yüksek voltajlı flaş tüpleri ve hedeflerde fotoğraf hücreleri kullandı. Hedef sayaç devreleri, parmak arası terlik olarak ayarlanmış germanyum transistörleri kullandı. Transistörleri bulmak zorlaşıyordu, bu yüzden birileri onları silikon olanlarla değiştirmeyi denedi. Ne yazık ki, silikon transistörlerin hızlı geçiş sürelerinin onları gürültüye karşı çok daha duyarlı hale getirdiğini keşfettiler. Bu, hedefe yapılan tek bir vuruşun sayaçlardan geçeceği ve tüm lambaları bir kerede yakacağı anlamına geliyordu. Buradaki ders, bazen yavaşlığın iyi olduğudur.

Geçenlerde o günleri düşünüyordum ve torunlarım için basit bir atış oyunu tasarlayabilir miyim diye bakmaya karar verdim. Burada detaylandırılan oyun, ilk önce kimin beş vuruş yapabileceğini görmek için iki oyuncuyu karşı karşıya getiriyor. Ayrıca silahın kalbi olarak ucuz bir kırmızı lazer diyotu kullanmaya karar verdim. İsterseniz lazer işaretçiler kullanabilirsiniz ama silah için eklediğim devre, sabit bir ışın yerine tek bir atış yapmanızı sağlar.

Adım 1: Işık Sensörü Modülleri

Işık Sensörü Modülleri
Işık Sensörü Modülleri

İlk başta sensör devreleri için sadece foto transistör kullanacaktım ama sonra yukarıda gösterilen ışık sensör modüllerini keşfettim. Çinli bir tedarikçiden neredeyse sıfıra 10'luk bir paket aldım. Modüller bir foto transistör kullanır, ancak sensör voltajını bir LM393 karşılaştırıcısına çalıştırırlar, böylece hem dijital hem de analog çıkış sağlar. Karşılaştırıcının açma seviyesini ayarlamak için yerleşik bir potansiyometre ayarlanabilir. Ayrıca bir güç açık LED'i ve karşılaştırıcı dijital çıkışı değiştirdiğinde yanan bir LED içerir. Bu, uygun seviyeyi ayarlamayı kolaylaştırır.

Adım 2: Hedef Donanım

Hedef Donanım
Hedef Donanım
Hedef Donanım
Hedef Donanım
Hedef Donanım
Hedef Donanım

Donanımın büyük kısmı 10 LED ve 10 dirençten oluşur. 1-4 göstergeleri için standart 5 mm parlak beyaz LED'ler ve 5. gösterge için yavaş yanıp sönen bir LED kullandım. Anahtar normalde açık anlık kontaktır ve oyunu sıfırlamak için kullanılır. PIC mikrodenetleyici, diğer projelerde kullandığım standart bir mikro denetleyicidir. Resimlerde de görebileceğiniz gibi, LED modüllerini bir hedefte bulmayı kolaylaştırmak için ayrı ayrı kurdum.

Adım 3: Silah Donanımı

Silah Donanımı
Silah Donanımı
Silah Donanımı
Silah Donanımı
Silah Donanımı
Silah Donanımı
Silah Donanımı
Silah Donanımı

Lazer tabancasının temel donanımı ve şeması yukarıda gösterilmiştir. Benimkini plastik oyuncak airsoft silahlarına yaptım. Peletler için namlu tüpü, lazer diyot modülleri için neredeyse mükemmel boyuttadır ve derginin açıklığına iki adet AAA pil için bir pil tutucu yerleştirebildim. Piyasada çok sayıda ucuz lazer diyot modülü vardır ve bunlar temel olarak yalnızca gemiye monte edilen akım sınırlama direncinin değerinde farklılık gösterir. Bu direnç, lazer modülünün voltaj derecesini belirler. İki adet AAA pil kullanıyorum, bu yüzden 3 volt lazer seçtim. Anahtar, tek kutuplu, çift atışlı bir mikro anahtardır. Kondansatör, tetiğin her çekişinde tek bir ışık patlamasını zorlamak için kullanılır. Anahtarın bir konumunda kapasitör şarj olur ve diğer konumda lazer aracılığıyla boşalır.

4. Adım: Yazılım

Tüm PIC projelerim gibi, yazılım da assembly dilinde yazılmıştır. Bu projeyi biraz sıra dışı yapan şey, Ana yordamın hiçbir şey yapmamasıdır, çünkü tüm eylem kesme işleyicisinde gerçekleşir. PIC, eski PIC'lerde, bir I/O pininde herhangi bir pozitiften negatife veya negatiften pozitife geçişte kesintiler oluşturan, değişimde kesinti adı verilen bir özelliğe sahiptir. Bu özel PIC, yazılımın kesme kaynağını pozitif kenar, negatif kenar veya her iki kenar olacak şekilde ayarlamasına izin verir. Işık sensörü modülü bir geçişte her iki kenarı da oluşturacağından bu özellik oldukça kullanışlıdır. Bu durumda yazılım, kesme oluşturulmadan önce sensör çıkışı tekrar yüksek (kapalı) duruma geçene kadar bekler.

Bir sensör kesintisi alındığında, yazılım bu girişi geçici olarak devre dışı bırakır ve bir zamanlayıcı ayarlar. Gerçekte, zamanlayıcı bir anahtar için bir geri tepme devresi gibi davranır. PIC için seçilen 8 MHz saat hızında ve zamanlayıcı kurulumunda toplam zaman aşımı yaklaşık 130 ms'dir. Zamanlayıcı bittiğinde, aynı zamanda bir kesme oluşturur. Bu noktada, sensör girişi yeniden etkinleştirilir. Her sensör girişinin kendine özel zamanlayıcısı vardır, bu nedenle oyuncular arasında herhangi bir çakışma olmaz.

Her sensör kesintisi, o oyuncu için LED'lerden birini de yakacaktır. Bir sayaç yerine yazılım, bir bitlik sete sahip bir değişken kullanır. Bu bit, her kesmede sola kaydırılır ve daha sonra bir sonraki LED'i yakmak için çıkış portuna VEYA'lanır. Son LED yandığında, kesme işleyicisi daha fazla kesintiyi devre dışı bırakır ve bu da diğer oynatıcıyı etkin bir şekilde kilitler. Sıfırlama anahtarı, PIC'nin MCLR girişine bağlanır ve konfigürasyon bitleri bu işleve izin verecek şekilde ayarlanır. Sıfırlamaya basıldığında, yazılım yeniden başlatılacak ve LED'leri temizleyecektir.

Bu yazı için bu kadar. Diğer elektronik projelerime www.boomerrules.wordpress.com adresinden göz atın.

Önerilen: