Takip et

OK3568-C’de libgpiod ile GPIO Kontrolü (Buildroot Linux 4.19.206)

OK3568-C’de libgpiod ile GPIO Kontrolü (Buildroot Linux 4.19.206)

Merhaba, ben Fatih Soysal. Bu makalede, Buildroot Linux 4.19.206 işletim sistemi kullanan OK3568-C geliştirme kartında libgpiod kütüphanesiyle GPIO pinlerini nasıl kontrol edebileceğinizi adım adım açıklayacağım. Öncelikle, libgpiod’un ne olduğunu ve neden kullanılması gerektiğini anlamak önemlidir. Libgpiod, GPIO pinlerine erişim sağlamak için oldukça kullanışlı ve taşınabilir bir kütüphanedir. Bu sayede, farklı platformlar arasında kodunuzu kolayca taşıyabilirsiniz.

Gerekli Kurulum Adımları

Öncelikle, OK3568-C geliştirme kartınızın Buildroot ile kurulu ve çalışır durumda olduğundan emin olun. Ardından, libgpiod kütüphanesini sisteminize kurmanız gerekmektedir. Bu genellikle paket yöneticisi aracılığıyla yapılır. Örneğin, Debian tabanlı bir sistemde apt-get install libgpiod2 komutunu kullanabilirsiniz. Bu işlemin detayları, kullandığınız Buildroot sürümüne ve dağıtımınıza bağlı olarak değişebilir. Bu aşamada karşılaşabileceğiniz sorunlar için Buildroot’un dokümantasyonuna veya ilgili forumlara başvurabilirsiniz. İşte sisteminizde libgpiod kütüphanesinin kurulumunu doğrulamak için kullanabileceğiniz bir komut:


dpkg -l | grep libgpiod

Başarılı bir kurulum sonrasında, libgpiod kütüphanesini kullanarak bir program geliştirebilirsiniz. Şimdi, bir LED’i kontrol eden basit bir C örneği gösterelim. Bu örnek, GPIO pinini çıktı olarak yapılandırıp, LED’i yakıp söndürmeyi kapsar.

Basit bir LED Kontrol Örneği

Aşağıda, bir LED’i kontrol eden basit bir C kod örneği bulunmaktadır. Bu örnekte, GPIO 4 numaralı pini kullanacağız. Ancak, bu numara sizin kartınızdaki LED’in bağlı olduğu pine göre değişebilir. Bu yüzden, kartınızın şemasına göz atmanız önemlidir. Ayrıca, kullanacağınız GPIO pininin, sisteminizde kullanılabilir olduğundan emin olmalısınız.


#include <stdio.h>
#include <stdlib.h>
#include <gpiod.h>

int main() {
    struct gpiod_chip *chip;
    struct gpiod_line *line;
    int ret;

    chip = gpiod_chip_open("/dev/gpiochip0"); //gpiochip dosyanızı kontrol edin.
    if (!chip) {
        perror("gpiod_chip_open");
        return 1;
    }

    line = gpiod_chip_get_line(chip, 4); //gpio pininizi kontrol edin.
    if (!line) {
        perror("gpiod_chip_get_line");
        gpiod_chip_close(chip);
        return 1;
    }


    ret = gpiod_line_request_output(line, "myled", 0); //0 düşük, 1 yüksek
    if (ret < 0) {
        perror("gpiod_line_request_output");
        gpiod_line_release(line);
        gpiod_chip_close(chip);
        return 1;
    }

    // LED'i yak
    gpiod_line_set_value(line, 1);
    sleep(1);

    // LED'i söndür
    gpiod_line_set_value(line, 0);
    sleep(1);


    gpiod_line_release(line);
    gpiod_chip_close(chip);

    return 0;
}

Bu kod, öncelikle gerekli kütüphaneleri içe aktarır. Daha sonra, GPIO çipini açar ve belirtilen GPIO pinini alır. Ardından, pini çıktı olarak yapılandırır ve değerini ayarlayarak LED'i yakıp söndürür. Son olarak, kaynakları serbest bırakır. Bu kodu derlemek için gcc -o led_control led_control.c -l gpiod komutunu kullanabilirsiniz. Bu kodun çalışması için, kartınıza bir LED bağlamanız ve doğru pin numarasını kullanmanız gerekmektedir. Ayrıca, kullanıcının root yetkilerine sahip olması gerekebilir.

Sonuç

Bu makalede, OK3568-C üzerinde libgpiod kütüphanesini kullanarak GPIO pinlerini kontrol etmenin temel adımlarını ve bir örnek uygulama gösterdik. Libgpiod, GPIO kontrolü için sağlam ve taşınabilir bir çözüm sunmaktadır. Daha karmaşık uygulamalar için, libgpiod'un dokümantasyonuna başvurabilirsiniz. Umarım bu makale size yardımcı olmuştur. Daha fazla bilgi ve gömülü sistemler hakkındaki diğer makalelerim için fatihsoysal.com adresini ziyaret edebilirsiniz.

Herhangi bir sorunuz veya öneriniz varsa, lütfen yorumlarda belirtin.

#Etiketler: OK3568-C, libgpiod, GPIO, Buildroot, Linux, programlama, gömülü sistemler, tutorial, C programlama, LED kontrolü


Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.