树莓派步进电机的网页控制使用Flask
扫描二维码
随时随地手机看文章
步进电机是一种无刷直流电动机,其旋转每转一圈分为几步。步进电机需要不同数量的步骤来完成一个360°旋转。由于这一特点,步进电机提供了精确的控制,并用于3D打印机,CNC路由器和机器人。步进电机需要电机驱动器和单片机才能正常工作,这里我们将使用A4988步进电机驱动器与树莓派通过网页旋转NEMA17步进电机。
该网页将使用用于树莓派步进电机控制的Flask Web框架创建。网页将有一个滑块和一个提交按钮,它将发送滑块值到树莓派按下提交按钮。在基于物联网的应用中,web服务器用于使用web浏览器控制或监控任何传感器值,我们以前使用Arduino, ESP8266, NodeMCU, ESP32,树莓派等创建了许多web服务器。
Flask是一个流行的Python web框架,由Pocoo的Armin Ronacher开发。它是用于开发web应用程序的第三方Python库。Flask被归类为微框架,它基于Pocoo项目Werkzeug和Jinja2。Flask在树莓派上非常常用,因为树莓派有Linux操作系统,可以很容易地处理Python脚本。树莓派由于其高处理能力和内置Wi-Fi功能,在创建web服务器和基于物联网的项目中也很受欢迎。
组件的要求
•树莓派3
•NEMA17步进电机
•A4988步进驱动模块
•跳线
线路图
用树莓派控制Nema 17步进电机的电路图如下:
在这个项目中,我们使用了A4988步进电机驱动器与树莓派。A4988电机驱动模块内置转换器,因此可以使用步进和方向引脚控制步进电机。STEP引脚控制步骤,DIRECTION引脚控制方向。步进电机使用12V电源供电,A4988模块通过树莓派供电。RST引脚连接到SLP/SLEEP引脚,使驱动程序处于使能状态。
树莓派Nema 17的完整连接如下表所示。
安装Flask模块和库
在这里,我们将使用以下命令安装Flask模块和库:
首先,使用以下命令更新树莓派
现在,安装pip和Rpi。Gpio库使用以下命令:
现在使用下面的命令来安装Flask:
现在安装树莓派电机库。它是一个python库,用于控制使用树莓派的各种电机。使用以下命令安装库。
Python程序说明
这个Nema 17步进电机与树莓派项目的完整python代码在文档的末尾给出。
通过导入所需的库文件来启动代码。从各自的库文件中导入GPIO、Flask、sleep和RpiMotorLib。GPIO功能使我们能够对PI的GPIO引脚进行编程。Sleep函数用于提供延迟,Flask用于创建Web应用程序。
现在定义Raspberry Pi GPIO引脚,其中连接A4988模块的STEP, Direction和Microstep引脚。
从Web页面获取滑块值并将其作为整数值打印。
现在比较滑块值,如果滑块值大于10,则顺时针旋转电机。
Motor_go是移动电机的主要方法。它接受六个输入(顺时针、步长类型、步长、步长延迟、冗长、初始化延迟)。
地点:
顺时针用于控制电机的方向,可以通过True和False来改变电机的方向。False表示逆时针方向,True表示顺时针方向。
步骤类型用于定义步骤分辨率。通过使用步进类型,您可以将电机设置为五步分辨率之一。
步长用于定义电机的步长数。
步延迟是步之间的延迟。
Verbose是一个布尔函数,用于写入引脚动作。默认为False。
Initdelay是初始化GPIO引脚之后,但在电机移动之前的初始延迟
运行树莓派Web服务器,用于控制Nema17
一旦你的代码准备好了,Nema 17步进电机按照电路图连接,打开PI来写程序。
使用以下命令创建thestep .py文件:
现在将给定的内容粘贴到末尾,并使用以下命令运行python代码:
现在导航到树莓派Web浏览器,输入打开Web页面,如下所示。
最后,移动滑块并按下提交按钮,使步进电机旋转。如果向左移动滑块,则电机将沿逆时针方向移动,如果向右移动滑块,则电机将沿顺时针方向移动。电机的速度取决于滑块的值。如果滑块值高,则电机速度会慢,反之亦然。
这是使用Python语言控制Nema17步进电机的方法。通过在路由器中启用端口转发,您可以通过输入ISP(互联网服务提供商)提供的静态IP来控制世界上任何地方的步进电机。
本文编译自iotdesignpro