Bir Oyun Denetleyicisi ve Arduino ile Robotlar Nasıl Kontrol Edilir

  • Owen Little
  • 0
  • 1691
  • 403
reklâm

Arduinos ve benzeri uyumlu panolar heryerde DIY tamirciler için kullanılan cihazlardan biri. Arduino'ya henüz yeni başlayan bir başlangıççı olsanız da ya da bunları hayatınıza sokmak için çoktan başlamışsa, sayısız harika proje için bir platform sağlarlar..

Bugün Processing'i ve bir Xbox360 denetleyicisi kullanarak bir servoyu kontrol etmenin yaratıcı bir yolunu araştıracağız. Zaten oyun geliştirme meraklısıysanız, Unity kullanan Özel Oyun Denetleyicisi eğitimimizle ilgilenebilirsiniz..

Bu öğretici, biraz önceden bilgi alacaktır, eğer bu Arduino kemanına ilk adımınızsa, Arduino rehberimizi burada yararlı bulabilirsiniz. Benzer şekilde, eğer Java'yı ilk kez kullanıyorsanız, biraz kafa karıştırıcı olabilir. İşleme platformun basitleştirilmiş bir versiyonunu kullanırken, bu Java kavramları ve püf noktaları hala yardımcı olabilir.

Neye ihtiyacın var

  • 1 x Arduino. Bugün bir UNO kullanıyoruz.
  • 1 x hobi servosu. Arduino pinleri ile çalışacak her şey.
  • 1 x kablolu Xbox360 denetleyicisi. Bu teknik olarak hemen hemen her denetleyici ile çalışacak olsa da.
  • Birkaç bağlantı kablosu.

Bunlara ek olarak, aynı zamanda kendi web sitelerinden İşleme ve Arduino IDE'yi indirmeniz gerekir..

Arduino’yu hazırlama

Öncelikle servomuzu takmamız gerekiyor. Kablo renkleri burada değişebilir, ancak genel bir kural olarak kırmızı ekler 5v pim ve kahverengi veya siyah eklemek GND toplu iğne. Genellikle olan veri satırı Sarı veya Portakal, ekler pim 10.

Kablolarınızı kontrol edin ve Arduino'yu bilgisayara bağlayın. Arduino IDE'yi açın.

Adresinde bulunan StandardFirmata taslağını açın. Dosya> Örnekler> Firmata> StandardFirmata. Bu taslak, seri port üzerindeki harici kontrol kartını ayarlar ve Python ile Arduino'yu kontrol etmek için yazdığımız makalede kullandığımızla aynıdır. Python ile Arduino Nasıl Programlanır ve Kontrol Edilir Python ile Arduino Nasıl Programlanır ve Kontrol Edilir? Python'da bir Arduino'yu doğrudan programlamak mümkün değildir, ancak bir Python programını kullanarak USB üzerinden kontrol edebilirsiniz. İşte nasıl. . Krokiyi panoya yükleyin.

Yükleme başarısız olursa, karttaki doğru pano ve bağlantı noktası ayrıntılarını seçtiğinizden emin olun. Araçlar Menü.

Arduino'muz gitmeye hazır!

İşlemi Ayarlama

İşleme açın, boş bir kroki ile karşılaşacaksınız. Burada bir şey yapmadan önce birkaç kütüphaneyi yüklememiz gerekecek. Başına kroki Menü ve Seç Kitaplığı İçe Aktar> Kitaplık Ekle. Bu getirecek Katkı Yöneticisi Dışarıdaki Arduino kullanıcılarına tanıdık gelebilir.

Bu işi yapmak için üç kütüphane kurmamız gerekiyor. İlk önce Game Control Plus kütüphane. Oyun kumandamızı İşleme ile kullanmamıza izin verecek olan budur. Bulmak için arama penceresini kullanın ve sağ alt köşedeki Kur düğmesine tıklayın. Game Control Plus'ın konfigürasyon aracı için kurulu başka bir kütüphaneye ihtiyacı var, o yüzden hemen alalım. İçin ara G4P kütüphane ve onu da yükleyin.

Sonunda ihtiyacımız olan Arduino (firmata) kütüphane. Tahmin ettiniz, onu arayın ve yükle'yi tıklayın. Bunları kurduğumuzda, her şeyin işe yarayacağını test etmeye hazırız. Bugün Windows 10 ile çalışıyoruz, ancak Raspberry Pi de dahil olmak üzere çoğu platformda işlem yapılabilir. Olasılıkları düşünün!

Arduino’yu test etmek

Özel bir çizim oluşturmadan önce, Arduino ve Servo'yu İşleme ile test edelim. Açık Dosya> Örnekler, ve seç ArduinoServo -den Katkıda Bulunan Kütüphaneler / Arduino (firmata) Klasör. Bunu servomuzu test etmek için kullanacağız, ancak önce birkaç şeyi değiştirmemiz gerekebilir.

Çizimde aşağı doğru kaydırın ve şu satırı bulun:

println (Arduino.list ());

Yorum yapılırsa, önceki iki eğik çizgiyi kaldırın. println (Arduino.list ());, ve taslağı kaydedin. Oynat simgesine tıklayarak çalıştırın ve alttaki konsola bir göz atın. Bu, bilgisayarınıza bağlı olan her şeyi listeler. COM bağlantı noktaları.

Benim durumumda Arduino'm burada listelenen üçüncü liman olan COM 8'deydi. Bu, aşağıdaki satırdaki kodun Dizi kimin değeri hangi COM portunun kullanılacağını belirler.

COM portumuzu yansıtmak için bunu değiştirmemiz gerekiyor. Benim için, üçüncü pozisyon veya endeks numarası 2 idi:

arduino = yeni Arduino (bu, Arduino listesi () [2], 57600);

Test etmek için bu kodda birkaç küçük değişiklik yapmamız gerekiyor. Arduino pinlerinin ayarlandığı yere inin ve buradaki hatlardan birini yorumlayın. Diğerini değiştir Pin 10.

//arduino.pinMode(4, Arduino.SERVO); arduino.pinMode (10, Arduino.SERVO);

Aynı şeyi bizim de yapmamız gerekiyor. Çekmek() yöntem:

arduino.servoWrite (10, sınırlama (mouseX / 2, 0, 180)); // arduino.servoWrite (4, kısıtlama (180 - mouseX / 2, 0, 180)); 

Krokiyi sakla ve çalıştır. Programın oluşturduğu pencerede farenizi ileri geri hareket ettirerek servoyu hareket ettirebilmelisiniz..

Sizin için işe yaramazsa, Servo kablolarınızı kontrol edin ve COM portunuz için doğru dizi pozisyonuna sahip olup olmadığınızı kontrol edin. Arduino'nun İşleme ile iyi konuştuğunu öğrendikten sonra, devam etme zamanı.

Denetleyiciyi Yapılandırma

Kullandığımız Game Control Plus kütüphanesi de güçlü bir konfigürasyonla geliyor. Denetleyicinizin takılı olduğundan emin olun, Yapılandırıcı örnek proje ve çalıştırın. Bunun gibi bir menü alacaksınız:

Denetleyici adınıza tıklayın, daha büyük bir yapılandırma penceresi açılacaktır.

Bu oldukça göz korkutucu görünebilir, ancak mümkün olduğu kadar basit olacak şekilde tasarlanmıştır. Sol tarafta, değişken olarak istediğiniz ismi içeren ilk anahtarı doldurun. Bu değişken servo pozisyonunu kontrol eder, bu yüzden onu arayacağım servoPos.

Yanındaki kutuda ne işe yaradığına dair kısa bir açıklama yapabilirsiniz. Şimdi kumandanızı kaldırın ve kullanmak istediğiniz çubuğu servo cihazınızla hareket ettirin. Küçük bir deney, sağ başparmak çubuğunun X Döndürme kutusuna karşılık geldiğini gösteriyor. Arasında bir çizgi sürükleyin servoPos değişken ve bu kutu.

Şimdi konfigürasyonumuzu veri dosyası olarak kaydetmemiz gerekiyor. Pencerenin sağ üst köşesinde Cihaz rolü alan ve Dosya adı alan.

Dosya adı, kodunuzda kullanacağınız için önemlidir. Ben arayarak basit tutuyorum xbs. Click DOĞRULAYIN sonra Kayıt etmek. Bu, daha sonra kullanabileceğimiz denetleyicimizin talimatlarını içeren bir dosya yazar..

Özel Çizim Klasörünü Hazırlama

Çalışma dosyamızı ayarlayalım. Boş bir işlem taslağı açın ve istediğiniz adın altına kaydedin. Bu, kaydetme konumunda bir dizin oluşturur.

Şimdi yönlendir Belgeler / İşleme / libraries / GameControlPlus / örnekler / Yapılandırıcı ve etiketli klasörü kopyalayın. veri. Bu klasör yeni oluşturduğumuz yapılandırma dosyasını içerir. Yeni kaydedilen boş eskizinizin dizinine gidin ve veri klasörünü yapıştırın.

Özel Çizim Oluşturma

Şimdi her şey yerinde ve iki kütüphanemizi kullanarak bir çizim yapmaya başlayabiliriz. Bu adım adım ilerleyeceğiz, ancak ileriye atlamak istiyorsanız tam eskiz ve veri klasörünü indirebilirsiniz. Arduino COM portlarınızı yansıtmak için kodu değiştirmeniz gerekebileceğini unutmayın..

İhtiyacımız olan tüm kütüphaneleri içe aktararak başlayın:

import processing.serial. *; net.java.games.input dosyasını içe aktarın *; ithal org.gamecontrolplus. *; ithalat org.gamecontrolplus.gui. *; cc.arduino dosyasını içe aktarın *; org.firmata dosyasını içe aktarın. *;

Biz de bildirmek gerekir Kontrol cihazı, I / O, ve Arduino, ile birlikte şamandıra değerlerimizi parmak izimizden tutmak için:

ControlDevice devamı; ControlIO kontrolü; Arduino arduino; şamandıra başparmak;

bizim kurmak() yöntemi, denetleyicinin bir örneği olan küçük bir pencere oluşturur ve aygıtı config dosyamızla eşleştirir. Konfigürasyon veri dosyamızın dosya isminin doğru olması önemlidir:

boşluk ayarı () size (360, 200); kontrol = ControlIO.getInstance (bu); cont = control.getMatchedDevice ("xbs"); if (cont == null) println ("bugün chump değil"); // benden daha iyi çıkış ifadeleri yaz. System.exit (-1);  // println (Arduino.list ()); arduino = yeni Arduino (bu, Arduino listesi () [2], 57600); arduino.pinMode (10, Arduino.SERVO); 

Ayrıca, bu aşamada uygulanabilir bir denetleyici bulunup bulunmadığını kontrol ederiz ve gerekirse programdan çıkarız. Pencere ile oluşturulan boyut() gerekli değilse, daha sonra denetleyicimizden yararlı değerler alıp almadığımız konusunda bize biraz geri bildirim verecektir. Arduino'umuzu da başlattık ve test ederken yaptığımız gibi buraya tıkladık..

Şimdi denetleyicimizden giriş değerini almak için küçük bir yöntem yarattık ve bunu servomuzun kullanabileceği değerlerle eşleştirelim:

public void getUserInput () thumb = harita (cont.getSlider ("servoPos"). getValue (), -1, 1, 0, 180); 

Bu kod satırı, bizim adlandırılmış kontrolümüzü almak için veri dosyamızı kullanır. servoPos, kontrol ünitesinin sağ ayar çubuğuna bağlıdır ve ondan değerleri okuyun. Daha sonra değerleri eşler ve değeri başparmak değişken değişken.

Şu anda bu kod asla çağrılmaz, şimdi düzelteceğiz.

void draw () getUserInput (); Arka plan (başparmak, 100.255); arduino.servoWrite (10, (int) başparmak); 

çekmek() benzer döngü () Arduino IDE'deki yöntem. Her kare, o çağırır getUserInput () yöntem ve güncellemeler başparmak değer. Bu değeri, değerinin kırmızı değerini değiştirmek için kullanır. arka fon() bize değerdeki değişimin görsel bir göstergesini veriyor. Daha sonra bu değeri kullanarak servoya yazar. arduino.servoWrite () işlevi. Oyunculuk yapmamız gerektiğini unutmayın başparmak servoWrite işlevi gibi bir tam sayı değeri bağımsız değişken olarak iki tam sayı (pin numarası ve açı) alır..

Kodunuzda hata olup olmadığını kontrol edin, kaydedin ve çalıştır 'ı tıklayın. Arduino'yu başlatmak için küçük bir gecikmeden sonra, şöyle görünmesi gerekir:

Oyun Kumandası ve Arduino İle Kontrol: Bitti!

Bu proje deneyimsiz kodlayıcı için pek çok yönden derinlemesine yapıldı. Kodlama Projeleri ile Öğrenin: 9 Yeni Başlayan Programcı için Udemy Kursları Kodlama Projeleri ile Öğrenin: 9 Yeni Başlayan Programcı için Udemy Kursları Gerçek zorluk sadece iyi olmayan programlama dersleri ve kursları bulmaktır size gerekli becerileri öğretmek ancak pratik projelerle bunu yapmak. Udemy'nin adım attığı yer, bize yardım edebilecek fantastik kütüphanelere rağmen. Temsil ettiği şey robotları ve oluşturduğunuz diğer aygıtları kontrol etmenin yeni bir yolu..

Bu proje, bir Lazer Taret Pew Pew! Bir Arduino Pew Pew ile Lazer Taret Nasıl Yapılır! Bir Arduino ile Bir Lazer Taret Nasıl İnşa Edilir? Bir lazer kulesi inşa etmek de mümkün. , sana tam kontrol vermek. Basit Arduino Alarm'ımızdaki gibi bir Piezo sesli uyarısı kurabilirsiniz Basit Arduino Alarm Sisteminin Nasıl Yapılacağı Basit Arduino Alarm Sisteminin Nasıl Yapılacağı Hareketi harekete geçirin, daha sonra yüksek sesli alarm sesi ve yanıp sönen ışıklara sahip bir saldırganı yakalayın. Bu eğlenceli mi? Tabii ki öyle. Bugünün Arduino projesinin hedefi budur, uygun… öğretici ve zil sesi veya ışıkların rengini değiştirmek için denetleyicinizi kullanın.

Ya da, büyük bir robot inşa edip dünyayı ele geçirebilirsiniz. Yeterince uzun bir USB kablosunuz olduğu sürece!




Henüz no comments

Modern teknoloji hakkında basit ve uygun fiyatlı.
Modern teknoloji dünyasında rehberiniz. Her gün bizi çevreleyen teknolojileri ve araçları nasıl kullanacağınızı ve Internet'te ilginç şeyleri nasıl keşfedeceğinizi öğrenin.