2017-10-09 3 views
-1

Ich benutze Python, Adafruit_BBIO für GPIO und PWM, Flask und ein BeagleBone Black. Mit all diesen Tools und Informationen habe ich in einem Buch "Getting Started with BeagleBone" (Richardson 2014) mitgespielt.RE: Wie kann ich Flask dazu bringen, GPIO-Pins zu verwenden, um die LED-Helligkeit unter Linux mit einem BeagleBone Black zu ändern?

In diesem Sinne, hier ist meine Software aus dem Text:

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) 

Also ... ich habe:

Flask: v0.12.2 Python: v2.7.13

Ich benutze den 4.9.x Kernel von einem Debian Distro, Stretch.

Hier ist mein Ausdruck der Informationen. für den Fehler bei der Ausführung der Software:

Image of Issue

Das Terminal geht online an den Debugger. Ich überprüfe den Online-Debugger und der obige Link ist was produziert wird.

Seth

P.S. NameError: Globaler Name P8_11 ist nicht definiert.

+0

Was ist unklar über diesen Fehler? Sie haben den Namen einer Variablen 'P8_11' geschrieben, die Sie nirgendwo definiert haben. Wolltest du die Saite ''P8_11'' weitergeben? – davidism

+0

Hallo ... Entschuldigung. Ja, es ist eine Folge von "P8_11" für mein spezifisches Board. –

+0

Der Quellcode, den Sie in Ihrer Frage angegeben haben, stimmt nicht mit den Auszügen aus dem Traceback überein. – duskwuff

Antwort

-1

Leistungsbeschränkungen auf der BBB. Eine Menge Probleme beziehen sich heutzutage auf die Macht.

Seth

+0

Dies ergibt keinen Sinn als Antwort. Leistungsbeschränkungen verursachen diesen Fehlertyp nicht. – duskwuff

+0

Ich habe es zur Arbeit gebracht. Danke für die Abstimmung nach unten. –

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) 

Diese aktualisierte Software sollte, wenn überprüft arbeiten. Ich habe dem Debugger online nicht genug zugehört.

Seth

P.S. Wenn Sie zusätzliche Unterstützung für Adafruit_BBIO benötigen, überprüfen Sie bitte https://github.com/adafruit/adafruit-beaglebone-io-python.

+0

Ich habe die P8_ Pin-Nummern in der Software aufgebockt. Es ist eigentlich rückwärts. Das GPIO.setup ist GPIO.setup ("P8_11", GPIO.OUT) und PWM.start ist PWM.start ("P8_19, 0.0). Entschuldigung. –

0

Es gab einen Fehler in den PWM-Pins auf Debian Stretch für Adafruit_BBIO.

Seth

P. S. Backup auf Kernel 4.4.x anstelle von Kernel 4.9.x.

Verwandte Themen