1
00:00:00,00 --> 00:00:15,500
Evet herkese merhaba önceki bölümde kodumuzu 
hazırlayıp çalışan bir kod elde etmiştik

2
00:00:15,600 --> 00:00:36,600
Şimdi ise FRC'nin ilk önemli işini yani robotunuzu 
hareket ettireceğiz.

3
00:00:36,700 --> 00:00:42,100
İlk yapmanız gereken ise şasinizi kontrol 
edebilmek için bir anadosyaya sahip olmak.

4
00:00:42,200 --> 00:00:51,500
Eğer drivebase'in ne olduğunu bilmiyorsanız 
motor ve tekerleklerden oluşan ve robotunuzun 
hareket etmesini sağlayan sistem olarak düşünebilirsiniz.

5
00:00:51,600 --> 00:01:08,800
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.

6
00:01:08,900 --> 00:01:13,700
Birr drivebase çok basit bir altsistem örneğidir. 
Şimdi nasıl yapacağımıza bakalım

7
00:01:13,800 --> 00:01:16,300
Subsystem paketine tıklıyoruz ve oradan "New" 
oradan ise Class' ı seçiyoruz.

8
00:01:16,400 --> 00:01:21,200
Yarattığımız Class'ın adını ise bu örnekte 
Drivebase koyacağız.

9
00:01:21,300 --> 00:01:26,100
Superclass olarak ise yarattığımız class 
bir alt sistem olacağı için subsystem diye 
aratıyoruz ve seçiyoruz.

10
00:01:26,200 --> 00:01:29,600
Bu sayede ise WPIlib in bize sunduğu güzelliklerden 
fayadalanabileceğiz.

11
00:01:29,700 --> 00:01:45,400
Bence buraya tıklayabilirsiniz bu sayede 
çoğu metodu kodunuzda hazır bir şekilde alacaksınız

12
00:01:45,500 --> 00:01:50,300
Bu kadar ve sonra bitir e tıklayacaksınız. 
Ve işte bu kadar artık alt sistemimiz kodlamaya 
hazır.

13
00:01:50,400 --> 00:02:13,100
Bu kodu roborio çalıştıracak ve bu alt sistemde 
bahsetmemiz gerekenler aslında sadece hız 
kontrol devreleri.

14
00:02:13,200 --> 00:02:18,000
Bu videoda iki tane Spark devremiz olduğunu 
varsayıyorum sol ve sağ olmak üzere.

15
00:02:18,100 --> 00:02:27,900
Sol spark sol taraftaki motorları sağ spark 
ise sağ taraftaki motorları PWM ile kontrol 
edecek

16
00:02:28,000 --> 00:02:38,000
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.

17
00:02:38,100 --> 00:02:42,900
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.

18
00:02:43,000 --> 00:02:55,600
Evet aynısını sol ve sağ olmak üzere iki 
kere tanımlıyoruz bunlar şasimizi kontrol 
edecek hız kontrol devreleri.

19
00:02:55,700 --> 00:03:28,000
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.

20
00:03:28,100 --> 00:03:51,100
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.

21
00:03:52,900 --> 00:04:16,900
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.

22
00:04:17,000 --> 00:04:21,800
Aynısını sağ motora da yaptıktan sonra ona 
farklı bir port yazmayı unutmuyoruz.

23
00:04:21,900 --> 00:04:42,500
Fakat doğru portları kullanmanın daha doğru 
bir yolu var bunun için ise RobotMap adlı 
dosyaya geliyoruz

24
00:04:42,600 --> 00:04:54,400
Ben kendim RobotMap i kullanmayı pek sevmesem 
de gerçekten işe yarıyor

25
00:04:54,500 --> 00:05:20,200
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

26
00:05:20,300 --> 00:06:03,400
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.

27
00:06:03,500 --> 00:06:10,800
Buraya daha sonradan istediğimiz kadar değer 
ekleyebiliriz

28
00:06:10,900 --> 00:06:27,200
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

29
00:06:27,300 --> 00:06:45,900
Daha sonra ise drivebase dosyamıza geri gelerek 
numarayı yazdığımız yere numara yerine benim 
yazdığımızı yazıyoruz

30
00:06:46,000 --> 00:07:14,000
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.

31
00:07:14,100 --> 00:07:18,900
Bu özellik çok fazla parçanız olup numaralandırmanız 
gereken çok şey olunca gerçekten hayatınızı 
kolaylaştırabilir.

32
00:07:19,000 --> 00:07:54,700
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

33
00:07:54,800 --> 00:08:07,800
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.

34
00:08:07,900 --> 00:08:25,900
Bu metod ile yapmak istediğimiz hem robotun 
sol hem de sağ tarafında güç vererek hareket 
etmesini sağlamak

35
00:08:26,000 --> 00:08:44,900
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.

36
00:08:45,000 --> 00:08:49,800
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.

37
00:08:49,900 --> 00:08:54,700
Sol taaraf için yaptıktan sonra aynısını 
sağ taraf için de yapıyoruz

38
00:08:54,800 --> 00:09:06,000
Peki biz neden bunu bir metodun içinde yapıyoruz 
diye soracak olursanız

39
00:09:06,100 --> 00:09:20,100
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

40
00:09:20,200 --> 00:09:25,000
bir değişkene bağlı yazıp sonra değişkene 
sayıyı yazmanız sizin için daha kolay olacaktır.

41
00:09:25,100 --> 00:09:36,500
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

42
00:09:36,600 --> 00:09:41,400
Ve işte bu kadar artık karşınızda bir alt 
sistem var

43
00:09:41,500 --> 00:09:48,000
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

44
00:09:48,100 --> 00:09:50,900
İzlediğiniz için teşekkürler sonraki bölümde 
görüşmek üzere.

