Information

FRC Java Programming Tutorial Part 2: Basic Drivebase

Basic shortcuts

Ctrl + SSave subtitles
Ctrl + click
Double click
Edit highlighted caption
TabEdit next caption
Shift + TabEdit previous caption
EscLeave edit mode
Ctrl + SpacePlay / pause video
Ctrl + HomePlay selected caption
Ctrl + EnterSplit caption at cursor position
at current time

Advanced shortcuts

Ctrl + InsertAdd new caption
Ctrl + DeleteDelete selected caption
Ctrl + IEdit currently played segment
Shift + EnterNew line when editing
Ctrl + LeftPlay from -1s
Ctrl + RightPlay from +1s
Alt + LeftShift caption start time -0.1s
Alt + RightShift caption start time +0.1s
Alt + DownShift caption end time -0.1s
Alt + UpShift caption end time +0.1s

Annotation shortcuts

Ctrl + 1Hesitation
Ctrl + 2Speaker noise
Ctrl + 3Background noise
Ctrl + 4Unknown word
Ctrl + 5Wrong segment
Ctrl + 6Crosstalk segment
You are in the read-only mode. Close
00:00.0
00:15.5
Evet herkese merhaba önceki bölümde kodumuzu hazırlayıp çalışan bir kod elde etmiştik
00:15.6
00:36.6
Şimdi ise FRC'nin ilk önemli işini yani robotunuzu hareket ettireceğiz.
00:36.7
00:42.1
İlk yapmanız gereken ise şasinizi kontrol edebilmek için bir anadosyaya sahip olmak.
00:42.2
00:51.5
Eğer drivebase'in ne olduğunu bilmiyorsanız motor ve tekerleklerden oluşan ve robotunuzun hareket etmesini sağlayan sistem olarak düşünebilirsiniz.
00:51.6
01:08.8
Drivebase içinde motor kontrol devreleriniz veya daha geliişmiş sensörleriniz olabilir ancak şimdi biz sadece 2 tane hız kontrol devresi olarak düşüneceğiz.
01:08.9
01:13.7
Birr drivebase çok basit bir altsistem örneğidir. Şimdi nasıl yapacağımıza bakalım
01:13.8
01:16.3
Subsystem paketine tıklıyoruz ve oradan "New" oradan ise Class' ı seçiyoruz.
01:16.4
01:21.2
Yarattığımız Class'ın adını ise bu örnekte Drivebase koyacağız.
01:21.3
01:26.1
Superclass olarak ise yarattığımız class bir alt sistem olacağı için subsystem diye aratıyoruz ve seçiyoruz.
01:26.2
01:29.6
Bu sayede ise WPIlib in bize sunduğu güzelliklerden fayadalanabileceğiz.
01:29.7
01:45.4
Bence buraya tıklayabilirsiniz bu sayede çoğu metodu kodunuzda hazır bir şekilde alacaksınız
01:45.5
01:50.3
Bu kadar ve sonra bitir e tıklayacaksınız. Ve işte bu kadar artık alt sistemimiz kodlamaya hazır.
01:50.4
02:13.1
Bu kodu roborio çalıştıracak ve bu alt sistemde bahsetmemiz gerekenler aslında sadece hız kontrol devreleri.
02:13.2
02:18.0
Bu videoda iki tane Spark devremiz olduğunu varsayıyorum sol ve sağ olmak üzere.
02:18.1
02:27.9
Sol spark sol taraftaki motorları sağ spark ise sağ taraftaki motorları PWM ile kontrol edecek
02:28.0
02:38.0
Hız kontrol devresini tanımlarken private olarak tanımlarsanız diğer sistemler bu kontrol devresine erişmez ve bu karışıklığı önler bu yüzden private olarak tanımlayabilirsiniz.
02:38.1
02:42.9
Yazdıktan sonra ise farenizle tanımladığınız yerin üstüne gelip import spark seçeneğine tıklarsanız hata almazsınız.
02:43.0
02:55.6
Evet aynısını sol ve sağ olmak üzere iki kere tanımlıyoruz bunlar şasimizi kontrol edecek hız kontrol devreleri.
02:55.7
03:28.0
Tanımlamamıza rağmen şu an bir işe yaramıyorlar o yüzden ilk önce onlara görev vermemiz hangi durumda çalışacaklarını belirtmemiz gerekiyor.
03:28.1
03:51.1
Motorları kullanıma hazır hale getirmek için ise drivebase'imizin adının geçeceği yeni bir fonksiyon açmamız gerekiyor.
03:52.9
04:16.9
Bunun için ise kontrol devremize verdiğimiz ad sonra ise "= new Spark()" yazıyoruz ve parantezin içine roborio da hangi PWM portuna bağlı olduğunu yazıyoruz.
04:17.0
04:21.8
Aynısını sağ motora da yaptıktan sonra ona farklı bir port yazmayı unutmuyoruz.
04:21.9
04:42.5
Fakat doğru portları kullanmanın daha doğru bir yolu var bunun için ise RobotMap adlı dosyaya geliyoruz
04:42.6
04:54.4
Ben kendim RobotMap i kullanmayı pek sevmesem de gerçekten işe yarıyor
04:54.5
05:20.2
Bize burada verdiği class ı sayılandırıcı olarak değiştirip bir değer almasını sağlamak için burda yazdıklarımı yazmanız gerekiyor
05:20.3
06:03.4
Daha sonra bunu doğru formuna getirmek için büyük harflerle vermek istediğimiz değeri yazıp parantezin içine ise vermek istediğimiz değeri yazıp bu şekilde satırı sonlandırıyoruz.
06:03.5
06:10.8
Buraya daha sonradan istediğimiz kadar değer ekleyebiliriz
06:10.9
06:27.2
Bu ne işe yarayacak diye düşünecek olursanız ise bu kod bizim robotumuzun hangi parçasının kaç numaralı porta bağlı olduğunu kolaylaştırmamızda bize büyük ölçüde yardım edecek
06:27.3
06:45.9
Daha sonra ise drivebase dosyamıza geri gelerek numarayı yazdığımız yere numara yerine benim yazdığımızı yazıyoruz
06:46.0
07:14.0
Bu sayede ise buraya doğrudan yazmadan RobotMap dosyasından aldığımız değeri değiştirdiğimizde bile burada değiştirmemize gerek kalmadan kontrol devrelerimizi numaralandırabiliyoruz.
07:14.1
07:18.9
Bu özellik çok fazla parçanız olup numaralandırmanız gereken çok şey olunca gerçekten hayatınızı kolaylaştırabilir.
07:19.0
07:54.7
WPILib sayesinde biz yukarıda tanımladığımız hız kontrol devrelerine değer verebiliyoruz ve alt sistem dosyamızda nasıl olacağını göstereyim
07:54.8
08:07.8
Buı yüzden yeni bir metod açıyoruz ve bunun adını setRaw koyuyorum bu sayede bunun motorlara özel olduğunu anlayabilirim ve sol sağ değer olarak iki değer yazıyoruz.
08:07.9
08:25.9
Bu metod ile yapmak istediğimiz hem robotun sol hem de sağ tarafında güç vererek hareket etmesini sağlamak
08:26.0
08:44.9
Bunu yapmak için ise basitçe metodun içine gelip motorun adını sonra ise .set() yazıp parantezin içine -1 den 1 e kadar istediğimiz değeri yazıyoruz.
08:45.0
08:49.8
Ancak fonksiyon da biz bir değişken belirlediğimiz için buraya direk değer yazmaktansa fonksiyonda belirleiğimiz değişkenin adını yazıyoruz.
08:49.9
08:54.7
Sol taaraf için yaptıktan sonra aynısını sağ taraf için de yapıyoruz
08:54.8
09:06.0
Peki biz neden bunu bir metodun içinde yapıyoruz diye soracak olursanız
09:06.1
09:20.1
Diyelim ki motorlarınızdan birisini ters bağladınız ve ters yönde çalışıyor buna vereceğiniz değeri direk yazmak yerine her zaman - değer alacağı için
09:20.2
09:25.0
bir değişkene bağlı yazıp sonra değişkene sayıyı yazmanız sizin için daha kolay olacaktır.
09:25.1
09:36.5
Ve basit olarak PWM bir şasi böyle yazılıyor. Bu bölümde hız kontrol devrelerini numaralandırmak için robotMap kullandık ve yeni bir alt sistem olan drivebase'i açtık
09:36.6
09:41.4
Ve işte bu kadar artık karşınızda bir alt sistem var
09:41.5
09:48.0
Sonraki bölümde ise bu alt sistemleri nasıl bir komutun içinde kullanabileceksiniz ve robotunuzu iki joystick ile nasıl kullanabileceksiziniz onu anlatacağım
09:48.1
09:50.9
İzlediğiniz için teşekkürler sonraki bölümde görüşmek üzere.