Arduino, hobi projeleri ve oyunları oluşturmak için çok popülerdir ve daha önce Arduino'yu Yılan oyunu, Masa tenisi oyunu, Uzay yarışı oyunu vb.İnşa etmek için kullandık. Bugün, Arduino- Buzz tel oyunu veya Steady el oyununu kullanarak bir popüler oyun daha geliştiriyoruz..
Bu proje için bir Arduino Uno, Buzzer ve iki Alüminyum kablo kullanacağız. Oyun durumunu görüntülemek için 16x2 LCD arabirim de vardır. Labirent telinin her iki ucu Arduino'nun dijital pin 2 ve 3'üne bağlanacak ve tutacak teli Arduino'nun Ground pinine bağlanacaktır. Dijital pinler INPUT_PULLUP pinleri olarak tanımlanır. Böylece, tutamaç teli labirent teline dokunduğunda, dijital pin durumunu düşük olarak değiştirir ve zil ses çıkarır.
Labirent telinin ucuna bir diyot bağlanır, bu yüzden o diyota geçip labirent teline yuvarlak sap teliyle dokunduğunuzda, sadece bir pim (Pim 3) alçalacaktır. Bu durumda, LCD'de bir tebrik metni (Tebrikler) görüntülenecektir.
Gerekli Bileşenler
- Arduino Uno
- Alüminyum Tel
- 16x2 LCD
- I 2 C Modülü
- Breadboard
- Buzzer
- Diyot
Devre şeması
Arduino Buzz Wire Oyunu için devre şeması yukarıda verilmiştir. I2C modülünün SCL ve SDA pinleri Arduino'nun A5 ve A4 pinlerine, I2C modülünün V CC ve GND pinleri ise Arduino'nun 5V ve GND pinlerine bağlanır. Buzzer'ın pozitif rayı Arduino'nun dijital pin 4'üne bağlanır ve negatif ray GND'ye bağlanır. Alüminyum bir tel kesin ve onu Zig-Zag şeklinde bükün. Telin bir ucuna bir diyot lehimleyin. Sonra bir tutamaç yapmak için başka bir tel kesin ve bir ucunu halka şeklinde bükün.
16x2 LCD, I2C modülü kullanmadan Arduino ile de arayüzlenebilir.
Arduino'nun D2 ve D3 pinlerini Zig-Zag kablosunun her iki ucuna bağlayın ve tutamaç kablosunu Arduino'nun GND pinine bağlayın.
Kod Açıklama
Bu Arduino Buzz Wire Oyunu için tam kod, belgenin sonunda verilmiştir.
LCD modülünün kitaplık dosyasını ekleyerek kodunuzu başlatın. LiquidCrystal_I2C.h kitaplığı, Arduino ve LCD modülleri arasındaki I2C iletişimi için kullanılır.
#Dahil etmek
Bundan sonra, zil için Arduino pinlerini, telin başlangıç noktasını ve telin bitiş noktasını tanımlayın.
const int startPin = 2; const int endPin = 3; const int buzzer = 4;
Ardından iki değişken başlangıç & end_ tanımlayın . Bu değişkenler telin okumalarını kaydetmek için kullanılacaktır.
int başlangıç, end_;
Şimdi buzzer pinini çıkış olarak ve kablo pinlerini INPUT_PULLUP olarak tanımlayın . Arduino, yaklaşık 20k ohm değerinde dahili çekme dirençlerine sahiptir. Bu dirençler, INPUT_PULLUP kullanılarak dahili olarak bağlanabilir. Bir INPUT_PULLUP tanımlamak işlevsel olarak pin ile + 5V arasına ~ 20k ohm'luk bir direnç bağlamakla aynıdır.
pinMode (buzzer, OUTPUT); pinMode (startPin, INPUT_PULLUP); pinMode (startPin, INPUT_PULLUP);
Boş döngü içinde tel pimlerinin durumunu okuyun.
start = digitalRead (startPin); end_ = digitalRead (endPin);
Şimdi tel pimlerin okumalarını karşılaştırın. Her iki pim de düşükse, tele dokundunuz, böylece zil ses çıkaracak ve telin başlangıç pini yüksek ve uç pimi düşükse, bu, uç noktaya ulaştığınız anlamına gelir.
eğer (başlangıç == DÜŞÜK && bitiş _ == DÜŞÜK) {digitalWrite (buzzer, HIGH); gecikme (1000); digitalWrite (zil, DÜŞÜK); lcd.setCursor (0,0); lcd.print ("Tekrar Deneyin"); Serial.print ("Tekrar Deneyin"); } else if (start == HIGH && end _ == LOW) {lcd.setCursor (0,0); lcd.print ("Bitti"); Serial.print ("Bitti"); }
Buzz Wire Oyununu Test Etme
Donanımı bağlayıp verilen kodu yükledikten sonra oyunu oynamaya başlayabilirsiniz. Bu yüzden teli elinizde bir daire ile tutun ve yuvarlak telin herhangi bir yere temas etmesine izin vermeden zig-zag tel ile lehimlenmiş diyotun sonuna kadar daire ile tel çekmeye çalışın. Tellere dokunursanız, sesli uyarı bir ses çıkaracak ve LCD'de " Tekrar dene " mesajı görüntülenecektir. Ve oyunu tele dokunmadan tamamlarsanız, " Aferin " gösterecektir.
Bu, Arduino ile Buzz Wire Oyunu Yapmanın Yoludur. Bir çalışma videosu ve tam kod aşağıda verilmiştir.