2017-03-05 31 views
0

我想用Pygame和Python 2.7来控制连接到Raspberry Pi的Roomba。我通过Putty连接到Pi并通过Putty控制台进行控制。 我遇到的问题是我无法得到一个Pygame显示器来显示,Pygame键盘输入只在Pygame屏幕有焦点时才起作用。代码运行时只有打开窗口,Putty的控制台就在那里。有没有办法以这种方式打开Pygame窗口?Pi上运行的Pygame通过腻子,没有屏幕,没有输入

我有不使用Pygame的工作代码,但它使用getch进行输入,因此您只能通过传入字符切换移动,当您停止按住该键时无法使其停止移动。

这是我在那里我只是试图让Pygame的做任何事情基本代码时,我按一个键:

import pygame, sys 
from pygame.locals import * 

pygame.init() 

screen = pygame.display.set_mode((600, 400)) 
pygame.display.flip() 

while 1: 
key=pygame.key.get_pressed() 
if key[pygame.K_w]:print'w' 

for event in pygame.event.get(): 
    if event.type == pygame.QUIT: 
     sys.exit() 
    elif event.type == KEYDOWN and event.key == K_ESCAPE: 
     sys.exit() 
    elif event.type == KEYDOWN and event.key == K_s: 
     print's' 

回答

0

这听起来像你需要运行pygame的“无头”:

http://pygame.org/wiki/HeadlessNoWindowsNeeded

import os 
import pygame.display 

os.environ["SDL_VIDEODRIVER"] = "dummy" # or maybe 'fbcon' 
pygame.display.init() 
screen = pygame.display.set_mode((1,1)) 

这个答案可能是太有用:Pygame headless setup

请注意,这些要求将键盘直接连接到Raspberry Pi本身 - 而不是您正在运行PuTTY的计算机。

如果这是你真正想要的东西,在这里的做法可能是有用的:Pygame through SSH does not register keystrokes (Raspberry Pi 3)

+0

我已经试过这和(我只是试图再次,现在的好办法)。即使这样,当我按下按键时,发生的一切都是他们输入到Putty的控制台中。我无法让按键事件继续发射。 – Bonzai

+0

Ooooooh,我现在明白了 - 这是因为它是PuTTY(SSH)。我敢打赌,如果你将键盘连接到RPi的USB端口,它就可以工作。我会看看是否有什么可以做的远程键盘输入。 – glennji

+0

否则,我认为你需要通过另一个进程传递密钥ala http://stackoverflow.com/questions/38907681/pygame-through-ssh-does-not-register-keystrokes-raspberry-pi-3#38908145 – glennji