首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在alexa应用程序中运行没有sudo权限的Neopixel

如何在alexa应用程序中运行没有sudo权限的Neopixel
EN

Stack Overflow用户
提问于 2020-01-08 01:33:12
回答 1查看 2.1K关注 0票数 1

我正在创建一个Alexa应用程序,它将允许用户使用一个简单的语音命令打开一组NeoPixels (WS2812) LED。该应用程序托管在raspberry pi 4上,目前用于打开GPIO引脚。我遇到的问题是,打开NeoPixels的代码需要sudo权限,所以当使用alexa应用程序时,它只会出错,而不是打开灯。

由于需要sudo,所以我能够运行脚本的唯一方法是

代码语言:javascript
复制
sudo python3 LEDTest2.py

效果很好

下面是alexa应用程序的实现,打开GPIO引脚并调用python程序

代码语言:javascript
复制
@ask.intent('GpioIntent', mapping = {'status':'status'})
def Gpio_Intent(status,room):
    GPIO.setwarnings(False)
    GPIO.setmode(GPIO.BCM)    
    GPIO.setup(17,GPIO.OUT)
    if status in STATUSON:
        GPIO.output(17,GPIO.HIGH)
        LEDTest2.func() ###Problem Point###
        return statement('turning {} lights'.format(status))

这可以很好地打开GPIO引脚。

下面是LEDTest2.func()

代码语言:javascript
复制
import board
import neopixel
import time
pixels = neopixel.NeoPixel(board.D18,60)

def func():
    print("func() in LEDtest2.py")
    pixels.fill((255, 197, 143))
    time.sleep(5)
    pixels.fill((0,0,0))

if __name__ == "__main__": #same as file one
    print("LEDtest2.py is being run directly")
    for x in range(2): 
        pixels.fill((0, 255, 0))
        time.sleep(.1)
        pixels.fill((0, 0, 0))
        time.sleep(.1)


else:
    print("LEDtest2.py is being imported into another module")

如何在不需要sudo权限的情况下运行此代码?是否有其他方法可以使用python控制WS2812发光二极管?

编辑:为了澄清我对GPIO引脚没有任何问题,没有sudo权限就不能使用的是NeoPixel库。

EN

回答 1

Stack Overflow用户

发布于 2022-05-20 19:52:49

我不需要苏多就能控制它。您应该从raspi启用SPI接口。当然,首先物理移动LED连接到GPIO10和更改引脚的代码。我试过了,这个对我有用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59638319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档