制作一个Ethersweep步进电机控制器

描述

开源、易于使用的以太网连接步进电机控制器。由 FreeCAD、KiCAD 和 Arduino 打造。


概览

Ethersweep 是一款适用于 NEMA17 步进电机的电机控制器,可通过普通以太网网络进行控制。这意味着您可以通过普通电脑(笔记本电脑/服务器/raspberrypi)、移动设备、微控制器、PLC 和任何其他能够发送 UDP 消息的机器来控制运动。您还可以控制任意数量的电机,因为每个电机都能从网络上的 DHCP 服务器获得一个 IP 地址。您还可以将末端和 E-Stops 连接到控制器。还可以通过网络请求获取编码器反馈、电压、运行和按钮状态等传感器数据。


您所需要的只是网络和 5 至 30 伏的电源。

python



每台电机都必须连接以太网(最好使用 DHCP)和 5...30V 的电源。USB 可用于用新固件对控制器进行编程。末端和 E-Stops 可通过 JST3 针连接器连接。要向 Ethersweep 发送指令,只需通过 UDP 向控制器的 IP 和端口发送 JSON 编码信息即可。


硬件 Spec

W5500 以太网控制器

72MHz 的 STM32f103 微控制器

Trinamic TMC2209 步进电机驱动器

AS5600 磁性旋转编码器

XT30 电源连接器

Oled 128x32 显示器

USB 可编程

E-Stop 和 End-Stop 输入

复位按钮

适用于 NEMA17 步进电机

标准 RJ45 网络连接器

python



如何开始?

制作一个 Ethersweep 控制器。所有制造/组装文件均可与 JLCPCB 配合使用,威廉希尔官方网站 板到货后只需进行一些简单的 THT 焊接。代码可从资源库中获取。 通过以太网将 Ethersweep 控制器连接到网络,并连接到 5.5...30V 电源。在 NEMA17 电机轴上粘贴编码器磁铁(径向磁化),并将控制器连接到电机的四个 M3 螺钉上。连接电源和以太网后,控制器将使用 DHCP 搜索 IP 地址。找到 IP 地址后,控制器会在显示屏上显示出来,然后就可以使用了。如果没有找到 IP,则默认为 192.168.1.111。(建议使用 DHCP)

现在可以使用 Python 脚本控制电机了。

pythonpython

python



使用 Python 控制步进电机

import socket
import json


IP_MOTOR = "192.168.1.185" # ethersweep IP (change to motors IP)
UDP_PORT = 8888 # ethersweep port




def drive_motor(steps, speed, direction, mode, motor_ip):
    json_data = json.dumps({'steps': steps, 'speed': speed, 'direction': direction, 'mode': mode})
    message = json_data.encode()
    sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    sock.sendto(message, (motor_ip, UDP_PORT))




drive_motor(100, 9500, 1, 32, IP_MOTOR) # this will spin the motor 100 steps

 

原理图 & PCB

  pythonpythonpythonpython

python



License




Unknown


仓库 & 下载



可以在Github中获取开源仓库:


https://github.com/Neumi/ethersweep

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分