Kara 发表于 2022-1-19 15:34:05

工业RTU示例3:远程电机控制(4G版)

本文实现一个能够远程遥控的电机控制设备,用户可以远程控制本地电机的转向,以及电机的转速。对电机的调速控制采用 PWM 脉冲占空比技术。为了演示方便这里采用的是小型的马达配套 L9110 电机驱动芯片,若需要控制更大的电机可以更换其他的电机驱动芯片方案即可,PWM 控制原理是一模一样的。

视频教程及实物展示
视频演示教程:/media/uploads/2021/12/03/fuisov.jpg
接线实物图和App监测页面:https://si1.go2yd.com/get-image/0vv8fqd4w6I​https://si1.go2yd.com/get-image/0vv8g08Glpa

硬件端接线图
https://si1.go2yd.com/get-image/0vv8ekl0ywP

​材料清单

名称推荐购买源资料下载
通用版机智云App免费https://download.gizwits.com/zh-cn/p/98/99
ShineBlink 万能物联网开发板淘宝搜索“机智云”或“ShineBlink”店铺有售shineblink.com
带机智云GAgent固件的ML302 4G模块淘宝搜索“机智云”或“ShineBlink”店铺有售gizwits.com
​L9110电机驱动模块+电机https://detail.tmall.com/item.htm?spm=a230r.1.14.1.53e135ceWZlQJ4&id
=36766206561&ns=1&abbucket=9


黑色底板该底板只是为了省掉接杜邦线,让外观好看一些,不是必需品,开发者如果没有可以用杜邦线来替代。
如果仍想获取该底板,可通过右边提供的PCB工程资料自己打样PCB制作即可。
https://fe9a58.link.yunpan.360.cn
/lk/surl_y6mpLtWWB9W#/-0



硬件端完整源码
--机智云平台为每个产品类别分配的唯一PK和PS,一定要改成您自己的PK和PSPK = "5f84e8f7a9de41fdab682bf36bc7afa6"PS = "6ef35df066c240d38b5e7b82bbaad0bd"--初始化4G模块LIB_Giz4GConfig(PK,PS,6000,120,"UART0","D5","HIGH","D6","HIGH")--配置D0 D1 D2口为PWM功能,周期20ms,高电平为有效极性LIB_PwmConfig3(20000,1)--当INA高电平 INB低电平时电机正转,反之亦然--更新D0口的PWM输出占空比为0%, D0口接L9110的INA--更新D1口的PWM输出占空比为0%, D1口接L9110的INB--更新D2口的PWM输出占空比为0%, D2口未使用LIB_PwmUpdate3(0,0,0)rotation_direction = 0 --电机转动方向变量,0:正转, 1:反转--开始大循环while(GC(1) == true)do--查询机智云是否下发了写"Em1"枚举型数据点(正转/反转)flag,recv_data = LIB_RecvFromGizCloud("Em1")if flag == 1 thenif recv_data == 0 then --正转rotation_direction = 0elseif recv_data == 1 then --反转rotation_direction = 1else --正转rotation_direction = 0endend--查询机智云是否下发了需要写入的短整数数据(范围0~100)(电机转速百分比)flag,Percent = LIB_RecvFromGizCloud("Ws1")if flag == 1 then --此时获取到一个范围在0-100的整数--设置Pwm占空百分比,即设置电机转速if rotation_direction == 0 then --正转的情况INA = Percent*20000/100--INA输出Percent_A%占空比的高电平--INB输出低电平LIB_PwmUpdate3(INA,0,0)else --反转的情况INB = Percent*20000/100--INA输出低电平--INB输出Percent_B%占空比的高电平LIB_PwmUpdate3(0,INB,0)endendend上面代码中出现的"LIB_"开头的库函数的详细介绍可点击查询。

机智云接入和App开发(三个选择)
►选择一:机智云+通用版APP访问设备(难度最低)通过《4G设备接入机智云教程》我们可以很快掌握机智云的接入流程,并使用现成的通用版机智云App即可很快的实现手机App远程访问我们的开发板。本例中我们使用了"Ws1"这个短整数型数据点作为云端下发电机转速指令的通道,记得在机智云平台修改相应的数据点的名称。https://si1.go2yd.com/get-image/0vv8ekzoR9b​本例中我们使用了"Em1"这个枚举型数据点作为云端下发电机转向(正转/反转)指令的通道,记得在机智云平台修改相应的数据点的名称以及枚举列表中的名称。https://si1.go2yd.com/get-image/0vv8ek9Tqqd​► 选择二:机智云+零代码定制版App访问设备(难度较低)在选择二之前,必须完成上面选择一的工作,然后参考《 赛博坦零代码App开发(4G版)》教程实现定制版App访问设备。开发好以后的页面如下:https://si1.go2yd.com/get-image/0vv8g08Glpa​► 选择三:定制化开发APP或微信小程序(难度较高)如果有一定开发能力,开发者可以考虑在机智云免费提供的开源代码上做一定的定制开发形成自己的App。如果开发者希望开发一个专属的App,机智云也会提供代码开源的安卓和IOS SDK框架,帮助开发者快速完成App开发,开发者仅需关注App的UI和UE设计即可,而相对复杂的协议与错误处理等事项可忽略。关于开源SDK的介绍和获取请进入docs.gizwits.com了解更多内容。
如果开发者希望开发一个专属的微信小程序应用, 可以进入docs.gizwits.com了解相关开发教程。

页: [1]
查看完整版本: 工业RTU示例3:远程电机控制(4G版)