İçindekiler:

Hızlı Tepki Oyunu: Mesafe Versiyonu: 5 Adım (Resimlerle)
Hızlı Tepki Oyunu: Mesafe Versiyonu: 5 Adım (Resimlerle)

Video: Hızlı Tepki Oyunu: Mesafe Versiyonu: 5 Adım (Resimlerle)

Video: Hızlı Tepki Oyunu: Mesafe Versiyonu: 5 Adım (Resimlerle)
Video: Beni ALLAH Yargılar, SEN Değil..! 2024, Temmuz
Anonim
Hızlı Tepki Oyunu: Mesafe Versiyonu
Hızlı Tepki Oyunu: Mesafe Versiyonu

Selam. Bu, hem tepki verme sürenizi hem de mesafe duygunuzu test eden bir oyunun nasıl oluşturulacağına dair bir Talimattır. Bu proje, bir ışık yeşile döndüğünde bir düğmeye tıklayarak kimin daha hızlı tepki verme süresi olduğunu görmek için yarışan iki oyuncuyu içeren eski bir projeye dayanıyor. Bunun da benzer bir amacı var, tek oyunculu olması ve bir ışığın sönmesi yerine oyuncuya elini mesafe sensöründen belirli bir mesafe uzakta tutması için bir zaman çerçevesi veriliyor.

Tüm Arduino projeleri gibi, bu oyun da Arduino devresinde çok sayıda elektrik bileşeni gerektirecektir. Kablolama ve Arduino'nun kendisi dışındaki ana bileşenler, devre tahtası, bir servo motor, bir LCD ekran, bir RGB LED ve bir mesafe sensörü içerir.

abra-electronics.com kullanarak, kablolar ve Arduino hariç fiyat 32,12 CAD'dir.

Adım 1: Adım 1: Mesafe Sensörü

Adım 1: Mesafe Sensörü
Adım 1: Mesafe Sensörü

İlk adım, ultrasonik mesafe sensörünü breadboard üzerine kurmak ve Arduino'ya bağlamaktır. Sensörün tam konumu aslında önemli değildir, ancak ideal olarak, yukarıdaki resimde gösterildiği gibi diğer bileşenlere yer kalması için bir kenara yakındır. Sensör üzerinde dört adet pin bulunmaktadır; GND, VCC, TRIG ve ECHO. GND ve VCC, sırasıyla toprak ve güç raylarına bağlanacak ve diğer iki pimi Arduino'daki iki pime bağlayacaktır. Kullandığım iki pin ECHO için 12 ve TRIG için 11 idi. Güç rayına güç sağlamak için başka iki kablo kullanın ve güç rayını 5V pime ve toprak rayını bir GND pimine bağlayarak topraklama rayını topraklayın.

Adım 2: Adım 2: Servo Motor

Adım 2: Servo Motor
Adım 2: Servo Motor

Bir sonraki adım servo motoru kurmaktır. Bu projede servo motor bir zamanlayıcı olarak işlev görmektedir. 1 dereceden başlayacak ve kullanıcının ellerini uzaklaştırması gereken süre boyunca 180 dereceye dönecektir. Kullanıcının ellerini ne kadar uzaklaştırması gerektiğini öğrendiğinde 2 saniye kullandım, bu nedenle servo 2 saniyelik bir süre içinde 179 derece dönüyor, kısa aralıklarla dönüyor. Servo motorun üç kablosu vardır; genellikle sarı, kırmızı ve kahverengidir. Kırmızı olan, zaten 5V'a bağlanmış olan güç rayına girer ve kahverengi olan, zaten GND'ye bağlanmış olan toprak rayına gider. Son kablo bir Arduino pinine takılır. Bunun için 9 numaralı pini seçtim. Ardından, yukarıdaki resimde görüldüğü gibi, servo motorun güç ve topraklama kablolarının bağlı olduğu aynı rayı bağlayan bir kondansatöre ihtiyacınız vardır.

Adım 3: Adım 3: RGB LED

Adım 3: RGB LED'i
Adım 3: RGB LED'i

LED'in buradaki işlevi, puan için bir ölçek görevi görmektir. Oyuncunun puanı 0 civarında olduğunda, LED beyaz olacak ve oyuncunun puanı düşerse daha fazla kırmızıya, oyuncunun puanı yükselirse yeşile dönecektir. Bu LED'in dört ayağı vardır; kırmızı ışıklı bacak, mavi ışıklı bacak, yeşil ışıklı bacak ve diğer üç bacak arasında paylaşılan ortak bir katot. En uzun bacak olan ortak katot, güç rayına bağlanır, böylece 5 volt alır. Diğer üç renkli ayağa 330 ohm'luk dirençler takın ve bu dirençlerin diğer uçlarını Arduino'daki PWM dijital pinlerine bağlayın. Kullandıklarım sırasıyla kırmızı, yeşil ve mavi bacaklar için 3, 5 ve 6 numaralı dijital pinlerdi.

Adım 4: Adım 4: LCD

4. Adım: LCD
4. Adım: LCD

Son bileşen, sıvı kristal ekran anlamına gelen LCD'dir. Bunun amacı, oyuncuya mevcut skorunu ve ellerini sensörden uzaklaştırmak için ihtiyaç duydukları mesafeyi söylemektir. Burada dört pin var; GND, VCC, SDA ve SCL. GND ve VCC, sırasıyla devre tahtasının toprak ve güç raylarına bağlanacaktır. SDA pimi analog pim A4'e bağlanmalıdır ve SCL pimi analog pim A5'e bağlanmalıdır. Diğer bileşenlerin aksine, SDA ve SCL pinlerini A4 ve A5'e bağlamalısınız.

Adım 5: Adım 5: Kod

Artık tüm bileşenleri bağladığımıza göre kodu yazabiliriz. Kodun ilk kısmı, gerekli kitaplıkları içe aktarmak ve değişkenlerimizi ve bileşenlerin hangi pinlere bağlı olduğunu bildirmektir. Bu kod için Wire, LiquidCrystal_I2C ve Servo kitaplıklarını içe aktarmamız gerekiyor.

#Dahil etmek

#Dahil etmek

#Dahil etmek

Servo myServo;

int const trigPin = 11;

int const echoPin = 12;

int redPin = 3;

int yeşilPin = 5;

int bluePin = 6;

int puanı = 0;

int zaman = 500;

int akım = rastgele(8, 16); // kullanıcının elini sensörden uzaklaştırması gereken rastgele değer

LiquidCrystal_I2C lcd (0x27, 16, 2); //LCD kurulumu

Şimdi pin türlerimizi bildirmek ve diğer gerekli bileşenleri kurmak için void setup() kullanmamız gerekiyor.

geçersiz kurulum() { myServo.attach(9); Seri.başla(9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode pinMode(redPin, OUTPUT); pinMode(greenPin, OUTPUT); pinMode(bluePin, ÇIKIŞ); lcd.init(); lcd.backlight(); lcd.begin(16, 2); lcd.clear(); //LCD kurulumu}

Şimdi bir fonksiyon ve PWM kullanarak RGB LED kodunu kurmamız gerekiyor:

void setColor(int kırmızı, int yeşil, int mavi) {

kırmızı = 255 - kırmızı;

yeşil = 255 - yeşil;

mavi = 255 - mavi;

analogWrite(redPin, kırmızı);

analogWrite(greenPin, yeşil);

analogWrite(bluePin, mavi);

}

Şimdi void döngüsünü () eklememiz gerekiyor. Burada, oyuncu için oyunu kontrol etmek için rastgele tamsayılar üreteceğiz ve bir dizi if ifadesi kullanacağız. Mevcut değişken, yukarıda kurulum, oyuncunun sensörden uzaklaşması gereken mevcut mesafe içindir.

void loop() içindeki kod çok uzun olduğu için, bu kodu içeren bir belgeye bir link yapıştıracağım:

docs.google.com/document/d/1DufS0wuX0N6gpv…

Son olarak, ultrasonik mesafe sensörünün değerlerini inç'e dönüştürmek için gerçek hesaplamaları yapmamız gerekiyor. Ultrasonik mesafe sensörü, mesafeyi doğrudan ölçmez; Sesi serbest bırakır ve sensörün, sıçradığı nesneden sesi geri alması için geçen süreyi kaydeder.

uzun mikrosaniyeToInches(uzun mikrosaniye) {

dönüş mikrosaniye / 74 / 2;

}

Şimdi kablolu Arduino'yu kodla birlikte bilgisayara takıyoruz, portları kuruyoruz ve çalıştırıyoruz! Bu oyunun iki modu var. Ya sadece LCD ekranı, servo motoru, sensörü ve RGB LED'i kullanabilirsiniz ve sadece sensöre olan mesafeyi bilirsiniz ki bu daha zor moddur. Daha kolay mod, gerekli ayarlamaları yapabilmeniz için sensörden ne kadar uzakta olduğunuzu her saniye güncelleyen Araçlar > Seri Monitör'deki seri monitörü kullanmayı içerir.

Okuduğunuz için teşekkürler!

Önerilen: