Konuyu Oyla:
  • Toplam: 0 Oy - Ortalama: 0
Share Thread:
[Soru] Raspberry Pi3 Gpio dan komut gönderme
#1
Merhaba,
Gpio ya takacağım bir buton ile raspbian konsola komut göndermek istiyorum, bunu nasıl yapabileceğimle ilgili yardımcı olurmusunuz.

Saygılar
Ara
Cevapla
#2
C++ kütüphanesi olarak WiringPi kullanıyorum, gayet memnunum. 

Aşağıdaki adresten WiringPi kurulumunu Plan A'da gösterilen şekilde yapabilirsiniz.
http://wiringpi.com/download-and-install/

Daha sonra küçük bir C++ uygulaması yazarak ilgili io pin ile tetiklenen bir interrupt oluşturmak gerekecek.

Aşağıdaki örneği sitedeki örneği değiştirerek oluşturdum. Bu dosyayı buton.c olarak kaydedelim. (Kontrol etme imkanım olmadı ama çalışması lazım)
Kod WiringPi'ye göre 0.pin için geçerlidir. wiringPiISR metodundaki ilk parametre ile bunu kontrol edebilirsiniz.

Kod:
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h>
#include <wiringPi.h>

void myInterrupt (void)
{
std::cout<<"Butona basıldı"<<std::endl;
}

int main (void)
{
 wiringPiSetup () ;
 wiringPiISR (0, INT_EDGE_FALLING, &myInterrupt) ;

for (;;)
 {

 }

return 0;
}

Yukarıdaki kodu aşağıdaki komut satırılı ile derleyip, çalıştırabilirsiniz.
Kod:
gcc -Wall -o buton buton.c -lwiringPi
sudo ./buton

Bir butona basıldığında (yalnız falling edge yani pin 0'a düşerken interrupt tetiklenecektir) myInterrupt metodu çalıştırılacaktır.
Sadece elektronik
https://melect.wordpress.com/
Ara
Cevapla
#3
çok teşekkür ederim, bugün yarın deneyip sonucunu dönerim.
Ara
Cevapla
#4
GPIO pinlerine bağladığımız bir butonun  enter tuşu işlevi görmesi mümkün müdür?
Sizce nasıl yapılabilir?  Raspi rpi3 model b de
Ara
Cevapla
#5
Merhabalar;
Enter tuşu aslında oldukca basit, önceki mesajdaki  myInterrupt  metodu icine şöyle bir kod yazmak yeterli olacaktır.
Kod:
system("xdotool key Return");
Butona basıldıgında enter tuşuna bir defa basılmış gibi olacaktır. Teoride doğru çalışan ama pratikte hiçbir işlevi olmayan bir programımız oldu.
Oysa enter tuşu yerine şöyle bir amacımız olsaydı anlamlı olurdu. "Butona bastığımızda bir video oynatsın".Şu şekilde olabilir yine myInterrupt metodu icine
Kod:
system("omxplayer /videos/videofiles.mp4");
yazmak yeterli olacaktır. Böylece isteğimizi gerçekleştirirken aynı zamanda soruya uygun olarak konsola komut göndermiş olduk.
Kolay gelsin.
Ara
Cevapla
#6
Teşekkür ederim wiringPi kütüphanesini indirdim hemen deneyeceğim.Aslında benimde yapmak istediğim buton ile bir videoyu sonsuz kere oynatmaktı.Kullanıcı sadece butona basacak ve video sürekli oynayacak.Bunun için sizce ne yapılabilir?Vlc de görüntü donuyor önerebileceğiniz başka mediaplayer var mı?(Kodi sorunsuz çalışıyor ama onunla yapılabilir mi?)
Ara
Cevapla
#7
omxplayer ile görüntüde donma olmadan video oynatabilirsiniz.
Ara
Cevapla
#8
Yukarıdaki komutları kullanarak buton yardımıyla videoyu sorunsuz oynatabiliyorum yardımlarınız için teşekkürler.Bu videoyu omxplayerda sürekli tekrar edecek şekilde nasıl oynatabilirim vlcde böyle bir mod var fakat video da kasma yapıyor.
Ara
Cevapla
#9
Sistem komutunu aşağıdaki şekilde düzenleyebilirsiniz
Kod:
system(" while true;do omxplayer /videos/videofile.mp4 ; sleep 1; done");
Ara
Cevapla
#10
https://www.izlesene.com/pvideo/raspberry-pi/9959933


çok teşekkürler

Ara
Cevapla


Hızlı Menü:


Konuyu Okuyanlar: 1 Ziyaretçi