使用python3

时间:2016-08-30 17:21:36

标签: python-3.x bluetooth controller pygame

我想制作一个利用Nintendo wii遥控器进行控制的程序。它通过蓝牙连接到我的电脑。如何让python识别这个控制器并在程序中使用它? 听到python-only解决方案和pygame解决方案会很有趣。

1 个答案:

答案 0 :(得分:0)

假设您正在使用Windows,我首先使用Julian Loehr's wiimote gamepad驱动程序将其识别为游戏手柄。然后我使用pygame的操纵杆库来检测它,并使用轴和按钮检查。

此代码可帮助您入门:

import pygame
from time import sleep

pygame.init()

try:
    j=pygame.joystick.Joystick(0)
except pygame.error: # This bit doesn't seem to work properly.
    print("Joystick not connected.")

j.init()

while 1:
    pygame.event.pump()

    if round(j.get_axis(0))== -1: #Up key when holding it vertically
        #do something
    elif round(j.get_axis(0))== 1: #Down key
        #something else
    elif round(j.get_axis(1))== -1: #Right
        #something
    elif round(j.get_axis(1))== 1: #Left
        #something

    if j.get_button(0): # Button 1
        #something
    elif j.get_button(1): #2
        #something
    elif j.get_button(2): #A
        #something
    elif j.get_button(3): #B
        #something
    elif j.get_button(4): #Plus
        #something
    elif j.get_button(5): #Minus
        #something
    elif j.get_button(6): #Home
        #something
    else:
        pass

如果您使用的是linux,那么如果您使用的是python2,可以查看cwiid。如果你使用python 3,你可以使用终端的bluetoothctl进行连接,然后使用evdev来读取密钥和加速度计事件。