Labirent Oyun Konsolu

Labirent Oyun Konsolu Projesi Hakkında

Selamlar herkese! Şimdiye kadar sizlerle hep bilgiler paylaştığım yazılarım oldu, birlikte bir proje yapmaya ne dersiniz? Bu ilk birlikte yapma blogu için basit komponentlerle ve Arduino ile yapılacak bir proje bulayım dedim. Bunun için Dünya’nın gerçek anlamda en büyük maker topluluklarından biri olan instructables.com’da yarım saatlik bir araştırma yapmam yeterli oldu ve Labirent Oyun Konsolu projesini seçtim. Eğer Instructables’a daha önce uğramadıysanız mutlaka bir göz atmanızı, hatta günlük bültenine üye olmanızı tavsiye ederim.

 

İlk projemiz dedik, haydi başlayalım; Labirent Oyun Konsolu! Projeyi yapan Instructables üyesi Ahmet Azouz neden bu projeyi yaptığını şu şekilde açıklıyor: “Elektronik oyunlar oynamaktan sıkıldım ve fiziksel beceri oyunlarını araştırmaya başladım, bu sırada Labirent oyununu buldum ve bunu yapabilirim dedim! Bu oyun ilk kez 1946’da İsviçre’de BRIO tarafından geliştirilmiş.”

Bu projeyi temel Arduino eğitimi almış herkes yapabilir! Haydi projemizi yapmaya başlayalım, ana gövdeyi mukavvadan, elektronik donanımını Arduino’dan, yapıştırmaları da sıcak silikon ile yapacağız.

Kraft Malzemeler:

  • Mukavva Karton (maket kartonu da olur)
  • 2x Cıvata + Somun
  • Sıcak Silikon
  • Maket Bıçağı
  • Cetvel
  • Kalem

Elektronik Malzemeler:

  • Arduino
  • Küçük Boy Breadboard
  • Jumper Kablolar
  • 2x Servo Motor
  • 1x Joystick Modülü

1. Adım: Oyun Konsolu Gövdesini Yapalım

Kartondan yapacağımız gövde için Projenin yazarı güzel bir doküman hazırlamış. Bu PDF’e (Labirent Oyun) uygun kestiğimiz kartonlarımızı şu şekilde pıştırıyoruz.

Proje Yapımı 1
Proje Yapımı 1

Proje Yapımı 2
Proje Yapımı 2
1: Yan kanatları yapıştırdıktan sonra servo motorumuzdan birini monte ediyoruz.Bu Y eksenin kontrol edeceğimiz motorumuz olacak. 2: Mukavvadan bir çerçeve yaparak Bir kenarını Y ekseni motorumuza diğer kenarına delik açarak cıvata ve somunla karşı plakaya bağlayalım.  Bu çerçevenin zıt kenarına da X eksenini kontrol edeceğimiz motorumuzu takalım.

Proje Yapımı 3
Proje Yapımı 3

Proje Yapımı 4
Proje Yapımı 4
3: Labirentimizi mukavva ile görseldeki gibi tasarlıyoruz. 4: Bu labirentin bir kenarına şekildeki gibi servo pervanesini yapıştırarak yine  karşı kenarından gövdemize cıvata ve somunla takalım.

Proje Yapımı 5
Proje Yapımı 5
5: Labirentimizi de ekledikten sonra konsolumuz (elektronik donanımımız haricinde) şekildeki gibi görülecek. Daha net görmeniz için somunları nerelere takacağınızı işaretledim 😊

 

2. Adım: Labirent Oyun Konsolu Elektronik Donanımı

Malzemelerde de olduğu gibi Arduino’muza 2 tane servo motor ve 1 tane joystick modülü bağlayacağız. Aşağıdaki devre şemasına bağlı kalarak devremizi kurabiliriz.

  • Servo motorların;
    • kahverengi kablosunu GND’ye
    • kırmızı kablosunu 5V’a
    • X ekseni Servo motorunun turuncusunu 8. Pin’e
    • Y ekseni Servo motorunun turuncusunu 9. Pin’e

 

  • Joystick modülünün;
    • VCC çıkışını 5V’a
    • GND çıkışını GND’ye
    • VRX çıkışını A0’a
    • VRY çıkışını A1’e

Bağlayarak devremizi kuracağız.

Labirent Oyun Konsolu Bağlantı Şeması
Labirent Oyun Konsolu Bağlantı Şeması

 

3. Adım: Program

Arduino IDE’mizi açarak aşağıdaki kodumuzu Arduino’muza yükleyelim. Kodumuzu biraz incelemek gerekirse;

Labirent Oyun Konsolu Proje Kodu1
Labirent Oyun Konsolu Proje Kodu1
İlk olarak servo kütüphanemizi tanımlayıp servolarımızı tanımlayalım.

 

HomePos değişkenleri sizin sabitlemenize göre değişebilir, bunu labirentin dümdüz durduğu konumlar olarak değiştirebilirsiniz.

 

Pos değişkenleri ise misket hareketi için eğdiğimiz açı, bunu da kendi modelinize göre değiştirebilirsiniz.

 

XAxle ve YAxle değişkenleri joysticke ait. Değişen verileri okuyarak kullanmamızı sağlıyorlar.

 

Range değişkeni joystickten okuduğumuz veriyi labirentimizin hareketine oranlamak için kullandığımız bir mapping değişkeni. Labirentin eğilme hassasiyeti için bu değeri arttırabiliriz.

Labirent Oyun Konsolu Proje Kodu 2
Labirent Oyun Konsolu Proje Kodu 2
readAxis Proje yazarı tarafından geliştirilmiş bir fonksiyon. Joystick değerini okuyarak bunu Range değerimize oranlayarak bize bir hareket çıktısı veriyor.

 

İlk if’ler joystick değerini okuyarak servonun değerini değiştiren kodlarımız. Hepsinin if olmasının sebebi joysticki kuzeybatı gibi ara yöne çevirdiğimizde de bu hareketi gerçekleştirmesi.

 

İkinci if’lerse servo motorumuz hareket ettikten sonra mevcut konumu Pos değişkenlerine atayarak konumumuzu kaydediyor.

 

Void Setup ve readAxis fonksiyonunu açıklamasını daha uzun olmasın diye eklemedim (: Eğer bir sorunuz olursa aşağıda yorum yaparak sorabilirsiniz.

 

Son Söz

Temel Arduino Eğitimimi aldım projeler yaparak kendimi geliştirmek istiyorum diyorsanız bu proje tam size göre! Hem mekanik geliştirme hem mekanik-elektronik uyumu için güzel bir alıştırma olacaktır. Bunun yanında siz neler ekleyebilirinizle ilgili birkaç önerim var;

  • Bir buzzer ekleyerek harekete göre ses tonunu değiştirebiliriz.
  • Oyun sürerken Buzzer ile bir şarkı çalabiliriz.
  • Bir ekran ve SD Kart Modülü ekleyerek puanları kaydedebiliriz.
  • Ekran ekleyerek süre sayabiliriz.

 

Üretmeyi ve geliştirmeye seven okuyucularımıza sevgiler, iyi eğlenceler!

 

Kaynakça:

0 0 votes
Article Rating
Subscribe
Bildir
guest

1 Yorum
Eskiler
En Yeniler Beğenilenler
Inline Feedbacks
View all comments
Ertuğrul güneş
Ertuğrul güneş
2 yıl önce

Kodun akış diyagramı var mı?