2017-10-09 15 views
-1

J'utilise Python, Adafruit_BBIO pour GPIO et PWM, Flask, et un BeagleBone Black. Avec tous ces outils et informations, j'ai suivi un livre intitulé "Getting Started with BeagleBone" (Richardson 2014).RE: Comment faire pour que Flask utilise des broches GPIO pour modifier la luminosité des DEL sous Linux avec un BeagleBone Black?

Dans cet esprit, voici mon logiciel du texte:

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) 

Alors ... Je:

Flask: v0.12.2 Python: v2.7.13

J'utilise le noyau 4.9.x d'une distribution Debian, Stretch.

Voici mon impression de l'info. l'erreur lors de l'exécution du logiciel:

Image of Issue

Le terminal va au débogueur en ligne. Je vérifie le débogueur en ligne et le lien ci-dessus est ce qui est produit.

Seth

P.S. NameError: Le nom global P8_11 n'est pas défini.

+0

Ce qui n'est pas clair à propos de cette erreur? Vous avez écrit le nom d'une variable 'P8_11' que vous n'avez définie nulle part. Vouliez-vous dire passer la chaîne «P8_11»? – davidism

+0

Bonjour ... désolé. Oui, c'est une chaîne de "P8_11" pour mon tableau spécifique. –

+0

Le code source que vous avez fourni dans votre question ne correspond pas aux extraits montrés dans le retraçage. – duskwuff

Répondre

-1

Contraintes d'alimentation sur le BBB. Beaucoup de problèmes sont liés au pouvoir ces jours-ci.

Seth

+0

Cela n'a aucun sens en tant que réponse. Les contraintes de puissance ne provoquent pas ce type d'erreur. – duskwuff

+0

Je l'ai eu pour travailler. Merci pour le vote à la baisse. –

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) 

Ce logiciel mis à jour devrait fonctionner si elle est cochée. Je n'ai pas assez écouté le débogueur en ligne.

Seth

P.S. Si vous avez besoin d'un support supplémentaire pour Adafruit_BBIO, veuillez vérifier au https://github.com/adafruit/adafruit-beaglebone-io-python.

+0

J'ai remonté les numéros de broche P8_ sur le logiciel. C'est en fait à reculons. Le GPIO.setup est GPIO.setup ("P8_11", GPIO.OUT) et PWM.start est PWM.start ("P8_19, 0.0). –

0

Il y avait un bogue dans les broches PWM sur Debian Stretch pour Adafruit_BBIO.

Seth

P.S. Sauvegarde au noyau 4.4.x au lieu d'utiliser le noyau 4.9.x.