0

这是我正在使用的python代码。我正在尝试使用wii遥控器来触发蜂鸣器。我认为这对我的旧 wii 遥控器来说会是一个有趣的用途。与蜂鸣器交互的代码运行良好,因为我使用了一个示例脚本对其进行了测试。但是,当我尝试运行它时,我不断收到这个错误(见底部)。我是 python 新手,不胜感激。

   import cwiid
   from gpiozero import LED
   import time
   import os

   Buzzer1 = LED(17)

   Buzzer2 = LED(27)

   def ConnectRemote():

        os.system("rfkill unblock bluetooth")

        print 'Press 1+2 On The Remote...'

        global wm

        wm = wiid.Wiimote()

        print 'Connection Established!\n'
        wm.led = 1
        wm.rumble = 1
        time.sleep(0.25)
        wm.rumble = 0
        time.sleep(0.5)
        wm.rpt_mode = cwiid.RPT_BTN

   def TryToConnect():

        while True:

            ConnectRemote()
            break

   while True:

        buttons = wm.state['buttons']

        #shutdown function using plus and minus buttons
        if (buttons - cwiid.BTN_PLUS - cwiid.BTN_MINUS == 0):
                print '\nClosing Connection To Wiimote'
                wm.rumble = 1
                time.sleep(0.25)
                wm.rumble = 0
                os.system("rfkill block bluetooth")
                TryToConnect()

    if (buttons & cwiid.BTN_A):
            print 'Buzzer On'
            Buzzer1.on()
            Buzzer2.on()
    else:
            Buzzer1.off()
            Buzzer2.off()

但我不断收到错误

    Traceback (most recent call last):
    File "WiimoteLEDs.py", line 36, in <module>
    buttons = wm.state['buttons']
    NameError: global name 'wm' is not defined

任何人都可以帮忙吗?提前致谢

4

1 回答 1

0

wm我认为你应该在函数中使用这个变量之前初始化变量。此错误与“未定义全局名称”有关

于 2020-05-28T03:04:58.800 回答