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
0
0
801

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.

Buna Benzer Yazılar Göster !
Daha Fazlasını Yükle - Umut Kazanç
Daha Fazla Göster -  Raspberry Pi

Bir Cevap Yazın

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

Bak Bakalım ?

Raspberry Pi Zero W ve Web Cam ile IP Kamera Yapımı

Merhaba Arkadaşlar; Bu uygulamada sizlere raspberry pi ile ip camera yapımından bahsedeceğ…