我对覆盆子和Python非常陌生。我想为我的raspberry pi小项目开发一个Flask和Python服务器。我已经开发了烧瓶和Python服务器来驱动ESC (电子速度控制)无刷电机,但我有一个关于烧瓶的问题。
用于GPIO控制,我使用了Rpi.GPIO库.
问题是,当我单击电机/链接时,它运行电机,当单击电机/关闭链接时,电机关闭。现在,如果我再次点击马达/链接,除非我重新启动我的烧瓶应用程序,否则它不会运行马达。重新启动烧瓶应用程序(app.py)文件后,马达/on链接工作正常,我不知道为什么会发生这种情况。我希望我能说清楚。
这是我的app.py代码。
from flask import Flask, render_template, request
from flask import make_response
from flask_cors import CORS
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
app = Flask(__name__)
CORS(app)
GPIO.setwarnings(False)
import time
motor = 12
GPIO.setup(motor, GPIO.OUT)
p = GPIO.PWM(motor, 50)
@app.route("/<deviceName>/<action>")
def action(deviceName, action):
if deviceName == 'motor':
actuator = motor
if action == "on":
p.start(9)
if action == "off":
p.stop()
return make_response(action)
if __name__ == "__main__":
app.run(host='0.0.0.0', port=8080, debug=True)
发布于 2021-02-27 17:02:19
from flask import Flask, render_template, request
from flask import make_response
from flask_cors import CORS
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
app = Flask(__name__)
CORS(app)
GPIO.setwarnings(False)
import time
motor = 12
GPIO.setup(motor, GPIO.OUT)
p = GPIO.PWM(motor, 50)
p.start(0) # EDIT
@app.route("/<deviceName>/<action>")
def action(deviceName, action):
if deviceName == 'motor':
actuator = motor
if action == "on":
p.ChangeDutyCycle(9) # EDIT
if action == "off":
p.ChangeDutyCycle(0) # EDIT
return make_response(action)
if __name__ == "__main__":
app.run(host='0.0.0.0', port=8080, debug=True)
并且可能将p.stop()放置在程序末尾的任何地方。
https://stackoverflow.com/questions/66014037
复制相似问题