justify-content ve align-items nedir, nasıl kullanılır?

CSS hemen hemen her programlama dili gibi yıllardır durmaksızın geliştiriliyor. Bu yazımda Flex modülü ile gelmiş olan 2 özelliği nasıl kullanabileceğimizden bahsedeceğim.

Flex modülü hizalama ve bölümlendirme üzerine çok büyük yeniliklerle geldi. Bunlardan 2’si de justify-content ve align-items özellikleri. Bu iki özellik, nesnelerin yatay ve dikeyde nasıl hizalanacaklarını belirler.

justify-content

Flex özelliğine sahip olan bir kapsayıcının yatay eksende nasıl hizalanacağını ayarlar. Objeler başta mı, ortada mı, sonda mı, aralıklı mı dizileceğine karar vermemizi sağlar. Bu kararı vermek için 5 parametre kullanır:

  • flex-start: Nesneler kapsayıcının başından başlayarak dizilirler.
  • space-around: Nesneler arasında eşit boşluklar bırakılır.
  • space-between: İlk nesne başta, son nesne sonda olacak şekilde nesneler eşit olarak kapsayıcının içerisinde dizilirler.
  • center: Nesneler tam ortalı olacak şekilde hizalanır.
  • flex-end: Son nesne en sağa yaslanacak şekilde hizalanır.

align-items

Bu özellik ise justify-content‘in yatay eksende yaptığı şeyleri dikey eksende yapmaya yarar. Yine aynı şekilde hizalama işlemini dikey eksende nasıl yapmamız gerektiğine karar vermemiz gerekmektedir. Bu özellik de yine 5 parametre kullanır ve bunlardan 3 tanesi justify-content özelliği ile aynıdır.

  • flex-start: Nesneler, kapsayıcının en üstünden başlayarak dizilirler.
  • flex-end: Nesneler, kapsayıcının en altından başlayarak, yukarı doğru dizilirler.
  • center: Nesneler ortalı bir şekilde dikey olarak sıralanırlar.
  • baseline: İlk satırdaki yazı tipi göz önüne alınarak hizalanmaya başlanılır.
  • stretch: Tüm nesneler kapsayıcı yüksekliğine eşit olacak şekilde dizilirler.

Flex modülünün getirdiği özellikleri incelemek için aşağıdaki kaynaklardan yararlanabilirsiniz:

A Complete Guide to Flexbox

https://www.w3schools.com/cssref/css3_pr_flex.asp

http://fatihhayrioglu.com/yenilenmis-flex-modulu/

http://learnlayout.com/flexbox.html

https://developer.mozilla.org/en-US/docs/Web/CSS/flex?v=example

Arduino nRF24L01 ile Joystick Kontrollü Araba

Bir önceki yazımda, nRF24L01 modülünü nasıl daha kolay kullanırız ve nasıl toplu veri göndeririz onu anlatmıştım. O yazıyı yazarken aklıma, daha önce Bluetooth ile kontrol ettiğimiz aracımızı acaba nRF24L01 ve Joystick kullanarak kontrol etsem nasıl olur fikri geldi.

Aracım şase olarak zaten elimin altında duruyordu. O yüzden aracı nasıl yaptığımı bu yazıda anlatmayacağım. Aracın yapımına ve kodlara L298N Motor Sürücü Entegresi Kullanımı yazımdan ulaşabilirsiniz. Ben sadece aracın bağlı olduğu Arduino’ya bir adet modül ekledim. Diğer tarafta ise yine bir Arduino ve bir Joystick Shield kullandım. Joystick shield’in buton pinleri arka tarafında yazıyor, bu yüzden direk onları tanımlayarak başladım, ardından verilerini okuma işlemini gerçekleştirdim. Son olarak bu verileri göndereceğim dizi içerisine atarak gönderme işlemini yaptım.

Alıcı tarafında ise yapılan tek değişiklik motorların hızının gelen verilerdeki joystick verilerine göre değiştirilmesi oldu. O yüzden onu da kolaylıkla anlayacaksınızdır. Tabi joystick shield’den gelen verilerin tamamını okuyarak daha çok çeşitli şeyler yapılabilir ama ben şu an sadece örnek olması bakımından hız kontrolünü gerçekleştirdim.  Sorularınızı yorum olarak belirtirseniz elimden geldiği kadar yardımcı olmaya çalışacağım.

Kodların tamamına Github profilim üzerinden ulaşabilirsiniz.

Verici Modül Kodları:

https://gist.github.com/a74d2b6c892fc1356daa9e69db2d87b6

Alıcı Modül Kodları:

https://gist.github.com/f51be7950b2cc8187e4626151a7840bf

Arduino nRF24l01 Kablosuz Haberleşme

Arduino ile kablosuz haberleşme üzerine çalışmalar yapıyorum ve bir projemde her hangi bir ağa bağlanmadan, sadece 2 cihaz arasında (2 Arduino) haberleşmeyi sağlamam gerekti ve bunun için en uygun modülün nRF24l01 olduğuna karar verdim. Ama yaşadığım başka bir sıkıntı vardı, göndermem gereken verileri sadece karakter olarak gönderebiliyordum.

Bu sorunu çözmek için uzun araştırmalar yaptım. Ama modülün kendi örnekleri ve modül hakkında yazılan blog yazıları hem göndermem gereken mesajı bir ‘integer’ dizi olarak göndermiyor, hem de karmaşık yollar ile çözüme gitmeye çalışıyor ve bu benim işime yaramıyordu. O yüzden, okuması ve kullanması oldukça basit ve tek seferde birden fazla veriyi – tipi (int, float…) önemli değil – bir dizi halinde göndererek 2 modül arasında haberleşmeyi sağlayabileceğimiz bir hale getirdim.

Modülleri, alıcı ve verici için aynı şekilde bağlıyoruz.

Arduino nRF24L01 Modülü Bağlantısı
(Görsel: Turkcell Geleceği Yazanlar)

Bunu için öncelikle gerekli olan RF24 kütüphanesini kurmanız gerekiyor. (Kütüphaneye, Github sayfamdan ulaşabilirsiniz.)

Kodların içerisine gerekli olan açıklama satırlarını eklediğim için ayrıntılı olarak buradan açıklamayacağım.

Kodlara ve kütüphaneye Github profilim üzerinden ulaşabilirsiniz. Yaşadığınız sorunları yorum olarak belirtirseniz elimden geldiği kadar yardımcı olmaya çalışacağım.

Verici Modülünün Kodları:

https://gist.github.com/ea473be9404efc4b1b1eb7165926647a

Alıcı Modülünün Kodları:

https://gist.github.com/2aebd28bb2eda0ed538c02029565b8b3