首页 / 行业
怎样创建树莓派上的Web应用程序 并使用Flask Web Framework控制伺服电机
2019-07-26 15:27:00

在这篇文章中,您将学习如何创建Raspberry Pi上的Web应用程序,使用Flask Web Framework控制伺服电机,以创建Web应用程序。我们将在Web应用程序上创建两个滑块,它们将发送相应的值,导致伺服电机在按下按钮时移动。
Flask是一个用Python编写并由Armin Ronacher开发的Web应用程序框架。领导一个名为Pocco的国际Python爱好者群体。 Flask基于Werkzeug WSGI工具包和Jinja2模板引擎。两者都是Pocco项目。
先决条件
确保您的Raspberry Pi是最新的。要更新Raspberry Pi,请键入以下命令: sudo apt-get update
要安装Flask,我们需要有pip,因此请键入以下命令来安装pip: sudo apt-get install python-pip
然后输入以下命令来安装Flask: sudo pip install flask
必需组件
Raspberry Pi
SG90伺服电机
跳线电缆
电路图和说明
这个项目的电路图很简单 - 你只需要连接你的两个伺服电机。进行以下连接:
伺服电机1伺服电机2Raspberry Pi
黄色或橙色线
GPIO 26
Red Wire
5V
黑色或棕色线
GND
黄色或橙色线GPIO 19
红线5V
黑色或棕色线GND
代码演练
让我们分析一下这个项目中使用的代码。完整的代码可以在文章的最后找到。
首先,我们导入了这个项目所需的烧瓶模块。 render_template_string 模块允许我们在项目中使用HTML。 请求模块允许我们从HTML获取数据。 RPi.GPIO 库允许我们控制Raspberry Pi的GPIO引脚。
from flask import Flask, render_template_string, request
import RPi.GPIO as GPIO
from time import sleep
现在,我们启用调试模式我们的项目。启用调试模式的优点是它可以在更改代码时自动重新加载服务器。它还提供了一个有用的调试器来跟踪应用程序中的错误。
app.config[‘DEBUG’] = True
伺服电机在不动时会抖动一下。为了阻止它,我们使用以下行:
p.ChangeDutyCycle(0)
p1.ChangeDutyCycle(0)
如何运行程序
创建Python文件并上传代码。接下来,使用sudo命令运行此文件以在端口5000 上的localhost启动服务器。
打开浏览器并输入在https://127.0.0.1:5000中,打开一个网页,如下所示。
现在,按提交按钮将发送值根据我们控制的伺服电机的滑块。
完全代码
from flask import Flask, render_template_string, request # Importing the Flask modules required for this project
import RPi.GPIO as GPIO # Importing the GPIO library to control GPIO pins of Raspberry Pi
from time import sleep # Import sleep module from time library to add delays
# Pins where we have connected servos
servo_pin = 26
servo_pin1 = 19
GPIO.setmode(GPIO.BCM) # We are using the BCM pin numbering
# Declaring Servo Pins as output pins
GPIO.setup(servo_pin, GPIO.OUT)
GPIO.setup(servo_pin1, GPIO.OUT)
# Created PWM channels at 50Hz frequency
p = GPIO.PWM(servo_pin, 50)
p1 = GPIO.PWM(servo_pin1, 50)
# Initial duty cycle
p.start(0)
p1.start(0)
# Flask constructor takes the name of current module (__name__) as argument.
app = Flask(__name__)
# Enable debug mode
app.config[‘DEBUG’] = True
# Store HTML code
TPL = ‘’‘
Web Application to Control Servos
Slider 1
Slider 2
’‘’
# which URL should call the associated function.
@app.route(“/”)
def home():
return render_template_string(TPL)
@app.route(“/test”, methods=[“POST”])
def test():
# Get slider Values
slider1 = request.form[“slider1”]
slider2 = request.form[“slider2”]
# Change duty cycle
p.ChangeDutyCycle(float(slider1))
p1.ChangeDutyCycle(float(slider2))
# Give servo some time to move
sleep(1)
# Pause the servo
p.ChangeDutyCycle(0)
p1.ChangeDutyCycle(0)
return render_template_string(TPL)
# Run the app on the local development server
if __name__ == “__main__”:
app.run()
最新内容
手机 |
相关内容
逆变器技术对新能源汽车市场增长的
逆变器技术对新能源汽车市场增长的重要性,市场,新能源汽车,逆变器,控制,高效率,能和,随着全球对环境保护和可持续发展的关注不断增什么是高压接触器,高压接触器的组成
什么是高压接触器,高压接触器的组成、特点、原理、分类、常见故障及预防措施,高压,分类,闭合,用于,操作,损坏,AD694ARZ高压接触器是什么是射流继电器,射流继电器的基本
什么是射流继电器,射流继电器的基本结构、技术参数、工作原理、负载分类、如何选用、操作规程及发展历程,继电器,工作原理,分类,负什么是NFC控制器,NFC控制器的组成、
什么是NFC控制器,NFC控制器的组成、特点、原理、分类、常见故障及预防措施,控制器,分类,模式,移动支付,数据,信号,NFC(Near Field Com什么是电机启动器,电机启动器的基本
什么是电机启动器,电机启动器的基本结构、优缺点、工作原理、类型、检测、操作规程及发展历程,工作原理,类型,检测,结构,启动,断开,电流互感器作用 电流互感器为什么
电流互感器作用 电流互感器为什么一端要接地?,作用,误差,原因,连接,测量,短路故障,电流互感器(Current Transformer,简称CT)是一种用于基于穿隧磁阻效应(TMR)的车规级电
基于穿隧磁阻效应(TMR)的车规级电流传感器,车规级,效应,导致,自旋,测量,电动汽车,随着电动汽车的快速发展和智能化驾驶技术的成熟,对所有遥不可及,终因AI触手可及
所有遥不可及,终因AI触手可及,出行,平台,无人驾驶汽车,导致,人工智能,学习,人类历史上,有许多事物曾被认为是遥不可及的,然而随着科技