Что не так с моим кодом python 2, который включает пульт wii, который активирует зуммер через GPIO на Raspberry Pi Zero W? - PullRequest
0 голосов
/ 28 мая 2020

Вот мой 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

Может ли кто-нибудь помочь? Заранее спасибо

1 Ответ

0 голосов
/ 28 мая 2020

Я думаю, вам следует инициализировать переменную wm перед использованием этой переменной в функции. Эта ошибка связана с «Глобальное имя не определено»

...