İçindekiler:
- Aşama 1:
- 2. Adım: Yeni Bir Robot Projesi Oluşturun
- Adım 3: RobotMap'te Oluşturun/Doldurun
- Adım 4: Örnek Komutu ve Örnek Alt Sistemi Sil
- Adım 5: DriveTrainSubSystem oluşturun
- 6. Adım: DriveTrainCommand'ı oluşturun
- Adım 7: Robota Atla
- 8. Adım: DriveTrainCommand'a Geri Dönün
- 9. Adım: DriveTrainSub'a gidin
- Adım 10: Sonraki OI Kodunu Oluşturacağız
- Adım 11: DriveTrainCommand'a gidin
- Adım 12: Sonunda Kodu Derleyin ve Robota Yükleyin
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Bu, bir FRC robotu için basit bir aktarma organının nasıl yapılacağına dair bir eğitimdir. Bu eğitim, java, eclipse ve zaten wpilib'in ve ayrıca CTRE kitaplıklarının kurulu olduğunu bildiğinizi varsayar.
Aşama 1:
Eclipse'i aç
2. Adım: Yeni Bir Robot Projesi Oluşturun
- Paket gezginine sağ tıklayın, yeni'ye ve ardından diğer'e tıklayın.
- WPILib Robot Java Geliştirme'yi görene kadar aşağı kaydırın (görmüyorsanız, yüklü wpilib kaynaklarına sahip değilsiniz.)
- Robot Java Projesine tıklayın
- Ardından proje adını girin ve komut tabanlı robot proje tipine tıklayın.(Paket önceden doldurulmuş ve simülasyon dünyası ile aynı olmalıdır.)
Adım 3: RobotMap'te Oluşturun/Doldurun
Farklı pençe bağlantı noktalarının sayısını içeren son değişkenler oluşturun
Adım 4: Örnek Komutu ve Örnek Alt Sistemi Sil
Adım 5: DriveTrainSubSystem oluşturun
- Yeni oluşturulan aktarma organları alt sisteminde yeni bir kurucu oluşturun. Ardından, aktarma organlarındaki pençelere karşılık gelen CANTalon nesneleri oluşturun.
- Drive adında bir RobotDrive oluşturun
- Bu Nesneleri yapıcıda somutlaştırın (robot haritasında oluşturduğumuz pençeler için değerleri kullandığınızdan emin olun). Robot Drive için 4 Motor Controller (RobotDrive(SpeedController frontLeftMotor, SpeedController arkaLeftMotor, SpeedController frontRightMotor, SpeedController arkaRightMotor)) kullanan yapıcıyı kullanacağız.
- Ardından, x ileri ve geri ve y sağ ve sol olmak üzere iki giriş değişkeniyle bir arcadeDrive() yöntemi oluşturun. İçeride ileri ve döndürme değerleriyle drive.arcade'i arayacaksınız.
- Ardından initDefaultCommand() öğesini setDefaultCommand(new DriveTrainCommand()); satırını içerecek şekilde değiştirin.
- Henüz tüm hatalar için endişelenmeyin.
6. Adım: DriveTrainCommand'ı oluşturun
- İlk olarak alt sistemi oluşturmak için kullandığımız menüye giderek başlıyoruz ve robot kendini projelendiriyor(bu gerçek adımı ileriki adımlarda son kez göstereceğim, sadece bir komut yapmak veya bir komut yapmak için söyleyeceğim. altsistem ve bu menüde olduğunu varsayarsınız.) Komuta tıklayın ve sınıf adını DriveTrainCommand ile doldurun (bu dosyaların adlarını değiştirirseniz aynı olmaları mümkün olmaz).
- Yeni DriveTrainCommand'da, biri yapıcı, diğer 5'i ise robotun komut çalışırken çağıracağı kodun parçaları olan 6 yöntem olduğunu göreceksiniz. Yapıcının ne yaptığını biliyoruz, bu nedenle Başlatma, yürütme, Bitti, bitirme ve kesintiyi açıklamamıza izin verin. Initialize, komut her çağrıldığında bir kez çağrılır, execute yöntemi komut bitene kadar sürekli olarak çağrılır, bu da isFinished yönteminin true değerini döndürmesi durumunda bitişin neden olduğu, komutun çalışması duracaktır, bitiş yöntemi isFinished'den sonra bir kez çağrılır yöntem çağrılır ve komut kaynakları başka bir komut tarafından kullanıldığında ve komut sona erdiğinde (end yöntemi çağrılmadan) kesilen çağrılır.
- İlk olarak, yapıcıdaki DriveTrainCommand'da require satırını (requires(Robot. DriveTrainSub)) eklemeniz gerekir, DriveTrainSub'ın alt sistem adıyla aynı olmadığına ve bunun kasıtlı olduğuna dikkat edin.
Adım 7: Robota Atla
- Sonra Robot Sınıfına atlayacağız
- sonra satırı (public static final ExampleSubsystem exampleSubsystem = new ExampleSubsystem();) olarak değiştireceğiz (public static final DriveTrainSubsystem DriveTrainSub = new DriveTrainSubsystem();) dikkat edin finalden sonraki ilk ad, alt sistem adıyla aynı ve her yeni ad ayrıca DriveTrainSub'ın son adımımıza koyduğumuz adla aynı olduğuna ve alt sistem adıyla aynı olmadığına dikkat edin (alt sistemle aynı olmayan bir nesne adınız (DriveTrainSub) OLMALIDIR) isim).
- Ardından DriveTrainSubSystem'ımızı içe aktarın.
- Sonra satırı kaldıracağız(chooser.addDefault("Default Auto", new ExampleCommand());)
- Ardından kullanılmayan ithalatları kaldırın.
- Sonra kaydedin.
8. Adım: DriveTrainCommand'a Geri Dönün
- Robotu içe aktar(resimdeki ikincisi)
- Sonra Kaydet
9. Adım: DriveTrainSub'a gidin
- DriveTrainCommand'ı İçe Aktar
- Sonra kaydedin.
Adım 10: Sonraki OI Kodunu Oluşturacağız
- OI'ye gidin.
- 0 bağlantı noktasıyla yeni bir genel joystick nesnesi oluşturun.
- Ve kullanılmayan ithalatı kaldırın.
- Kaydetmek.
Adım 11: DriveTrainCommand'a gidin
- DriveTrainCommand'a gidin.
- Şimdi joystickleri alıp robotu hareket ettirmek için uygulayacağımız kısmı yapacağız. Yürütmenin içine (sürekli çalıştığı için) satırı ekleyin (Robot. DriveTrainSub.arcadeDrive(Robot.oi. Driver.getRawAxis(1), Robot.oi. Driver.getRawAxis(4));) burada arcadeDrive olarak adlandırıyoruz. joystick'in değerini döndüren Robot.io. Driver.getRawAxis(1) değerlerine sahip alt sistem ve burada 1, sol y ekseninin ekseni ve 4 hariç ikinci değer için aynı, sağ x eksenidir. yani bu, sol çubuğun ileri ve geri gideceği ve sağ çubuğun sağa ve sola gideceği anlamına gelir. (İsterseniz RobotMap'e geri dönebilir ve joystick ekseni için yeni değerler oluşturabilirsiniz, ardından bunları RobotMap.(eksen adı) ile çağırın ve bu şekilde yaparsanız son haline getirmeyi unutmayın.)
- Ardından, kullanılmayan tüm içe aktarmaları tüm projeden kaldırın.