Voici quelques mon code: (classe principale)auto '/ classess sur RPi
import RPi.GPIO as GPIO
import os
import pigpio
import subprocess
from time import sleep
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
pigpio.exceptions = False
pi = pigpio.pi()
class FORWARD(object):
def __init__(self):
self.GPIO = GPIO
self.GPIO_TRIGGER = GPIO_TRIGGER
self.GPIO_ECHO = GPIO_ECHO
def setup():
ENGA = 4
ENGB = 17
ENABLEA = 23
ENABLEB = 24
GPIO.setup(ENGA, GPIO.OUT)
GPIO.setup(ENGB, GPIO.OUT)
GPIO.setup(ENABLEA, GPIO.OUT)
GPIO.setup(ENABLEB, GPIO.OUT)
GPIO_TRIGGER = 14
GPIO_ECHO = 11
def frwd(self):
GPIO.setup(GPIO_TRIGGER, GPIO.OUT)
GPIO.setup(GPIO_ECHO, GPIO.OUT)
GPIO.output(ENABLEB, True)
GPIO.output(ENABLEA, True)
GPIO.output(ENGA, False)
GPIO.output(ENGB, False)
et sec. fichier:
from ctrl import FORWARD
run = FORWARD()
run.setup()
run.frwd()
Et voici ma question: Pourquoi cela ne fonctionne pas? Je reçois l'erreur avec les noms globaux:
Traceback (most recent call last):
File "go.py", line 2, in <module>
run = FORWARD()
File "/root/ctrl.py", line 22, in __init__
self.GPIO_TRIGGER = GPIO_TRIGGER
NameError: global name 'GPIO_TRIGGER' is not defined
Mon point est - je veux juste faire une fonction « setup » dans lequel je définirai sorties PINS et GPIO, alors je veux définir plusieurs méthodes (par exemple - arrière, arrêt, etc.). Alors, qu'en est-il de ces selfs ou comment devrait-il écrire?
Cordialement, Maciej