19 Haziran 2018 Salı

ORANGE PI C++ PROGRAMLAMA

Orange Pi C++ Programlama

Bu tarz mini bilgisayarlar için en bilindik C++ kütüphanesi WiringPi' dir.  Bu kütüphaneyi yükleyerek pinleri kullanabiliriz. Ancak WiringPi Orange pi üzerinde tam anlamıysa çalışmaz. Bu yüzden bu kütüphanenin Orange pi' ye uyarlanmış olan halini kullanacağız. Buna da WiringOP kütüphanesi demişler. https://github.com/zhaolei/WiringOP linkinden WiringOP kütüphanesi kodlarına göz atabilirsiniz. Şimdi Orange pi' ye bu kütüphanenin nasıl kurulduğunu bakalım.

sudo git clone https://github.com/zhaolei/WiringOP.git -b h3 komutu ile dizini depodan çekelim.(Orange pi' ye indirelim.) 

WiringOP adlı bir klasör oluşturulmuş olacak. Bu klasörün için girip yüklemeyi başlatmamız için ilk önce yükleme dosyasını çalıştırma iznimizin olması lazım. Daha sonra yükleme işlemi başlatarak WiringOP kütüphanesini yüklemiş oluyoruz.

cd WiringOP

sudo chmod +x  ./build

sudo  ./build


Yükleme tamamlandığında gpio readall komutu ile pin detaylarını görebiliriz.





Görüldüğü üzere pinlerin birden fazla ismi var. Örneğin 7. fiziksel pin aynı zamanda 6. BCM pini ve 7.wPi oluyor. Biz kod içinde pin tanıtırken wPi üzerinden işlem yaparız.

Blink

Yazılımda ekrana "Merhaba Dünya" yazdırmanın elektronikteki karşılığı led yaktırmaktır. Bu yüzden geleneği devam ettirelim ve blink uygulaması yani ledin belli bir süre açık belli bir süre kapalı olduğu ve bunun sürekli devam ettiği uygulama ile başlangıç yapalım.

Burada biraz ledlerden bahsetmek istiyorum. Ledler hobi elektroniğinde sıkça kullanılan parçalardan biri ve ledler dirençlerle birlikte kullanılıyor. Bunun nedeni ise ledlerin çalışma aralıkları. Ledlerin renkten renge farklılık göstermekle beraber bir gerilimi vardır ve ortalama 10-30 mA arası bir akımda çalışabilmektedirler. Özellikle 25-30 mA aralığında  çoğu ledin  yüksek bir ışık verebilmesine rağmen ömrü düşecektir. Bu yüzden ledlerin ideal çalışma aralıkları aşağıdaki gibidir.

  • kırmızı 2 V 20 mA 
  • sarı 2 V 20 mA
  • yeşil 3 V 20 mA
  • mavi beyaz 2.2 V 30 mA
Şimdi gelelim direnç hesabına. Örneğin ben 5 V besleme ile yeşil bir led besleyeceğim. 

Direnç= (Besleme gerilimi- Led gerilimi) / Led üzerinden geçmesi gereken ideal akım

R = 5 V-3 V/20 mA = 100 ohm 

Güç = 5 V*20 mA = 0.10 watt 

Yani 100 ohm 0.10 watt bir direnç kullanabiliriz.






Kodumuza baktığımızda wiringPi 0 pinini kullan diyor fakat böyle bir pin yok. Bu yüzden biz wPi 1 numaralı pini yani 12. fiziksel pini kullanıyoruz.

Kodu inceleyecek olursak wPi 1 nolu pine Led ismi veriliyor ve bu pin çıkış olarak ayarlanıyor daha  sonra ekrana " Raspberry Pi blink " yazısı yazdırılıyor ve sonrasında asıl iş olan ledin bir yanıp bir sönmesi işlemi kodlarla ayarlanıyor. Led 500 ms yanık kalıyor 500 ms ise sönük kalıyor ve bu sonsuz döngü içinden tekrarlanıyor.


Devreyi de yukarıdaki şekilde kurduğumuza göre artık kodu derleyip çalıştırmamız gerek. Derleme için gcc derleyicisini kullanıyoruz. 

sudo gcc -o blink blink.c  -lwiringPi  -lpthread  komutu ile derliyoruz. Burada komutu kopyalamak yerine tekrardan elle yazmanızı öneririm. Bazen kopyala yapıştır yaptığımda her şey aynı olmasına rağmen hata alıyorum.

sudo ./blink  komutu ile kodumuzu çalıştırıyoruz.




Okuduğunuz için teşekkür ederim. Aklınıza takılan bir soru veya karşılaştığınız bir sorun olduğunda yorumlarda belirtebilirsiniz. Burada eksik olarak anlattığımı düşündüğünüz veya sizlerin gerekli olarak gördüğünüz bilgileri yine yorumlarda yazarsanız, bundan herkesin faydalanmasını sağlamış olursunuz. Herkese iyi çalışmalar.

Kaynakça:

Hiç yorum yok:

Yorum Gönder

Öne Çıkan Yayın

ORANGE PI PYTHON UART

ORANGE PI PYTHON UART Python kurulum  yazısında Orange pi'de Python konusuna giriş yapmıştık. Daha sonra  Python Gpio  yazısında gir...