Помогите с кодом

Тема в разделе "Raspberry Pi", создана пользователем Vitoz_aspirin, 19 июн 2019.

  1. Vitoz_aspirin

    Vitoz_aspirin Нуб

    Задача такая, при нажатии кнопки (замыкая контакты) в ось посылается сигнал с присвоением этому нажатию значения кнопки как с клавиатуры. Есть виртуальное приложение которое управляется с клавиатуры. Задействовать 24 кнопки при нажатии их будет посылаться сигнал на приложение заменяя стандартную клавиатуру.
     
  2. parovoZZ

    parovoZZ Гуру

    А вопрос где?
     
  3. Daniil

    Daniil Гуру

    леонардо/нео должна это уметь
     
  4. NikitOS

    NikitOS Король шутов Администратор

    ТС хочет это от RPi получить :)
     
    Daniil нравится это.
  5. Vitoz_aspirin

    Vitoz_aspirin Нуб

    Вопрос:как написать код для кнопки, чтоб при нажатии имитировался сигнал с клавиатуры
     
  6. Vitoz_aspirin

    Vitoz_aspirin Нуб

    Raspberry Pi чтоб это делал
     
  7. NikitOS

    NikitOS Король шутов Администратор

    Вы хотите чтобы RPi эмулировала клавиатуру для какого-то устройства? (ПК, смартфон..)
     
  8. Vitoz_aspirin

    Vitoz_aspirin Нуб

    Да. Код есть но при подключении он зацикливает нажатие определённой клавиши
     
  9. NikitOS

    NikitOS Король шутов Администратор

    Код, конечно же, Вы нам не покажете, верно?
     
  10. Vitoz_aspirin

    Vitoz_aspirin Нуб

    from RPi import GPIO
    from time import sleep
    from subprocess import Popen, PIPE

    GPIO.setmode(GPIO.BCM)
    GPIO.setup(14, GPIO.IN)
    KEYu_sequence = '''key U
    '''
    def keypress(sequence):
    p = Popen(['xte'], stdin=PIPE)
    p.communicate(input=sequence)
    try:
    while True:
    if (GPIO.input(14)==True)
    keypress(KEYu_sequence)
    sleep(0.5)
    except KeyboardInterrupt:
    GPIO.cleanup()
     
  11. NikitOS

    NikitOS Король шутов Администратор

    Читаем закрепленное сообщение и исправляем ошибки
     
  12. Vitoz_aspirin

    Vitoz_aspirin Нуб

    так вот он постоянно прописывает букв, даже просто к 14 контакту подключен провод. чуть пошевелишь и опять прописывает. а нужно при замыкании на кнопку
     
  13. NikitOS

    NikitOS Король шутов Администратор

    Пока ошибки в предыдущем сообщении не исправите - помощи не будет
     
  14. Vitoz_aspirin

    Vitoz_aspirin Нуб

    from RPi import GPIO
    from time import sleep
    from subprocess import Popen, PIPE

    GPIO.setmode(GPIO.BCM)
    GPIO.setup(4, GPIO.IN)
    GPIO.setup(14, GPIO.IN)
    GPIO.setup(15, GPIO.IN)
    GPIO.setup(18, GPIO.IN)
    GPIO.setup(17, GPIO.IN)
    GPIO.setup(27, GPIO.IN)
    GPIO.setup(22, GPIO.IN)
    GPIO.setup(23, GPIO.IN)
    GPIO.setup(24, GPIO.IN)
    GPIO.setup(10, GPIO.IN)
    GPIO.setup(9, GPIO.IN)
    GPIO.setup(25, GPIO.IN)
    GPIO.setup(11, GPIO.IN)
    GPIO.setup(8, GPIO.IN)
    GPIO.setup(7, GPIO.IN)
    GPIO.setup(5, GPIO.IN)
    GPIO.setup(6, GPIO.IN)
    GPIO.setup(12, GPIO.IN)
    GPIO.setup(13, GPIO.IN)
    GPIO.setup(19, GPIO.IN)
    GPIO.setup(16, GPIO.IN)
    GPIO.setup(26, GPIO.IN)
    GPIO.setup(20, GPIO.IN)
    GPIO.setup(21, GPIO.IN)
    KEYz_sequence = '''key Z
    '''
    KEYs_sequence = '''key S
    '''
    KEYx_sequence = '''key X
    '''
    KEYd_sequence = '''key D
    '''
    KEYc_sequence = '''key C
    '''
    KEYv_sequence = '''key V
    '''
    KEYg_sequence = '''key G
    '''
    KEYb_sequence = '''key B
    '''
    KEYh_sequence = '''key H
    '''
    KEYn_sequence = '''key N
    '''
    KEYj_sequence = '''key J
    '''
    KEYm_sequence = '''key M
    '''
    KEYq_sequence = '''key Q
    '''
    KEY2_sequence = '''key 2
    '''
    KEYw_sequence = '''key W
    '''
    KEY3_sequence = '''key 3
    '''
    KEYe_sequence = '''key E
    '''
    KEYr_sequence = '''key R
    '''
    KEY5_sequence = '''key 5
    '''
    KEYt_sequence = '''key T
    '''
    KEY6_sequence = '''key 6
    '''
    KEYy_sequence = '''key Y
    '''
    KEY7_sequence = '''key 7
    '''
    KEYu_sequence = '''key U
    '''
    def keypress(sequence):
    p = Popen(['xte'], stdin=PIPE)
    p.communicate(input=sequence)
    try:
    while True:
    if (GPIO.input(21)==True):
    keypress(KEYz_sequence)
    sleep(0.5)
    if (GPIO.input(20)==True):
    keypress(KEYs_sequence)
    sleep(0.5)
    if (GPIO.input(16)==True):
    keypress(KEYx_sequence)
    sleep(0.5)
    if (GPIO.input(26)==True):
    keypress(KEYc_sequence)
    sleep(0.5)
    if (GPIO.input(19)==True):
    keypress(KEYv_sequence)
    sleep(0.5)
    if (GPIO.input(13)==True):
    keypress(KEYg_sequence)
    sleep(0.5)
    if (GPIO.input(6)==True):
    keypress(KEYb_sequence)
    sleep(0.5)
    if (GPIO.input(5)==True):
    keypress(KEYh_sequence)
    sleep(0.5)
    if (GPIO.input(12)==True):
    keypress(KEYn_sequence)
    sleep(0.5)
    if (GPIO.input(7)==True):
    keypress(KEYj_sequence)
    sleep(0.5)
    if (GPIO.input(8)==True):
    keypress(KEYm_sequence)
    sleep(0.5)
    if (GPIO.input(25)==True):
    keypress(KEYq_sequence)
    sleep(0.5)
    if (GPIO.input(11)==True):
    keypress(KEY2_sequence)
    sleep(0.5)
    if (GPIO.input(9)==True):
    keypress(KEYw_sequence)
    sleep(0.5)
    if (GPIO.input(10)==True):
    keypress(KEY3_sequence)
    sleep(0.5)
    if (GPIO.input(24)==True):
    keypress(KEYe_sequence)
    sleep(0.5)
    if (GPIO.input(23)==True):
    keypress(KEYr_sequence)
    sleep(0.5)
    if (GPIO.input(22)==True):
    keypress(KEY5_sequence)
    sleep(0.5)
    if (GPIO.input(27)==True):
    keypress(KEYt_sequence)
    sleep(0.5)
    if (GPIO.input(17)==True):
    keypress(KEY6_sequence)
    sleep(0.5)
    if (GPIO.input(18)==True):
    keypress(KEYy_sequence)
    sleep(0.5)
    if (GPIO.input(15)==True):
    keypress(KEY7_sequence)
    sleep(0.5)
    if (GPIO.input(14)> 1):
    #while (GPIO.input(14)!= False)
    keypress(KEYu_sequence)
    sleep(0.5)
    if (GPIO.input(4)==True):
    keypress(KEYd_sequence)
    sleep(0.5)
    except KeyboardInterrupt:
    GPIO.cleanup()
     
  15. Vitoz_aspirin

    Vitoz_aspirin Нуб

    вот весь код со всеми нужными клавишами. 1 при копировании что то прошло не так
     
  16. Vitoz_aspirin

    Vitoz_aspirin Нуб

    хотя бы для 1 клавиши а там я сам
     
  17. parovoZZ

    parovoZZ Гуру

    @BAR__MEN гляди, какой пас тебе прилетел! @BAR__MEN Твой выход!
     
    NikitOS нравится это.
  18. NikitOS

    NikitOS Король шутов Администратор

    Хотите блокировку на день?
    Если нет - прочитайте закрепленное сообщение в разделе и исправьте ошибкт
     
  19. Daniil

    Daniil Гуру

    Воспользуйтесь тегами, пожалуйста. Читать неотформатированный код больно.
     
  20. NikitOS

    NikitOS Король шутов Администратор

    ТС считает, что мы и так поймем.
    Он даже в ту тему не заходил