Her şey karanlık çağlardan kalma "Mario" adlı küçük bir oyunla başladı, prensesimi kurtarmak için ördeklere atlayan küçük bir küçük adam olduğumdan İran'da dolaşan erkeksi yakışıklı bir Prens (Pers Prensi) karanlığa karşı savaşana kadar Dünyamı arkamda kurtarmak için video oyunları oynamanın büyük bir hayranıyım ve onları oynayarak büyüdüm. Ama bazen sıkılıyorlar ve ben buna daha az dahil oluyorum. Bugün, gelişmiş oyun konsolları sanal oyun oynamaya olanak tanıyor ve oyunu bir klavye veya farenin yapabileceğinden çok daha iyi hissetmemize yardımcı oluyor.
Arduino Meraklısı olarak “Angry Birds” adlı ünlü oyunu klavye ve fare kullanarak oynamaktan yoruldum ve Flex Sensör ve Potansiyometre kullanarak kendi Oyun Kontrolcümü oluşturmaya karar verdim. Esnek sensör çekildiğinde, mancınık üzerindeki kuş da çekilecektir ve fırlatılması gereken yönü ayarlamak için potansiyometreyi kullanabilirsiniz. Sonra esnek sensörü bıraktığınızda, kuş fırlatılacaktır. Bunu yapmaktan oldukça keyif aldım, bu yüzden çok benzer bir şey inşa etmeye hazırsanız, bu eğitim size yardımcı olacaktır. Bu eğitim, Potansiyometre kullanarak Fare İmlecini Kontrol Etme konusunda da yardımcı olacaktır.
Yazılım ve Donanım Gereksinimleri:
Yazılım:
- Arduino IDE
- IDE işleniyor
- Bilgisayarda Angry Birds Oyunu
Donanım:
- Arduino (Herhangi Bir Sürüm)
- Potansiyometre
- Flex Sensör
- 47K ohm Direnç
- Kabloların Bağlanması
- Breadboard
Arkasındaki Konsept:
Arduino Kurulu Potansiyometresi ve Flex Senor değerleri okur, normal aracılığıyla USB COM portu üzerinden ve Dizüstü / PC'ye aktaran onları Serial.write () fonksiyonu. Daha sonra İşleme'yi kullanarak bu bilgileri okuruz ve IDE'yi işleyerek desteklenen Java'daki Robot sınıfını kullanarak fare imlecini kontrol ederiz. İşlem IDE'sini, Flex sensörü çekildiğinde bir fare tıklaması yapılacak ve ne kadar çekildiğine bağlı olarak fare imlecinin X yönünde hareket edeceği şekilde programladık. Daha sonra potansiyometreden alınan değere göre fare imlecini Y yönünde hareket ettireceğiz, bu şekilde kuşun fırlatılacağı yönü ayarlayabiliriz.
Devre şeması:
Angry Bird'ü Flex Sensör ve Potansiyometre kullanarak oynamak için devre kolaydır.
Arduino'nun Analog girişlerine (A0, A1) basitçe bir potansiyometre ve esnek sensör bağladık. Flex sensörünün çıkışı da 47K aşağı çekme direnci kullanılarak aşağı çekilir.
Doğrudan devre tahtasına bağlayabilir veya bunları bir Perf tahtaya lehimleyebilir ve daha yaratıcı hale getirmek için eldiven veya başka bir şey üzerine monte edebilirsiniz. Aşağıda gösterildiği gibi bağlantılarımı yapmak için bir devre tahtası kullandım:
Arduino Programı:
Eğitimin sonunda tam Arduino kodu verilmiştir. Aşağıda birkaç önemli satır açıklanmıştır.
Programı 9600 baud hızı ile çalışacak şekilde başlatıp Flex sensör ve Potansiyometreden değerleri okumaya başlarız. Bildiğimiz gibi serial.write () işlevi bir seferde yalnızca bir bayt veri gönderebilir. Bir bayt 8 bit ve 2 ^ 8 = 256 olduğu için. 0'dan 256'ya kadar değerler gönderebileceğiz. Bu yüzden Flex sensör çıkışı ve Potansiyometre Çıkışı değerlerini 0'dan 256'ya sıkıştırmalıyız.
Bunu yapmak için Arduino'daki map () fonksiyonunu kullanıyoruz. Esnek sensörden gelen tüm değerler 5'ten 100'e dönüştürülür, dolayısıyla sensörü büktüğümüzde 5'ten artacak ve serbest bırakıldığında 5'e geri dönecektir. Fare tıklamalarından bahsetmek için 1 ve 0 değeri kullanılır. 1 gönderildiğinde fareye basılır ve 0 gönderildiğinde fare serbest bırakılır.
eğer (FlexValue> = 65 && FlexValue <= 120) // esnek sensörüm 65 ile 120 arasında değişiyorsa, sizin farklı olabilir {FlexValue = map (FlexValue, 120,65,0,100); // bükülmeye bağlı olarak 0'dan 100'e dönüştür if (FlexValue> = 5) // Fare tıklaması için 1 ve 0 kullanılır, bu nedenle 5'ten başlayın {Mclick = true; Serial.write (1); // 1 farenin sol tıklama yapması için gönderilir Serial.write (FlexValue); // Flex değeri, fareyi X yönünde hareket ettirmek için gereken mesafedir} else {Mclick = false; Serial.write (0);}}
Benzer şekilde potansiyometreden alınan değerler, map () işleviyle 101'den 200'e dönüştürülür ve aşağıda gösterildiği gibi Serial.write () işlevini uygulayan Dizüstü Bilgisayarların COM bağlantı noktasına gönderilir.
eğer (potValue <= 200) {potValue = map (potValue, 0,200,101,201); // Sırayla 101'den 201'e Serial.write (potValue) dönüştürmeye dayalı; // Pot değeri, fareyi Y yönünde hareket ettirme mesafesidir}
Programın geri kalanı, yorumlar kullanılarak açıklanmıştır.
İşleme Kodu:
İşleme, Açık Kaynaklı bir geliştirme uygulamasıdır ve Arduino veya diğer Mikrodenetleyicileri kullanarak ilginç projeler geliştirmek için kolayca indirilebilir ve kullanılabilir. İşleme'yi kullanarak zaten birkaç proje yaptık ve aşağıdaki bağlantılara tıklayarak bunları kontrol edebilirsiniz.
- İşleme Kullanarak DIY FM Radyo
- Arduino kullanarak Sanal Gerçeklik / Hareket kontrolü
- Arduino kullanarak Özel Sohbet odası.
- İşleme APP ve Ultrasonik Sensör kullanan Arduino Radar Sistemi
- Arduino ile Gerçek Zamanlı Yüz Algılama ve İzleme
- Arduino ve İşleme kullanarak DIY Hız Ölçer
- Arduino Accelerometer kullanarak Ping Pong Oyunu
- Arduino Kullanan İki Ayaklı Robot
- DIY Arduino Termal Görüntüleme Kamerası
Bu projede, COM port değerlerini okumak ve COM portu üzerinden alınan değerlere bağlı olarak fare işaretçisini kontrol etmek için IDE işleme özelliğini kullandık. Bu Kızgın Kuş Game Controller için tam İşleme Kod aşağıdaki bağlantıdan indirilebilir:
- Bu Angry Bird Oyun Kumandası için İşlem Kodu (sağ tıklayın ve 'Bağlantıyı farklı kaydet')
Arduino Programı bu eğitimin sonunda bulunabilir. İşleme kodu, yoggy tarafından GitHub sayfasında verilen koddan amacımıza uyacak şekilde değiştirildi.
COM portundan gelen veriler, Arduino'dan gönderildikleri ile aynı baud hızında okunmalıdır. Ayrıca, cihaz yöneticisini kullanarak Arduino'nuzun hangi COM portuna bağlı olduğunu kontrol edin. Benim Arduino COM3'e bağlı ve 0 oldu inci benim bilgisayar Limanı ve kod yani şöyle Arduino içinde baud hızı 9600 oldu
port = new Serial (this, Serial.list (), 9600);
Değerleri okumaya başladığımızda, onu Arduino'dan nasıl gönderdiğimize dair değerine dayanarak tanıyarak ayırt ederiz. Değerler yine 0 ile 100 arasında eşlenir, böylece fareyi bu değere göre kontrol edebiliriz.
eğer (port.available ()> 0) {data = port.read (); println (veri); // Veriyi COM portundan okuyun ve veriye kaydedin} if (data> = 101 && data <= 201) // Değer 101'den 201'e ise o zaman Potansiyometre'den olmalıdır {Turn = int (harita, 101,201,0,100)); // catapullt'u çevirmek için bu değeri kullanın} if (data> = 5 && data <= 100) // Değer 5 ile 100 arasındaysa Flex Sensor {Pull = int (map (data, 5,100, 0,100));} // Mancınık için bu değeri kullanın if (data == 1) click = true; // Eğer (data == 0) click = false ise fare düğmesine basmak için bu değeri kullanın; // Fare düğmesini serbest bırakmak için bu değeri kullanın
Verileri kategorize ettikten sonra, İşlemede Robot Java Sınıfını kullanarak fareyi kontrol edebiliriz. Robot.mouseMove (crntX-Pull, crntY + Turn) komutu ; fareyi istenen herhangi bir konuma ve satırları hareket ettirmek için kullanılabilir robot.mousePress (InputEvent.BUTTON1_DOWN_MASK); ve robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); sırasıyla fare düğmesine basıp bırakmak için kullanılabilir.
if (click == false) // Flex Sesnor çekilmediğinde {crntX = (int) p.getX (); crntY = (int) p.getY (); eğer (Pull> 50) robot.mouseRelease (InputEvent.BUTTON1_DOWN_MASK); // Fare düğmesini bırakın} if (click == true) // Flex Sesnor çekildiğinde {robot.mousePress (InputEvent.BUTTON1_DOWN_MASK); // Fare Düğmesine basın robot.mouseMove (crntX-Pull, crntY + Turn); // Fareyi Flex ve POT değerine göre hareket ettirin}}
İşlem IDE başlatıldığında, aşağıda gösterildiği gibi Çekme, Çevirme ve Fare Tıklaması durumlarının değerlerini bulabileceğiniz küçük bir iletişim kutusu da görüntüler.
Bu ayrıntı, Programdaki hataları ayıklamak veya gereken verileri düzeltmek için kullanılabilir.
Çalışma:
Bu Angry Bird Projesinin verilen kodu kullanarak çalışmasını sağlamak için donanımınızı devre şemasına göre birleştirin ve verilen Arduino Kodunu yükleyin. Ardından Arduino'nuzun hangi COM portuna bağlı olduğunu not edin ve İşleme kodunda gerekli değişiklikleri yapın ve işleme taslağını başlatın.
Şimdi, sadece kızgın kuş oyununu başlatın ve imleci mancınıkın yanına yerleştirin ve kuşu çekmek için esnek sensörü çekin ve potansiyometreyi kullanarak yönü ayarlayın. Yön ayarlandıktan sonra Flex sensörünü bırakın
EEEEWWWWWEEEEEEEEEE !!!!!!!!!!……………
Sen kuş doğruca havaya fırlatılacak ve BOOMM !! Domuzcuklarda. Çalışmanın tamamı aşağıda verilen videoda bulunabilir.
Umarım projeyi beğenmişsinizdir ve benzer bir şey inşa edebilmişsinizdir. Herhangi bir şüpheniz varsa yorum bölümünden bana ulaşabilir veya sorunuzu teknik sorular için foruma gönderebilirsiniz.
Şimdi, şu domuz kutularına çarpma ve kuş yumurtalarımızı geri alma zamanı !!!!