2013-10-09 109 views
0

HIHO, 我試圖讀取貼在我的樹莓派這個python腳本的USB搖桿:問題與操縱桿對象蟒蛇

import pygame 
pygame.init() 
print pygame.joystick.get_init() 
print pygame.joystick.get_count() 
j = pygame.joystick.Joystick(0) 
print j 
j.init() 
print j.get_init() 
print j.get_id() 
for i in range(0, j.get_numaxes()): 
     j.get_axis(i) 

pygame.quit() 

我得到的作爲輸出是這樣的:

1 
1 
<Joystick object at 0xb6cb2120> 
1 
0 
SDL_JoystickGetAxis value:0: 
SDL_JoystickGetAxis value:0: 
SDL_JoystickGetAxis value:0: 
SDL_JoystickGetAxis value:0: 

我不知道爲什麼。

的值不應該是0。

回答

0

SDL_這些線由SDL生產。它們是由調試選項引起的,該選項仍然存在於生成的庫中,我不知道爲什麼。

然而,實際打印軸,你應該寫

print j.get_axis(i)

,而不是

j.get_axis(i)

最後,一定要得到正確的價值觀,你應該打印值在一個循環中(例如每秒)。

for j in range(10): 
    for i in range(0, j.get_numaxes()): 
     print j.get_axis(i) 
     time.sleep(1) 
+0

現在的輸出是 SDL_JoystickGetAxis值:0: 0.0 SDL_JoystickGetAxis值:0: 0.0 SDL_JoystickGetAxis值:0: 0.0 SDL_JoystickGetAxis值:0: 0.0 SDL_JoystickGetAxis值:0: 0.0 SDL_JoystickGetAxis值:0: 0.0 SDL_JoystickGetAxis值:0: 0.0 SDL_JoystickGetAxis值:0: 0.0 等 –

+0

我並不真正瞭解樹莓,但是對於我自己的腳本,因爲我沒有顯示控制檯,所以我使用pySide顯示軸值,將所有SDL_調試信息留下。 你應該尋找一種方式來顯示值,而不是通過控制檯。 – user2858494