【物联网开发】机智云App远程电机PWM调速

机智云物联网
发布于 2022-11-2 15:11
浏览
0收藏

一、实现的功能描述
App远程控制开发板上控制电机的PWM信号占空比,以达到控制电机转速的目的。并将App下发的PWM占空比值显示在OLED屏幕上。

二、 UI配置描述
本例程中所包含的UI配置代码如下:
UI = “[5_MotorPWM_%_0_100]”
复制代码

例程中用了类型为 “5” 的控件,该类控件用来通过App下发控制量给设备,控制范围为0-100,单位为%。关于该类型控件的具体描述可以参看官网中关于ShineBlink云的教程。
基于以上UI配置,当设备上电后,我们在小程序中可以看到系统为我们自动生成的小程序页如下:
【物联网开发】机智云App远程电机PWM调速-鸿蒙开发者社区

三、本实验教学目的
掌握基于ShineBlink的:
基于WiFi或4G接入ShineBlink免开发云,也可以轻松的接入机智云物联网平台,并自动生成微信小程序
PWM信号控制电机(电机的PWM控制引脚为D0)
OLED屏幕显示(OLED屏幕占用SCL1和SDA1引脚)

四、本实验涉及的模块
电机在开发板上的位置如下:

五、完整源代码(WiFi版本)
–配置D0口为PWM功能,参数20000表示PWM的周期为20ms,参数1表示高电平有效
LIB_PwmConfig1(20000,1)
LIB_PwmUpdate1(0) --电机默认停止转动
–设置0.96寸oled模块占用的IIc1接口,用来显示电压和PWM占空比
LIB_0_96_OledConfig(“IIC1”)
–设置UI配置,该配置决定了小程序页面显示的控件具体有哪些什么,名字是什么
UI = “[5_MotorPWM_%_0_100]”
–设置C2开发板自带的WiFi连接云
ssid = “abcdef” --修改成您的WiFi路由器账号
pswd = “123456” --修改成您的WiFi路由器密码
LIB_CloudConfig(“S0”, “WIFI_C2”, 0, “SBK_01”, UI, ssid, pswd)
–显示控制电机的默认占空比
LIB_0_96_OledPuts(“1”,“1”,string.format(“PWM:%03d%%”, 0))
while(GC(1) == true)
do
–查询是否收到服务器下发的数据
recv_flag, msg = LIB_CloudRecv()
if recv_flag == 1 then
–查看服务器是否下发控制电机PWM占空比的指令
if string.find(msg, “MotorPWM”) ~= nil then
Json_Val = LIB_JsonParse(msg, “$.MotorPWM”)
–将解析出来的字符串转换成数字
val = tonumber(Json_Val)
if val ~= nil then
if val <= 100 and val >= 0 then
–通过设置D0口输出的PWM有效电平宽度来控制电机震动强度
LIB_PwmUpdate1(val*200)
–显示控制电机的占空比
LIB_0_96_OledPuts(“1”,“1”,string.format(“PWM:%03d%%”, val))
end
end
end
end
end
复制代码
注意:本例程使用的是 C2 DevKit 开发板上的震动电机,所以使用前需要将开发板上的黄色跳线帽跳至MOT选项。

六、实验现象
将上面代码中的ssid和pswd改成您的路由器账号和密码,然后将代码复制到开发板中并运行十几秒之后,我们用微信扫描开发板背后的二维码,在弹出的微信小程序中我们就可以远程控制开发板上的电机的转速(震动强度)。

七、4G版本
4G版本和WiFi版本的代码几乎一样,我们只需做如下两处调整即可实现4G远程:
(1)将4G模块插入开发板上的4G插槽,如下图:
【物联网开发】机智云App远程电机PWM调速-鸿蒙开发者社区

(2)将代码中WIFI初始化改成4G初始化即可,调整如下:
将原来WiFi的:
–设置C2开发板自带的WiFi连接云
ssid = “abcdef” --修改成您的WiFi路由器账号
pswd = “123456” --修改成您的WiFi路由器密码
LIB_CloudConfig(“S0”, “WIFI_C2”, 0, “SBK_01”, UI, ssid, pswd)
复制代码
调整成4G后的:
–设置外部4G模块连接云
LIB_CloudConfig(“S0”, “4G_ML302”, 0, “SBK_01”, UI, “NO_GPS”)
复制代码

分类
标签
收藏
回复
举报
回复
    相关推荐