Ana Sayfa Raspberry Pi QT Creator ve WiringPi ile Raspberry Pi de PWM kontrol

QT Creator ve WiringPi ile Raspberry Pi de PWM kontrol

9 min read
2
0
7,514

Merhaba Arkadaşlar;

Bu yazımda sizlere QT ile nasıl görsel form oluşturulur ve wiringPi kütüphanesi nasıl eklenir onları anlatacağım.

Daha önceden Netbeans IDE ile konsol tipi uygulama hazırlamıştık. Tabi netbeans e ilerleyen yazılarımda devam edeceğim. Fakat bazen bize masaüstü görsel form olan uygulamalarda gerekli oluyor. Bunları windowsta Visual Studio ile yaparız fakat Linux tabanlı bir işletim sisteminde çalışmaz. Bunun için sizlere QT Creator den bahsedeceğim. Bende sizlerle uygulama yaparak öğreneceğim. İlk olarak çok kanallı PWM ile başlamak istedim. Amaç form hazırlamak ve nesneleri birbirine bağlamak. WiringPi nin Software PWM ile 5 kanal led  kontrol edeceğiz, isterseniz 3 kanalına RGB led bağlayabilirsiniz.

ilk önce QT Creator kurulumu ile başlayalım.

  • sudo nano /etc/apt/sources.list dosyasını açarak en alt satıra bunları ekliyoruz ve kaydedip çıkıyoruz.
    deb http://twolife.be/raspbian/ wheezy main backports
    deb-src http://twolife.be/raspbian/ wheezy main backports
  • sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-key 2578B775   Install the required key
  • Qt5 and esoteric requirements installed
    sudo apt-get update
    sudo apt-get install qt5-default qt5-qmake libegl1-mesa libgles2-mesa
    sudo apt-get install qt5-qmake
    sudo apt-get install qtcreator

Kurulum işlemleri bittikten sonra QT Creator u açabiliriz.

İlk önce Raspberry Pi yi eklememiz gerekiyor. Bunun için Tools -> Options açarak, Build & Run seçeneğinden Kits sekmesini seçiyoruz.

Name kısmına vereceğiniz ismi yazabilirsiniz. Daha sonra altta yer alan Compiler seçeneğinin aktif olmadığını göreceksiniz. Sağındaki Manage… e bastığınızda karşınıza aşağıdaki ekran gelecektir.

Çıkan ekranda ADD -> GCC seçip Apply ve OK dedikmi Pi miz eklenmiş olacaktır artık yeni projeye geçebiliriz.

New Project e tıkladığımızda çıkan ekranda resimdeki gibi seçip ilerki sayfaya geçeceğiz.

Bu kısımda ise projemizin adını ve yolunu seçip ileri sayfaya geçtiğimizde eklediğimiz pi yi seçiyoruz.

Daha sonraki ekranda dosya isimlerini değiştirmeden next e bastığımızda karşımıza boş bir proje açılacaktır.

Sol menüden dosyalarımızı göreceksiniz. Buradan mainwindow.ui yi seçip ilk önce form nesnelerini hazırlayacağız daha sonra kodlamaya geçeceğiz.

Karşımıza boş bir form gelecektir. ilk önce PWM kontrolünü sağlamak için ekrana 5 adet Vertical Slider ekleyeceğiz

Vertical Slider default olarak value değeri 0-99 gelmektedir. zaten pwn range kontrolünü de 100 yapacağımız için bu nesnelerin ayarlarını yapmaya gerek kalmayacak. Şimdi gelelim kodlamaya, 1. vertical slider a sağ tıklayıp çıkan menüde Go to slot a bastığımızda aşağıdaki ekran gelecektir. Biz yazılımda değiştiğinde bir şey yapmasını istiyoruz o yüzden valueChanged(int) ı seçip OK yi tıklıyoruz.

Burada kodlama ekranına otomatik geçiş yapacaktır ve bizi seçtiğimiz fonksiyonun içerisine götürecektir. Buraya yapacağımız komutları yazacağız fakat ondan önce wiringPi yi QT ye eklememiz gerekmektedir.

Sol taraftan .pro dosyasını açarak en alt satıra bu kodları ekleyeceğiz

LIBS += -L/usr/local/lib -lwiringPi
LIBS += -L/usr/local/lib -lwiringPiDev
INCLUDEPATH += /usr/local/include

 

Daha sonra mainwindow.cpp yi açarak h dosyalarımızı include edelim ve tanımlamalarımızı yapalım

#include <wiringPi.h>
#include <softPwm.h>

#define LED1 21
#define LED2 22
#define LED3 23
#define LED4 24
#define LED5 25

#define PWMrange 100

Daha sonra portları ayarlamak için aşağıdaki kodları ui->setupUi(this); nin altına ekleyelim. Yani yükleme sırasında portlar init edilecek.

//sistemden port ayarlanir
system(“gpio mode 0”);
system(“gpio export 21 out”);
system(“gpio export 22 out”);
system(“gpio export 23 out”);
system(“gpio export 24 out”);
system(“gpio export 25 out”);

wiringPiSetup();

//pwm tanitilir
softPwmCreate(LED1,0,PWMrange);
softPwmCreate(LED2,0,PWMrange);
softPwmCreate(LED3,0,PWMrange);
softPwmCreate(LED4,0,PWMrange);
softPwmCreate(LED5,0,PWMrange);

Şimdi yukarıda oluşturduğumuz VerticalSlider fonksiyonun içerisinde ledlere slider in value değerini göndereceğiz. Bu işlemleri 5 led için yapacağız.

void MainWindow::on_verticalSlider_valueChanged(int value)
{
softPwmWrite(LED1,value);
}

void MainWindow::on_verticalSlider_2_valueChanged(int value)
{
softPwmWrite(LED2,value);
}

void MainWindow::on_verticalSlider_3_valueChanged(int value)
{
softPwmWrite(LED3,value);
}

void MainWindow::on_verticalSlider_4_valueChanged(int value)
{
softPwmWrite(LED4,value);
}

void MainWindow::on_verticalSlider_5_valueChanged(int value)
{
softPwmWrite(LED5,value);
}

Kodlama kısmı bitmiştir, programımızı derleyip çalıştırabiliriz. Bunun için sol alttaki play tuşuna bastığımızda hatamız yok ise program derlenip açılacaktır.

 

İlerleyen konularla görüşmek üzere, Kolay gelsin.

İlerleyen konularla görüşmek üzere, Kolay gelsin.

  • Raspberry Pi IP Adresi Öğrenme

    Merhaba Arkadaşlar, bu yazımızda Raspberry Pi’nin IP adresini bulmayı göstereceğim. Raspbe…
  • Raspberry Pi İlk Kurulum

    Merhaba Arkadaşlar, bu yazımızda Raspberry Pi’ye Raspbian İşletimi Sistemi kurulumunu anla…
  • Raspberry Pi Giriş

    Raspberry Pi Nedir ? Raspberry Pi, Birleşik Krallıklardaki okullarda bilgisayar bilimini ö…
Buna Benzer Yazılar Göster !
Daha Fazlasını Yükle - Umut Kazanç
  • Raspberry Pi IP Adresi Öğrenme

    Merhaba Arkadaşlar, bu yazımızda Raspberry Pi’nin IP adresini bulmayı göstereceğim. Raspbe…
  • Raspberry Pi İlk Kurulum

    Merhaba Arkadaşlar, bu yazımızda Raspberry Pi’ye Raspbian İşletimi Sistemi kurulumunu anla…
  • Raspberry Pi Giriş

    Raspberry Pi Nedir ? Raspberry Pi, Birleşik Krallıklardaki okullarda bilgisayar bilimini ö…
Daha Fazla Göster -  Raspberry Pi

2 Yorumlar

  1. Sami

    9 Mayıs 2018 at 21:47

    LIBS += -L/usr/local/lib -lwiringPi

    Bu kütüphaneyi bulamıyorum ki
    İnclude wiringpi.h tanımlanmıyor bir tek ben mi karşılaştım bı problemle hiçbiyerde yok

    Reply

  2. Fuat

    14 Eylül 2019 at 19:12

    Merhaba, Öncelikle yazılarınız için çok minnettarım bir çok problemimi buradan çözdüm.

    Bir sorun ile karşılaştım yardımcı olursanız sevinirim.

    Raspberry pi ModelB+ kullanıyorum. Qt Creator programınızı diğer yazınızdaki gibi yükledim fakat hem bu yazınızdaki hemde diğer yazıdaki uygulamayı raspberry de denediğimde aynı hatayı alıyorum. Play tuşuna bastığımda çalışmıyor.

    Aldığım hata mesajı: Failed to start program. Path or permissions wrong?

    Bu konuda yardımcı olur musunuz? Öğretmenim öğrencilerime söz verdim pazartesi adc dac leri Raspberry de anlatacağım diye 🙁

    Reply

Sami için bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bak Bakalım ?

NodeMCU : DS18B20 ile Sıcaklık Web Server

Merhaba Arkadaşlar, Bu uygulamada sizlere ESP8266 da LUA ile DS18b20 yi okuyacağım.. Bunun…