2017-10-09 3 views
-1

GPIO 및 PWM, Flask 및 BeagleBone Black 용으로 Python, Adafruit_BBIO를 사용하고 있습니다. 이 모든 도구와 정보로 저는 "BeagleBone 시작하기"(Richardson 2014)라는 책을 읽었습니다. 염두에두고 RE : BeagleBone Black을 사용하여 GPIO 핀을 사용하여 Flask에서 Linux의 LED 밝기를 변경하려면 어떻게해야합니까?

는, 여기에 텍스트에서 내 소프트웨어 : 그래서

from flask import Flask, render_template 
app = Flask(__name__) 
import Adafruit_BBIO.GPIO as GPIO 
import Adafruit_BBIO.PWM as PWM 

PWM.start("P8_13", 0.0) 

@app.route("/") 
def hello(): 
    if GPIO.input("P8_11"): 
     doorStatus = "open" 
    else: 
     doorStatus = "closed" 
    templateData = { 
     'doorStatus': doorStatus, 
    } 
    return render_template('main-door.html', **templateData) 

@app.route('/ledLevel/<level>') 
def pin_state(level): 
    PWM.set_duty_cycle("P8_13", float(level)) 
    return "LED level set to " + "." 

if __name__ == "__main__": 
    app.run(host='192.168.7.2', port=5000, debug=True) 

... 내가 가진 :

플라스크 : v0.12.2 파이썬 : v2.7.13

을 데비안 배포판의 4.9.x 커널을 사용하고 있습니다.

여기 내 정보가 인쇄되었습니다. 소프트웨어를 실행하는 에러 :

Image of Issue

터미널은 온라인 디버거로 이동합니다. 온라인 디버거를 점검하고 위의 링크가 생성됩니다.

세스

P. NameError : 전역 이름 P8_11이 정의되지 않았습니다.

+0

그 오류에 대해 명확하지 않은 점은 무엇입니까? 아무 곳이나 정의하지 않은 변수'P8_11'의 이름을 썼습니다. ''P8_11 ''문자열을 전달하려고 했습니까? – davidism

+0

안녕하세요 ... 죄송합니다. 예, 내 특정 게시판의 "P8_11"문자열입니다. –

+0

질문에 제공 한 소스 코드가 추적 목록에 표시된 발췌 본과 일치하지 않습니다. – duskwuff

답변

-1

BBB의 전원 제약. 요즘에는 많은 문제들이 힘과 관련되어 있습니다. 확인하면

세스

+0

이것은 대답으로 이해가되지 않습니다. 전력 제한으로 인해 이러한 유형의 오류가 발생하지 않습니다. – duskwuff

+0

나는 그것을 작동시켰다. 투표 해 주셔서 감사합니다. –

0
from flask import Flask, render_template 
app = Flask(__name__) 
import Adafruit_BBIO.GPIO as GPIO 
import Adafruit_BBIO.PWM as PWM 

GPIO.setup("P8_19", GPIO.OUT) 
PWM.start("P8_11", 0.0) 

@app.route("/") 
def hello(): 
    if GPIO.input("P8_19"): 
     doorStatus = "open" 
    else: 
     doorStatus = "closed" 
    templateData = { 
     'doorStatus': doorStatus, 
    } 
    return render_template('main-door.html', **templateData) 

@app.route('/ledLevel/<level>') 
def pin_state(level): 
    PWM.set_duty_cycle("P8_11", float(level)) 
    return "LED level set to " + "." 

if __name__ == "__main__": 
    app.run(host='192.168.7.2', port=5000, debug=True) 

이 업데이트 된 소프트웨어가 작동합니다. 나는 디버거 온라인을 듣지 않았다.

세스

P. Adafruit_BBIO에 대한 추가 지원이 필요한 경우 https://github.com/adafruit/adafruit-beaglebone-io-python을 확인하십시오.

+0

나는 소프트웨어에서 P8_ 핀 번호를 입력했다. 그것은 실제로 뒤로입니다. GPIO.setup은 GPIO.setup ("P8_11", GPIO.OUT)이고 PWM.start는 PWM.start ("P8_19, 0.0)입니다. –

0

Adafruit_BBIO에 대한 Debian Stretch의 PWM 핀에 버그가있었습니다.

세스

P. 커널 4.9.x 대신 커널 4.4.x로 백업하십시오.

관련 문제