получение SyntaxError: недопустимый синтаксис при попытке доступа к классу [закрыто]
Привет, я новичок в Python и MicroPython. Я пытаюсь получить доступ к светодиоду RGB с помощью кода, который я нашел здесь . После того, как я изменил некоторые импорты, чтобы они соответствовали моему Tiny2040, я теперь получаю эту ошибку, а затем пытаюсь мягко перезагрузить чип.
Мой main.py выглядит так:
import time
from machine import Pin
from random import randint
from rgbled import rgbled
red = 29
green = 28
blue = 27
led = rgbled(29, 28, 27)
try:
while True:
r = randint(0,255)
g = randint(0,255)
b = randint(0,255)
print("running")
led.changeto(r,g,b,0.8)
time.sleep(2)
except KeyboardInterrupt:
led.off(0.8)
led.cleanup()
и rgbled.py:
import time
import _thread
from machine
class rgbled:
def __init__(self,rpin,gpin,bpin):
self.rpin = rpin
self.gpin = gpin
self.bpin = bpin
self.freq = 100
self.setup(self.rpin,self.gpin,self.bpin,self.freq)
def setup(self, rpin, gpin, bpin, freq):
self.RED = machine.PWM(machine.Pin(rpin, machinePin.OUT)).freq(freq)
self.RED.start(0)
self.GREEN = machine.PWM(machine.Pin(gpin, machinePin.OUT)).freq(freq)
self.GREEN.start(0)
self.BLUE = machine.PWM(machine.Pin(bpin, machinePin.OUT)).freq(freq)
self.BLUE.start(0)
self.frequency = freq
self.redprev = 1
self.greenprev = 1
self.blueprev = 1
def changeto(self,redv,greenv,bluev,speed):
r = redv
g = greenv
b = bluev
if(r == self.redprev or r == 0):
rx = self.redprev + 1
else:
rx = abs(r-self.redprev)
if(g == self.greenprev or g == 0):
gx = self.greenprev + 1
else:
gx = abs(g-self.greenprev)
if(b == self.blueprev or b == 0):
bx = self.blueprev + 1
else:
bx = abs(b-self.blueprev)
rs = speed/rx
gs = speed/gx
bs = speed/bx
_thread.start_new_thread(self.changered,(r,rs))
_thread.start_new_thread(self.changegreen,(g,gs))
_thread.start_new_thread(self.changeblue,(b,bs))
def changered(self,red,speed):
if(red > self.redprev):
for x in range (self.redprev,red):
self.RED.ChangeDutyCycle(x)
time.sleep(speed)
else:
down = self.redprev - red
for x in range (0,down):
self.RED.ChangeDutyCycle(self.redprev - x )
time.sleep(speed)
self.redprev = red
def changegreen(self,green,speed):
if(green > self.greenprev):
for x in range (self.greenprev,green):
self.GREEN.ChangeDutyCycle(x)
time.sleep(speed)
else:
down = self.greenprev - green
for x in range (0,down):
self.GREEN.ChangeDutyCycle(self.greenprev - x )
time.sleep(speed)
self.greenprev = green
def changeblue(self,blue,speed):
if(blue > self.blueprev):
for x in range (self.blueprev,blue):
self.BLUE.ChangeDutyCycle(x)
time.sleep(speed)
else:
down = self.blueprev - blue
for x in range (0,down):
self.BLUE.ChangeDutyCycle(self.blueprev - x )
time.sleep(speed)
self.blueprev = blue
def on(self,r,g,b,speed):
self.setup(self.rpin,self.gpin,self.bpin,self.freq)
time.sleep(0.001)
self.changeto(r,g,b,speed)
def off(self,speed):
self.changeto(1,1,1,speed)
time.sleep(speed)
self.RED.stop()
self.GREEN.stop()
self.BLUE.stop()
def cleanup(self):
self.RED.stop()
self.GREEN.stop()
self.BLUE.stop()
Я понятия не имею, в чем заключается ошибка
1 ответ
Решение
В строке 5 в rgbled.py вы никогда не говорили интерпретатору, что хотите импортировать с машины.
from machine
->
import machine