00:00.0
00:13.5
Evet herkese tekrardan merhaba. Önceki bölümde PWM motorlarla nasıl bir sürüş treni için kod yazacağınızı göstermiştim.
00:13.6
00:18.4
Joystick veri girişlerini kullanarak çalışan bir Tank Drive elde etmiştik.
00:18.5
00:26.7
Şimdi yapacağımız şey ise, CAN kullanmak. CAN basit olarak PWM gibi farklı bir bağlantı metodu.
00:26.8
00:35.0
PWM hız kontrol devresiyle mikroişlemci arasındaki direk bağlantı metodudur. Ve CAN'e göre daha basit bir şekilde çalışmaktadır
00:35.1
00:43.9
CAN ise tüm motor kontrol devrelerinden geçen daha karmaşık bir kontrol metodudur. Ve kullanmak için her bir kontrolorü numaralandırmanız gerekir.
00:44.0
00:57.3
CAN numaraları RoboRIO arayüzünde ayarlanabilir ve oradan mevcut numaraları kontrol edebilirsiniz.
00:57.4
01:07.7
Ama genel olarak CAN cihazları programlamak bir Spark'ı programlamaya çok benzerdir.
01:07.8
01:12.6
Ayrıca CAN devrelerin kontrol edilmek için daha fazla yöntemi vardır. Bu yüzden biraz daha fazla uğraş gerektirebilir.
01:12.7
01:17.5
Bu bölümde asıl olarak yapacağımız şey önceden yazdığımız drivebase'deki PWM kontrol devrelerini CAN olanlarla değiştirceğiz.
01:17.6
01:22.4
En sık kullanılan ve en güçlü olan CAN motor kontrol devresi TalonSRX'tir
01:22.5
01:50.0
Yapmanız gereken videoda yazdığım importu yazdıktan sonra Spark yerine TalonSRX yazmak. Bu işlemleri yapabilmek için önceden CTRE kütüphanesini yüklemeniz lazım.
01:50.1
01:59.6
Drivebase metodunda yaptığımız tanımlamaları da TalonSRX'e göre değiştirmemiz gerekiyor.
01:59.7
02:04.5
PWM kontrol devresi gibi bunun da bir numara alması gerekiyor ama alması gereken asıl numara ise CAN numarası.
02:04.6
02:22.8
Şu anlık RobotMap'te tanımlamış olduğumuz gibi 0 ve 1 olarak bırakacağız ama daha sonradan değiştirmemiz gerekecek.
02:22.9
02:27.7
Motor kontrol devrelerini değiştirdik ancak hala yapmamız gereken şeyler var.
02:27.8
02:45.2
Burada karşımıza çıkan asıl sıkıntı TalonSRX'lerle gelen çok fazla seçenek olması.
02:45.3
03:02.8
Benim yapmayı tercih ettiğim ise Robot.java'da TalonSRX'ler için bir init metodu kurmak.
03:02.9
03:07.7
Bu metod sayesinde de TalonSRX'lerin çoğu özelliğini ayarlayabileceğiz.
03:07.8
03:51.2
Ekranda gözüken metodu açıyorsunuz metodun adı istediğiniz gibi olabilir ancak parantezin içine doğru şeyleri yazdığınıza emin olun
03:51.3
03:56.1
Şimdi ise kullanmadığımız importları silebiliriz.
04:04.7
04:19.1
Şimdi ise yapmamız gereken birkaç şey var. Öncelikle yapmamız gereken motorun nötralitesini ayarlamak.
04:19.2
04:24.0
Brake ya da Coast mode olmak üzere motoru ayarlamamız gerekiyor.
04:24.1
04:54.6
Ayarlamak için ise ekrandaki satırı yazıp argüman olarak ise ya Brake ya da Coast'ı seçmeniz gerekiyor. Şimdilik Coast seçiyorum ama siz istediğinizi seçebilirsiniz.
04:54.7
05:05.9
Daha sonra yapacağımız ise 2. satırı yazmak. Bu sayede hız kontrol devresinin çıkışları daha istikrarlı olacaktır.
05:06.0
05:31.6
Bir başka yazmamız gereken ise sensorphase. Sensorphase encoder'ınıza motorun dönüş yönünün doğru ya da yanlış olduğunu belirmeyi sağlayacak bir metoddur.
05:31.7
05:38.8
Eğer motorunuz + yöne döndüğünde Encoder'ınız da + yönde artıyorsa bu argümanı false yapmalısınız. Ancak ters çalışıyorsa argümanı true yaparak bu durumu düzeltebilirsiniz.
05:38.9
06:03.0
Ayrıca TalonSRX'e eklenebilecek 2 limit switch vardır. LimitSwitch'inizin tipini ve argümanlarını eğer takımınızda burada farklı bir şey kullanıyorsanız ona göre ayarlayın.
06:03.1
06:17.8
Ama burada ayarlanılanlar işinizi görecektir. Ekrandaki satırı yazın ve argümanları doldurun.
06:17.9
06:22.7
1. Argüman sensörün bağlantı şekili.
06:22.8
06:39.6
2. Argümanınız ise switch'inizin normalde açık mı kapalı mı olduğunu öğrenmel için. Bunu bir röledeki gibi düşünebilirsiniz.
06:39.7
06:44.5
Son argüman ise olması gereken gecikmeyi soruyor gecikme istemediğimiz için 0 yazıyoruz.
06:44.6
06:53.8
Eğer isterseniz aynısını 2. Switch için de yapabilirsiniz.
06:53.9
07:40.7
Şimdi yapmamız gereken ise, motor kontrol devrelerinin normal çıktılarını ayarlamak. Bunun için ekrandaki satırı yazmalısınız.
07:40.8
07:51.4
Aynısını hem + yönüne doğru güç ve - yönüne doğru güç için ayarlamamız gerekiyor. 1. argüman double 0.0 ve ikinci argüman 0 olacak.
07:59.9
08:15.4
Şimdi yapmamız gereken bir şey daha var. Motorların hızlanma oranını ayarlamamız gerekiyor.
08:15.5
08:20.3
Hızlanma oranının yaptığı motorun %0 güçten %100 e nasıl çıkacağını ayarlamaktır.
08:20.4
08:29.4
Daha sonradan bu özelliği kullanacağımız kapalı döngülere geleceğiz.
08:29.5
08:43.4
Bu özelliği ayarlamak için yazdığım satırı yazıyoruz ve 1. argüman olarak 0.5 ve 2. argüman olarak 0 yazıyoruz.
08:43.5
08:48.3
Gördüğünüz gibi ayarlanması gereken bir sürü özellik var. hepsini ayrı ayrı çalıştırmak yerine bir metodun içine yazmamız daha rahat oldu.
08:48.4
09:11.4
Şimdi ise Drivebase sınıfına gelip yazdığımız metodu ana sınıftan çağırıp iki motor için de çalıştırıyoruz.
09:11.5
09:26.2
Ve işte gördüğünüz gibi artık TalonSRX'ler ayarlandı. Ama hala yapmamız gereken birkaç şey var. Buradaki hatayı çözmemiz gerekiyor ama başka bir şey var.
09:26.3
09:44.3
Bildiğiniz gibi PWM kontrolör aldığı PWM sinyaline göre hareket ediyordu. Ve bir PWM sinyalini iki kontrol devresine dağıttığınızda ikisi de çalışabilirdi.
09:44.4
09:49.2
Ve bu sayede de bir PWM sinyalini 2 motor için kullanabilirdik.
09:49.3
09:59.7
Ancak CAN kontrol devrelerinde böyle çalışmıyor.Şimdi yapacağımız şey drivebase türünüze göre gerekli olmayabilir.
09:59.8
10:04.6
Ancak benim takımım dişli kutusunda 2 motor kullandıdğı için her motora bir Talon düşmesi gerekiyor.
10:04.7
10:09.5
Bu yüzden de işimi görmesi için bir kaç tane daha TalonSRX tanımlamam gerekiyor.
10:09.6
10:22.9
Doğru çalışmaları için aynı yönde dönmeleri gerekiyor o yüzden sol taraftakiler tek bir değer sağdakilerin tek bir değere göre hareket etmesi gerekiyor
10:23.0
10:44.0
Drivebase metdunda TalonSRX'lerin tanımlamasını tamamlamamız gerekiyor. Ayrıca bu yeni Talon'ları ayrıca numaralandırmamız gerekiyor.
10:44.1
11:01.0
Bu nedenle RobotMap sınıfında yeni değerler oluşturmamız gerekiyor. Yeni tanımladığımız motorlara yazdığımız gibi numaralandıralım.
11:01.1
11:14.8
Şimdi ise metodda numaralandırmayı tamamlayalım.
11:14.9
11:23.6
Yeni tanımladığımız motorlara da joysticklerden gelen veriyi aktarmamız gerekiyor.
11:23.7
11:33.0
Ayrıca önceden yazdığımız metoddaki kurulum aşamalarını bu motorlar için de yapmamız gerekiyor.
11:33.1
11:46.4
Motorlara güç vereceğimiz kısımda önceki motorlar gibi de yapabiliriz. Ama bunu yapmaya gerek yok. Çünkü TalonSRX'lerin Follow mode adlı bir seçeneği var.
11:46.5
11:56.1
Bunu yapmak için ise yazdığımızı yazıyoruz ve argüman olarak takip etmesini istediğiniz motoru yazıyoruz.
11:56.2
12:16.1
Ve bu sayede argümana yazdığınız motora verilen her komut onu takip eden motora da gönderilecektir. Bu sayede iki motorun ters dönmesi zamanında robotunuza zarar gelme olasılığı düşecektir
12:16.2
12:18.2
Bu sayede iki motorun ters dönmesi zamanında robotunuza zarar gelme olasılığı düşecektir
12:18.3
12:33.0
Ayrıca eğer motorlarınızdan biri ters ise bu satırı yazarak düzeltebilirsiniz.
12:33.1
12:58.3
Şimdi yapmamız gereken ise burada aldığımız hatayı çözmek. Bu hatanın nedeni ise TalonSRX'lerde .set in daha fazla argümanının olması.
13:23.4
13:37.6
Burada ise kontrol modunu ayarlamak için farklı seçeneklerimiz var. Akıma göre voltaja göre ve birçok farklı seçeneğe göre kontrol modunu ayarlayabiliriz.
13:37.7
14:00.6
Position ve velocity argümanları özellikle otonom için çok yardımcı oluyor. Position un işe yaraduğı kısım encoder yardımıyla motora 5m git diyebilmektir.
14:00.7
14:13.0
Şu an yüzdelik değerler verebilmek için PercentOutput seçmemiz gerekiyor.
14:13.1
14:35.3
Bunu ayarlamak için buradaki metodumu setRaw yerine doğrudan set olarak ayarlıyorum. Ve metoda ControlMode mode argümanını ekliyoruz. Ve metodun içinde mode'u ekliyoruz.
14:35.4
14:45.1
Ancak bunu değiştirdikten sonra TankDrive sınıfını da değiştirmemiz gerekiyor çünkü metodun adını değiştirdik.
14:45.2
14:50.0
Bu sorunu çözmek için setRaw yerine set yazıp ControlMode argümanını eklememiz gerekiyor.
14:50.1
15:14.1
Ve şu an her şey eskisi gibi ancak Spark yerine TalonSRX kullanıyoruz. Ve bu sayede robotumuzun hareketi üzerinde daha fazla kontrol sahibi olacağız.
15:14.2
15:25.2
TalonSRX'lerle yapabileceğiniz çok fazla şey var ancak onlara sonradan değineceğiz.
15:25.3
15:30.1
Evet izlediğiniz için teşekkürler bu videoda TalonSRX devrelerini kullanarak nasıl robotunuzu hareket ettirirsiniz ona değindik.
15:30.2
15:48.6
Sonraki videolarda PID kullanımına değinebiliriz. Bu sayede TalonSRX'lerin kullanıma sunduğu tüm özellikleri kullanabiliriz.
15:48.7
15:51.0
Sonra görüşmek üzere.