GPIO keyboard

Başlatan mur@t, 07 Kasım 2018, 12:36:46

mur@t

Merhaba,

RaspberryPi'de, GPIO portlarını klavye gibi kullanmak istiyorum. Örneğin GPIO5'e bağlı butona bastığımda klavyedeki X tuşuna basılmış olsun. Pi'de çalışan program da bu tuşa basılmış gibi davransın.
Nette bulduklarımı denedim, uinput, pikeyd, retrogame gibi bir kaç uygulamayı denedim ama başarılı olamadım.

Ne yapmak istediğimi de yazarsam daha açıklayıcı olabilir. Mumble adında bir uygulama var (teamspeak benzeri)
klavyeden atadığım bir tuşla bas-konuş yapabiliyorum ancak ben klavye kullanmak istemiyorum.

Bu konuda öneri ve yardımlarınızı rica ediyorum.

mehmet

#1
Python ile yapılabilir;
pip? install pyautogui
pip? install Xlib
Üstteki modülleri (?) ilgili versiyon için
kurunuz. (Belki yönetici yetkisi isteyebilir.)

import pyautogui
pyautogui.hotkey("shift", "x")
şeklinde kullanabilirsiniz.

Buna göre sadece harici pinden gelen
durum kontrol edilecek ve üstte yazdığım
komut ile istenilen tuş basımı yapılmış olur.
Bunun yanı sıra bir çok fare ve diğer kontrol
seçenekleri de mevcut.

Kaynak:
https://github.com/asweigart/pyautogui
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

mur@t

cevabınız için teşekkür ederim.
pyautogui ve xlib kurulumunu yaptım ama linux ve python konusunda yeterli bilgim yok.
Bir py dosyası içine bu kodu yazıp çalıştırmam gerekiyor sanırım, peki basılan gPIO pinini nerede tanıtacağım?

mufitsozen

Alıntı yapılan: mur@t - 08 Kasım 2018, 10:47:18cevabınız için teşekkür ederim.
pyautogui ve xlib kurulumunu yaptım ama linux ve python konusunda yeterli bilgim yok.
Bir py dosyası içine bu kodu yazıp çalıştırmam gerekiyor sanırım, peki basılan gPIO pinini nerede tanıtacağım?

google python GPIO diye ararsaniz "About 4,980,000 results (0.38 seconds)" diyor
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

mur@t

Alıntı yapılan: mufitsozen - 08 Kasım 2018, 13:13:45google python GPIO diye ararsaniz "About 4,980,000 results (0.38 seconds)" diyor

ilginç, deneyeyim...

mur@t

#5
RPi'de komut satırından python'u çalıştırdığımda "import pyautogui" satırında hata alıyordum.
python3 ide ile çalıştırdığımda aşağıdaki kod çalışıyor. Atadığım "z" tuşu da basıyor.

şimdiki sorunum, bu  .py dosyasını komut satırında nasıl çalıştıracağım? (açılışta arkaplanda çalışması için)
"python button.py" şeklinde çalıştırdığımda hata veriyor. (cmd.jpg)



mport RPi.GPIO as GPIO

import time

import pyautogui


GPIO.setmode(GPIO.BCM)


GPIO.setup(23, GPIO.IN, pull_up_down=GPIO.PUD_UP) #Button to GPIO23

GPIO.setup(24, GPIO.OUT)  #LED to GPIO24


try:

    while True:

         button_state = GPIO.input(23)

         if button_state == False:

             GPIO.output(24, True)

             print('Button Pressed...')
             #pyautogui.hotkey("shift", "x")
             pyautogui.press('z')

             time.sleep(1)

         else:

             GPIO.output(24, False)

except:

    GPIO.cleanup()


volkanunal

python dosyaadi.py olarak çalıştırdığınızda python2 ile çalıştırıyor bildiğim kadarıyla default olarak python3 dosyaadi.py olarak denerseniz muhtelemen çalışacaktır.
Primum nil nocere

mur@t

Alıntı yapılan: volkanunal - 09 Kasım 2018, 12:32:53python dosyaadi.py olarak çalıştırdığınızda python2 ile çalıştırıyor bildiğim kadarıyla default olarak python3 dosyaadi.py olarak denerseniz muhtelemen çalışacaktır.

Merhaba,
aslında python3 dosyaadi.py olarak çağırıyordum ama bunu py dosyasının olduğu klasörde yapıyordum.

python3 klasöradi/dosyaadi.py yapınca çalıştı.